國家二級(C語言)機試模擬試卷47_第1頁
國家二級(C語言)機試模擬試卷47_第2頁
國家二級(C語言)機試模擬試卷47_第3頁
國家二級(C語言)機試模擬試卷47_第4頁
國家二級(C語言)機試模擬試卷47_第5頁
已閱讀5頁,還剩95頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級(C語言)機試模擬試卷第1

一、選擇題(本題共38題,每題1.0分,共38分。)

1、下列敘述中正確的是()。

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

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

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

D、以上說法均錯誤

標準答案:A

知識點解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)

構(gòu)、所處理的數(shù)據(jù)量等有關(guān)。

2、有以下程序:#includemain(){inti,j,k,a=5,b=6:i=(a==b)?++a:-b;

j=a++;k=b;printf("%d,%d,%d\n",i,j,k);}程序的運行結(jié)果是()。

A、7,6,5

B、5,5,5

C、7,5,5

D、5,6,5

標準答案:B

知識點解析:條件表達式i=(a==b)?++a:-b;中先執(zhí)行a==b,值為假,根據(jù)三元

運算符語法規(guī)則,執(zhí)行--b,此時b為5,賦給i,i=5;j=a++,將a=5先賦給j,再

進行a++,j=5,a=6,k=b=5,故最后輸出的是5,5,5。

3、以下關(guān)于relurn語句的敘述中正確的是()。

A、一個自定義函數(shù)中必須有一條return語句

B、一個自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句

C、定義成void類型的函數(shù)中可以有帶返回值的return語句

D、沒有relum語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處

標準答案:B

知識點解析:在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return涪句

被執(zhí)行,因此只能返回一個函數(shù)值。定義成void類型的函數(shù).不允許從該函數(shù)取

得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數(shù)在

執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,A、D選項描述錯誤。因此B

選項正確。

4、有以下程序:#includetypedefstruct{intb,P;jA;voidf(AC)/*注意:C是

結(jié)構(gòu)變量名*/{intj;c.b+=l;e.p+=2;)main(){inti;Aa={1,2);f(a):

printf("%d,%d\n”,a.b,a.P);)程序運行后的輸出結(jié)果是()°

A、2,4

B、1,2

C、1,4

D、2,3

標準答案:B

知識點解析:結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù)和返同值。作為函數(shù)的實參時,可以

實現(xiàn)函數(shù)的傳值調(diào)用。當使用結(jié)構(gòu)體變量作為函數(shù)的形參時,實參也應(yīng)該是結(jié)構(gòu)體

變量名以實現(xiàn)傳值調(diào)用,實參將拷貝副本給形參,在被調(diào)用函數(shù)中改變形參值對于

調(diào)用函數(shù)中的實參沒有影響。所以選擇B。

5、開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱做()。

A、軟件矛盾

B、軟件危機

C、軟件耦合

D、軟件產(chǎn)生

標準答案:B

知識點解析:隨著計算機軟件規(guī)模的擴大,軟件本身的復(fù)雜性不斷增加,研制周期

顯著變長,正確性難以保證,軟件開發(fā)費用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了

入門難以控制軟件發(fā)展的局面,即所謂的“軟件危機”。

6、有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A、chara=,a,

B、chara=,\n\

C、chara=,aa,;

D、chara=,\x2d,

標準答案:C

知識點解析:本題中a為一個字符型變量,只能為其賦值一個字符常量。C項

中'aa,不是字符常量,所以會編譯錯誤。BD兩項為轉(zhuǎn)義字符,編譯可以通過。

7、if語句的基本形式為:if(表達式)語句,其中“表達式”()。

A、可以是任意合法的表達式

B、必須是邏輯表達式

C、必須是邏輯表達式或關(guān)系表達式

D、必須是關(guān)系表達式

標準答案:A

知識點解析:本題考查if表達式。if(表達式)中的表達式可以為任何合法的表達

式,一般情況下為邏輯、條件表達式,需要注意的是,當?shù)忍?==)誤寫為賦值號

(二)時不會報錯的,但是其值恒為1。

8、若有定義語句:inta=3,b=2,c=l;,以卜.選項中錯誤的賦值表達式是()。

A^a=(b=4)=3;

B、a=b=c+l;

C、a=(b=4)+c;

D、a=l+(b=c=4);

標準答案:A

知識點解析:這道題目主要考察賦值表達式,對于賦值表達式來說,賦值號"=''的

左邊一定為變量名,右邊為一個C語言合法的表達式。

9、已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa(char

number[IOO];intage;floatp[6];};定義一個數(shù)組.:structanumber[10];假定

文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A、fread(b,sizeof(structa),10,fp);

B、for(i=0;i<10;i++)fread(b|i),sizeof(slructa),1,fp);

C、for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);

D、for(i=0;i<5;i+=2)fread(b+i,sezeof(structa),2,fp);

標準答案:B

知識點解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,

fp)ofread函.數(shù)參數(shù)說明:“buffer'、是一個指針,對fread來說,它是讀入數(shù)據(jù)的

存放地址。對fwrile來說,是要輸出數(shù)據(jù)的地址。“size”是耍讀寫的字節(jié)數(shù);

“count”是要進行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是指文件型指針。選項B)中

b[i]是一個數(shù)組,不是指針,需改為注意:完成一次讀操作(frcad())后,如

果沒有關(guān)閉流(felose。),則指針(FILE*fp)自動向后移動前一次讀寫的長度,不關(guān)閉

流則繼續(xù)下一次讀操作,接著上次的輸出繼續(xù)輸出。

10、下列一維數(shù)組說明中,不正確的是()。

A、intN;scanfT%d",&N);intb[N];

R、floata[]={1,6,6.0,2):

C、#defineS10inta|S];

D、#defineS10inta[S+5];

標準答案:A

知識點解析:本題考查一維數(shù)組的賦值。一維數(shù)組的一般定義格式為:類型說明符

數(shù)組名[常量表達式]。其中,“口”中的內(nèi)容可以是整型常量,也可以是整型表達

式。選項A)中的N是一個變量,所以錯誤。

11、已知char**s,下面正確的語句是()。

A、s="ABCDEFn:

B、*s="ABCDEF";

C、**s="ABCDEF";

D、*s='A';

