版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年湖北省隨州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個(gè)二維數(shù)組的定義語句為“inta[3][4]={{3,4},{2,8,6}};”,則元素a[1][2]的值為()。
A.2B.4C.6D.8
2.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運(yùn)行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
3.當(dāng)很頻繁的對序列中部進(jìn)行插入和刪除操作時(shí),應(yīng)該選擇使用的容器是()
A.vectorB.listC.dequeD.stack
4.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
5.對于一個(gè)正常運(yùn)行的C程序,下列敘述中正確的是()。A.A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
6.下列關(guān)于棧的敘述中,正確的是()。
A.棧底元素一定是最后入棧的元素B.棧操作遵循先進(jìn)后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對
7.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.1C.2D.3
8.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是()。
A.循環(huán)隊(duì)列B.棧C.順序表D.循環(huán)鏈表
9.若要求在if后一對圓括號中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()
A.a<>0B.!aC.a=0D.a
10.程序中若有如下說明和定義語句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下選項(xiàng)中對函數(shù)Fun的正確調(diào)用語句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);
11.若程序中有宏定義行“#defineN100”,則下列敘述中正確的是()。
A.宏定義行中定義了標(biāo)識符N的值為整數(shù)100
B.在編譯程序?qū)語言源程序進(jìn)行預(yù)處理時(shí)用100替換標(biāo)識符N
C.上述宏定義行實(shí)現(xiàn)將100賦給標(biāo)識符N
D.在運(yùn)行時(shí)用100替換標(biāo)識符N
12.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的運(yùn)行結(jié)果是()。
A.1B.2C.3D.4
13.
14.下列關(guān)于return語句的敘述中正確的是()。
A.—個(gè)自定義函數(shù)中必須有一條return語句
B.—個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處
15.以下關(guān)于鏈?zhǔn)酱鎯Y(jié)構(gòu)說法錯(cuò)誤的是()
A.比順序存儲結(jié)構(gòu)的存儲密度小
B.每個(gè)節(jié)點(diǎn)是由數(shù)據(jù)域和指針域組成
C.查找結(jié)點(diǎn)時(shí)鏈?zhǔn)酱鎯Ρ软樞虼鎯?/p>
D.邏輯上不相鄰的節(jié)點(diǎn)物理上可能相鄰
16.下列排序算法中,()算法可能會出現(xiàn)下面情況:初始數(shù)據(jù)有序時(shí),花費(fèi)的時(shí)間反而最多。
A.堆排序B.冒泡排序C.快速排序D.希爾排序
17.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
18.計(jì)算機(jī)系統(tǒng)的組成是______。
A.主機(jī)、外設(shè)B.運(yùn)算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲器
19.在一個(gè)C程序中
A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前
B.main函數(shù)可以在任何地方出現(xiàn)
C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后
D.main函數(shù)必須出現(xiàn)在固定位置
20.以下能正確定義一維數(shù)組的選項(xiàng)是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
二、2.填空題(20題)21.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
22.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
23.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
24.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
{inta=1,b=2,c=3;
if(c=a)printf("%d\n",c);
elseprintf("%d\n",b);}
25.在運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是【】。
26.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
27.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
28.某二叉樹中度為2的結(jié)點(diǎn)有n個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
29.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
30.若fp已正確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請?zhí)羁眨员銥椤白x”而打開此文件:
fp=fopen(【】);。
31.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:a++;break;
case1:b++;break;
case2:a++;b++;break;
}
printf("%d%d\n",a,B);
}
32.下列程序的輸出結(jié)果是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);
}
33.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{inta=1,b=3,c=5;
if(c=a+b)printf("yes\n");
elseprintf("no\n");
}
34.己定義charch='$';inti=l,j;,執(zhí)行j=!ch&&ii++以后,i的值為【】。
35.需求分析的最終結(jié)果是產(chǎn)生【】。
36.下面程序的功能是:計(jì)算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
37.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]\'\0';
}
38.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
39.以下程序的輸出結(jié)果為【】。
main()
{intk=1;
white(k<=15)
if(++k%3!=2)continue;
elseprintf("%d",k);
printf("\n");
}
40.以下程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d\11",s);}
三、1.選擇題(20題)41.在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。
A.(!E==0)B.(E>0‖E<0)C.(E==0)D.(E!=0)
42.循環(huán)鏈表的主要優(yōu)點(diǎn)是______。
A.不再需要頭指針了
B.已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易找到它的直接前驅(qū)
C.在進(jìn)行插入、刪除運(yùn)算時(shí),能更好地保證鏈表不斷開
D.從表中任一結(jié)點(diǎn)出發(fā)都能掃描到整個(gè)鏈表
43.若變量已正確定義,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其輸出結(jié)果是
A.程序段有語法錯(cuò)B.3,5,3C.3,5,5D.3,5,7
44.軟件生命周期中花費(fèi)費(fèi)用最多的階段是
A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測試D.軟件維護(hù)
45.若有下列定義,則對a數(shù)組元素地址的正確引用是()。
inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
46.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
47.關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)能實(shí)現(xiàn)的專門的關(guān)系運(yùn)算包括()。A.A.排序、索引、統(tǒng)計(jì)B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
48.以下敘述中錯(cuò)誤的是
A.C語言中對二進(jìn)制文件的防問速度比文本文件快
B.C語言中,隨機(jī)文件以二進(jìn)制代碼形式存儲數(shù)據(jù)
C.語句FILEfp;定義了一個(gè)名為fp的文件指針
D.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
49.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i)}
A.266B.11C.265D.138
50.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
51.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運(yùn)行后的輸出結(jié)果是()。
A.1*1=11*2=21*3=32*1=22*2=43*1=3
B.1*1=11*2=21*3=32*2=42*3=63*3=9
C.1*1=11*2=22*2=41*3=32*3=63*3=9
D.1*1=12*1=22*2=43*1=33*2=63*3=9
52.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是()。
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<-10||!(y-x)>10
D.(x-y)*(x-y)<100
53.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運(yùn)行后的輸出結(jié)果是()。
A.-1B.65535C.32767D.-32768
54.若變量已正確定義并賦值,下面符合C語言的表達(dá)式是_____。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
55.已知inta=1,b=3則a^b的值為
A.3B.1C.2D.4
56.下面程序的輸出結(jié)果是()。#definePI3.1415#defineARE(X)PI*x*xmain(){intr=2;printf("%.2f",ARE(r+1));}
A.28.26B.28.26C.9.28D.9.28
57.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
58.有以下程序
#include<string.h>
main()
{charp[20]={′a′,′b′,′c′,′d′},q[]="abc",r[]="abcde";
strcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序運(yùn)行后的輸出結(jié)果是
A.9B.6C.11D.7
59.以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲類說明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
60.若有如下程序段:main(){intn=0;while(printf("*")){n++;if(n<3)break;}}則下列描述正確的是()
A.其中循環(huán)控制表達(dá)式與0等價(jià)B.其中循環(huán)控制表達(dá)式與'0'等價(jià)C.其中循環(huán)控制表達(dá)式是不合法的D.以上說法都不對
四、選擇題(20題)61.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。
A.枚舉型B.共用型C.結(jié)構(gòu)型D.數(shù)組型
62.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
63.若執(zhí)行下面的程序時(shí),從鍵盤輸入6和2,則輸出結(jié)果是()。
A.5B.3C.2D.0
64.
有如下程序:
main
{inta=2,b=-1.c=2;
if(a<0)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
該程序的輸出結(jié)果是()。
A.0B.1C.2D.3
65.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A.32B.31C.16D.15
66.若有定義floatX=1.5;inta=1,b=3,C=2;,則正確的switch語句是()。
A.
B.
C.
D.
67.
68.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表
69.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4B.10C.14D.6
70.已知函數(shù)fread的調(diào)用形式為“fread(buffer,size,count,fp);”,其中buffer代表的是()。
A.存放讀入數(shù)據(jù)項(xiàng)的存儲區(qū)
B.一個(gè)指向所讀文件的文件指針
C.一個(gè)指針,是指向輸入數(shù)據(jù)存放在內(nèi)存中的起始地址
D.一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)
71.
72.(14)結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()
A.程序的規(guī)模
B.程序的易讀性
C.程序的執(zhí)行效率
D.程序的可移植性
73.
74.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是A.循環(huán)隊(duì)列B.帶鏈隊(duì)列C.二叉樹D.帶鏈棧
75.面下程序段的運(yùn)行結(jié)果是
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A.67B.0C.字符’C’的地址D.字符’C’
76.有以下程序程序的運(yùn)行結(jié)果是()。
A.CDEFB.ABEFC.ABCDD.CDAB
77.
78.
下列程序中函數(shù)sort()的功能是對數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。
#include<stdio.h>
voidsort(inta[],intll)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=j+1+1;j<n;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;
}
}
main()
{inta[10]一{1,2,3,4,5,6,7,8,9,10},i;
sort(&a[1],7);
for(i=0;i<10;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
79.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.5,11B.5,5C.11,11D.11,5
80.在面向?qū)ο蠓椒ㄖ?,一個(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fIm和funx的功能是:用二分法求方程的一個(gè)根,并要求絕對誤差不超過0.001。
.例如,若給m輸入一100,n輸入90,則函數(shù)求得的二個(gè)根為2.000。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是求斐波那契數(shù)列中大于t的最小的數(shù),結(jié)果由函數(shù)返回。斐波那契數(shù)列F(n)的定義為F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)例如,當(dāng)t=1000時(shí),函數(shù)值為1597。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<math.h>#include<stdio.h>intfun(intt){}main(){intn;n=1000;printf(“n=%d,f=%d\n”,n,fun(n));}
參考答案
1.C
2.Asizeof是運(yùn)算符,計(jì)算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標(biāo)識?!皊izeof(a)”是求數(shù)組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結(jié)束,“strlen(a)”=4?!皊trier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項(xiàng)。
3.B
4.A軟件危機(jī)主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進(jìn)度無法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。
5.A解析:一個(gè)C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。
6.B棧是先進(jìn)后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。
7.B第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內(nèi)循環(huán),j的值為3,不滿足條件,跳出內(nèi)循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內(nèi)循環(huán)條件,跳出內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時(shí)進(jìn)入內(nèi)循環(huán)判斷條件時(shí),條件成立,執(zhí)行m=m%j,m的值為1,跳出內(nèi)循環(huán),跳出外循環(huán)打印m的值。
8.B解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲結(jié)構(gòu),隊(duì)列是以先進(jìn)先出為原則組織數(shù)據(jù)的一種特殊線性表,選項(xiàng)A錯(cuò)誤;棧是以先進(jìn)后出為原則組織數(shù)據(jù)的一種特殊線性表,選項(xiàng)B正確;順序表是線性表的順序存儲結(jié)構(gòu),選項(xiàng)C錯(cuò)誤;循環(huán)鏈表是一般線性表的一種鏈?zhǔn)酱鎯Y(jié)構(gòu),選項(xiàng)D錯(cuò)誤。
9.D
10.A解析:題中將函數(shù)fun的入口地址賦給了指針變量f1,這時(shí)f1和fun都指向函數(shù)的開頭,調(diào)用*f1就是調(diào)用函數(shù)fun。
11.B宏定義在編譯程序時(shí)做了一個(gè)簡單的替換,所以B選項(xiàng)正確。故本題答案為B選項(xiàng)。
12.C該程序中“int*p1=&a,*p2=&b,*p=&c;”定義了3個(gè)指針變量,并賦值。指針變量p1指向a,p2指向b,p指向c。執(zhí)行“*p=*p1*(*p2);”語句,給p所指的存儲單元c賦值。p1所指的存儲單元的值,與p2所指的存儲單元b的值相乘,也就是c=a*b,等價(jià)于c=1*3=3。故本題答案為C選項(xiàng)。
13.A
14.B在函數(shù)中允許有多個(gè)return語句,但每次調(diào)用只能有一個(gè)return語句被執(zhí)行,因此只能返回一個(gè)函數(shù)值,A選項(xiàng)描述錯(cuò)誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,C選項(xiàng)描述錯(cuò)誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,D選項(xiàng)描述錯(cuò)誤。故本題答案為B選項(xiàng)。
15.C
16.C
17.B本題考查for循環(huán)的使用。對于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
18.C
19.B解析:一個(gè)完整的C語言程序有且僅有一個(gè)主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結(jié)束,其他函數(shù)都是在執(zhí)行main()函數(shù)時(shí),通過函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項(xiàng)A、選項(xiàng)C和選項(xiàng)D均不正確。所以,B選項(xiàng)為所選。
20.B解析:選項(xiàng)A)定義的是長度為5的數(shù)組元素,但初值有6個(gè)元素,所以錯(cuò)誤;選項(xiàng)C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項(xiàng)D)的類型說明符錯(cuò)誤,應(yīng)改為char;選項(xiàng)B)中的0,1,2,3,4,5分別表示對應(yīng)字符的ASCII碼,所以正確。
21.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
22.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
23.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
24.11解析:該程序要注意的是if語句的判斷條件“c=a”是賦值,而不是“c==a”。由于a=1,故條件c=a使c的值為1(真),所以輸出c的值1。
25.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運(yùn)算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運(yùn)算統(tǒng)一起來。循環(huán)鏈表具有兩個(gè)特點(diǎn):①在循環(huán)鏈表中增加了一個(gè)表頭結(jié)點(diǎn),其數(shù)據(jù)域?yàn)槿我饣蚋鶕?jù)需要來設(shè)置,指針域指向線性表的第一個(gè)元素的結(jié)點(diǎn)。循環(huán)鏈表的頭指針指向表頭結(jié)點(diǎn)。②循環(huán)鏈表中最后一個(gè)結(jié)點(diǎn)的指針不是空,而是指向表頭結(jié)點(diǎn)。
26.55解析:分析程序,當(dāng)a=3;b=4;c=5時(shí),判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。
27.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
28.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個(gè)。
29.數(shù)據(jù)存儲數(shù)據(jù)存儲
30.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數(shù)為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時(shí),將打開這個(gè)文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件。'r+'打開一個(gè)已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個(gè)新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當(dāng)文件不存在時(shí),創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'。
31.2121解析:本題考核的知識點(diǎn)是switch語句的嵌套應(yīng)用。外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個(gè)switch語句后面括號里的y的值為0,所以從該switch語句里的case():開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a(bǔ)、b代入,得到16.0=(9/2+2*x/1.1+1/2。因?yàn)閍=9,a是整型,所以9/2的值在沒有進(jìn)行類型轉(zhuǎn)換時(shí),等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
33.yesyes解析:if語句的條件語句為c=a+b=1+3=4,即條件為真,執(zhí)行語句printf('yes\\n');,輸出結(jié)果為yes。
34.11解析:本題中的ch是一個(gè)字符變量,其初始值為'$'(非0值即為真),所以!ch的結(jié)果為假,此時(shí)&&右邊的i++被“短路”,即不會被計(jì)算。由此可見,i的值不會改變,故本題應(yīng)該填1。
35.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗(yàn)證性、一致性、可理解性、可修改性和可追蹤性等。
36.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達(dá)式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時(shí)c去掉多加的11,即為1~10之間的奇數(shù)之和。
37.length++i<lengthlength++\r\ni<length解析:第一個(gè)循環(huán)極有可能是計(jì)算串的長度,在i<=length時(shí)字符才被刪除,被刪除的是第i個(gè)到第i+n或最后一個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。
38.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
39.25811142581114解析:本題通過while和if語句,求得出1~15之間與3取模為2的整數(shù),并依次輸出。
40.1515解析:在函數(shù)fun(intx)中定義了局部靜態(tài)整形變量t,并初始化為0。這個(gè)函數(shù)的返回值為t+x。所以在主函數(shù)的for循環(huán)中,5次連續(xù)調(diào)用fun(i),實(shí)現(xiàn)了從1到5連續(xù)數(shù)字的相加運(yùn)算。因而最后結(jié)果等于15。
41.B解析:在while(E)中,表達(dá)式E可以是C語言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項(xiàng)B)中表達(dá)式E>0‖E<0是一個(gè)邏輯表達(dá)式。
42.D
43.B解析:兩個(gè)if語句的判斷條件都不滿足,程序只執(zhí)行了c=a這條語句,所以變量c的值等于3,變量b的值沒能變化,程序輸出的結(jié)果為3,5,3。所以正確答案為B)。
44.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長,花費(fèi)代價(jià)最大的一個(gè)階段,軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價(jià)。
45.D解析:本題考查如何引用數(shù)組元素的地址。
選項(xiàng)A)中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2];a[3]、a[4],所以引用錯(cuò)誤;選項(xiàng)B)中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C)中,這種引用方式錯(cuò)誤;選項(xiàng)D)中,&a[0]引用的是數(shù)組的首地址。
46.B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時(shí)的輸出結(jié)果來決定哪一項(xiàng)是正確的。第一次進(jìn)入循環(huán)時(shí),n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運(yùn)算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項(xiàng)A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時(shí),n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時(shí),輸出為6,由此可以排除選項(xiàng)C)。
47.B解析:關(guān)系數(shù)據(jù)庫建立在關(guān)系數(shù)據(jù)模型的基礎(chǔ)上,具有嚴(yán)格的數(shù)學(xué)理論基礎(chǔ)。關(guān)系數(shù)據(jù)庫對數(shù)據(jù)的操作除了包括集合代數(shù)的并、差等運(yùn)算之外,更定義了一組專門的關(guān)系運(yùn)算:連接、選擇和投影。關(guān)系運(yùn)算的特點(diǎn)是運(yùn)算的對象都是表。
48.C解析:本題考查了C語言中文件的一些基本概念。定義文件類型指針變量的一般形式為:
FILE*指針變量名;
因此選項(xiàng)C是錯(cuò)誤的,應(yīng)該選擇C。
49.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個(gè)存儲單元,且此存儲單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
50.C解析:該題稍微難一點(diǎn)。主要要搞清楚以下幾點(diǎn):①定義了一個(gè)指針數(shù)組char.p[2]后,程序中第一個(gè)循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個(gè)指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應(yīng)關(guān)系,以后對二維數(shù)組ch的某個(gè)元素的引用就有兩種等價(jià)的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個(gè)循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個(gè)位上添一個(gè)0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個(gè)數(shù)字加到s的個(gè)位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個(gè)隔一個(gè)地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個(gè)隔一個(gè)地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個(gè)隔一個(gè)地取出字符,分別是‘8’和‘5’,同時(shí)經(jīng)過轉(zhuǎn)換和相加運(yùn)算后,結(jié)果s中的值應(yīng)該是6385,所以,正確答案是C)。
51.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束.對于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個(gè)乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。
52.C解析:選項(xiàng)A用了一個(gè)絕對值函數(shù)abs(),故選項(xiàng)A正確;選項(xiàng)B中用了一個(gè)“&&”邏輯與,故選項(xiàng)B正確;選項(xiàng)C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值,故選項(xiàng)C不正確;選項(xiàng)D為本題中數(shù)學(xué)關(guān)系式的一個(gè)等價(jià)命題,故選項(xiàng)D正確。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
53.B當(dāng)運(yùn)算對象為不同的類型時(shí),數(shù)據(jù)的轉(zhuǎn)換方向?yàn)閕nt→unsigned→long→double。本題程序中的變量b為int型,先要轉(zhuǎn)換為unsigned型,int型變量的數(shù)值范圍為-32768~32767,最高位為符號位,而unsigned所表示的數(shù)的范圍為0~65535,它的最高位為數(shù)值位。由于內(nèi)存中是以補(bǔ)碼形式存儲數(shù)據(jù)的,所以,整型的“-1”在內(nèi)存中表示為16個(gè)1,最高位的“1”表示符號負(fù),將它轉(zhuǎn)換為unsigned類型,即將原符號位表示符號的“1”看成數(shù)值,就可得到16個(gè)數(shù)值位1,即65535。
54.B解析:選項(xiàng)A和C一望而知其錯(cuò);對于表達(dá)式a=a+7=c+b(答案D),是先執(zhí)行賦值表達(dá)式a+7=c+b,再把這個(gè)表達(dá)式的值賦給a,顯然,表達(dá)式a+7=c+b非法,因?yàn)橘x值表達(dá)式的左側(cè)不能為常量或表達(dá)式。
55.C解析:^是按位異或運(yùn)算,如果對應(yīng)位不同則結(jié)果為1,相同則為0。
56.C解析:帶參數(shù)的宏展開是在編譯時(shí)進(jìn)行的,是一種純粹文字性的替換過程。本題定義了一個(gè)帶參數(shù)宏#defineARE(x)PI*x*x,在printf()函數(shù)中使用了這個(gè)宏,展開過程為:ARE(r+1)=>PI*r+1*r+1=>3.1415*r+1*r+1,其結(jié)果為3.1415*2+1*2+1=6.283+2+1=9.283,由于輸出格式限定為兩位小數(shù),故輸出結(jié)果為9.28,應(yīng)該選擇C。
57.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個(gè)結(jié)點(diǎn)的集合,對應(yīng)任意一棵非空樹,它具有以下幾點(diǎn)重要的性質(zhì)。
①有且僅有一個(gè)特定的稱為根的結(jié)點(diǎn)。
②當(dāng)n>1時(shí),其余結(jié)點(diǎn)可分為m(m>0)個(gè)互不相交的有限集T1,T2,…,TM,其中每一個(gè)集合本身又是一棵樹,稱為子樹。
因此,本題的正確答案有且只有一個(gè)。
58.B解析:strcpy()函數(shù)的功能是將字符串q復(fù)制到從p[3]位置開始的存儲單元,同時(shí)復(fù)制字符串結(jié)束標(biāo)志'\\0'到p[6]中。函數(shù)strlen()返回的是字符串中不包括'\\0'在內(nèi)的實(shí)際長度,故本題答案為B)
59.B解析:extern、register、static、auto分別是定義外部變量、寄存器變量、靜態(tài)變量、自動變量,其中,自動變量和寄存器變量屬于動態(tài)存儲,調(diào)用時(shí)臨時(shí)分配單元而靜態(tài)變量和外部變量屬于靜態(tài)存儲,在整個(gè)程序運(yùn)行時(shí)都存在。
60.B
61.A本題考查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)游戲開發(fā)與運(yùn)營合作協(xié)議
- 移動互聯(lián)網(wǎng)用戶生命周期管理服務(wù)合同
- 物聯(lián)網(wǎng)設(shè)備系統(tǒng)集成與調(diào)試合同
- 游泳館預(yù)約管理系統(tǒng)開發(fā)合同
- 智能家電行業(yè)智能生活解決方案推廣
- 智慧物流提升配送效率方案
- 旅游目的地營銷推廣及客戶體驗(yàn)提升計(jì)劃
- 教育培訓(xùn)行業(yè)在線課程開發(fā)及推廣計(jì)劃
- 土壤管理與作物生長監(jiān)測技術(shù)部署
- 農(nóng)業(yè)行業(yè)農(nóng)產(chǎn)品溯源與銷售平臺開發(fā)方案
- 國家開放大學(xué)??啤稇?yīng)用寫作(漢語)》一平臺在線形考(形考任務(wù)一至七)試題及答案
- 2024年安徽合肥軌道交通公司招聘筆試參考題庫含答案解析
- 個(gè)人獨(dú)資企業(yè)有限公司章程(模板)
- 小學(xué)生安全用電知識(課堂PPT)
- 裝飾自己的名字說課稿
- 人教版(PEP)四年級上冊英語unit 1 My classroom圖文完美版(課堂PPT)
- 幼小銜接中存在的問題及對策
- 中級漢語期末考試測試題(共5頁)
- 《國家電網(wǎng)公司安全生產(chǎn)事故隱患排查治理管理辦法》(國家電網(wǎng)安監(jiān)[
- 水保監(jiān)理報(bào)告范文
- xx售樓部鋼結(jié)構(gòu)及玻璃幕墻工程拆除施工方案
評論
0/150
提交評論