2022-2023年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2022-2023年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2022-2023年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2022-2023年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2022-2023年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2022-2023年甘肅省嘉峪關(guān)市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.若需要利用形參直接訪問實參,則應(yīng)把形參變量說明為____參數(shù)。

A.指針B.引用C.值D.變量

2.有以下程序#include<stdio.h>main(){inta=5,b=l;t=(a<<2)|b;printf("%d\n",t);}程序運行后的輸出結(jié)果是______。A.21B.11C.6D.1

3.下列選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

4.下面程序的輸出結(jié)果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}

A.121,0,4B.2,2,2C.0,2,4D.0,2,2

5.以下符號中不能作為標(biāo)識符的是()。

A._256B.r32C.intD.e231

6.以下選項中能用作數(shù)據(jù)常量的是()。

A.115LB.0118C.1.5e1.5D.o115

7.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項中錯誤的是

A.x++;B.y++;C.c++;D.D++;

8.有以下程序:#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));}程序運行后的輸出結(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

9.下列敘述中錯誤的是()。

A.C程序可以由多個程序文件組成

B.—個C語言程序只能實現(xiàn)一種算法

C.C程序可以由一個或多個函數(shù)組成

D.—個C語言函數(shù)可以單獨作為一個C語言程序文件存在

10.有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)ifstrcmp(p[i],p[j])>0{t=p[i]p[i]=p[j];p[j]=t;}}main(){char*p[5]=("abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序運行后的輸出結(jié)果是______。A.2B.3C.6D.4

11.下列程序的輸出結(jié)果是

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{printf("%d\n",*(a[1]+2));}

main()

{inta[M][N];

inti,j;

for(i=0;i<M;i++)

for(j=0;j<N;j++)

a[i][j]=i+j-(i-j);

fun(a);}

A.3B.4C.5D.6

12.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

13.設(shè)有以下語句charchl,ch2;scanf("%c%C",&chl,&ch2);若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。

A.A和B之間用逗號間隔B.A和B之間不能有任何間隔符C.A和B之間可以用回車間隔D.A和B之間用空格間隔

14.函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是______。

A.將串str1復(fù)制到串str2中后再連接到串str3之后

B.將串str1連接到串str2之后再復(fù)制到串str3之后

C.將串str2復(fù)制到串str1中后再將串sir3連接到串str1之后

D.將串str2連接到串str1之后再將串str1復(fù)制到串str3中

15.下列程序執(zhí)行后的輸出結(jié)果是()。voidfunc(int*a,intb[]){b[0]=*a+b;}main{inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}A.6B.7C.8D.9

16.下列不屬于軟件工程的3個要素的是

A.工具B.過程C.方法D.環(huán)境

17.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。

A.1B.0C.4D.3

18.在有序表(12,24,36,48,60,72,84)中二分查找關(guān)鍵字72時所需進(jìn)行的關(guān)鍵字比較次數(shù)是()

A.1B.2C.3D.4

19.甲乙兩個聰明人上街,撿到一張10塊錢的購物卡,兩人就想出一個辦法來分配這張卡。兩個分別將自己出的價格寫在紙上,然后看誰出的價高就給誰,并且那個出價高的人要把出的錢給對方。現(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對方當(dāng)前有多少錢并且都希望自己收益高于對方。問最后誰獲得的錢多()

A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況

20.判斷一個單向鏈表中是否存在環(huán)的最佳方法是()

A.兩重遍歷B.快慢指針C.路徑記錄D.哈希表輔助

二、2.填空題(20題)21.設(shè)有下列的程序段;

charstr[]="Hello";

char*ptr;

ptr=str;

執(zhí)行上面的程序段后,*(ptr+5)的值為______。

22.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test.t","rb");

fseek(myf,0,SEEKEND);

f1=ftell(myf);

fclose(myf);

printf("%d\n",f1)

23.設(shè)C語言中,一個int型數(shù)據(jù)在內(nèi)存中占兩個字節(jié),則int型數(shù)據(jù)的取值范圍為【】。

24.十六進(jìn)制數(shù)100轉(zhuǎn)換成十進(jìn)制數(shù)為【】。

25.以下程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{inti;

for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');

printf("\n");

}

26.關(guān)系可以有3種類型,即基本關(guān)系(又稱基本表或基表)、查詢表和【】。

27.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。

28.下列程序的輸出結(jié)果是______。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

printf("%d\n",A);

}

29.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:

structaa

{intdata;

【】}node;

30.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。

31.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

32.用復(fù)合的賦值運算符將變量x中的值增大2的賦值表達(dá)式是【】。

33.以下程序運行后的輸出結(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);

}

34.有以下程序:

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

printf("%d\n",t);

}

