2021年江西省贛州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第1頁
2021年江西省贛州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第2頁
2021年江西省贛州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第3頁
2021年江西省贛州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第4頁
2021年江西省贛州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年江西省贛州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序#include<stdio.h>main(){charcl,c2;c1=A+8-4c2=A+8-5;printf("%C,%d\n",cl,c2);}已知字母A的ASCIl碼為65,程序運行后的輸出結(jié)果是()。A.E,69B.D,69C.E,DD.輸出無定值

2.若有定義“a[]={1,2,3,4,5,6,7,8,9,10};”,則“a[a[5]-a[7]/a[1]]”的值是()。

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

3.

4.下列程序的運行結(jié)果是()。#include<stdio.h>voidfun(int*S,int*p){staticintt=3:*p=s[t];t--;}voidmain{inta[]={2,3,4,5),k;intx;for(k=0,k<4,k++){fun(a,&x);printf("%d,",x);}}A.5,4,3,2B.2,3,4,5C.2,2,2,2D.5,5,5,5

5.sizeof(float)是()。

A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式

6.在一個無向圖中,所有頂點的度數(shù)之和等于所有邊數(shù)的()倍。

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

7.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序

B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序

C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序

D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序

8.軟件生命周期可分為定義階段、開發(fā)階段和維護階段。詳細設(shè)計屬于()。

A.定義階段B.開發(fā)階段C.維護階段D.上述三個階段

9.

10.

11.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時編譯器提示錯誤信息,你認(rèn)為出錯的語句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;

12.若有定義"int(*pt)[3];",則下列說法正確的是()。

A.定義了基類型為int的三個指針變量

B.定義了基類型為int的具有三個元素的指針數(shù)組pt

C.定義了一個名為*pt、具有三個元素的整型數(shù)組

D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組

13.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。

A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)

14.折半查找法的查找速度一定比順序查找法快()。

A.正確B.錯誤

15.fscanf函數(shù)的正確調(diào)用形式是()

A.fscanf(fp,格式字符串,輸出表列);

B.fscanf(格式字符串,輸出表列,fp);

C.fscanf(格式字符串,文件指針,輸出表列),

D.fscanf(文件指針,格式字符串,輸入表列);

16.

17.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf(“*”);程序段的運行結(jié)果是()。

A.**B.****C.*D.********

18.一個棧的進棧序列是a,b,c,d,e,則棧的不可能的輸出序列是()。

A.edcbaB.decbaC.dceabD.abcde

19.設(shè)變量已正確定義并賦值,以下正確的表達式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

20.在下列幾種排序方法中,空間復(fù)雜度最高的是()

A.歸并排序B.快速排序C.插入排序D.選擇排序

二、2.填空題(20題)21.若由以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。

intw[10]={23,54,10,33,47,98,72,80,61},*p=w;

22.下述函數(shù)統(tǒng)計—個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

23.在E-R圖中,矩形表示【】。

24.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

#include"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

printf("Enterx:");scanf("%lf",&x);

y1=fun(【】);

y2=fun(【】);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

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

charb[]="ABCD";

main()

{char*p=b;

for(;*p;p++)

printf("%s",p);

printf("\n");

}

26.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。

27.以下程序運行后的輸出結(jié)果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}

28.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。

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

30.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

31.執(zhí)行以下程序后,輸出‘#’號的個數(shù)是______。

#include<stdio.h>

main()

{

inti,j;

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

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

putchar('#');

}

32.以下程序的功能是計算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

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

{t=i+______;s=s+t;}

printf("s=%d\n",s);

}

33.以下程序的運行結(jié)果是______。

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

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

34.以下程序的運行結(jié)果是【】。

#include<stdio.h>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

35.注釋一般分為序言性注釋和______注釋。

36.若想通過以下輸入語句使a中存放字符串1234,b中存放字符5,則輸入數(shù)據(jù)的形式應(yīng)該是【】。