標準答案:C

知識點解析:“S”是代表數(shù)組首地址的地址常量,不是變量,“=”左邊不能出現(xiàn)常

量,因此s="ABCDEF”語法錯誤。"**s”和“s”一樣;“*s”是指變量地址,不能給其

賦字符串。

12、某二叉樹中度為2的結(jié)點有10個,則該二叉樹中有()個葉子結(jié)點。

A、9

B、10

C、II

D、12

標準答案:C

知識點解析:根據(jù)二叉樹的性質(zhì)3:對任何一棵二叉樹,度為0的結(jié)點(即葉子結(jié)

點)總是比度為2的結(jié)點多一個。

13、有以下程序段:inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n)(case

1:case3:primf("%d\n",n);break;case2:case4:printf("%d\n",n);

continue:case0:exit(O);}printf("%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘

述,正確的是()

A、for循環(huán)語句固定執(zhí)行8次

B、當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作

C、當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作

D、當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行

標準答案:D

知識點解析:當產(chǎn)生的隨機數(shù)n為。時,執(zhí)行case。:exit(O)這條語句,結(jié)束程序

的運行。

14、設(shè)有定義:chars[81];inti=0;以下不能將一行(不超過80個字符)帶有空格

的字符串正確讀入的語句或語句組是()。

A、gets(s);

B、while((s[i-H-]=getchar())!=?\n');s[i]=,\O';

C、scanf("%s",s);

D、do{scanf("%cH,&s[i]);}while(s[i++]!八n>s[i]=,\0,;

標準答案:C

知識點解析:函數(shù)scanf()輸入字符串時默認空格為間隔符,所以不能輸入空格,

答案選C。

15、對關(guān)系S和關(guān)系R進行集合運算,結(jié)果中既包含關(guān)系S中的所有元組也包含

關(guān)系R中的所有元組,這樣的集合運算稱為()。

A、并運算

B、交運算

C、差運算

D、除運算

標準答案:A

知識點解析:關(guān)系的并運算是指,由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)

系,其中包含兩個關(guān)系中的所有元組。

16>以下程序的輸出結(jié)果是()。#includemain(){inta=l,b=3;if((++a<0)&&!(b-

<=0))printf("%d,%d\n”,a,b);elseprintf(4t%d,%d\n”,b,a);)

A、2.2

B、1,3

C、3,2

D、3.1

標準答案:C

知識點解析:解答本題的關(guān)鍵在于if語句條件中的表達式。初始時a=l,b=3,所

以++a=2>0,因此++a<0為假:因為是進行邏輯與(&&)運算,在&&的一個運算對

象為假的前提下不用判斷第二個運算對象的真假,就可以直接得出整個表達式的值

為邏輯0,所以執(zhí)行else語句。

17、以下不合法的數(shù)值常量是()。

A、8.0E0.5

B、lei

C、011

D、Oxabcd

標準答案:A

知識點解析:A選項中E后面的指數(shù)必須為整型數(shù)據(jù),所以A錯誤。C選項中011

表示的是八進制常量,Oxabcd表示的是十六進制常量。

18、若有以下定義和語句:#inciude<stdio.h>chars1[10]="abcd!H,*s2=H\nl23

\\":printfC%d%d\n",strlen(sl),strlen(s2));則輸出結(jié)果是()。

A、107

B、105

C、55

D、58

標準答案:C

知識點解析:strlen函數(shù)返回字符串的長度,求字符串長度時,遇到結(jié)束標志、(T

為止,但是長度不包括結(jié)束標識。字符數(shù)組si的后5個元素沒有賦值,都為、

0',即“abed!”后為'(T.所以strlen(sl)的值為5。字符指針s2所指向的字符串

中,\n為轉(zhuǎn)義字符換行符,表示1個字符,\\也為轉(zhuǎn)義字符,代表也是1

個字符,其后為字符串結(jié)束標識'0';所以sWen(s2)的值也為5。因此C選項正

確。

19、有以下程序:#include#includemain(){charstr[][zo]={"One*World1',

"One*Dream!"J,*P=str[l];prinlf("%d,",strlen(P));printf("%s\n'*,P);程序

運行后的輸出結(jié)果是()c

A、10,One*Dream!

B>9,One*Dream!

C、9,One*Wodd

D、10,One*World

標準答案:A

知識點解析:p是指向二維字符數(shù)組第二行“One*Dream!”的數(shù)組指針,所以長度是

10,打印輸出的也是該字符串。

20、有以下程序:#include<stdio.h>intf(intk){staticinin=0;intm=0;n++;

m++;k++;returnn+m+k;}main(){intk;for(k=0;k<2;k++)printf("%d,",

t(k));printt("\n");)程序運行后的輸出結(jié)果是()。

A、3,5,

B、3,6,

C、3,7,

D、0,3,

標準答案:A

知識點解析:static靜態(tài)變量只在聲明時初始化一次。因此,第一次調(diào)用函數(shù)

f(k=O),此時n=m=k=0,經(jīng)過自增操作n=l,m=I,k=l,返回值為3,第二次調(diào)用

函數(shù)f(k=l),此時n=l,k=l,m=0,經(jīng)過自增操作,n=2,k=2?m=L返回值為

5。故最終結(jié)果為3,5。故答案為A選項。

21、有以下程序:#include<stdio.h>main()(ehars[][6]={"abcd","abc",

W);inti;for(i=0;i<3;i++)puts(s[i]);}執(zhí)行后的輸出結(jié)果是()°

A、babcdabcab

B、aaa

C^abedbedcd

D>abC

標準答案:A

知識點解析:程序初始化一個二維數(shù)組.其中每個元素都是一個字符數(shù)組,f。「循

環(huán)中使用字符串輸出函數(shù)puts。打印二維數(shù)組偵破那個的每個元素,puts。接受字符

數(shù)組名當做參數(shù),將該字符數(shù)組存儲的字符串打印出來,程序中s[0]存儲的字符串

是“abecd",s[l]存儲的字符串是“abc",s[2]存儲的字符串是“ab",所以程序輸出

為:abed、abc、ab,答案選A。

22、以下選項中正確的語句組是()。

,,,,

A、chads:s={BOOK!}:

B、charts;s=''BOOK!'';

,,,,

C、chars[10];s=BOOK!:

D、chars口;s=''BOOK!”;

標準答案:B

知識點解析:A選項去掉大括號就正確了;C選項和D選項應(yīng)在定義時賦初值。因

此B選項正確。

23、有以卜.程序:#includemain(){inta=7;while(a-----);printR''%d\n'‘,

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

A、0

B、一1

C、1

D、7

標準答案:A

知識點解析:注意到while后面的分號是一個空語句,且a——是先用表達式,再

減1,所以while循環(huán)結(jié)束后a的值是一1,在打印語句中++a是先加1再使用表達

式,所以輸出結(jié)果是0。

24、若要求定義具有10個float型元素的一維數(shù)組a,則以下定義語句中錯誤的是

()。

A、floata[5+5];

floatn=10,a[n];

C、#definen5floata|2*n|;

D、#defineN10floata[N];

標準答案:B

知識點解析:注意定義數(shù)組時,元索個數(shù)可以是宏定義常量,但不能是變顯。囚此

選項B錯。

25、以下fun函數(shù)返回數(shù)組中最大值的下標#inckide<stdio.h>intfun(int*s,intn)

{inti,k;for(i=0,k=i;i<n;i++)if(s[i]>s[k]);return(k);)在橫線

處應(yīng)填入的內(nèi)容是

A、++k

B、i=k

C、k++

D、k=i

標準答案:D

知識點解析:fun函數(shù)的功能是返回數(shù)組中最大值的下標。通過for循環(huán)語句,每

次將最大的數(shù)給匕即卜與。因此D選項正確。

26、有以下程序:#includemain(){intx=l;for(;x<8;x++){if(x%3)

{printf("%d,",x++);continue;}printf(''%d,",++x);}}程序運行后的輸

出結(jié)果是()。

A、1,4,5,7

B、1,3,5,7

C、2,4,5,8

D、8,5,4,2

標準答案:A

知識點解析:注意循環(huán)變量在循環(huán)體中有個加1的運算,所以循環(huán)變量x=l,3,

5,7;當x是3的整數(shù)倍時,輸出++x,當x不是3的整數(shù)倍時輸出x++,所以結(jié)

果是1,4,5,7o

27、設(shè)y為整型變量,a=6,am地址為E2000,b=l4,b的地址為E2001;執(zhí)行語

句b=&a;y=&a;后y的值為()。

A、E2000

B、E2001

C、6

D、14

標準答案:B

知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)reverse將數(shù)組b進行了逆

置,此時b[10]={10,9,8,7,6,5,4,3,2,1),后面此r語句的功能是將b中的后3

個數(shù)累加,并將結(jié)果放在s中,最后將s輸出,結(jié)果s=l+2+3=6。

28、下面不屬于軟件需求分析階段主要工作的是

A、需求變更申請

B、需求分析

C、需求評審

D、需求獲取

標準答案:A

知識點解析?:需求分析階段的工作可概括為4個方面:①需求獲取。②需求分

析。③編寫需求規(guī)格說明書。④需求審評。

29、以下選項中合法的常量是

A、999

B、2.7e

C、OXab

D、123E0.2

標準答案:c

知識點常析:A選項中含有非法的空格,所以錯誤。C語言中十六進制常量以O(shè)x開

頭,所以C正確,實型常量中e的前后必須均有數(shù)據(jù),且其后必須為整數(shù),所以B和D

錯誤。

30、若有定義和語句:inta,b;scanf(”%d,%d,",&a,&b);以下選項中的輸入數(shù)據(jù),不

能把值3賦給變量a、5賦給變量b的是

A、3,5,4

B、3,5

C、3,5,

D、3,5

標準答案:D

知識點解析:scanf()的格式控制串可以使用其他非空白字符,如本題中的逗號,但在

輸入時必須輸入這些字符,以保證匹配,所以在3和5之間必須輸入逗號,不能有其

他符號,才能保證a和b的正確賦值,所以選擇D。

31、有以下程序:#includemain(){intx,a=l,b=l;while⑴{scanf(''%d'',

&x);if(x>0){a*=x;break;}if(x<0){b*=x;continue;}printf(''%d,%d\n‘‘,

a,b);}}程序運行時輸入:一2—3045<回車>,則輸出結(jié)果是()。