執(zhí)行后的輸出結(jié)果是【】。

35.以下程序的輸出結(jié)果是______。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

}

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

36.下列程序的輸出結(jié)果是______。

main()

{inti,sum;

for(i=1;i<7;i++)

sum+=i;

printf("%d",sum);

}

37.若i、j為int類型,則以下程序段內(nèi)循環(huán)體的總執(zhí)行次數(shù)是【】。

for(i=5;i;i--)

for(j=0;j<3;j++)

{

}

38.下列程序執(zhí)行輸出的結(jié)果是【】。

#include<stdio.h>

f(inta)

{intb=0;

staticc=3;

a=c++,b++;

return(a);}

main()

{inta=2,i,k;

for(i=0;i<2;i++)

k=f(a++);

printf("%d\n",k);}

39.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括五個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、【】和處理過程。

40.耦合和內(nèi)聚是評價模塊獨立性的兩個主要標(biāo)準(zhǔn),其中______反映了模塊內(nèi)各成分之間的聯(lián)系。

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是()main(){inta[3][3]={1,2},{3,4,},{5,6,},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

42.在C語言的循環(huán)語句for、while、do-while中,用于結(jié)束本次循環(huán),繼續(xù)執(zhí)行下一次循環(huán)的語句是______。

A.switchB.breakC.continueD.goto

43.目前因特網(wǎng)(Internet)尚未提供的服務(wù)是()

A.電子郵件B.文件傳送C.遠(yuǎn)程使用計算機D.電視廣播

44.若有以下程序段(n所賦的是八進(jìn)制數(shù))intm=32767,n=032767;printf("%d,%O\n",m,n);執(zhí)行后輸出結(jié)果是

A.32767,32767B.32767,032767C.32767,77777D.32767,077777

45.已知二叉樹BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______。

A.cedbaB.acbedC.dccabD.deabc

46.對于以下程序段,設(shè)a和q都是整型變量,┇a=q;Loop:if(a==0)gotoEnd;Elseif(a>0){printf("&");a--;gotoLoop;}ElsegotoEnd;End;┇不能與上面程序等價的是()

A.a=q;do{f(a<0)break;a--;printf("*");}while(a);

B.a=q;for(;a>0;a--)printf("&");

C.a=q;while(a){printf("&");a--;}

D.for(a=q;a>0;--a,printf("*"));

47.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數(shù)

48.若x=3,y=z=4,則下列表達(dá)式的值分別為()(1)(z>=y(tǒng)>=x)?1:0(2)y+=z,x*=y(tǒng)

A.024B.18C.08D.112

49.以下合法的字符型常量是

A.'\x13'B.'\081'C.'65'D.\n

50.有以下程序:#include<stdio.h>voidfun(char*c,intD){*c=*c+1;d+=1;printf("%c,%c",*c,D;}main(){chara='F',b='f';fun(&b,A);printf("%c,%c\n",a,B);}程序的輸出結(jié)果為()。

A.g,GF,gB.g,FF,gC.G,fF,GD.f,gf,g

51.有以下函數(shù):mtaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)的功能的敘述正確的是()。

A.求字符串s的長度B.比較兩個串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)

52.關(guān)系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼

53.下列常數(shù)中,不合法的C常量是()

A.-0x3b1B.123e+2.3C.'}'D.6e+7

54.用樹形結(jié)構(gòu)表示實體之間聯(lián)系的模型是

A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是

55.字符串"\\"ABCDEF\"\\”的長度是()。

A.11B.10C.5D.3

56.程序的3種基本控制結(jié)構(gòu)是

A.過程、子過程和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移

57.判斷字符串s1是否大于字符串s2,應(yīng)該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

58.若有以下定義:

structlink

{intdata;

structlink*next;

}a,b,c,*p,*q;

且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):

指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:

A.a.next=c;c.next=b;

B.p.next=q;q.next=p.next;

C.p->next=&c;q->next=p->next;

D.(*p).next=q;(*q).next=&b;