chara[10],b;scanf("a=%sb=%c",a,&b);

37.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

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

main()

{chars[]="ABCD",*p;

for(p=s+1;p<s+4;p++)printf("%s\n",p);}

39.若輸入字符串:(圖片),則以下while循環(huán)體將執(zhí)行【】次。

while((ch=getchar())=='e')printf("*");

40.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。main(){charch[3][4]={"123","456","78"},*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}

A.123456780B.123456780C.12345678D.147

42.設(shè)下面程序段中調(diào)用fun函數(shù)傳送實參a和b,main(){chara[10],b[10]┇fun(a,b);┇}則在fun函數(shù)首部中,對形參錯誤的定義是()

A.fun(chara[10],b[10]){…}

B.fun(chara1[],chara2[]){…}

C.fun(charp[10],charq[10]){…}

D.fun(char*s1,char*s2){…}

43.能正確表示邏輯關(guān)系:"a≥10或a≤0"的C語言表達式是

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10||a<=0

44.下面的描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是()。

A.使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.模塊只有一個入口,可以有多個出口

C.注重提高程序的執(zhí)行效率

D.不使用goto語句

45.若變量已正確定義,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是()。

A.0,0B.0,1C.1,1D.程序進入無限循環(huán)

46.下列敘述中正確的是()。

A.C程序由函數(shù)組成

B.C程序由主函數(shù)構(gòu)成

C.C程序由函數(shù)和過程構(gòu)成

D.在C程序中無論是整數(shù)還是實數(shù),都可以正確無誤的表示出來

47.下列描述中正確的是()。

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題

48.以下程序中,while循環(huán)的循環(huán)次數(shù)是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.10C.6D.死循環(huán),不能確定次數(shù)

49.各種網(wǎng)絡(luò)傳輸介質(zhì)()

A.具有相同的傳輸速率和相同的傳輸距離

B.具有不同的傳輸速率和不同的傳輸距離

C.具有相同的傳輸速率和不同的傳輸距離

D.具有不同的傳輸速率和相同的傳輸距離

50.在微機中,應(yīng)用最普遍的字符編碼是()

A.BCD碼B.ASCII碼C.漢字騙碼D.補碼

51.在面向?qū)ο笾?,一個對象請求另一個對象為其服務(wù)的方式是通過發(fā)送

A.調(diào)用語句B.命令C.口令D.消息

52.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性

53.設(shè)有以下定義:char*st="howareyou";下列程序段中正確的是______。

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;srtcpy(p=&a[1],st+2);

54.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。

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

55.樹是結(jié)點的集合,它的根結(jié)點數(shù)目是()。

A.有且只有1B.1或多于1C.0或1D.至少2

56.當(dāng)執(zhí)行下面的程序時,如果輸入ABC,則輸出的結(jié)果是()。#include<Stdlib.h>main(){charss[]="1,2,3,4,5";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}

A.ABC6789B.ABDC67C.123ABC678D.ABC456789

57.若執(zhí)行下面程序時從鍵盤上輸入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x-);則輸出是______。

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

58.下面關(guān)于完全二叉樹的敘述中,錯誤的是______。

A.除了最后一層外,每_層上的結(jié)點數(shù)均達到最大值

B.可能缺少若干個左右葉子結(jié)點

C.完全二叉樹一般不是滿二叉樹

D.具有結(jié)點的完全二叉樹的深度為[log2n]+1

59.C語言的基本單位是()。

A.函數(shù)B.過程C.子程序D.子函數(shù)

60.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建的是

A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

四、選擇題(20題)61.

62.下面函數(shù)的功能是()。

intfunc(char*x)

{char*y=x;

while(*y++);

return(y-x-1);

}

A.求字符串的長度

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

C.將字符串x復(fù)制到字符串y

D.將字符串x連接到字符串y后面

63.若有以下程序:inta=1,b=2:a=a^b:b=b^a:則執(zhí)行以上語句后a和b的值分別是()。

A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1