A、1,6

B、1,61,6

C、一1,一6

D、一2,6

標準答案:B

知識點解析:循環(huán)體中的break語句將立即退出循環(huán),而continue將直接執(zhí)行下一

次循環(huán)。當輸入一2和一3時,執(zhí)行b*=x語句,且不會打印,結(jié)果是

3=6,當輸入。時,前兩個if語句并未執(zhí)行,直接打印出a,b的值,此時a=l,

b=6,當輸入4時執(zhí)行break語句,直接退出循環(huán)。

32、有以下程序:#include#defineN4voidfun(inta[][N]int,b[]){inti;for(i=0;i

<N;i++)b[i]=a[i][N-1-i]—a[i][i];)main()(intx[N][N]={{1,2,3,4).

{5,6,7,8},{9,10,11,12},{13,14,15,16}},y|N|,i;fun(x,y);

,,,,

for(i=0;iVN;i++)printf("%d,",y[i]);printf(\n);}程序運行后的輸出結(jié)

果是()。

A、一3,—i,1,3

B、一12,一3,0,0

C、3,1,—1,一3

D、一3,—3,—3,一3

標準答案:C

知識點解析:仔細分析子函數(shù)的功能是以數(shù)組反對角線卜的元素減去同行卜對角線

上的元素。

33、以下程序擬讀取一個學(xué)生結(jié)構(gòu)體中的人名,查找其年齡并輸出:#include

#include#includestructstu{charname[10];intage:):structstu

team[6]={**zhang!i,,18,''wangtao'',20,19,''zhaodong'',

18,,,,liuxiu,\19},*P;main(){inti,flag=0;p=(structstu

*)malloc(sizeof(structstu));gets(&p->name):for(i=0;i<6;i++)if((strcmp(p—

>name,team|i].name)==0)){pfintf(''%d\n”,team|i|.age);flag=l;}