59.在C程序中,可將整型數(shù)以二進(jìn)制形式存放到文件中的函數(shù)是______。

A.fprint函數(shù)B.fread函數(shù)C.fwrite函數(shù)D.fputc函數(shù)

60.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運行后的輸出結(jié)果是()。

A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,

四、選擇題(20題)61.

62.

63.

64.有以下程序:

#include<stdioh>

voidmain()

{

charc1,c2,c3,c4,c5,c6;

c5=getchar();c6=getchar();

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運行后,若從鍵盤輸入(從第1列開始),則輸出結(jié)果是()。

123<回車>

45678<回車>

A.3B.1C.3D.3456

122345

65.在軟件設(shè)計中不使用的工具是()。

A.系統(tǒng)結(jié)構(gòu)圖B.PAD圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖

66.

67.下面的變量說明中__________是正確的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

68.以下敘述中正確的是()。A.A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)

D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

69.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()

A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY

70.定義無符號整數(shù)類為UInt,下面可以作為類UInt實例化值的是()。

A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}

71.(12)下列敘述中正確的是______。

A.線性表是線性結(jié)構(gòu)

B.棧與隊列是非線性結(jié)構(gòu)

C.線性鏈表是非線性結(jié)構(gòu)

D.二叉樹是線性結(jié)構(gòu)

72.設(shè)有以下語句執(zhí)行后,c的值為()。

A.9B.7C.8D.6

73.有以下程序:

#include<stdio.h>

intfun()

{staticintx=1;

X*=2;returnX;

main()

inti,s=1;

for(i=1;i<=2;i++)s=fun();

printf{¨%d\n",s);

}

程序運行后的輸出結(jié)果是()。

A.0B.1C.4D.8

74.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

75.有以下函數(shù):

該函數(shù)的功能是()。

A.tt-gs所指字符串的長度

B.比較兩個字符串的大小

C.計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)

D.將s所指字符串復(fù)制到字符串t中

76.

77.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高

78.軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合

B.高內(nèi)聚低耦合

C.低內(nèi)聚高耦合

D.高內(nèi)聚高耦合

79.有如下程序段:

執(zhí)行該程序段后,X的值為()。

A.trueB.falseC.0D.1

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開始依次取出長整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個新數(shù)存放在t中。高位仍在高位,低位仍在低位。

例如,當(dāng)s中的數(shù)為7654321時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include<;stdi0.h>;

六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將a、b兩個兩位正整數(shù)合并成一個新的整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個位數(shù)依次放在變量c的百位和個位上,b中的十位數(shù)和個位數(shù)依次放在變量c的千位和十位上。例如,當(dāng)a=45,b=12,調(diào)用該函數(shù)后c=1425。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

參考答案

1.A

2.A解析:本題主要考查了C語言的邏輯運算符,先將變量a,b的值轉(zhuǎn)換為2進(jìn)制數(shù),a=00000101,b=00000001,a先左移2位結(jié)果為00010100,再與b按位或運算,結(jié)果為00010101,轉(zhuǎn)換為十進(jìn)制數(shù)為21,因此,選項A是正確的。

3.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項D)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。

4.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標(biāo)識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。

5.C

6.AA選項中“115L”表示長整型數(shù)據(jù)。B選項是八進(jìn)制常量的表示方法,但是在八進(jìn)制中不能含有數(shù)字8,所以B選項錯誤。C選項中e后面應(yīng)該是整數(shù),而不能是小數(shù)1.5,所以C選項錯誤。D選項中八進(jìn)制常量應(yīng)該是以數(shù)字“0”開始,而不是以字母“o”開始。故本題答案為A選項。

7.D解析:C語言中++運算符的對象可以是整型、實型和字符型,但不可是常量,本題中D為常量。