64.main()

{intn;(n=6*4,n+6),n*2;printf(“n=%d\n”,n);}

此程序的輸出結(jié)果是______________.

A.30B.24C.60D.48

65.

66.

67.

68.if語句基本形式是:if(表達式)語句,以下關(guān)于“表達式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

69.

對兩個數(shù)組a和b進行下列初始化:

charm[]1="l234567":

charn[]={1,2,3,4,5,6,7);

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同

B.數(shù)組m與數(shù)組n長度相同

C.數(shù)組m比數(shù)組n長1

D.數(shù)組m與數(shù)組n中都存放字符串

70.設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。

A.0B.\0C.非0值D.NULL

71.

72.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

73.由兩個棧共享一個存儲空間的好處是______。A.A.減少存取時間,降低下溢發(fā)生的概率

B.節(jié)省存儲空間,降低上溢發(fā)生的概率

C.減少存取時間,降低上溢發(fā)生的概率

D.節(jié)省存儲空間,降低下溢發(fā)生的概率

74.下列敘述中正確的是()。

A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)

B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)

C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量

D.以上三種說法都不對

75.以下敘述中正確的是

A.自定義的函數(shù)中一定要有return語句

B.自定義的函數(shù)中不可以有多個return語句

C.自定義的函數(shù)中可以沒有return語句,此時函數(shù)應(yīng)被定義為void類型

D.函數(shù)的return語句一定要帶有表達式

76.下列選項中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

77.(30)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()

A.排序、索引、統(tǒng)計

B.選擇、投影、連接

C.關(guān)聯(lián)、更新、排序

D.顯示、打印、制表

78.有以下程序:

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

A.45B.50C.60D.55

79.設(shè)有以下語句:

TypedefstructTT

{charc;inta[4];}CIN;

則下面敘述中錯誤的是()。

A.不可以用TT定義結(jié)構(gòu)體變量

B.TT是結(jié)構(gòu)體標(biāo)識名

C.可以用CIN定義結(jié)構(gòu)體變量

D.CIN是structTT類型的變量

80.設(shè)有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:從整數(shù)l0-55,查找能被3整除且有一位上的數(shù)值是5的數(shù),把這些:故放在b所指的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放位數(shù),a2放十位數(shù)。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計題(1題)82.請編寫函數(shù)voidproc(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶數(shù)、不為1的各整數(shù),并按從大到小的順序放在PP所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。

例如,若x的值為30,則有3個數(shù)符合要求,它們是15,5,3。

注意:部分源程序給出如下。

請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.A本值輸出兩個值,%c為輸出一個字母,0/4d輸出一個數(shù)字。“A”的ASCIl碼為65,再加4之后為69,也就是字母E,所以本題A正確。

2.C題干中,數(shù)組a包含10個元素。其中a[5]為6,a[7]為8,a[1]為2,所以表達式“a[a[5]-a[7]/a[1]]”等價于“a[6-8/2]”,等價于a[2],即3。故本題答案為C選項。

3.D

4.A依據(jù)fun函數(shù),可知其要實現(xiàn)的功能是將S中第(t+1)個元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,main函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)x,最后輸出x數(shù)組。

5.D解析:sizeof(float)是c語言內(nèi)部規(guī)定的用于計算單精度型變量(float)在計算機的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),返回一個整數(shù)值。

6.A

7.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。

8.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)階段由5個階段組成:概要設(shè)計、詳細設(shè)計、編寫代碼、組裝測試和確認(rèn)測試。軟件維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。選項B正確。

9.A

10.B

