




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年安徽省馬鞍山市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.sizeof(float)是()。A.一個雙精度型表達式B.一個整型表達式C.一種函數(shù)調用D.一個不合法的表達式
2.鏈棧與順序棧相比,比較明顯的優(yōu)點是()。
A.插入操作更加方便B.刪除操作更加方便C.不會出現(xiàn)下溢的情況D.不會出現(xiàn)上溢的情況
3.
4.軟件開發(fā)模型包括Ⅰ.瀑布模型Ⅱ.扇形模型Ⅲ.快速原型法模型Ⅳ.螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
5.在長度為n的順序存儲的線性表中,刪除第i個元素(1≤i≤n)時,需要從前向后依次前移____個元素。
A.n-iB.n-i+1C.n-i-1D.i
6.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”
7.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是()
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch(int(x)){case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case1+2:printf("**\n");}
D.switch(a+B){case1:printf("*\n");casec:printf("**\n");}
8.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
9.以下敘述中正確的是()。
A.宏替換不占用程序的運行時間
B.預處理命令行必須位于源文件的開頭
C.在源文件的一行上可以有多條預處理命令
D.宏名必須用大寫字母表示
10.在位運算中,操作數(shù)左移一位,其結果相當于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
11.若有說明:inta[][3]={1,2,3,4,5,6,7};則a數(shù)組第一維的大小是
A.2B.3C.4D.無確定值
12.求2n個數(shù)中的最大值和最小值,最少的比較次數(shù)是()
A.4n/3B.2n-2C.3n-2D.3n/2
13.考慮一個特殊的hash函數(shù)h,能將任一字符串hash成一個整數(shù)k,其概率P(k)=2^(-k),k=1,2,…,∞。對一個未知大小的字符串集合S中的每一個元素取hash值所組成的集合為h(S)。若h(S)中最大的元素Maxh(S)=10,那么S的大小的期望是()
A.1024B.512C.5D.10
14.
15.算法分析的兩個主要方面是()。
A.空間復雜性和時間復雜性B.正確性和簡明性C.可讀性和文檔性D.數(shù)據(jù)復雜性和程序復雜性
16.鏈表不具有的特點是A.A.不必事先估計存儲空間
B.可隨機訪問任一元素
C.插入和刪除不需要移動元素
D.所需空間與線性表長度成正比
17.
18.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序運行后的輸出結果是()。
A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,
19.
20.以下程序是用來計算兩個非負數(shù)之間的最大公約數(shù):我們假設x,y中最大的那個數(shù)的長度為n,基本運算時間復雜度為O(1),那么該程序的時間復雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)
二、2.填空題(20題)21.以下程序的輸出結果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
22.以下程序的功能是將字符串s中所有小寫字母'a'刪去,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[]="absuWWUDJFKFLaaakdK";
inti,j;
for(i=j=0;s[i]!='\0';i++)
if()
s[j++]=s[i];
s[j]='\0';
printf("%s",s);
}
23.下列程序的運行結果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
24.下列程序的輸出結果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
25.下列程序的輸出結果是______。
main()
{inta+,b=2,C=3,t=0;
ifa<B){t=a;a=b;b=t;}
ifa<C){t=a;a=c;c=t;}
printf("%d,%d,%dln",a,b,C);
}
26.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
27.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
28.面向對象的程序設計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個______。
29.數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于【】。
30.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
31.若有如下程序:
voidsub()
{staticintx=8;
x/=2;printf("%d",x);
}
main()
{intm;
for(m=0;m<2;m++)sub();}
則程序運行后的輸出結果是【】.
32.若對長度為90的線性表進行分塊查找,其中每塊子表長度為9。如果在索引表查找過程中進行順序查找,那么平均查找長度為【】。
33.下列程序用來將從鍵盤上輸入的2個字符串進行比較,然后輸出2個字符串中第1個不相同字符的ASCII碼之差。例如,輸入的2個字符串分別為abcdef和abceef,則輸出為-1。
#include
main()
{charstr[100],str2[100],c;
inti,s;
printf("\ninputstring1:\n");gest(str1);
printf("\ninputstring2:\n");gest(str2);
i=0;
while((strl[i]==str2[i]&&(strl[i]!=【】))
i++;
s=【】;
printf(.%d\n",s);
34.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指向內存空間中,形成一個新的字符串s。請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
35.下列程序的運行結果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",--i);
}
36.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
則程序運行后的輸出結果是【】。
37.有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是【】。
structnode
{chardata;
structnode*next;}a,b
38.數(shù)據(jù)結構包括數(shù)據(jù)的邏輯結構、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
39.由計算機、操作系統(tǒng)、DBMS、數(shù)據(jù)庫、應用程序及用戶組成的一個整體叫做【】。
40.下列程序的輸出結果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.一個算法的空間復雜度大,則其時間復雜度也必定大
B.一個算法的空間復雜度大,則其時間復雜度必定小
C.一個算法的時間復雜度大,則其空間復雜度必定小
D.上述三種說法都不對
42.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動給a賦初值0B.這時a中的值是和隨機數(shù)C.系統(tǒng)將自動給a賦初值-1D.這a中無任何值
43.模塊本身的內聚是模塊獨立性的重要性度量因素之一。在7類內聚中,具有最強內聚的—類是______。
A.順序性內聚B.過程性內聚C.邏輯性內聚D.功能性內聚
44.軟件調試的目的是______。
A.發(fā)現(xiàn)錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能
45.以下程序的輸出結果是main(){intb[3][3]={0,1,2,O,l,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b[j][j]];printf("%d\n",t);}
A.3B.4C.1D.9
46.下面程序段的輸出結果是()。#include<stdio.h>main(){floatx=1.236547;printf("%f\n",(int)(x*1000+0.5)/(float)1000);}
A.1.237000B.輸出格式說明與輸出項不匹配,輸出無定值C.1.236000D.1.24
47.設有以下定義:typedefunion{longi;intk[5];charc,}DATE,structdate{intcat;DATEcow;doubledog;}too;DATEmax;則下列語句的執(zhí)行結果是()printf("%d",stzeof(structdate)+sizeof(max));
A.25B.30C.18D.8
48.在一棵二叉樹上第5層的結點數(shù)最多是______。
A.8B.16C.32D.15
49.若有以下的說明,對初值中整數(shù)2的正確引用方式是
staticstruct
{charch;
inti;
doublex;
}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};
A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i
50.有以下程序,其中%u表示按無符號整數(shù)輸出:
main
{
unsignedintx=0xFFFF;/*x的初值為十六進制數(shù)*/
printf("%u\n",x);
}
程序運行后的輸出結果是()。
A.-1B.65535C.32767D.0xFFFF
51.請選出正確的程序段______。
A.int*p
B.int*s,k;scanf(""%d"",p);*s=100;………
C.int*s,k;
D.int*s,k;char*p,c;char*p,e;s=&k;p=&c;p=&c;*p='a';s=p;……*s=1;……
52.在關系數(shù)據(jù)庫模型中,通常可以把()稱為屬性,其值稱為屬性值。
A.記錄B.基本表C.模式D.字段
53.有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}程序運行后的輸出結果是
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
54.以下程序運行后,輸出結果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.6385B.22C.33D.693825
55.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是______。
A.23B.26C.33D.36
56.有下列二叉樹,對此二叉樹前序遍歷的結果為()。
A.XZCYABB.XYZABCC.XYABCZD.XYAZBC
57.下列二維數(shù)組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價的是
A.floata[2][]={{0,3,8},{0,9}};
B.floata[][3]={0,3,8,0,9,0};
C.floata[][3]={{0,3},{8,0},{9,0}};
D.floata[2][]={{0,3,8},{0,9,0}};
58.執(zhí)行以下程序后,a,b的值分別是()。#include<stdio.h>main(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}
A.-1,5B.1,6C.0,7D.4,10
59.有以下程序:#include<stdio.h>main(){eharstr[][10]={"China","Beijing"},*p=str[o];printf("%s\n",p+10);}程序運行后的輸出結果是()。
A.ChinaB.BeijingC.ngD.ing
60.已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結果是______。main(){unsignedinta=32,b=66;printf("%c\n",b|b);}
A.66B.98C.bD.B
四、選擇題(20題)61.
62.以下選項中不能作為C語言合法常量的是
A.’Fab’B.0.7e+9C."\b"D.’\01211’
63.
64.
65.下列選項中不合法的十六進制數(shù)是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
66.有以下程序:
若運行時輸入:123<回車>,則輸出結果是()。
A.編譯錯誤2000B.102000C.122030D.10
67.
68.負責數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
69.有以下程序
70.
71.以下選項中正確的語句組是()。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.charS[10];S=”BOOK!”;
D.charS[];S=”BOOK!”;
72.設有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
73.有如下程序段
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
程序運行后輸出的結果是A.A.63
B.36
C.編譯出錯
D.00
74.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
75.設有圖書(圖書編號,書名,第一作者,出版社.、讀者(借書證號,姓名,單位,職稱.和借閱(借書證號,圖書編號,借書日期,還書日期.三張表,則表借閱的關鍵字(鍵或碼.為()。
A.借書證號,圖書編號
B.圖書編號,借書日期
C.借書日期,還書日期
D.借書證號,借書日期
76.有以下程序:
程序運行后的輸出結果是()。
A.0B.4C.6D.7
77.設p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
78.已有定義intx=3,y=4,z=5;則表達式“!(x+y)+z-1y+z/2”的值是________。
A.6B.0C.2D.1
79.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是
A.數(shù)據(jù)的物理分布性和邏輯整體性B.位置透明性和復制透明性
C.事物管理的集中性D.數(shù)據(jù)冗余
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為333333334444444455555555則一維數(shù)組中的內容應該為333333334444444455555555。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.B該函數(shù)用于數(shù)據(jù)類型和變量。注意:sizeof操作符不能用于函數(shù)、不完全類型或位字段。不完全類型指具有未知存儲大小的數(shù)據(jù)類型,如未知存儲大小的數(shù)組類型、void類型等。
2.D
3.C
4.C解析:軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。
5.A
6.D在C語言中,字符串常量是用雙引號標注的字符序列,因此B選項和C選項不正確。字符序列中可包含一些轉義字符,轉義字符以“\\”開頭。A選項中包含3個前兩個(\\\\)代表一個“\\”字符,后面一個為“””。因為\\”被看作一個“””,所以該字符串缺少一個結束的“””。因此A選項不正確。D選項的兩個“”之間沒有任何字符,代表的是一個空串,是合法的字符串常量,因此D選項正確。B選項的abc應該使用雙引號標注。故本題答案為D選項。
7.C
8.D本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
9.A宏替換是在編譯階段前的預處理階段,對程序中的宏完成文本替換,因此宏替換不占用運行時間,選項A正確;預處理命令行無須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項B錯誤;在源文件的一行上至多只能有一條預處理命令,選項C錯誤;宏名通常使用大寫字母表示,這并不是語法規(guī)定,只是一種習慣,選項D錯誤。本題答案為A選項。
10.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。
11.B解析:本題考查二維數(shù)組的定義方式。第一維的大小由以下方法判斷:①當初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大??;2)當初值的個數(shù)不能被第二維的常量表達式的值除盡時,則第一維的劃、:所得的商數(shù)+1。
12.A
13.A
14.D
15.A
16.B鏈表是一種特殊的線性表,鏈表的存儲結構與順序存儲結構不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應用,在給其分配存儲單元時,不必事先估計整個存儲單元的空間大小;由于鏈表的元素是通過指針域的指針相連的,用鏈表存儲數(shù)據(jù)時,對其進行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅指針域,使其指向該結點,并將該結點的指針域修改為指向其直接后繼結點即可。當然,不管是鏈表還是順序存儲,所需空間與線性表長度都成正比。在鏈式存儲的鏈表結構中,由于后一結點數(shù)據(jù)被存儲在哪里,只有通過前一結點的指針域才知道,因此,訪問時只能是逐個訪問,而不能實現(xiàn)隨機訪問。
17.B
18.A程序首先以讀二進制文件的方式打開文件d.dat;然后使用fwrite函數(shù)將數(shù)組a中6個元素寫入d.dat中。并調用for循環(huán)將a[2]元素(值為3)6次寫入d.dat文件中;接著使用rewind函數(shù)將文件指針fp移動到文件頭;再使用fseek函數(shù)將fp從當前位置向后移動2個整數(shù)位置;最后使用fread函數(shù)從fp指向的位置向后讀取6個整數(shù)。由此可知這6個整數(shù)分別是:3,4,5,6,3,3。故本題答案為A選項。
19.D
20.B
21.本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
22.s[i]!='a's[i]!='a'解析:本題是要將字符串s中所有小寫字母'a'刪去,所以if語句的判斷條件應該是字符串s中的字符和字符'a'不相同的時候,就把它仍然存在原來的數(shù)組中,若是和字符'a'相同,就不再保存它。
23.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。
“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結果;若表達式1的值為0,則計算表達式3的值,且為最終結果。
本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。
24.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個復合switch語句:這時執(zhí)行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復合語句執(zhí)行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。
25.3123,1,2解析:分析程序,第一個if句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。
解析:本題,已知結果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
27.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。
28.實體實體
29.存儲結構
30.structlink*headstructlink*head解析:考查用指針引用結構體變量成員數(shù)據(jù)的方法。因為本題中是用結構體變量構成了鏈表,所以要從鏈表頭節(jié)點,逐個節(jié)點的引用結構體的數(shù)據(jù)域,需要有指向結構體變量的指針,依次指向各個節(jié)點,即p=p->next,而用指針引用結構體成員數(shù)據(jù)的方法為:p->data。
31.4242解析:主函數(shù)中的for循環(huán)循環(huán)兩次,即函數(shù)sub()被調用兩次。在sub()中x被定義為靜態(tài)整型變量,當調用函數(shù)sub()完畢返回主函數(shù),x中的值仍然保留,下次調用函數(shù)sub()時,x不再被賦初值。第1次調用x/=2相當于x=x/2=8/2=4,第2次調用x=x/2=4/2=2,因此輸出42。
32.10.5
33.\0'strl[i]-str2[i]
34.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個字符型數(shù)組st1l和str2,并且給str2賦初值“abcdefgh”,接著調用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1.在函數(shù)sstrcpy(*s,*t)中,用了一個while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后指針s和指針t都下移到下一個元素。所以空格處應該填*t++或*(t++)。
35.33解析:分析程序運行過程,第1次循環(huán):s=s+i*i=0+1*1=1,i=2;第2次循環(huán):s=s+i*i=1+2*2=5,i=3;第3次循環(huán):s=s+i*i=5+3*3=14,i=4;循環(huán)條件不成立輸出i,--i使i的值減1,輸出結果為3。
36.310
37.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應該是p->next=&b;在選項D)中,用*運算符取出結構體變量,并且保存的就是b的地址。
38.存儲結構數(shù)據(jù)結構包括3個方面,即數(shù)據(jù)的邏輯結構、數(shù)據(jù)的存儲結構及對數(shù)據(jù)的操作運算。
39.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)
40.66解析:條件運算符的優(yōu)先級高于賦值運算符,因此本題先計算關系表達式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當y=0時,*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=2,所以z=2;當y-1時,*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=4,所以z=4;當y=2時,*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個條件表達式的值為*(ptr+y)=6,所以z=6;循環(huán)結束。因此輸出z的結果為6。
41.D解析:時間復雜度是指一個算法執(zhí)行時間的相對度量;空間復雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復雜度和空間復雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。
42.B本題考查變量賦值基本概念。在聲明一個變量后,如果未顯式的對其進行賦值,則它的值是一個隨機值。
43.D解析:內聚性是一個模塊內部各元素間彼此結合的緊密程度的度量。內聚共有7類,它們之間的內聚性由弱到強排列順序為:偶然內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、順序內聚和功能內聚。
44.B解析:在對程序進行測試時會發(fā)現(xiàn)錯誤,這就要進行程序調試(排錯)。程序調試活動由三部分組成:一是錯誤定位,根據(jù)錯誤的外部表現(xiàn)形式,確定程序中出錯的位置,找出錯誤的內在原因;二是對程序進行修改,排除這個錯誤;三是進行回歸測試,防止引進新的錯誤。所以程序調試的目的就是診斷和改正程序中的錯誤。軟件調試不能改善軟件的性能,也不能挖掘軟件的潛能。
45.B解析:本題中定義了一個二維數(shù)組b并初始化,定義了一個變量t并賦初值1。接著通過一個二重循環(huán)將若干個元素的值加到變量t中。循環(huán)的執(zhí)行步驟是:外層循環(huán)變量i=0時,內層循環(huán)變量j=i,執(zhí)行語句“t=t+b[i][b][j][j]]”,相當于t=t+b[0][b][0][0]],由于b[0][0]的值為0,得到t的值為1;依次類推,循環(huán)共執(zhí)行了3次,最后輸出t的值為4。所以,4個選項中B為所選。
46.A
47.B
48.B[答案]B
[考點]數(shù)據(jù)結構與算法
[評析]依次從上到下,可得出:
第1層結點數(shù)為1;
第2層結點數(shù)為2*1=2;
第3層結點數(shù)為2*2=4;
第n層結點數(shù)為2的n-1次冪
49.B解析:考查結構體數(shù)組對結構體成員的引用。結構體數(shù)組中對結構體成員的引用要先引用到數(shù)組元素,然后像對待普通的結構體變量一樣來對待結構體數(shù)組元素。
50.B解析:整型常量有十進制、八進制和十六進制3種表示:十進制整數(shù)以正號(+)或負號(-)開頭,由首位非0的一串十進制數(shù)字組成,正負號也可省略,表示正整數(shù);八進制整數(shù)以數(shù)字0開頭,后面接著干個八進制數(shù)字(0~7):十六進制整數(shù)以數(shù)字。和字母x(大、小寫均可)開頭,后面接若干個十六進制數(shù)字(數(shù)字0~9和字母A~F,大、小寫均可)。故本題是以無符號整數(shù)形式輸出一個十六進制整數(shù)FFFF,將其轉換為十進制就是65535,故本題應該選擇B。
51.C解析:本題的A和B犯了一個同樣的錯誤,即指針變量p定義后并沒有指向具體的變量,因此不能進行賦值操作。另外,在選項D中,s是int指針變量,p是char型指針變量,所指向的內存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
52.D解析:數(shù)據(jù)庫表中字段轉化為屬性,把記錄的類型轉化為關系模式。
53.A解析:函數(shù)f1(x,y)的功能返回x,y中較大的一個,而函數(shù)f2(x,y)的功能是返回x,y中較小的一個,所以f1(a,b)=4,f1(c,d)=3,f2(c,d)=2,故e=f2(4,5),f=(3,2)=3,g=4+3+5+2-4-3=7。
54.A
55.A解析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][0]語句實際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2;*p輸出的是指針所指向的數(shù)組值,此時p所指向的是aa[O][0],輸出2,而i=1時執(zhí)行了++p操作使指針向后移動指向了aa[0][1],所以在輸出*p時應為3。
56.D解析:對二叉樹的前序遍歷是指先訪問根結點,然后訪問左于樹,最后訪問右子樹,并且在訪問左、右子樹時,先訪問根結點,再依次訪問其左、右于樹。
57.B解析:在選項B)中,因為數(shù)組的第一維的數(shù)目不明確,所以理解會有歧義,可以理解為1行3列,或者2行3列等。所以選項B)錯誤。注意:數(shù)組中元素的引用。
58.C解析:a=p1==&m;等價于a=(P1==&m);將p1是否等于m的地址的邏輯值(0)賦給變量a;在b=(*p1)/(*p2)+7;語句中,(*P1)/(*p2)=0,因此將表達式的值7賦給變量b。
59.BC語言中二維數(shù)組是按行存放的,即在內存中先順序存放第一行的元素,再存放第二行的元素。此題二維數(shù)組str[][10]第1行的前5個元素為'C','h','i','n','a',第6個元素為'\\0',后4個元素為空字符。緊接著內存單元存放數(shù)組第2行的元素,即從str[1][0]到str[1][9]分別為'B','e','i','j','i','n','g',第8個元素為'\\0',后兩個元素為空字符。執(zhí)行*p=str[0]后,指針p就指向了二維數(shù)組str的首地址,p+10指向從首地址依次向后的第11個存儲單元即字符,B,的地址,所以輸出Beijing,故答案為B。
60.C解析:位運算符“|”的作用是按位或,即兩個二進制數(shù)的相應位中只要一個為1,該位的結果值為1。最后以字符型輸出,98對應的字符“b”。
61.B
62.A本題考查C語言中常量的定義。常量是指程序在運行過程中,其值不能被改變的量。C語言中常見的常量主要有整型常量、實型常量、字符型常量。整型常量包括十進制整數(shù),如456;八進制整數(shù),以0開頭,如0456;十六進制整數(shù),以0x開頭,如0x456。實型變量包括十進制小數(shù)形式,如.456;指數(shù)形式,如456e0,字母e前面必須有數(shù)字,e后面的數(shù)字必須為整數(shù),如456e-4。字符型常量是用單撇號括起來的一個字符。如,’a’,’A’等?!痑’不等于’A’。字符型常量還包括一種轉義字符,以’\\’開頭,表示將’\\’后面的字符轉換成另外的意義。字符串也可以作為常量,用雙撇號括起來,如'abc'。本題A選項中單撇號括起來的不是一個字符,而是三個字符,故不是合法常量。B選項是實型變量的指數(shù)表示形式。C選項是字符串常量,用雙撇號引起來。D選項是字符’\\0’,因為在碰到’\\0’后,字符串結束,因此只讀取到’\\0’,所以D選項是合法常量。
63.C
64.C
65.C十六進制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個數(shù)字和a、b、C、d、e、f這6個字母。
66.B首先二維數(shù)組a中的元素都初始化為0,其次定義了指向數(shù)組的指針ptr,并且依次將ptr指向二維數(shù)組
67.A
68.C數(shù)據(jù)定義語言:負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建;數(shù)據(jù)操縱語言:負責數(shù)據(jù)的操縱,包括查詢及增加、刪除、修改等操作;數(shù)據(jù)控制語言:負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等功能。因此本題答案為C)。
69.Afopeni函數(shù)第二個參數(shù)是w則表示寫的形式,會覆蓋原來數(shù)據(jù),所以選擇A)。
70.A
71.BA選項去掉大括號就正確了;c選項和D選項應在定義時賦初值。因此B選項正確。
72.B本題考查scanf函數(shù),輸入格式符%2d%f表示只接收了字符,其中a輸入的值為2位的十進制整數(shù),即87,然后將緊接著的6賦給b,因為b的值為單精度數(shù)在,即6.000000,故選擇B選項。
73.B在本題中,程序首先定義了一個無返回值的函數(shù)fun,該函數(shù)帶有兩個整型的指針形參變量,在函數(shù)體中,首先定義一個整型指針變量k,然后試圖利用k來交換a和b的結果。但處理語句k=a;很明顯是對地址進行賦值操作。在C語言中,指針變量作為函數(shù)參數(shù)時,可以改變被指向的變量的值,但不能改變指針變量本身的值,即我們可以改變實參指向的變量的值,不能使實參指向其他的變量。因此,本函數(shù)并不能交換形參所指向變量的結果。
在主函數(shù)中,首先定義了兩個整型變量a和b,并分別被初始化為3和6,然后定義兩個指針變量x和y,分別指向a和b,接著調用fun函數(shù),傳遞的實參為指針變量x和y,根據(jù)前面對fun函數(shù)的分析可知,調用該函數(shù)后并不能實現(xiàn)a和b數(shù)組的交換,因此,執(zhí)行輸出語句后,輸出的結果是36。本題正確答案選B。
74.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
75.A\n在二維表中凡能唯一標識元組的最小屬性集稱為關鍵字,關鍵字具有標識元組、建立元組間聯(lián)系等重要作用。此題中,(借書證號,圖書編號)是表借閱的主鍵,借書證號、圖書編號分別是外鍵,借書證號是讀者表的主關鍵字,圖書編號是圖書表的主關鍵字。
\n
76.D本題考查的是switch語句。在switch語句中,表達式的值與某一個(!ase后面的常量表達式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達式
的值都沒有與表達式的值匹配的,就執(zhí)行default后面的語句,各個case和default的出現(xiàn)次序不影響執(zhí)行結果。所以在本題中,當k=5和k=4的時候,case都沒有與其匹配的值,所以執(zhí)行了default語句;當k=3時,執(zhí)行”case3:n+=k;”得n=3,然后執(zhí)行default;當k=2時,執(zhí)行”case2:case3:n+=k;”得n=5,然后執(zhí)行default;當k=1時,執(zhí)行”casel:n+=k;case2:case3:n+=k;”使得n加兩次k,得到n=7。
77.B解析:指針變量中只存放地址(指針),不要將—個整型量(或任何其他非地址類型的數(shù)據(jù))賦給—個指針變量,所以B是不正確的。
78.D
79.C分布式數(shù)據(jù)庫是一種將數(shù)據(jù)分布存儲,但數(shù)據(jù)在邏輯上保持整體性的一種數(shù)據(jù)庫。分布式數(shù)據(jù)庫系統(tǒng)具有以下幾個特點:
(1)數(shù)據(jù)的物理分布性。分布式數(shù)據(jù)庫的數(shù)據(jù)不是存儲在一個場地上,不是集中存儲,而是存儲在計算機網(wǎng)絡上多個場的設備上。
(2)數(shù)據(jù)的邏輯整體性。雖然數(shù)據(jù)分布在各個場地,但邏輯上是一個整體,它們被所有的用戶共享,并由一個DDBMS統(tǒng)一管理。
(3)位置透明性和復制透明性。位置透明性是指用戶不必關心數(shù)據(jù)的邏輯分區(qū),不必關心數(shù)據(jù)物理位置分布的細節(jié);而復制透明性是指用戶不用關心數(shù)據(jù)庫在網(wǎng)絡中各個結點的復制情況,被復制的數(shù)據(jù)的更新都由系統(tǒng)自動完成。
(4)場地自治性。各場地的數(shù)據(jù)由本地DBMS管理,具有自治處理能力,能執(zhí)行局部的應用請求。
(5)數(shù)據(jù)冗余及冗余透明性。與集中式數(shù)據(jù)庫系統(tǒng)追求低冗余度不同,DDBS通過數(shù)據(jù)的適當冗余來提高系統(tǒng)的可靠性、可用性和改善系統(tǒng)性能。但這種冗余對用戶是透明的,即用戶不必知道冗余的存在,冗余副本之間的數(shù)據(jù)一致性問題由系統(tǒng)負責。
(6)事務管理的分布性。數(shù)據(jù)的分布性必然造成事務執(zhí)行和管理的分布性,即一個全局事務的執(zhí)行可分解為在若干場地上子事務(局部事務)的執(zhí)行。事務的原子性、一致性、隔離性、持久性以及事務的恢復也都具有分布性特點。
80.C81.(1)錯誤:proc(int**a,intm)
正確:voidproc(int(*a)[N],intm)
(2)錯誤:aEj][k]=k*J;
正確:a[j][k]=(k+1)*(j+1);
【解析】從主函數(shù)的調用可知,函數(shù)proc()沒有返回值,因此應該定義為void類型。形參a應該是一個整型的指針數(shù)組。因此,“proe(int**a,intm)”應改為“voidproc(int(*a)[N],intm)”。數(shù)組下標從0開始,由事例數(shù)組可知,其元素從l開始遞增,因此“a[j][k]=k*J;”應改為“a[j][k]=(k+1)*(j+1);”。
82.1voidfun(int(*s)[10],intint*n,intmm,intnn)2{3inti,j,k=0;4for(i=0;i<mm;i++)/*將二維數(shù)組s中的數(shù)據(jù)按行的順序依次存放到一維數(shù)組b中*/5for(j=0;j<nn;j++)6b[k++]=s[i][j];7*n=k;/*通過指針返回元素個數(shù)*/8}本題可以用兩個循環(huán)來處理。由于是按行的順序取出,因此第1個for循環(huán)用于控制行下標,第2個循環(huán)用于控制列下標。若改成按列的順序取出,則循環(huán)應改成:for(i=0;i<mm;jp)b[k++]=s[j][i];要注意s[j][i]的下標,不能用s[i][j]。若按行取出則列下標變化較快,若按列取出則行下標變化較快,即循環(huán)嵌套時,越在內層的循環(huán),其循環(huán)變量變化就越快。<mm;jp)</y&&!z||1>2021-2022年安徽省馬鞍山市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.sizeof(float)是()。A.一個雙精度型表達式B.一個整型表達式C.一種函數(shù)調用D.一個不合法的表達式
2.鏈棧與順序棧相比,比較明顯的優(yōu)點是()。
A.插入操作更加方便B.刪除操作更加方便C.不會出現(xiàn)下溢的情況D.不會出現(xiàn)上溢的情況
3.
4.軟件開發(fā)模型包括Ⅰ.瀑布模型Ⅱ.扇形模型Ⅲ.快速原型法模型Ⅳ.螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
5.在長度為n的順序存儲的線性表中,刪除第i個元素(1≤i≤n)時,需要從前向后依次前移____個元素。
A.n-iB.n-i+1C.n-i-1D.i
6.以下正確的字符串常量是()。A.“\\\”B.‘a(chǎn)bc’C.OlympicGamesD.“”
7.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是()
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch(int(x)){case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case1+2:printf("**\n");}
D.switch(a+B){case1:printf("*\n");casec:printf("**\n");}
8.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
9.以下敘述中正確的是()。
A.宏替換不占用程序的運行時間
B.預處理命令行必須位于源文件的開頭
C.在源文件的一行上可以有多條預處理命令
D.宏名必須用大寫字母表示
10.在位運算中,操作數(shù)左移一位,其結果相當于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
11.若有說明:inta[][3]={1,2,3,4,5,6,7};則a數(shù)組第一維的大小是
A.2B.3C.4D.無確定值
12.求2n個數(shù)中的最大值和最小值,最少的比較次數(shù)是()
A.4n/3B.2n-2C.3n-2D.3n/2
13.考慮一個特殊的hash函數(shù)h,能將任一字符串hash成一個整數(shù)k,其概率P(k)=2^(-k),k=1,2,…,∞。對一個未知大小的字符串集合S中的每一個元素取hash值所組成的集合為h(S)。若h(S)中最大的元素Maxh(S)=10,那么S的大小的期望是()
A.1024B.512C.5D.10
14.
15.算法分析的兩個主要方面是()。
A.空間復雜性和時間復雜性B.正確性和簡明性C.可讀性和文檔性D.數(shù)據(jù)復雜性和程序復雜性
16.鏈表不具有的特點是A.A.不必事先估計存儲空間
B.可隨機訪問任一元素
C.插入和刪除不需要移動元素
D.所需空間與線性表長度成正比
17.
18.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序運行后的輸出結果是()。
A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,
19.
20.以下程序是用來計算兩個非負數(shù)之間的最大公約數(shù):我們假設x,y中最大的那個數(shù)的長度為n,基本運算時間復雜度為O(1),那么該程序的時間復雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)
二、2.填空題(20題)21.以下程序的輸出結果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
22.以下程序的功能是將字符串s中所有小寫字母'a'刪去,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[]="absuWWUDJFKFLaaakdK";
inti,j;
for(i=j=0;s[i]!='\0';i++)
if()
s[j++]=s[i];
s[j]='\0';
printf("%s",s);
}
23.下列程序的運行結果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
24.下列程序的輸出結果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
25.下列程序的輸出結果是______。
main()
{inta+,b=2,C=3,t=0;
ifa<B){t=a;a=b;b=t;}
ifa<C){t=a;a=c;c=t;}
printf("%d,%d,%dln",a,b,C);
}
26.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
27.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
28.面向對象的程序設計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個______。
29.數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于【】。
30.已知head指向一個帶頭結點的單向鏈表,鏈表中每個結點包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域為整型。以下函數(shù)求出鏈表中所有鏈結點數(shù)據(jù)域的和值,作為函數(shù)值返回。請在橫線處填入正確內容。
structlink
{intdata;structlink*next;}
main()
{structlink*head;
......
sum(head);
......
}
sum(【】);
{structlink*p;ints=0;
p=head->next;
while(p){s+=p->data;p=p->next;}
return(s);}
31.若有如下程序:
voidsub()
{staticintx=8;
x/=2;printf("%d",x);
}
main()
{intm;
for(m=0;m<2;m++)sub();}
則程序運行后的輸出結果是【】.
32.若對長度為90的線性表進行分塊查找,其中每塊子表長度為9。如果在索引表查找過程中進行順序查找,那么平均查找長度為【】。
33.下列程序用來將從鍵盤上輸入的2個字符串進行比較,然后輸出2個字符串中第1個不相同字符的ASCII碼之差。例如,輸入的2個字符串分別為abcdef和abceef,則輸出為-1。
#include
main()
{charstr[100],str2[100],c;
inti,s;
printf("\ninputstring1:\n");gest(str1);
printf("\ninputstring2:\n");gest(str2);
i=0;
while((strl[i]==str2[i]&&(strl[i]!=【】))
i++;
s=【】;
printf(.%d\n",s);
34.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指向內存空間中,形成一個新的字符串s。請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
35.下列程序的運行結果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",--i);
}
36.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
則程序運行后的輸出結果是【】。
37.有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是【】。
structnode
{chardata;
structnode*next;}a,b
38.數(shù)據(jù)結構包括數(shù)據(jù)的邏輯結構、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
39.由計算機、操作系統(tǒng)、DBMS、數(shù)據(jù)庫、應用程序及用戶組成的一個整體叫做【】。
40.下列程序的輸出結果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.一個算法的空間復雜度大,則其時間復雜度也必定大
B.一個算法的空間復雜度大,則其時間復雜度必定小
C.一個算法的時間復雜度大,則其空間復雜度必定小
D.上述三種說法都不對
42.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動給a賦初值0B.這時a中的值是和隨機數(shù)C.系統(tǒng)將自動給a賦初值-1D.這a中無任何值
43.模塊本身的內聚是模塊獨立性的重要性度量因素之一。在7類內聚中,具有最強內聚的—類是______。
A.順序性內聚B.過程性內聚C.邏輯性內聚D.功能性內聚
44.軟件調試的目的是______。
A.發(fā)現(xiàn)錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能
45.以下程序的輸出結果是main(){intb[3][3]={0,1,2,O,l,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b[j][j]];printf("%d\n",t);}
A.3B.4C.1D.9
46.下面程序段的輸出結果是()。#include<stdio.h>main(){floatx=1.236547;printf("%f\n",(int)(x*1000+0.5)/(float)1000);}
A.1.237000B.輸出格式說明與輸出項不匹配,輸出無定值C.1.236000D.1.24
47.設有以下定義:typedefunion{longi;intk[5];charc,}DATE,structdate{intcat;DATEcow;doubledog;}too;DATEmax;則下列語句的執(zhí)行結果是()printf("%d",stzeof(structdate)+sizeof(max));
A.25B.30C.18D.8
48.在一棵二叉樹上第5層的結點數(shù)最多是______。
A.8B.16C.32D.15
49.若有以下的說明,對初值中整數(shù)2的正確引用方式是
staticstruct
{charch;
inti;
doublex;
}a[2][3]={{{′a′,1,3,45},{′b′,2,7,98},{′c′,31,93}}};
A.a[0][1].chB.a[0][1].iC.a[0][0].iD.a[0][2].i
50.有以下程序,其中%u表示按無符號整數(shù)輸出:
main
{
unsignedintx=0xFFFF;/*x的初值為十六進制數(shù)*/
printf("%u\n",x);
}
程序運行后的輸出結果是()。
A.-1B.65535C.32767D.0xFFFF
51.請選出正確的程序段______。
A.int*p
B.int*s,k;scanf(""%d"",p);*s=100;………
C.int*s,k;
D.int*s,k;char*p,c;char*p,e;s=&k;p=&c;p=&c;*p='a';s=p;……*s=1;……
52.在關系數(shù)據(jù)庫模型中,通??梢园?)稱為屬性,其值稱為屬性值。
A.記錄B.基本表C.模式D.字段
53.有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}程序運行后的輸出結果是
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
54.以下程序運行后,輸出結果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.6385B.22C.33D.693825
55.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的輸出是______。
A.23B.26C.33D.36
56.有下列二叉樹,對此二叉樹前序遍歷的結果為()。
A.XZCYABB.XYZABCC.XYABCZD.XYAZBC
57.下列二維數(shù)組初始化語句中,正確且與語句floata[][3]={0,3,8,0,9};等價的是
A.floata[2][]={{0,3,8},{0,9}};
B.floata[][3]={0,3,8,0,9,0};
C.floata[][3]={{0,3},{8,0},{9,0}};
D.floata[2][]={{0,3,8},{0,9,0}};
58.執(zhí)行以下程序后,a,b的值分別是()。#include<stdio.h>main(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}
A.-1,5B.1,6C.0,7D.4,10
59.有以下程序:#include<stdio.h>main(){eharstr[][10]={"China","Beijing"},*p=str[o];printf("%s\n",p+10);}程序運行后的輸出結果是()。
A.ChinaB.BeijingC.ngD.ing
60.已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結果是______。main(){unsignedinta=32,b=66;printf("%c\n",b|b);}
A.66B.98C.bD.B
四、選擇題(20題)61.
62.以下選項中不能作為C語言合法常量的是
A.’Fab’B.0.7e+9C."\b"D.’\01211’
63.
64.
65.下列選項中不合法的十六進制數(shù)是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
66.有以下程序:
若運行時輸入:123<回車>,則輸出結果是()。
A.編譯錯誤2000B.102000C.122030D.10
67.
68.負責數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
69.有以下程序
70.
71.以下選項中正確的語句組是()。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.charS[10];S=”BOOK!”;
D.charS[];S=”BOOK!”;
72.設有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時,若從鍵盤輸入876543.0<回車>,a和b的值分別是()。A.A.876和543.000000B.87和6.000000
C.87和6543.000000
D.76和543.000000
73.有如下程序段
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
程序運行后輸出的結果是A.A.63
B.36
C.編譯出錯
D.00
74.設x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
75.設有圖書(圖書編號,書名,第一作者,出版社.、讀者(借書證號,姓名,單位,職稱.和借閱(借書證號,圖書編號,借書日期,還書日期.三張表,則表借閱的關鍵字(鍵或碼.為()。
A.借書證號,圖書編號
B.圖書編號,借書日期
C.借書日期,還書日期
D.借書證號,借書日期
76.有以下程序:
程序運行后的輸出結果是()。
A.0B.4C.6D.7
77.設p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
78.已有定義intx=3,y=4,z=5;則表達式“!(x+y)+z-1y+z/2”的值是________。
A.6B.0C.2D.1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新解讀《CB-T 33-1999索具套環(huán)》新解讀
- 生物●海南卷丨2022年海南省普通高中學業(yè)水平選擇性考試高考生物真題試卷及答案
- Brand KPIs for health insurance:IKK in Germany-英文培訓課件2025.4
- 強化性間歇訓練對高中田徑專項隊800m跑運動員身體機能訓練效果的研究
- 重慶市2022-2023學年高二下學期期末聯(lián)合診斷檢測化學試題(含答案)
- 汽車傳感器與檢測技術電子教案:廢氣再循環(huán)系統(tǒng)電位計式EGR閥傳感器
- 基礎建成后續(xù)管理制度
- 財務信息管理人才培養(yǎng)方案
- 醫(yī)院質量病歷管理制度
- 培訓人員日常管理制度
- 自動化控制技術試題及答案
- 網(wǎng)吧轉讓合同協(xié)議書范本
- 2025-2030中國船用滑動軸承座行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 人員結構分析總結模版
- 2025年下半年四川煙草商業(yè)系統(tǒng)招聘166人易考易錯模擬試題(共500題)試卷后附參考答案
- 反詐防騙安全教育主題班會
- 【機床輸出軸零件的加工工藝及夾具設計9500字(論文)】
- 電廠安規(guī)試題及答案
- 建筑節(jié)能材料試題及答案
- 《思想道德與法治》課件-做改革創(chuàng)新生力軍
- 公共財政概論試題及答案
評論
0/150
提交評論