if(fiag==0)printf(,,Nofind!\n");}程序有語法錯誤,出錯的是()。

A^pfintf(''%d\n",team[i].age)

B、p=(structstu*)malloc(sizeof(structstu))

C、if((strcmp(p->name,team[i].name)==0))

D、gets(&p->name);

標準答案:D

知識點解析:gets的參數(shù)應(yīng)該是成員變量name數(shù)組的首地址,而&p—>name是

首先獲取數(shù)組name的首地址,然后再對首地址取地址符,所以這是錯誤的,正確

參數(shù)應(yīng)該是:gets(p->name)o

34、下述語句中,在字符串si和s2相等時顯示“theyareEqua『的是()。

A、if(*sl==*s2)puts("theyareEqual'1);

BNif(!strcmp(sl*s2))puts("theyareEqual"):

C、if(sl==s2)puts("theyareEqual");

D、if(strcmp(sl,s2))puts("theyareEqual'1);

標準答案:B

知識點解析:字符串比較不能用“要用slrcmp(sl,s2)函數(shù),字符串si和s2

相等時返回值為0,故!strcmp(sl,s2)==l,條件成立執(zhí)型后面的語句,輸出they

arcEqualo

35、已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{char

number[100];intage;floatp[6];};定義一個數(shù)組:structab[10];假定文件己

正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。

A、fread(b,sizeof(structa),10,fp);

B、for(i=0;i<10;i++)fread(b[i],sizeof(structa),1,fp):

C、for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);

D、for(i=0;i<5;i+=2)ffead(b+i,sezeof(structa),2,fp);

標準答案:B

知識點解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用格式為:fread(buffcr,size,count,

fp),其中,“buffer”是一個指針,對于fread來說,它是讀入數(shù)據(jù)的存放地址。

“size”是要讀寫的字節(jié)數(shù);“count”是要進行讀寫多少個size字節(jié)的數(shù)據(jù)項;“fp”是

指文件型指針。選項B)中b[i]是一個數(shù)組,不是指針,需改為&b[i]。

36、以下選項中非法的字符常量是()。

A、

B>A0201,

C、'\xAA'

D、'O'

標準答案:B

知識點解析:選項A)表示的是反斜杠字符;一般可以用1?3位八進制數(shù)表示的字

符,而選項B)中“,\020廠”有4位八進制數(shù),所以錯誤;選項C)是用兩位十六進

制數(shù)AA表示的ASCH碼字符:選項D)表示的是字符0對應(yīng)的ASCII碼值。

37、下列敘述中正確的是()。

A、循環(huán)隊列中的元素個數(shù)隨隊頭指針與隊尾指針的變化而動態(tài)變化

B、循環(huán)隊列中的元素個數(shù)隨隊頭指針的變化而動態(tài)變化

C、循環(huán)隊列中的元素個數(shù)隨隊尾指針的變化而動態(tài)變化

D、以上說法都不對

標準答案:A

知識點解析:在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用隊頭指

針front指向隊頭元素的前一個位置。因此,從隊頭指針front指向的后一個位置直

到隊尾指針rear指向的位巴之間,所有的元素均為隊列中的元素。所以循環(huán)隊列

中的元素個數(shù)隨隊頭指針和隊尾指針的變化而變化。故A選項正確。

38、有以下程序:#include<stdio.h>intk=5:voidf(int*s){s=&k:)main()

{intm=3,*p=&m;f(P):print[("%d%d\n"m.*p);}程序的運行結(jié)果是

()。

A、33

B、55

C、35

D>53

標準答案:A

知識點解析?:考查函數(shù),專參。C語言中.數(shù)據(jù)只能從實參單向傳遞給形參,指針作

為函數(shù)參數(shù)時,形參仍然作為實參的副本被賦值。形參指針變量的指向改變不能影

響實參指針變量的指向,結(jié)果不變,答案選A。

二、程序填空題(本題共/題,每題1.0分,共/分0)

39、請補充fun函數(shù),該函數(shù)的功能是:按O到9統(tǒng)計一個字符串中的奇數(shù)數(shù)字

字符各自出現(xiàn)的次數(shù),結(jié)果保存在數(shù)組num中。注意:不能使用字符串庫函數(shù)。

例如,輸入*1123.456+0.909*bcM,結(jié)果為:1=2,3=1,5=1,7=0,9=2。注

意:請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的橫線上填入

所編寫的若干表達式或語句?!驹囶}源程序】#include#include#defineN20

fun(char*tt?intnum|]){inti,j;intbb|10];char*p=tt;for(i=0;i<10;i++)

{hum[i]=0;bb[i]=0;)while([11){if(*p>=,0,&&*p<=,9,)p++;)

for(i=l,j=0;i<10;i=i+2,j++)[3];|main(){charstr[N];intnum[10],k:

printf("\nPleaseenterastring:");gets(str);printf("\n*******Theoriginal

string*******\n");puts(str);fun(str,num);printf("\n*******Thenumberof

letter*******n");for(k=0:k<5;k++){printf("\nn);printfC%d=%d",

2*k+l,nun[k]);}printf("\rT);return;)

標準答案:[1]*p[2]bb[*p-,0,]++[3]num|j]=bb[i]

知識點解析:①先把數(shù)組num的各元素清0;②遍歷字符串,利用數(shù)字字符