11.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對指針進行賦值時沒有錯誤。a=/*p+m賦值,在c語言中"/*"表示的注釋,所以答案選擇A。

12.D\n數(shù)組指針是指向數(shù)組的一個指針,int(*pt)[3]表示一個指向3個int元素的數(shù)組的一個指針。

\n

13.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。

14.B

15.D

16.D

17.C因為內(nèi)層循環(huán)“for(k=1;k<3;k++)”后面直接跟了空語句“;”,所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行printf語句,輸出一個“*”。故本題答案為C選項。

18.C

19.A[解析]B)與D)選項中取模運算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B)、D)錯誤。C)選項中不能將x+z的值賦給表達式y(tǒng)*5.所以C)錯誤。

20.A

21.*(p+5)或p[5]*(p+5)或p[5]解析:本題的考查點是通過指針引用數(shù)組元素。98是數(shù)組w的第5個元素(最開始的為第0個),而通過*p=w已經(jīng)將p指向了數(shù)組w,要想不移動指針p而引用98,可以有以下兩種方法:p[5]、*(p+5)。

22.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄—個單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前—個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)填flag=0或*(s-1)='';最后—個空格需填寫的是返回的單詞的個數(shù),即num。

23.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。

24.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調(diào)用相關(guān)知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。

25.ABCDBCDCDD

26.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。

27.45794579解析:本題考查的是條件判斷語句。本題特別需要注意的是“;”的問題,不能把“t=a;a=c;c=t;”誤認(rèn)為是第一個if的語句,實際上,只有“t=a;”才是第一個if的語句。所以判斷第一個if語句的表達式不成立后,執(zhí)行的是“a=c;c=t;”,此時a=5,c=79。然后判斷第二個if語句的條件表達式,表達式成立,執(zhí)行后面的3條語句,讓a、b、c分別為4、5和79。

28.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。

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

30.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結(jié)果,形參z必須是指針類型的。由于返回整型結(jié)果,所以第一處填int*;函數(shù)返回前必須先把結(jié)果通過形參z間接引用傳回,第二處應(yīng)填*z。

31.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當(dāng)i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán).當(dāng)i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#當(dāng)i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#,當(dāng)i=4時,內(nèi)層循環(huán)循環(huán)三次,輸出三#。當(dāng)i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。

32.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因為i在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。

33.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。

34.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標(biāo)號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。

35.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,

36.a=123b=5

37.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。

38.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。

39.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個字符。用戶輸入的第1個字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。

40.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。

41.C解析:p是指針數(shù)組,通過第1個循環(huán)的賦值,p[0]、p[1]、p[2]分別指向二維數(shù)組ch的第1行、第2行、第3行,因此輸出字符串“12345678”。

42.A

43.B解析:條件表達式本題考查C語言的邏輯表達式及邏輯或('||')運算符的用法。''表示或的意思,'|'是按位或的意思,'&&'是并且的意思,C語言中沒有'or'。

44.A解析:結(jié)構(gòu)化程序設(shè)計方法的四條原則是:自頂向下;逐步求精;模塊化;限制使用goto語句?!白皂斚蛳隆笔侵冈诔绦蛟O(shè)計時,先考慮總體,后考慮細節(jié),先考慮全局目標(biāo),后考慮局部目標(biāo);“逐步求精”是指對復(fù)雜問題應(yīng)設(shè)計一些子目標(biāo)作過渡,逐步細節(jié)化;“模塊化”是指一個復(fù)雜問題由若干稍簡單的問題構(gòu)成,解決這個復(fù)雜問題的程序也應(yīng)由若干稍簡單問題的小程序組成。

45.B解析:對于do…while循環(huán),程序先執(zhí)行一次循環(huán)體,再判斷循環(huán)是否繼續(xù)。本題先輸出一次i的值“0,”,再接著判斷表達式i++的值,其值為0,所以循環(huán)結(jié)束。此時變量i的值經(jīng)過自加已經(jīng)變?yōu)?,程序再次輸出i的值“1”。

46.A解析:本題涉及C語言最基本的兩個知識點:①C程序是由函數(shù)構(gòu)成的,有且僅有一個主函數(shù),也可以有其他的函數(shù);②整數(shù)在允許的范圍內(nèi)可以準(zhǔn)確無誤的表示出來,但計算機的存儲能力有限,不能表示無限精度的實數(shù)。

47.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進度無法控制、軟件質(zhì)量難以保證、軟件不可維護或維護程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。

48.D解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當(dāng)break出現(xiàn)在switch語句體內(nèi)時,其作用只是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體.而continue語句的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內(nèi)表達式的值為真,執(zhí)行循環(huán)體內(nèi)的if語句,判斷if后面括號內(nèi)表達式的值為真,執(zhí)行“continue;”語句.因continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判斷,所以i的值未發(fā)生變化,循環(huán)條件仍然為真,if語句也仍然成立,因此循環(huán)將無止境地進行下去。所以,4個選項中D為所選。

49.B

50.B

51.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,一個對象與另一個對象通過發(fā)送消息彼此交換信息,請求對方執(zhí)行某一處理或回答某一要求的信息。

52.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。

53.A解析:選項A表示把st所指串的第5個字符開始的后面的元素賦值給數(shù)組a的第2個元素開始的后面元素,形式正確;選項B中出現(xiàn)對數(shù)組名進行自加運算,因此錯誤:選項C中st所指字符串有11個字符,再加上'\\0',有12個字符,超過數(shù)組長度,所以也是錯誤的;選項D的情況和選項C相似,也是形式正確,但超過了數(shù)組的長度。

54.B解析:該題目測試考生對宏替換的理解。這是一種簡單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對2*M+1進行宏替換時,要將宏名M原封不動地代進去,得到NUM的形式為2*N+1+1(千萬不要隨意給N+1加上小括號,使NUM變?yōu)?。(N+1)+1,這就是宏名和變量名之間的區(qū)別),在將N代進去,得到NUM的值為6。

55.A樹形結(jié)構(gòu)是一類重要的非線性數(shù)據(jù)結(jié)構(gòu)。樹是n(n≥0)個結(jié)點的集合,對應(yīng)任意一棵非空樹,它具有以下幾點重要的性質(zhì)。

①有且僅有一個特定的稱為根的結(jié)點。

②當(dāng)n>1時,其余結(jié)點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。

因此,本題的正確答案有且只有一個。

56.A解析:本題程序一開始定義了一個字符數(shù)組ss,并用一個字符串常量初始化之。然后使用gets()函數(shù)從鍵盤緩沖區(qū)讀入一個字符串'ABC',此時gets()將改變數(shù)組的前4個元素為{\'A\',\'B\',\'C\',\'\\0\'}。接下來的strcat()函數(shù)將一個字符串連接到字符串ss之后,因為ss[3]被gets()設(shè)置為\'\\0\'(字符串結(jié)束標(biāo)志),故strcat()從ss[3]開始將'6789'依次寫入ss[3]、ss[4]、ss[5]、ss[6],并將一個\'\\0\'寫入ss[7]。所以輸出結(jié)果是ABC6789,故應(yīng)該選擇A。

57.B解析:根據(jù)C語言的語法,X++是在使用x之后,再將x的值加1,在if語句中,x的值為5,條件不成立,執(zhí)行else后面的語句,因為x的值已經(jīng)加1,為6,所以打印結(jié)果為6。

58.B解析:滿二叉樹指除最后一層外每一層上所有結(jié)點都有兩個子結(jié)點的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點數(shù)均達到最大值,在最后一層上只缺少右邊的若干子結(jié)點(葉子結(jié)點)的二叉樹。

59.AA?!窘馕觥緾語言是函數(shù)式的語言。它的基本組成單位是函數(shù),在C語言中任何程序都是由一個或者多個函數(shù)組成的。

60.A解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)定義語言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。

61.A

62.A首先將x指向的字符串的首地址賦給y,然后進行掃描,知道遇到結(jié)束標(biāo)志0,y-x-1的意思就是求字符串的長度,因為y指向字符串的最后一個字符的下一位,而x指向字符的首地址。

63.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應(yīng)二進制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進制為00000010,a=1的二進制為00000001,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論