8.Asizeof是運算符,計算數(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。“strier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項。

9.B在一個C語言程序中可以實現(xiàn)多種算法,所以B選項錯誤。故本題答案為B選項。

10.D解析:字符串比較函數(shù)“strcmp(char*s1,char*s2)”的比較規(guī)則是對兩個字符串自左至右逐個字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到到"\\0"為止。如果全部相同,則認(rèn)為相等:若出現(xiàn)不相同的字符,則以第一個不相同的字符的比較結(jié)果為準(zhǔn)。當(dāng)s1<s2,返回值<0;當(dāng)s1=s2時,返回值二0:當(dāng)s1>s2時,返回值>0。故本題經(jīng)過排序后,得到第二個字符串是“abbd”,所以輸出結(jié)果是4。

11.B解析:若有以下定義:inta[3][4],i,j;且當(dāng)0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

12.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。

13.Bscanf輸入函數(shù)中,格式控制J必須嚴(yán)格按照函數(shù)中的要求進(jìn)行輸入,在scanf("%c%c",&chl,&ch2)的格式控制語句中沒有任何字符進(jìn)行間隔,所以在輸入時也不能使用任何字符進(jìn)行間隔,所以答案選擇B。

14.C解析:題目中所給函數(shù)的功能是;先用函數(shù)strcpy把參數(shù)串str2復(fù)制到參數(shù)串str1中去,然后用函數(shù)strcat把參數(shù)串str3連接到經(jīng)過修改后的參數(shù)串str1后,因此選項C正確。

15.A本題考查函數(shù)的調(diào)用,從主函數(shù)傳遞到調(diào)用函數(shù)中,*a的值為0,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,b[0]的值為6。

16.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。

17.D

18.B

19.C

20.B

21.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

22.fopenfopen解析:函數(shù)fopen的原型為FILE*fopen(char*filename,char*mode),功能為以mode指定的方式打開名為filename的文件;函數(shù)fseek的原型為intfseek(FILE*fp,longoffset,intbase),功能為將fp所指向的文件的位置指針移到以base所指出的位置為基準(zhǔn),offset為位移量的位置;函數(shù)ftell的原型為longftell(FILE*fp),功能為返回fp所指向的文件中當(dāng)前的讀寫位置;函數(shù)fclose的原型為intfclose(FILE*fp),功能為關(guān)閉fp所指的文件,釋放文件緩沖區(qū)。

23.-32768~32767

24.256

25.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達(dá)式“i-'a'+'A'”即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。

26.視圖表視圖表解析:關(guān)系數(shù)據(jù)庫中通常有3種關(guān)系,即基本關(guān)系(又稱基本表或基表)、查詢表和視圖表?;颈硎窃跈C器中實際存儲數(shù)據(jù)的表。查詢表是查詢的結(jié)果所對應(yīng)的臨時表。視圖表是由基本表或其他視圖表導(dǎo)出的表,是不實際存儲數(shù)據(jù)的表。視圖表是一個虛表。

27.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調(diào)用函數(shù)fsets()時,最多能讀入n-1個字符,系統(tǒng)自動在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。

28.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。

29.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對鏈表的定義。

30.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。

31.軟件開發(fā)

32.x+=2

33.2121解析:本題考核的知識點是switch語句的嵌套應(yīng)用。外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case():開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。

34.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。

35.

36.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無定值。

37.1515解析:執(zhí)行二重循環(huán)時,外循環(huán)每執(zhí)行一次,內(nèi)循環(huán)將循環(huán)一遍。本題的程序段中外循環(huán)執(zhí)行了5次,內(nèi)循環(huán)執(zhí)行了3次,所以程序段內(nèi)循環(huán)體的總執(zhí)行次數(shù)是15。

38.44解析:本題考查了靜態(tài)存儲類別的局部變量的特點。靜態(tài)存儲類別的局部變量在程序的整個生存周期內(nèi)都存在,但作用域卻只局限于定義它的函數(shù)或局部范圍。當(dāng)i=0時執(zhí)行第一次for循環(huán),k=f(2),a=c++,b++;因為賦值運算符的優(yōu)先級高于逗號運算符,所以a=3,c=4;當(dāng)i=1時執(zhí)行第二次for循環(huán),k=f(3),a=c++,b++;因為c為靜態(tài)局部變量所以保留著這一次執(zhí)行的結(jié)果值4,所以a=4,c=5,所以函數(shù)f()返回a的值為4。

39.數(shù)據(jù)存儲數(shù)據(jù)存儲

40.內(nèi)聚內(nèi)聚

41.A

42.C解析:循環(huán)輔助控制語句有continue;和break;,前者跳過本次循環(huán),進(jìn)行下一次循環(huán),后者跳出整個循環(huán)語句。

43.D

44.A解析:本題考核的知識點是scanf()函數(shù)及printf()函數(shù)的輸出格式。程序在定義時,以十進(jìn)制形式為m賦初值,以八進(jìn)制的形式為n賦初值.輸出的時候m以十進(jìn)制形式輸出,n以八進(jìn)制形式輸出,因此輸出的結(jié)果為32767和32767。所以,A選項為所選。

45.A解析:二叉樹BT的后序遍歷序列為dabec,故BT的根結(jié)點為c;而BT的中序遍歷序列是debac,即遍歷序列中最后—個結(jié)點為跟結(jié)點,說明BT的右子樹為空。由BT的的后序遍歷序列和中序遍歷序列可知BT的左子樹(LST)的后序遍歷序列和中序遍歷序列分別為dabe和deba(樹是遞歸定義的):故LST的根結(jié)點是e,在由LST的中序遍歷序列可知其左子樹為d。因此BT的前序遍歷序列為cedba。

46.C

47.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

48.A

49.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用一個“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd'表示1到3位8進(jìn)制數(shù)所代表的字符;形式“\\xhh'表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個字符常量;\'\\081\'用8進(jìn)制數(shù)所代表的字符,但形式不正確,因為8進(jìn)制數(shù)所代表的字符中不會出現(xiàn)數(shù)字“8”;\'5\'不是一個字符,而是一個十進(jìn)制數(shù)字;\'\\n\'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。

50.A

51.A解析:aaa()函數(shù)中,首先定義了一個字符指針t指向形參s,然后通過一個while循環(huán)讓指針t不斷遞增,直到t指向字符串結(jié)束標(biāo)志處。當(dāng)t指向結(jié)束標(biāo)志處時,由于后綴4-+運算符的原因,它還會被再遞增1,所以接下來的t--;語句讓它回到結(jié)束標(biāo)志處。最后返回t-s,因此s還是指向字符串第1個字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長度值。

52.A解析:關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為表中的一個屬性,對應(yīng)表中的一個字段;在二維表中凡能惟一標(biāo)識元組的最小屬性集稱為該表的鍵或碼。

53.B

54.C解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實體之間的聯(lián)系是用樹形結(jié)構(gòu)來表示的,其中實體集(記錄型)是樹中的結(jié)點,而樹中各結(jié)點之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。

55.B解析:本題涉及字符串的兩個最基本的概念。①字符串的長度是指字符串中字符的個數(shù),但不包含字符串結(jié)束符;②以反斜線“\\”開頭的特殊字符序列,意思是把反斜線后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個長度。

56.B解析:采用結(jié)構(gòu)化程序設(shè)計方法編寫程序,可使程序結(jié)構(gòu)良好、易讀、易理解、易維護(hù),它包括3種基本控制結(jié)構(gòu),分別是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(又稱循環(huán)結(jié)構(gòu))。注意:控制程序結(jié)構(gòu)的方法和作用。

57.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時,返回值為負(fù)數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。

58.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實現(xiàn),即一個結(jié)點中應(yīng)包含一個指針變量,用它存放下一結(jié)點的地址。

59.C

60.B解析:題目中定義了一個指針變量作為函數(shù)f()的參數(shù)。主函數(shù)main()中調(diào)用f()函數(shù),當(dāng)i=0時,執(zhí)行語句“(*q)++;”,此處*q就代表數(shù)組a[0]的地址,也即將q進(jìn)行加1操作;當(dāng)i=1時,q仍指向數(shù)組元素a[0]的地址,因為在函數(shù)f()中并未對指針變量q做任何變動,即*q仍代表數(shù)組元素a[0]的值,所以此次(*q)++即為2+1,a[0]的值變?yōu)?;直到i=4時,執(zhí)行(*q)++后a[0]的值變?yōu)?,最后輸出數(shù)組a的結(jié)果為6、2、3、4、5。

61.C

62.A

63.A

64.A嚴(yán)格按照格式進(jìn)行輸入和輸出,當(dāng)我們輸入123時,題目會將1賦給c5,2賦給c6,3賦給c1,回車符賦給c2…….

65.C在軟件開發(fā)的各個階段經(jīng)常會使用到一些圖形工具,如在需求分析階段使用數(shù)據(jù)流圖,在概要設(shè)計階段使用系統(tǒng)結(jié)構(gòu)圖,在詳細(xì)設(shè)計階段使用程序流程圖、N-S圖或者PAD圖等。

66.B

67.B

68.AB)選項中打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進(jìn)行追加操作等。c)選項中在一個程序中當(dāng)對文件進(jìn)行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進(jìn)行重新

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論