在.ASCII碼中的連續(xù)規(guī)律,使用(數(shù)字字符」(T)作數(shù)組的下標,個數(shù)作數(shù)組元素的

值。填空【1】:此處月臨時指針p遍歷字符串sir,所以應(yīng)填*p。填空【2】:因

為10個數(shù)字字符在ASCII何中是連續(xù)的,將它們和字符U作差剛好用來作為數(shù)組

的下標。所以此處應(yīng)該填bb[*p「0']++。

三、程序修改題(本題共[題,每題7.0分,共7分0)

40、下列給定程序中函數(shù)fun的功能是:將m(lgm0O)個字符串連接起來,組成一

個新串,放入pt所指存儲區(qū)中。例如:把三個串“abc”、“CD”、“EF”連接起來,結(jié)

果是“abcCDEF”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改

動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<

stdio.h>#include<string.h>voidfun(charsir[][10],intin,char*pt){/

*********tound*********/TTntk,q.for(k=0;k<m;k++)

{q=strlen(sir[k]);for(i=Oji

標準答案:⑴intk,q,i;(2)pt[i]=str[k][i];

知識點解析:本題考查:C語言的書寫和語法性錯誤,這類錯誤比較簡單,只要編

譯程序,根據(jù)錯誤提示修改即可。(1)關(guān)鍵字書寫錯誤,定義整型變量的關(guān)鍵字應(yīng)

使用int,而非Int。(2)數(shù)組元素表示錯誤,表示二維數(shù)組元素,應(yīng)使用方括號將

行坐標和列坐標分別括起來,即str[k,i]應(yīng)改為:str[k"i]。

四、程序設(shè)計題(本題共I題,每題7.0分,共[分0)

41、下列程序定義了NxN的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)

fun(inta[][N]),該函數(shù)的功能是:將數(shù)組左下半三用元素中的值全部置成0。例如

a數(shù)組中的值為:19723X456則返I可主程序后a數(shù)組中的值應(yīng)為:0970080

00注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,

僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#include<conio.h

>#include<stdio.h>#include<stdlib.h>#defineN5voidfun(inta[][N]){]

voidmain(){inta|N][N],i,j;system("CLS");printf(H****Thearray****\n");

for(i=0;i<N;i++)/*產(chǎn)生一個隨機的5*5矩陣*/{for(j=0;j<N;j++)

{a[i][i]=rand()%10:printf("%4d",a[i][j]):}prirnff\nH);)fun(a);

printf("THERESULT\nH);for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%

n

4d”,a[i皿);printf("\n);}}

標準答案:voidfun(intanfNl){inti,j;for(i=0;i<N;i++)for(j=0;j<=i;j++)

a[i||j|=O;/*將數(shù)組左下半三角元素中的值全部置成0*/)

知識點解析:對于NxN二維數(shù)組,如何表示其左下半三角元素,可以通過以下語

句實現(xiàn)。for(i=0;i<n:i++)for(j=0:j<=i;j++)外層循環(huán)用來控制矩陣的行下

標,內(nèi)層循環(huán)控制矩陣的列下標。注意列下標的取值范圍,因為要表示下三角元

素,所以j的范圍是0?i。

國家二級(C語言)機試模擬試卷第2

一、選擇題(本題共40題,每題1.0分,共40分。)

1、有以下程序#inchidemain(){intb[3][3]={0,1,2,0,I,2,0,1,2),i,j,

t=0:for(*i=0;i<3;i++)for(j=2|j>=i;j-)t+=b[i][j]:printf("%d\n”,t);}程序運

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

A、4

B、3

C、8

D、9

標準答案:C

知識點解析:這道題主要考查的是二維數(shù)組的有關(guān)知識。在兩層for循環(huán)語句中,

累加上三角元素,所以程序執(zhí)行的過程為

t=b[0][0]+b[0][l]+b[0][2]+b[l][l]+b[l][2]+b[2][2]=8a

2、若有定義語句:char*sl=',GOODH,*s2=,'good";以下選項中,能夠輸出

“GOOD”語句是()。

A、if(strcmp(sl,s2)!=0)puts(s2);

B、if(strcmp(sl>s2)!=0)puts(sl);

C、if(strcmp(sl,s2)==l)puts(sl);

D、if(strcmp(s1,s2)==0)puts(sl);

標準答案:B

知識點解析:strcmp(sl,s2)是字符串比較函數(shù),比較方式是兩個字符串從左自右

逐個字符進行比價(按照ASCII碼值大小),以第一個不相同字符的大小作為比較結(jié)

果。由于大寫字母的ASCH碼值小于小寫字母的ASCII碼值,所以比較后的結(jié)果

為負值,故只有B選項符合題意。

3、下列不屬于軟件工程3個要素的是()。

A、工具

B、過程

C、方法

D、環(huán)境

標準答案:D

知識點解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程

項目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各

個環(huán)節(jié)的控制、管理。

4、關(guān)系表中的每一行記錄稱為一個()。

A、字段

B、元組

C、屬性

D、關(guān)鍵碼

標準答案:B

知識點解析:在關(guān)系表中,每一列稱為一個屬性,對應(yīng)表中的一個字段;每一行稱

為一個元組,對應(yīng)表中的一條記錄。

5、以下敘述錯誤的是()。

A、C語言區(qū)分大小寫

B、C程序中的一個變量,代表內(nèi)存中一個相應(yīng)的存儲單元,變量的值可以根據(jù)需

要隨時修改

C、整數(shù)和實數(shù)都能用C語言準確無誤地表示出來

D、在C程序中,正整數(shù)可以用十進制、八進制和十六進制的形式來表示

標準答案:C

知識點解析:本題涉及C語言最基本的3個概念:①C語言是區(qū)分大小寫的,q和

Q是兩個不同的變量;②變量的實質(zhì)就是在內(nèi)存中占據(jù)一定的存儲單元,存儲單

元里存放的是該變量的值,變量的值可以根據(jù)需要進行修改;③整數(shù)在允許的范

圍內(nèi)可以準確的表示出來,但不可能表示無限度的實數(shù)。正整數(shù)可用二進制、十進

制、八進制和十六進制表示。

6、下面的程序在編譯時產(chǎn)生錯誤,其出錯原因是()。#include<stdio.h>main()

{int1case;floatprintF:printf(”請輸入2個數(shù):");scanf("%d%F,&l_case,

&printF);printf("%d%f\n",l_case,printF);}

A、定義語句出錯,1case不能作為變量名

B、定義語句出錯,printF不能用作用戶自定義標識符

C、定義語句無錯,scanf不能作為輸入函數(shù)使用

D、定義語句無錯,printf不能輸出1case的值

標準答案:A

知識點解析:C語言變量名可由數(shù)字,字母,下劃線構(gòu)成,但首字符不能為數(shù)字。

7、有以下程序:#include<stdio.h>main(){intsum=0,x=5;do{sum+=x;}

while(!--x);printf("%d\n'\sum);}程序的運行結(jié)果是()。

A、0

B、5

C、14

D、15

標準答案:B

知識點解析:先執(zhí)行do中的表達式sum+=x,則sum=sum+x=O+5=5,再執(zhí)行while

中的表達式,結(jié)果為0,退出循環(huán),所以運行結(jié)果是5。

8、下列程序的運行結(jié)果是()。#include<stdio.h>voidsub(int*s,int*y){static

intm=4;*y=s[0]:m++:)voidmain(){inta[]={1,2,3,4,5},k;intx;

printf(''\n'');for(k=0:k<=4;k++){sub(a,&x);printf(''%d,,',x);}}

A、1,1,1,1,1,

B、1,2,3,4,5,

C、0,0,0,0,0,

D、4,4,4,4,4,

標準答案:A

知識點解析:本題中sub(int*s,inl*y)函數(shù)的參數(shù)是兩個指針型變量,在函數(shù)體內(nèi)將

數(shù)組s的第一個元素賦給y。主程序內(nèi),首先定義了一維數(shù)組并賦初值,然后通過

for循環(huán),5次調(diào)用sub(a,&x)函數(shù),每一次調(diào)用都是將數(shù)組a的第一個元素1賦給

x,并輸出。

9、uniondt{inta;charb:doublec;}data;以下敘述中錯誤的是

A、data的每個成員起始地址都相同

B、變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C、程序段:data.a=5;printf("%f\n",data,c):輸出結(jié)果為5.000000

D、data可以作為函數(shù)的實參

標準答案:C

知識點解析:輸出不會是5.00000的,因為單精度浮點數(shù)和雙精度浮點數(shù)在內(nèi)存

中的存儲形式不一樣。

10、uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是

A、data的每個成員起始地址都相同

B、變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C、程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000

D、data可以作為函數(shù)的實參

標準答案:C

知識點解析:輸出不會是5.00000的,因為單精度浮點數(shù)和雙精度浮點數(shù)在內(nèi)存

中的存儲形式不一樣。

II、在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的

階段是()。

A、需求分析

B、詳細設(shè)計

C、軟件設(shè)計

D、概要設(shè)計

標準答案:A

知識點解析:軟件生命周期的主要活動階段為:可行性研究和計劃制定、需求分

析、軟件設(shè)計、軟件實現(xiàn)、軟件測試、運行和維護。其中需求分析是對開發(fā)軟件提

出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能,編寫軟件規(guī)格

說明書及初步的用戶手冊,提交評審。

12、在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的

階段是()。

A、需求分析

B、詳細設(shè)計

C、軟件設(shè)計

D、概要設(shè)計

標準答案:A

知識點解析:軟件生命周期的主要活動階段為:可行性研究和計劃制定、需求分

析?、軟件設(shè)計、軟件實現(xiàn)、軟件測試、運行和維護。其中需求分析是對開發(fā)軟件提

出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能,編寫軟件規(guī)格

說明書及初步的用戶手冊,提交評審。

13、若實體A和B是一對多的聯(lián)系,實體B和c是一對一的聯(lián)系,則實體A和C

的聯(lián)系是()。

A、一對一

B、一對多

C、多對一

D、多對多

標準答案:B

知識點解析:A和B為一對多的聯(lián)系,則對于A中的每一個實體,B中有多個實

體與之聯(lián)系,而B與C為一對一聯(lián)系,則對于B中的每一個實體,C中至多有一

個實體與之聯(lián)系,則可奉出對于A中的每一個實體,C中有多個實體與之聯(lián)系,

所以為一對多聯(lián)系。

14、設(shè)有定義:structcomplex{inireal,unreal;datal={1,8},data2;則以下賦

值語句中錯誤的是()。

A、data2=(2,6);

B、data2=datal:

C^data2=real=datal.real;

D、data2.real=datal.unreal;

標準答案:A

知識點解析:A選項中可以在聲明變量的同事為data2賦值,但是data2=(2,6);

應(yīng)寫作data2={2,6}<>所以選擇A。

15、下列敘述中錯誤的是()。

A、計算機不能直接執(zhí)行用C語言編寫的源程序

B、C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件

C、后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進制文件

D、后綴為.obj和.ex已的二進制文件都可以直接運行

標準答案:D

知識點解析:C源程序經(jīng)過程序編譯之后生成一個后綴為obi”的二進制文件(稱

為目標文件),然后由稱為“連接程序”的軟件包文件與C語言提供的各種庫函數(shù)連

接起來生成一個后綴為".exe”的可運行文件。

16、以下選項中,能夠正確利用隨機函數(shù)rand(),產(chǎn)生一個英文字母的表:^式是

()。

A、rand()%2==0?rand()%5A,:rand()%'a'

B、mnd()%26+'A'”and()%26+'a'

C^rand()%26+'A'&&rand()%26+'a'

D、rand()%2==0?rand()%26+,A,:rand()%26+'a'

標準答案:D

知識點解析:rand()函數(shù)是產(chǎn)生隨機數(shù)的函數(shù),它可以生成0?RAND_MAx之間的

一個隨機數(shù),其中RAND_MAx是stdlib.h中定義的一個整數(shù)。通常如果我們需

要隨機0?N-1之間的一個隨機數(shù),需要使用rand。的結(jié)果對N求模即可。選項A

中,rand()%2只有兩個值?;?,所以當rand()%2的結(jié)果為。時,整個表達式的值

是rand()%,A:這里,A,要轉(zhuǎn)換成ASCH碼值65,所以結(jié)果為。?64之間的一個隨

機數(shù),當rand()%2的結(jié)果為1時,整個表達式的值是rand。%3的ASCII碼

值為97,所以結(jié)果是0?96之間的一個隨機數(shù),可見選項A錯誤;邏輯或運算符||

或邏輯與運算符&&的結(jié)果都只能是0或非0,所以選項B、C也是錯誤的;選項

D中,如果rand()%2的結(jié)果為0,那么整個表達式的值為mnd()%26+,A10-25

之間任一個數(shù)與'A,的和都是一個大寫字母;如果rand()%2的值為1,整個表達式

的值為rand()%26+W,0?25之間任一個數(shù)與3的和都是一個小寫字母,所以選

項D正確;本題答案為D。

17、數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的()。

A、存儲結(jié)構(gòu)

B、物理結(jié)構(gòu)

C、邏輯結(jié)構(gòu)

D、線性結(jié)構(gòu)

標準答案:C

知識點解析:數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)元素之間的邏輯關(guān)系,與使用的計算機

無關(guān)。

18、兩個或兩個以上的模塊之間關(guān)聯(lián)的緊密程度稱為()。

A、耦合度

B、內(nèi)聚度

「、復(fù):雜度

D、連接度

標準答案:A

知識點解析:耦合度是模塊間互相連接的緊密程度的度量;內(nèi)聚度是一個模塊內(nèi)部

各個元素間彼此結(jié)合的緊密程度的度量。

19、對于現(xiàn)實世界中事物的特征,在實體-聯(lián)系模型中使用()。

A、屬性描述

B、關(guān)鍵字描述

C、二維表格描述

D、實體描述

標準答案:A

知識點解析:在實體一聯(lián)系模型中,用屬性來描述現(xiàn)實世界中對象的屬性所表示的

對象的性質(zhì)、特征和行為。

20、算術(shù)運算符和圓括號有不同的運算優(yōu)先級,對于表達式:a+b+c*(d+e),關(guān)于

執(zhí)行順序,以下說法正確的是()。

A、先執(zhí)行(d+e)得己,再執(zhí)行c*己得r3,再執(zhí)行a+b得rl,最后執(zhí)行rl+r3得表

達式最后結(jié)果

B、先執(zhí)行a+b得rL再執(zhí)行(d+e)得r2,再執(zhí)行c*r2得>3,最后執(zhí)行rl+r3得表達

式最后結(jié)果

C、先執(zhí)行(d+e)得r2,再執(zhí)行c木己得「3,再執(zhí)行b+r3得14,最后執(zhí)行a+14得

表達式最后結(jié)果

D、先執(zhí)行a+b得rl,再執(zhí)行rl+c得r5,再執(zhí)行(d+e)得r2,最后執(zhí)行r5*r2得表

達式最后結(jié)果

標準答案:B

知識點解析:題意表達式中,圓括號的優(yōu)先級最高,乘法運算符次之,加法運算符

最低,同優(yōu)先級中,加法運算符的結(jié)合性從左向右結(jié)合,所以題意中的表達式執(zhí)行

順序是:先執(zhí)行a+b得rl,再執(zhí)行(d+e)得「2,再執(zhí)行c*己得r3,最后執(zhí)行rl+r3

得表達式最后結(jié)果,本題答案為B。

21、若a、b、C、d都是int型變量且都已經(jīng)正確賦初值,則以下不正確的賦值語

句是()。

A、a+d:

B、a++;

C、a=b=c=d=100;

D、a=(b=3)+(d=5);

標準答案:A

知識點解析?:C語言規(guī)定,賦值號的右邊可以是一個賦值表達式,因此選項C)、

選項D)正確;在選項B)中,a++是一個自加1的表達式,a被重新賦值,因此它是

一個合法的賦值表達式;選項A)中,a+d是一個算術(shù)表達式,雖然最后有一個分

號,但這個表達式中沒有賦值操作,因此它不是一條賦值語句。

22、下列隊列的描述中,正確的是()。

A、隊列屬于非線性表

B、隊列在隊尾刪除數(shù)據(jù)

C、隊列按“先進后出”進行數(shù)據(jù)操作

D、隊列按“先進先出”進行數(shù)據(jù)操作

標準答案:D

知識點解析:隊列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端

叫做隊頭,允許插入的一端叫做隊尾。隊列的操作數(shù)是依據(jù)先進先出的原則進行

的。因此隊列亦稱作先進先出的線性表,或后進后出的線性表。

23、一間宿舍可住多個學(xué)生,則實體宿舍和學(xué)生之間的聯(lián)系是()。

A、一對一

B、一對多

C、多對一

D、多對多

標準答案:B

知識點解析:實體間的聯(lián)系有如下情況:①一對一(1:1);②一對多(1:m);③

多對多(m:n)。本題中,一間宿舍對應(yīng)多個學(xué)生,而一個學(xué)生能住在一間宿舍,那

么宿舍和學(xué)生之間的聯(lián)系是一對多,學(xué)生和宿舍的聯(lián)系是多對一。

24、若有以下程序:#includemain。{ints口2]={1,2,3,4,4,3,2,1,1,1,

2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=l;i<5;i++)printf("%

d",c[i]);printfCAn");}則程序的運行結(jié)果是()0

A、2344

B、4332

C、1234

D、1123

標準答案:B

知識點解析:在for(i=0;iV12;i++)c[s[i]]++;語句中,數(shù)組元素s[i]的值作為數(shù)

組c的下標,當退出循環(huán)時,數(shù)組c的4個元素的值分別為4、3、3、2o因此B

選項正確。

25、以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()“

A、在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的

B、結(jié)構(gòu)化程序使用got。語句會很便捷

C、一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成

D、由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題

標準答案:A

知識點解析:暫無解析

26>有以下程序#include<stdio.h>main(){inta=l,b=2;for(;a<8;a++){b+=a;

a+=2;)printf("%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是

A、9,18

B、8/1

C、7,11

D、10,14

標準答案:D

知識點解析:第一次循環(huán)a的值為1,滿足條件,執(zhí)行b+=a,與a+=2,則b的值變?yōu)?,a

的值變?yōu)?,執(zhí)行a++,a的值為4,滿足條件進入第二次循環(huán),執(zhí)行完循環(huán)體后b的值

為7,a的值為6,執(zhí)行a++,a的值為7,滿足條件進入第三次循環(huán),執(zhí)行完循環(huán)體后b

的值為14,a的值為9,執(zhí)行a++,a的值變?yōu)?0,所以選擇D選項。

27、設(shè)棧的存儲空間為S(l:50),初始狀態(tài)為top=51。現(xiàn)經(jīng)過一系列正常的入棧

與退棧操作后,top=20,則棧中的元素個數(shù)為()。

A、31

B、30

C、21

D、20

標準答案:A

知識點解析:棧是一種特殊的線性表,它所有的插入與刪除都限定在表的同一端進

行。入棧運算即在棧頂位置插入一個新元素,退棧運算即取出棧頂元素賦予指定變

量。棧為空時,棧頂指針top=0,經(jīng)過入棧和退棧運算,指針始終指向棧頂元素。

初始狀態(tài)為lop=51,當top=20時,元素依次存儲在單元20:50中,個數(shù)為50—

19=31,故A選項正確。

28、在最壞情況下,堆排序的時間復(fù)雜度是()。

A、O(lgO2n)

B、O(nlog2n)

C、O(n2)

D、O(nh5)

標準答案:B

知識點解析:若有n個元素的序列,將元素按順序組成一棵完全二叉樹,當且僅當

滿足下列條件時稱為堆,大根堆是指所有結(jié)點的值大于或等于左右子結(jié)點的值;小

根堆是指所有結(jié)點的值小于或等于左右子結(jié)點的侑。在調(diào)整建堆的過程中,總是將

根結(jié)點值與左、右子樹的根結(jié)點進行比較,若不滿足堆的條件,則將左、右子樹根

結(jié)點值中的大者與根結(jié)點值進行交換。堆排序最壞情況需要O(Mog2n)次比較,所

以時間復(fù)雜度是O(nlog2n),B選項正確。

29、若有以下程序#include<stdio.h>main(){intc;c=10A5;printf(,'%d\nM,c);}則

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

A、5

B、15

C、10000

D、105

標準答案:B

知識點解析:本題考查位運算中按位異或運算符,異或運算只有在兩個比較的位不

同時其結(jié)果是1,否則結(jié)果為0,10用二進制表示為00001010,5用二進制表示為

00000101,異或后00001111,即15,選項B正確。

30、若有以下程序#include<stdio.h>main(){charw|20]="dogs",

a[5][10]=("abcdef',"ghijkl","mnopq","rstuv","wxyz.");inti,j,k;for(i=0;w|i];i++)

{for(j=0;j<5;j++){for(k=0;a[j][k];k++)if(w[i]==a[j][k])break;if(w[i]==a[j][k])

break;)prinif("%d,%d,”,j,k);}(則程序的輸出結(jié)果是

A、0,322,1,0,3/,

B、1,4,3,321,4,2,

C、5,6,5,6,5,6,5,6,

D、676,7,6,7,6,7,

標準答案:A

知識點解析:本題考查二維字符數(shù)組的運用,題目中首先定義了一個一維字符數(shù)

組,從三層for循環(huán)可以看出要找的是w數(shù)組中每個字符在二維數(shù)組中的位置,比

如d字母,在a數(shù)組中就是0,3其他字符類似,所以本題答案為A。

31、下列關(guān)于二叉樹的敘述中,正確的是()。

A、葉子節(jié)點總是比度為2的節(jié)點多1個

B、葉子節(jié)點總是比度為2的節(jié)點多2個

C、葉子節(jié)點數(shù)是度為2的節(jié)點數(shù)的兩倍

D、度為2的節(jié)點數(shù)是度為1的節(jié)點數(shù)的兩倍

標準答案:A

知識點露析:二叉樹中的葉子節(jié)點總比度為2的節(jié)點多1個。

32、關(guān)于C語言語句的敘述中正確的是()。

A、C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

B、C語言中的變量可以在使用之前的任何位置進行定義

C、在C語言算術(shù)表達式的書寫中,運算符兩側(cè)的運算數(shù)類型必須一致

D、C語言中的注釋不可以夾在變量名或關(guān)鍵字的口間

標準答案:D

知識點解析:C語言的常量中不能夾帶空格,C語言的變量必須是先定義才能使

用,C語言的表達式兩邊可以是不同的類型,在運算時會進行強制轉(zhuǎn)換成數(shù)度較高

的類型。

33、關(guān)于程序設(shè)計結(jié)構(gòu)的敘述中錯誤的是()。

A、結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法

B、結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C、C語言是一種結(jié)構(gòu)化程序設(shè)計語言

D、使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題

標準答案:D

知識點解析:順序、分支和循環(huán)三種基本結(jié)構(gòu)不僅可以解決簡單問題,也可以解決

非常復(fù)雜的問題,所以D錯誤,其他選項敘述正確。

34、下列合法的標識符是()。

A、123

B、#256

C、a.55

D、abhjl_2_3

標準答案:D

知識點解析:C語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個

字符必須是字母或者下劃線。不允許出現(xiàn)在標識符中。

35、下列敘述中正確的是

A、鏈表結(jié)點中具有兩個指針域的數(shù)據(jù)結(jié)構(gòu)可以是線性結(jié)構(gòu),也可以是非線性結(jié)構(gòu)

B、線性表的鏈式存儲結(jié)構(gòu)中,每個結(jié)點必須有指向前件和指向后件的兩個指纖

C、線性表的鏈式存儲結(jié)構(gòu)中,每個結(jié)點只能有一個指向后件的指針

D、線性表的鏈式存儲結(jié)構(gòu)中,葉子結(jié)點的指針只能是空

標準答案:A

知識點解析:雙向鏈表與樹形結(jié)構(gòu)的節(jié)點均可以包含兩個指針域,但前者為線性結(jié)

構(gòu)后者為非線性結(jié)構(gòu),A選項正確。雙向鏈表含有指向前件和指向后件的兩個指

針,C選項錯誤。線性鏈表,就是指線性表的鏈式存儲結(jié)構(gòu)。由于這種鏈表中,每

個節(jié)點只有一個指針域,故又稱為單鏈表,B選項錯誤。二叉樹為非線結(jié)構(gòu),葉子

節(jié)點沒有后件但是可以有指向前件的指針,D選項錯?誤。

36、有以下程序段charstr[4][12]={"aaa",,,bbb",',ccc";'ddd"},*p[4];inti;for(i=0;i

<4;i++)p[i]=str[i];以下選項中不能正確引用字符串的是

A、*p|3]

B、p[3]

C、str[2]

D、*p

標準答案:A

知識點解析:*p[3]p[3][0]是一個字符,不是字符串,選項A錯誤。p[3]和sir⑵和

*p分別代表了ddd,ccc,aaa0答案為A選項。

37、若有定義:doublea=22;inti=0,k=18;,則不符合C語言規(guī)定的賦值語

句是()

A、i=(a+k)<=(i+k):

B、i=a%ll;

C^a=a++,i++

D、i=!a;

標準答案:B

知識點解析:取模運算符“%”,二元運算符,具有左結(jié)合性,參與運算的量均為整

型。選項B中的a變量是double實型,所以B)不符合規(guī)定。

38^有以下程序#include<stdio.h>#include<string.h>structcomputer{char

CPU[10];);main(){structcomput

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論