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

下載本文檔

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

文檔簡介

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

一、公共基礎(chǔ)選擇題(本題共10題,每題7.0分,共

10分。)

1、程序流程圖中帶有箭頭的線段表示的是

A、圖元關(guān)系

B、數(shù)據(jù)流

C、控制流

D、調(diào)用關(guān)系

標(biāo)準(zhǔn)答案:C

知識點解析:程序流程圖是人們對解決問題的方法、思路或算法的一種圖形方式

的描述。其中,圖框表示各種操作的類型,圖框中的文字和符號表示操作的內(nèi)容;

流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流:帶箭頭的

線段在程序流程圖中表示控制流。題中給出的選項中,在圖元之間用帶有箭頭的線

段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。

2、數(shù)據(jù)流圖用于抽象描述一下軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)

成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是。

A、控制流

B、加工

C、數(shù)據(jù)存儲

D、源和潭

標(biāo)準(zhǔn)答案:A

知識點解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移

動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)

源)、源和潭。

3、設(shè)有以下定義:inta=0;doubleb=1.25;char#defined2則下面語句中錯誤

的是o

A^a++:

B、b++;

C、C++

D、d++

標(biāo)準(zhǔn)答案:D

知識點解析:選項D中d是符號常量,不能進(jìn)行++的運算。

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

A^元組

B、字段

C、屬性

D、碼

標(biāo)準(zhǔn)答案:A

知識點解析:關(guān)系表中,每一行稱為一個元組,對應(yīng)表中的一條記錄;每一列稱為一個

屬性,對應(yīng)表中的一個字段;在二維表中凡能唯一標(biāo)識元組的最小屬性集稱為該表的

鍵或碼。

5、用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為

A、關(guān)系模型

B、層次模型

C、網(wǎng)狀模型

D、數(shù)據(jù)模型

標(biāo)準(zhǔn)答案:2

知識點解析:關(guān)系模型以二維表表示實體之間的聯(lián)系,網(wǎng)狀模型以一個不加任何條

件限制的無向圖表示實體之間的聯(lián)系。層次模型的基本結(jié)構(gòu)為樹形結(jié)構(gòu).而D選

項數(shù)據(jù)模型包括關(guān)系模型,網(wǎng)狀模型和層次模型。

6、計算機(jī)軟件一般包括應(yīng)用軟件和—o

A、字處理軟件

B、系統(tǒng)軟件

C、服務(wù)性軟件

D、操作系統(tǒng)

標(biāo)準(zhǔn)答案:2

知識點解析:暫無解析

7、將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成()

A、屬性

B、關(guān)系

C、鍵

D、域

標(biāo)準(zhǔn)答案:2

知識點解析:暫無解析

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

A、線性鏈表中的各元素在存儲空間中的位置必須是連續(xù)的

B、線性鏈表中的表頭元素一定存儲在其他元素的前面

C、線性鏈表中的各元素在存儲空間中的位國不一定是連續(xù)的,但表頭元素一定存

儲在其他元素的前面

D、線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順

序也是任意的

標(biāo)準(zhǔn)答案:8

知識點解析:在線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中,各數(shù)據(jù)結(jié)點的存儲位置不連續(xù),且各結(jié)

點在存儲空間中的位置關(guān)系與邏輯關(guān)系也不一致。在線性鏈表中,各數(shù)據(jù)元素之間

的前后關(guān)系是由各結(jié)點的指針域來指示的。所以,選項D正確。

9、線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種

A、隨機(jī)結(jié)構(gòu)

B、順序結(jié)構(gòu)

C、索引結(jié)構(gòu)

D、散列結(jié)構(gòu)

標(biāo)準(zhǔn)答案:2

知識點解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)中的每一個存儲結(jié)點不僅含有一個數(shù)據(jù)元素,

還包括指針,每一個指升指向一個與木結(jié)點有邏輯關(guān)系的結(jié)點。此類存儲方式屬于

順序存儲。

10、在Windows環(huán)境下,下列敘述中正確的是

A、在“開始“菜單中可以增加項目,也可以刪除項目

B、在“開始”菜單中不能增加項目,也不能刪除項目

C、在“開始”菜單中可以增加項目,但不能刪除項目

D、在“開始”菜單中不能增加項目,但可以刪除項目

標(biāo)準(zhǔn)答案:A

知識點解析:在“開始”菜單中右擊某項子菜單,從快捷菜單中選擇"刪除”命令即可

刪除某項子菜單,還可以通過“開始”菜單的“設(shè)置”命令向“開始”菜單中添加項子菜

單。

二、選擇題(1分)(本題共〃題,每題7.0分,共〃

分。)

11、當(dāng)變量C的值不為2、4、6時,值也為“真”的表達(dá)式是

A、(c==2)||(c==4)||(c==6)

B、(c>=2&&c<=6)||(c:=3)||(c!=5)

C、(c>=2&&c<=6)&&!(c%2)

D、(c>=2&&c<=6)&&(c%2!=1)

標(biāo)準(zhǔn)答案:B

知識點解析:滿足表達(dá)13式(c>=2&&cV=6)的整型變量c的值是2,3,4,5,

6o當(dāng)變量c的值不為2,4,6時,其值只能為3或5,所以表達(dá)式c!=3和c!=5中

至少有一個為真,即不論c為何值,表達(dá)式B)都為“真”。

12、有以卜程序fun(inlx){intp;if(x==OIIx==l)retum(3);p=x-fun(x-2);return

p:)main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是

A、7

B、3

C、2

D、0

標(biāo)準(zhǔn)答案:C

知識點解析:因為fun(intx)是一個遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過三次遞歸

調(diào)用,其過程可以描述為“加立7)=7-彘11(5)=7?(5加11(3))=7?(5?(3加11(1)))=7?(5?(3-

3))=7-5=2",所以最后的輸出結(jié)果為2。

13、C語言中允許用外部說明來指定變量、函數(shù)和其他標(biāo)識符的特征,這里所說的

外部指的是()。

A、冠以關(guān)鍵字extern

B、位置在函數(shù)體外部

C、作用范圍是全程的

D、位置在函數(shù)的外部

標(biāo)準(zhǔn)答案:D

知識點解析:C語言中允許用位置在函數(shù)外部的說明來指定變量、函數(shù)和其他標(biāo)識

符的特征。

14、軟件是指()。

A、程序

B、程序和文檔

C、算法加數(shù)據(jù)結(jié)構(gòu)

D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合

標(biāo)準(zhǔn)答案:D

知識點解析:計算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合.

15、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)

A、getc()

B、gets()

C、getchar()

D、scanf()

標(biāo)準(zhǔn)答案:B

知識點解析:canf()語句用“空格”區(qū)別不同的字符串;getc()與getchar()語句不能用于

字符串的讀入。

16、以下能正確定義字符串的語句是()。

A、charstr[]={,\064,};

B、charstr="\x43n;

C^charstr=";

D、charstr||="\On;

標(biāo)準(zhǔn)答案:8

知識點解析:C語言中,字符串是用一對雙引號括起來的字符序列,并用字符型數(shù)

組來存放,故選項A)、C)不是字符中;選項B)定義的是一個字符變量sir,不能用

來存放字符串,所以不正確。

17、用C言編寫的代碼程序()。

A、可立即執(zhí)行

B、是個源程序

C、經(jīng)過編譯即可執(zhí)行

D、經(jīng)過編譯解釋即可執(zhí)行

標(biāo)準(zhǔn)答案:2

知識點解析:C語言-一種高級語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,

生成一個后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程

序”(Link)的軟件,把此.obj文件與C語言提供的各種庫函數(shù)連接在一起,生成一個

后綴.cxc的可執(zhí)行文件。顯然C語言不能立即執(zhí)行,故選項A錯誤;根據(jù)以上定

義,選項C和選項D錯誤,所以,4個選項中選項B符合題意。

18、以下合法的賦值語勺是0

A、X=Y=100

B、D-;

C、X+Y

D、C=int(A+B)

標(biāo)準(zhǔn)答案:2

知識點解析:本題中的答案A與D都缺少“;”,而答案C中,表達(dá)式是不能獨立

成為語句的,答案B使用了C語言的自減運算符它就相當(dāng)于D二D-I,所以答案B

為一賦值語句。

19、用scanf(”%d,%d",&a,&b)輸入數(shù)據(jù)時,下面輸入法中,正確的是

A、123,4

B、1234

C、123;4

D、123:4

標(biāo)準(zhǔn)答案:1

知識點解析:暫無解析

20、下列正確的實型常量是()。

A、E3.4

B、-12345

C、2.2e0.8

D、4

標(biāo)準(zhǔn)答案:2

知識點0析:實型常量有兩種書寫形式。①小數(shù)形式,它由符號、整數(shù)部分、小

數(shù)點及小數(shù)部分組成:②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形

式為:十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。注:e或E后面的指數(shù)必須是整

數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項A)中E的前面沒有數(shù)字,因

此錯誤。選項C)中0.8不是整數(shù),因此錯誤。選項D)中4是整型常量而不是實型

常量。

21、有以下程序#inckidemain。{intx=011:printf(i<%d\n,\++x):}程序運行后

的輸出結(jié)果是

A、12

B、11

C、10

D、9

標(biāo)準(zhǔn)答案:C

知識點解析:變量x初始化值為Oil.Oil為八進(jìn)制數(shù).代表十進(jìn)制的9,執(zhí)行

printf函數(shù)后,x先加1.然后按十進(jìn)制輸出,即程序輸出結(jié)果為10。

三、選擇題(2分)(本題共20題,每題1.0分,共20

分。)

22、下列程序的輸出結(jié)果是()。point(char*pt);main(){charb[4]=

},*pt=b;pt=point(pt);printf(M%c\n',,*pt);}point(char*p){p+=3;return

P;}

A、s

B、c

C、f

D、a

標(biāo)準(zhǔn)答案:C

知識點解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當(dāng)

執(zhí)行函數(shù)point時,剛開始指針p指向“a”,經(jīng)過+3操作后,指針p指向“『所以最

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

23、有以下程序:#inckide<stdio.h>voidfun(char*c,intD){*c=*c+l;d+=l;

printf(H%c,%c,',*c,D;}main(){chara=,F,,b=T;fun(&b,A);printf(”%c,%c\n”,a,B):}程

序的輸出結(jié)果為()。

g,GF,g

B、g,FF,g

C、G,fF,G

D、f,gf,g

標(biāo)準(zhǔn)答案:A

知識點解析:暫無解析

24、若運行以下程序時,從鍵盤輸入ADescriptorVCR>(VCR>表示回車),則下

面程序的運行結(jié)果是(卜#include<stdio.h>main。{chare;intv0=l,vl=0,v2=0;

do{switch(c=gctchar()){casc,a,:casc,A,:casc,c,:case,E,:casc'i':cascT:

case,o,:case,O,:casc,u,:casc,U,:vl+=l:default:vO+=1;v2+=1;}}whilc(c!=,\n,);

printf("vO=%d,v1=%d,v2=%d\n",vO,v1,v2);)

A、v0=7,vl=4,v2=7

B、v0=8,vl=4,v2=8

C、vO-ll,vl-4,v2-l1

D、v0=13,vl=4,v2=12

標(biāo)準(zhǔn)答案:D

知識點解析:本題考查的是swilch語句的應(yīng)用。分析程序,do?while語句是先執(zhí)行

do后面的語句再判斷是否符合while的條件。V2+=l:語句無論讀入的是什么字母

(包括回車符),此語句都要執(zhí)行,語句default:vO+=l;亦是如此;而語句

case,U,:vl+=l;只有在讀入的字母

是3、A、Q、E、T、T、Q、。、3、U時才會執(zhí)行。

25、下面的for語句的循環(huán)次數(shù)為()。

A、是無限循環(huán)

B、循環(huán)次數(shù)不定

C、最多執(zhí)行6次

D、最多執(zhí)行5次

標(biāo)準(zhǔn)答案:D

知識點解析:暫無解析

26、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)

A、getc()

B>gets()

C、getchar()

D、scanf()

標(biāo)準(zhǔn)答案:B

知識點解析:scanf()語句肘,空格”區(qū)別不同的字符串;geic()與gelchar。語句不能

用于字符串的讀入。

27、下歹ij程序的輸出結(jié)果為main。{unionu{char*name;intage;intincome:)s

="WANGLIONG";s.age=28:s.income=1000;printf("%d\n",s.age);}

A、28

B、1000

C、0

D^不確定

標(biāo)準(zhǔn)答案:B

知識點解析:本題對共用體的使用進(jìn)行了考查。由于共用體所有成員共同占據(jù)一

段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因為

s.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據(jù)一段

存儲空間,所以age的值也為lOOOo

28、有以下程序#inckidevoidfun(int*s,intnl,intn2){inti=n1;j=n2;while(i

A、0987654321

B、4321098765

C、5678901234

D、0987651234

標(biāo)準(zhǔn)答案:C

知識點解析:函數(shù)fun(int*s,intnl,intn2)的功能是對數(shù)組s中的元素進(jìn)行首尾互相

調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組多12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)

行fun?4,9),數(shù)組,12]={4,3,2,1,0,9,876,5};再執(zhí)行fun(a,0,9)后,數(shù)組

a[12]={5,6,7,8,9,0,l,2,3,4)o

29、有如下程序main(){intn=9;while(n>6){n—;printf("%d",n);)}該程序的輸出結(jié)

果是

A、987

B、876

C、8765

D、9876

標(biāo)準(zhǔn)答案:B

知識點解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪

一項是正確的。第一次進(jìn)入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n-運算,n的值變?yōu)?/p>

8,所以第一次的輸出值是8,由此可以排除選項A)和D)o由循環(huán)條件n>6可以知道,

最后一次循環(huán)開始時,n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以

排除選項C)c

30、以下敘述錯誤的是。

A、共用體的所有變量都有一個相同的地址

B、結(jié)構(gòu)體變量可以作為共有用體中的成員

C、共用體的成員一個時刻只有一個生效

D、耍傳遞共用體的成員通常采用函數(shù)

標(biāo)準(zhǔn)答案:C

知識點解析:暫無解析

31、定義a為整型變量,且設(shè)其初值為10,則表:iA式a+二a-=a*=a的值為。

A、10

B、0

C、100

D、-10

標(biāo)準(zhǔn)答案:B

知識點解析:暫無解析

32、有以下程序#includcmain(){charp[]={,a'Jb',d},q[10]={亂'b',*};

printf(H%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是

A、在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3

B、由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定,但q數(shù)組中字符串長度為3

C、由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定,但p數(shù)組中字符串長度為3

D、由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定

標(biāo)準(zhǔn)答案:A

知識點解析:在給p和q數(shù)組賦初值時,系統(tǒng)會自動添加字符串結(jié)束符,從題目中可

以看出數(shù)組p和q都有3個字符,所以長度均為3o

33、以下程序調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是

()o#include<stdio.h>main(){int*p,*q,a,b;p=&a;printf("inputa:");

scanf(H%d';*p);)

A、*p表示的是指針變量p的地址

B、*p表示的是變量a的值,而不是變量a的地址

C、*p表示的是指針變量p的值

D、*p只能用來說明p是一個指針變量

標(biāo)準(zhǔn)答案:2

知識點解析:本題經(jīng)過定義語句和賦值后,p表示的是變量a的地址,*p表示的是

變量a的值。

34、下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是o

A、rnax(intx,inty,int*z){*z=x>y?x:y;)z=x>y?x:y;

B、intmax(intx,y){intz;returnz;}

C、max(intx,inty){intz;z=x>y?x:y;return(z);)

D^intmax(intx,inty){returnx>y?x:y;)

標(biāo)準(zhǔn)答案:2'

知識點解析:在C語言中,不可以在函數(shù)的參數(shù)聲明列表中用一個類型名指定多

個參數(shù)。故選項B是錯誤的。其正確的表示方式應(yīng)為:intmax(intx,inty){....}

或intmax(x,y)intx,y;{....}

35、若已建立如下圖所示的單向鏈表結(jié)構(gòu):

P

一???一|E||—[F]―

s-1在該鏈表結(jié)構(gòu)中,指針p、s分

別指向圖中所示結(jié)點,則不能將S所指的結(jié)點插入到鏈表末尾仍構(gòu)成單向鏈表的語

句組是。

A、p=p->next;s->nexl=p;p->next二s;

B、p=p->next;s->next=p->next;p->next=s;

C、s->next=NULL;p=p->next;p->next=s;

D、p=(*p).next;(*s).nexl=(*p).next;(*p).nexl=s;

標(biāo)準(zhǔn)答案:1

知識點解析:在答案A中:p=p->next;s->next=p:p->next=s;s的確已插到了

鏈表的末尾,但它的nexl卻并沒有為NULL,而是指向了它的直接前趨p,這樣它

就不是一個單向鏈表(單向鏈表最后一個結(jié)點的next指針一定是一個NULL)o

36、以下程序的輸出結(jié)果是()main(){inta=-l,b=4,k;k=(++a<=0)&<&!(b-<=0);

printf("%d%d%d\nM,k,a,B);}

A、104

B、004

C、103

D、003

標(biāo)準(zhǔn)答案:4

知識點解析:暫無解析

37、有如下程序main。{floatx=2.0,y:if(x<C0.0)y=0.0;elseif(x<10.0)y=10/x;

elsey=1.0;printf("%f\n",y):}該程序輸出結(jié)果是。

A、0

B、0.25

C、0.5

D、1

標(biāo)準(zhǔn)答案:4

知識點解析:本題考查的是if,……else語句的使用。x=2.0,符合第二個IF語句的

條件xV10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。

38、有以下程序:main(){ints=0,a=l,n;scanf("%d",&n);do{s+=l;a=a-2;)while

(a!=n);printf("%d\n”,s);}若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是

()o

A、-1

B、-3

C、-5

D、0

標(biāo)準(zhǔn)答案:2

知識點解析:根據(jù)題目要求,最后要使輸出的s值為2,在程序中改變s的值的語

句只有循環(huán)體中的s+=l:語句,向初始s的值為0.顯然要使s的值變?yōu)?,該語

句必須執(zhí)行兩次,即dowhilc循環(huán)中的循環(huán)體要執(zhí)行兩次,而在do-whilc中,首

先不執(zhí)行條件而執(zhí)行do后面的循環(huán)體語句,然后再判斷while循環(huán)條件。所以不

管循環(huán)判斷條件是否為真s+=l;語句至少執(zhí)行一次,根據(jù)分析,只需要while后面

括號的循環(huán)判斷表達(dá)式的值為真成立一次且只能為真一次,將4個選項中的內(nèi)容依

次代入該程序中不難得到只有n=3剛好使循環(huán)判斷條件a!=n為真一次。故4個選

項中選項B符合題意。

39、以下敘述正確的是

A、可以把define和if定義為用戶標(biāo)識符

B、可以把define定義為用戶標(biāo)識符,但不能把if定義為用戶標(biāo)識符

C、可以把if定義為用戶標(biāo)識符,但不能把define定義為用戶標(biāo)識符

D、define和if都不能定義為用戶標(biāo)識符

標(biāo)準(zhǔn)答案:2

知識點解析:C語言中的保留字,而define不是保留字。用戶標(biāo)識符不允許使用保

留字。

40、有下列程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k—;break;

dcfault:n=O;k-;case2:case4;n+=2;k—;break;}printf("%dH,n);}whilc(k>0&&n<

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

A、235

B、235

C、2356

D、2356

標(biāo)準(zhǔn)答案:2

知識點解析:因為變量的初始值分別為k=5,n=0,所以程序第I次進(jìn)入循環(huán)時,執(zhí)

行default語句,輸出0,k減1;這時n=0,k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case

4:這個分支,結(jié)果是n=2,k=3,打印出2;這時n=2,k=3,程序進(jìn)行第3次循環(huán),

執(zhí)行case3:這個分支,結(jié)果是n=3,k=2,打印出3;這時n=3,k=2,程序然后進(jìn)行

第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5,k=l,打印出5,這時因為

n=5不滿足nV5的循環(huán)條件,因此退出循環(huán),程序運行結(jié)束。所以在屏幕上擰印

出的結(jié)果是0235。

41、有以下程序#include<stdio.h>#include<

string.h>voidfun(charn){chart;

intij;for(i=0;i<n-l;i++)for0—i+l;j<

n;j++)/*比較字符串的首字符大小,并交換字符串的首字符*/

if(s[i][O]>sUJlOJ){t=sliJIO];sliJIO]=sljJIO];s[j]⑼=

t;)}main(){charss[5][10|={"bcc'\"bbccn,"xy'\

"aaaacc","aabcc");fun(ss,5);printf(H%s,%s\n",

ss[0],ss[4]);)程序的運行結(jié)果是

A、xy,aaaacc

B、aaaacc,xy

C^xcc,aabcc

D、acc,xabcc

標(biāo)準(zhǔn)答案:D

知識點解析:在函數(shù)fun()中有一個兩層嵌套的for循環(huán),外循環(huán)變量i從0遞增到

n-2,內(nèi)循環(huán)變量i從i+1循環(huán)遞增到n-1,這是選攔排序算法的標(biāo)準(zhǔn)結(jié)構(gòu)。循環(huán)體

中因為逆序條件為s|j][Or\所以實現(xiàn)的是升序排序。由此可見,fun()函

數(shù)實現(xiàn)的功能是對一個二維字符數(shù)組前n行的首字符進(jìn)行升序排序。主函數(shù)中定義

的二維數(shù)組初始化為{“bcc",“bbcc“,“xy”,,,aaaaccu,"aabcc1'),通過fun()函數(shù)

的排序后,結(jié)果將為acc","abcc",nby","baaacc%"xabcc")o故最終輸出字符

串ss⑼和ss[4]的結(jié)果為acc,xabcc,應(yīng)該選擇D。

四、公共基礎(chǔ)填空題(本題共3題,每題7.0分,共3

分。)

42、在面向?qū)ο蟮姆椒ㄖ?,描述的是具有相似屬性與操作的一組對象。

A、類

標(biāo)準(zhǔn)答案:

知識點解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是

對象的抽象,對象是類的實例。

43、排序是計算機(jī)程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、

和選擇排序。

A、交換排序

標(biāo)準(zhǔn)答案:

知識點解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序

序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒

泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選

擇排序和堆排序。

44、算法的復(fù)雜度主要包括時間復(fù)雜度和復(fù)雜度。

標(biāo)準(zhǔn)答案:空間

知識點解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)

雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復(fù)雜度,一般是指執(zhí)行

這個算法所需要的內(nèi)存空間。

45、數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)

構(gòu)、數(shù)據(jù)流、【】和處理過程。

標(biāo)準(zhǔn)答案:數(shù)據(jù)存儲

知識點解析:數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項,

是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)

項,也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過程的輸入或輸出;數(shù)據(jù)存儲,處理過程中

存取的數(shù)據(jù),常常是手工憑證、手工文檔或計算機(jī)文件;處理過程。

46、數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)

構(gòu)、數(shù)據(jù)流、【】和處理過程。

標(biāo)準(zhǔn)答案:數(shù)據(jù)存儲

知識點解析:數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項,

是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu),是若干數(shù)據(jù)項有意義的集合;數(shù)據(jù)流,可以是數(shù)據(jù)

項,也可以是數(shù)據(jù)結(jié)構(gòu),表示某一處理過程的輸入或輸出;數(shù)據(jù)存儲,處理過程中

存取的數(shù)據(jù),常常是手工憑證、手工文檔或計算機(jī)文件;處理過程。

五、填空題(本題共“題,每題分,共〃分。)

47、軟件危機(jī)出現(xiàn)于20時紀(jì)60年代末,為了解決軟件危機(jī),人們提出了()的原理

來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。

標(biāo)準(zhǔn)答案:軟件工程學(xué)

知識點解析:為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件

工程是使計算機(jī)軟件走向工程科學(xué)的途徑。逐步形成了軟件工程的概念,開辟了工

程學(xué)的新興領(lǐng)域一軟件工程學(xué)。

48、語句:x++;++x;x=l/x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能

的賦值語句o

標(biāo)準(zhǔn)答案:x+=1

知識點解析:本題考查"++"、”「運算符?!?+“、”「只能作用于變量,不能用于

表達(dá)式或常量:前綴形式是在使用變量之前先將其值增1或減I,后綴形式是先使

用變量原來的值,使用完后再使其增1或減1。

49、以下程序用于判斷a,b,c能否構(gòu)成三角形,若能,輸出YES,否則輸出

NOo當(dāng)給a,b,c輸入三角形三條邊長時,確定a,b,c能構(gòu)成三角形的條件是

需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?include<stdio.h>

main(){floata,b,c;scanf("%f%f%f,&a,&b,&c);if([])printf(,,YES\nM);/*ab.c

能構(gòu)成三角形*/elseprinff(nNO\n");/*a.b.c不能構(gòu)成三解形*/)

標(biāo)準(zhǔn)答案:(a+b>c)&&(a+c>b)&&(b+c>a)

知識點解析:根據(jù)構(gòu)成三角形的條件:兩邊之和大于第三邊,得出空格應(yīng)該填(a+b

>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。

50、以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。#defineN2#dcfineMN+1

#defineKM+1*M/2main。{inti;for(i=l;i<K;i++){......}

標(biāo)準(zhǔn)答案:4

知識點解析:本題考查宏定義。預(yù)編譯時,首先將M的宏定義帶入K,得到

N+l+l*N+l/2;再將N的宏定義帶人,得到2+1+42+1/2=3+2+0=5,所以循環(huán)4

次。

51、在內(nèi)存中,存儲字符'X,要占用1個字節(jié),存儲字符串“x“要占用【】個字節(jié)。

標(biāo)準(zhǔn)答案:2

知識點解析:計算機(jī)存儲一個字符用1個字節(jié),存儲字符串時,每個字符用占用I

個字節(jié),另在字符串的有效字符之后存儲1個字符串的結(jié)束標(biāo)記符。所以存儲字符

串“X”要占用2個字節(jié),存儲字符'X,只要1個字節(jié)。注意:sizeofO函數(shù)和strleM)函

數(shù)的作用。

52、表達(dá)式10+匕'+1.5-0.5*舊,的結(jié)果是[]o

標(biāo)準(zhǔn)答案:75.5

知識點解析:暫無解析

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

標(biāo)準(zhǔn)答案:x+=2

知識點解析:x+=2等價于x=x+2,"+=”為復(fù)合的賦值運算符。

54、以下程序的輸出結(jié)果是【】。main(){unsignedshorta=65536;intb:

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

標(biāo)準(zhǔn)答案:0

知識點解析:對于一個nusignedshortshort來說,它能取的最大值是65535。這里

給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦

給它(全零)。所以a的值實際為0。

55、若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式

pow(y,fabs(x))的值為[]。

標(biāo)準(zhǔn)答案:8

知識點解析:fabs函數(shù)功能是求x的絕對值,計算結(jié)果為double型。pow功能是計

算x的y次方的值,計算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0

次方,結(jié)果為8.000000。

56、求任意一個數(shù)(用16位二進(jìn)制碼表示)的補(bǔ)碼。main。(unsignedinta;

[1;&a);prinlf("%o\ii”,gclbiUi(a));)unsignedinigulbils(value)

unsignedintvalue;{unsignedintz;z=[];if(z==0100000)[];else

z=value;return(z);}

標(biāo)準(zhǔn)答案:unsignedintgetbits()value&O100000z=~value+l

知識點解析:暫無解析

57、有以下程序#inculdemain(){inta[3][3]={(1,2,3),(4,5,6),(7,8,9));intB[3]={0},i;

For(i=0;i<3;i++)B[i]=a[i][2]+a[2][i];For(i=0;l<3;i++)printF("%d”,B[i]);

printF("\n");}程序運行后的輸出結(jié)果是[1】。

標(biāo)準(zhǔn)答案:101418

知識點解析:當(dāng)i=0時,b[0]=a[0][2]+a[2][0]=3+7=10:當(dāng)i=l時,b

[1]=a[1][2]+a[2][1]=6+8=14;當(dāng)i=2時,b[2]=a[2][2]+a

[2][2]=9+9=18,則打印結(jié)果為101418o

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

一、公共基礎(chǔ)選擇題(本題共10題,每題1.0分,共

10分。)

1、在軟件工程中,白盒測試法可用于測試程序的內(nèi)部結(jié)構(gòu),此方法將程序看做是

()。

A、循環(huán)的集合

B、地址的集合

C、路徑的集合

D、目標(biāo)的集合

標(biāo)準(zhǔn)答案:4

知識點解析:軟件的白盒測試法是把測試對象看作一個打開的盒子,它允許測試人

員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息設(shè)計或選擇測試用例,對程序所有邏輯路徑

進(jìn)行測試。

2、在單鏈表中,增加頭結(jié)點的目的是()。

A、方便運算的實現(xiàn)

B、使單鏈表至少有一個結(jié)點

C、標(biāo)識表結(jié)點中首結(jié)點的位置

D、說明單鍵表是線性表的鏈?zhǔn)酱鎯崿F(xiàn)

標(biāo)準(zhǔn)答案:1

知識點解析:頭結(jié)點不僅標(biāo)識了表中首結(jié)點的位置,而且根據(jù)單鏈表(包含頭結(jié)點)

的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點的目的是為了便

于運算的實現(xiàn)。

3、面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是

()。

A、模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B、強(qiáng)調(diào)模擬現(xiàn)實世界中的算法而不強(qiáng)調(diào)概念

C、使用現(xiàn)實世界的概念抽象地思考問題,從而自然地解決問題

D、鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考

標(biāo)準(zhǔn)答案:4

知識點解析:面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本

原理是,使用現(xiàn)實世界的概念抽象地思考問題,從而自然地解決問題。它強(qiáng)調(diào)模擬

現(xiàn)實世界中的概念,而不強(qiáng)調(diào)算法,鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用

領(lǐng)域的概念去思考。

A

4、下圖所示二叉樹的中序遍歷結(jié)果為()。

A、ABCDEF

B、DBEAFC

C、ABDECF

D、DEBFCA

標(biāo)準(zhǔn)答案:2

知識點解析:中序遍歷首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹,并且

在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。

5、在計算機(jī)中,算法是指()。

A、查詢方法

B、加工方法

C、解題方案的準(zhǔn)確而完整的描述

D、排序方法

標(biāo)準(zhǔn)答案:4

知識點解析:計算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它具有的基本特征

有:可行性、確定性、有窮性和擁有足夠的情報。

6、用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為()。

A、關(guān)系模型

B、層次模型

C、網(wǎng)狀模型

D、數(shù)據(jù)模型

標(biāo)準(zhǔn)答案:2

知識點解析:層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實世界中很普

遍,如家族結(jié)構(gòu)、行政組織機(jī)構(gòu)等,它們自頂向下、層次分明。

7、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。

A、便于用戶、開發(fā)人員相互理解和交流

B、反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C、作為確認(rèn)測試和驗收的依據(jù)

D、便于開發(fā)人員進(jìn)行需求分析

標(biāo)準(zhǔn)答案:8

知識點解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重

要文檔之一。它有以下幾個方面的作用:①便于用戶、開發(fā)人員相互理解和交

流。②反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)。③作為確認(rèn)

測試和驗收的依據(jù)%

8、單個用戶使用的數(shù)據(jù)視圖的描述稱為()。

A、外模式

B、概念模式

C、內(nèi)模式

D、存儲模式

標(biāo)準(zhǔn)答案:1

知識點解析:選項A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)

模式:選項B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)

的整體邏輯結(jié)構(gòu)的描述;選項。不正確,物理存儲數(shù)據(jù)視圖的描述稱為內(nèi)模式,

即數(shù)據(jù)庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內(nèi)模式。

9、軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成()。

A、定義、開發(fā)、運行維護(hù)

B、設(shè)計階段、編程階段、測試階段

C、總體設(shè)計、詳細(xì)設(shè)計、編程調(diào)試

D、需求分析、功能定義、系統(tǒng)設(shè)計

標(biāo)準(zhǔn)答案:1

知識點解析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱

為軟件生命周期,它可以分為軟件定義、軟件開發(fā)及軟件運行維護(hù)三個階段。

10、按條件f對關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式為()。

A、R|X|R

RIxIR

B、f

C、of(R)

D、nf(R)

標(biāo)準(zhǔn)答案:4

知識點解析:選擇運算是一個一元運算,關(guān)系R通過選擇運算(并由該運算給出所

選擇的邏輯條件)后仍為一個關(guān)系。這個關(guān)系是由R中那些滿足邏輯條件的元組組

成的。如果關(guān)系的邏輯條件為f,則R滿足f的選擇運算可以寫成:af(R)o

二、選擇題(1分)(本題共10題,每題1.0分,共10

分。)

11、設(shè)函數(shù)fun的定義形式為:voidfun(charch,floatx){...}則以下對函數(shù)fun

的調(diào)用語句中,正確的是()。

A、funCabc'1,3.0);

B、t=fun(,D\16.5);

C、fun(,65',2.8);

D、fun(32,32);

標(biāo)準(zhǔn)答案:8

知識點解析:調(diào)用有參函數(shù)時,實參與形參的類型應(yīng)相同或賦值兼容。由于整型數(shù)

據(jù)與字符型數(shù)據(jù)可以通用,所以實參“32”與形參ch的類型是一致的;又因為整型

變量給浮點型變量賦值是相兼容的,所以選項D)正確。

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

A、C語句必須以分號結(jié)束

B、復(fù)合語句在語法上被看做一條語句

C、空語句出現(xiàn)在任何位置都不會影響程序運行

D、賦值表達(dá)式末尾加分號就構(gòu)成賦值語句

標(biāo)準(zhǔn)答案:4

知識點解析:選項C)是錯誤的。例如,對于for(;;)語句,如果循環(huán)體中沒有結(jié)束循

環(huán)的語句,循環(huán)將無限地進(jìn)行下去,導(dǎo)致死循環(huán)出現(xiàn)。

13、以下能正確定義且賦初值的語句是()。

A、intnl=n2=10;

B、charc=32;

CNfloatf=f+1;

D、doublex=12.3E2.5;

標(biāo)準(zhǔn)答案:2

知識點解析:語句intnl=n2=10;中,由于變量n2未定義,所以此賦值語句錯

誤;由于賦值語句中不能存在運算表達(dá)式,所以選項C)中的賦值語句錯誤;選項

D)中指數(shù)表示錯誤,C語言規(guī)定,e后面的指數(shù)必須為整數(shù);選項B)中的32是

ASCII碼的表示形式,這是c語言中字符型數(shù)據(jù)和整型數(shù)據(jù)通用的表現(xiàn),即一個字

符數(shù)據(jù)可以以字符形式出現(xiàn),也可以以整數(shù)形式出現(xiàn)。

14、以下關(guān)于函數(shù)的敘述中正確的是()。

A、每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))

B、每個函數(shù)都可以被單獨編譯

C、每個函數(shù)都可以單獨運行

D、在一個函數(shù)內(nèi)部可以定義另一個函數(shù)

標(biāo)準(zhǔn)答案:2

知識點解析:C語言的函數(shù)間可以互相調(diào)用,但不能調(diào)用main函數(shù);函數(shù)可以分

別編寫、分別編譯,但函數(shù)不能單獨運行;函數(shù)是互相獨立的,在一個函數(shù)內(nèi)部不

能定義另一個函數(shù),即函數(shù)不能嵌套定義。

15、有以下程序:#include<stdio,h>inta=2;intf(intn){staticinta:3;intt=0;

if(n%2)(staticinta=4;t+=a++;)else{staticinta=5;t-:a++;)returnt+a++;main

(){ints-a,i;for(i-0;i<3;i++)s十-f(i);piinff(u%d\n''s);}程序運行后的輸出結(jié)縣是

()。

A、26

B、28

C、29

D、24

標(biāo)準(zhǔn)答案:4

知識之解析:在函數(shù)外面定義的變量a是全局變量,其作用范圍從定義該變量的位

置開始到本文件的結(jié)束;在f函數(shù)中的if子句(復(fù)合語句)和else子句中定義的變量

a是局部變量,其作用范圍只在其所在的復(fù)合語句內(nèi);在f函數(shù)中定義的第一個變

量a是靜態(tài)局部變量,其作用范圍只限于函數(shù)f內(nèi)部,無論被調(diào)用多少次都只初始

化一次,并且保留上次函數(shù)調(diào)用結(jié)束時的值,該變量不對復(fù)合語句產(chǎn)生作用,所

以,f函數(shù)的返回值是這個a變量和t值相加的結(jié)果。

16、有以下程序:#include<stdio,h>voidsum(intalJ){a[OJ=a[-lJ+atlJ;)main

n

(){inta[10]={l,2,3,4,5,6J,8,9,10);sum(&a[2]);prinff(%d\n",a[2]);}程序運行后的

輸出結(jié)果是()。

A、6

B、7

C、5

D、8

標(biāo)準(zhǔn)答案:1

知識點解析:本題將主函數(shù)中a[2]的地址傳遞給了sum函數(shù)中的形參a[],使得

sum函數(shù)中的(a+0)為主函數(shù)中a[2]的地址,所以a[-l]即*(a-l)的值為主函數(shù)中a[l]

的值,故函數(shù)sum中a[0]=2+40由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以主

函數(shù)中的a[2]的值即為6。

17、有以下程序:#includc<stdio,h>main(){intk=5,n=0;while(k>0){switch

(k){default:break;case1:n+=k;case2:case3:n+=k;}k-;printf("%d\n",n);}程

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

A、0

B、4

「、6

D、7

標(biāo)準(zhǔn)答案:8

知識點解析:在程序中,當(dāng)L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)

行default語句;當(dāng)k=3時,執(zhí)行n+=k;得n=3;當(dāng)L=2時,執(zhí)行case2:然后順

序執(zhí)行case3:n+=k;得n=5;當(dāng)k=l時,執(zhí)行easel:n+=k;得n=6,然后順序

執(zhí)行case2:和case3:n+=k;使得n=7o

18、設(shè)有定義:intk=1,m=2;floatf=7;則以下選項中錯誤的表達(dá)式是()。

A、k=k>=k

B、-k++

C、k%int(f)

D、k>=f>=m

標(biāo)準(zhǔn)答案:4

知識點解析:強(qiáng)制類型轉(zhuǎn)換的一般形式為:(類型名)(表達(dá)式),而選項C)中沒有給

類型名加括號,所以選項C)錯誤。

19、以下不能正確計算代數(shù)式3I2,的值的c語言表達(dá)式是()。

A、1/3*sin(l/2)*sin(l/2)

B、S1H(O.5)*sin(0.5)/3

C、pow(sin(0.5),2)/3

D、l/3.0*pow(sin(1.0/2),2)

標(biāo)準(zhǔn)答案:1

知識點解析:在有運算符的表達(dá)式中,要避免兩個操作數(shù)都是整數(shù)的情況。本

題選項A)中的“1/3”和“1/2”的值都為0,使選項A)的表達(dá)式值為0,但事實上代數(shù)

式312加勺值并不為0,所以選項A)錯誤。

20、有以下程序段:intk=0>a=l,b=2,c=3;k=a<b?b:a;k=k>c?c:K;執(zhí)行

該程序段后,k的值是()。

A、3

B、2

C、1

D、0

標(biāo)準(zhǔn)答案:2

知識點解析:由于aVb成立,所以表達(dá)式aVb?b:a取b的值2,得到k=2;由于k

>c不成立,所以表達(dá)式k>c?c:k取k的值2,故k的值為2。

三、選擇題(2分)(本題共30題,每題7.0分,共30

分。)

21、下面程序的功能是瑜出以下形式的金字塔圖案:****************#mdude

<stdio.h>main(){intij;for(i=l;i<=4;i++){for(j=1;j<=4-i;j++)printf("");for(j=l;j

<=J++)printf("*");printf(,'\n");))在下劃線處應(yīng)填入的是()。

A、i

B、2*i-l

C、2*i+l

D、i+2

標(biāo)準(zhǔn)答案:2

知識點解析?:本題是找出打'印號的條件,從圖中我們可以找到規(guī)律,第一行1

個,第二行3個“*”,第三行5個*,……,即每行中。的個數(shù)恰好是行數(shù)的2

倍減一個,由此不難得出,橫線處應(yīng)當(dāng)填入

22、有以下程序:#include<stdio.h>main(){chark;inti;for(i=l;i<3;i++)

{scanR"%c",&k);switch(k){case'O':printf(”another\n”);caseT:

primf("number\n”);}{}程序運行時,從鍵盤輸入:01V回車》,程序執(zhí)行后的輸

出結(jié)果是()。

A、anothernumber

B、anothernumberanother

C、anothernumber

D、numbernumber

標(biāo)準(zhǔn)答案:4

知識點解析:本題中沒有使用break終止switch語句的執(zhí)行,當(dāng)k為XT時,執(zhí)行完

caseU后的輸出后將繼續(xù)執(zhí)行caseT后的輸出;當(dāng)k為T時,執(zhí)行case”'后的

輸出。

23、有以下程序:#include<sldio.h>main(){intx=0,y=5,z=3;while(z->0&&

++x<5)y=y-l:printf("%d,%d,%d\n”,x,y,z);}程序執(zhí)行后的輸出結(jié)果是()。

A、3,2,0

B、32-1

C、4,3,-1

D^5,-2,-5

標(biāo)準(zhǔn)答案:2

知識點解析:當(dāng)x=0,y=5,z=3時,z->0&&++x<5成立,執(zhí)行y=y-1;此時

y=5-l=4,z=z-1=2,x=x+l=l;條件z-->0&&++xV5仍然成立,繼續(xù)執(zhí)行y=y-

1,此時y=y-1=3,z=l,x=2;條件z??>0&&++xV5仍然成立,繼續(xù)執(zhí)行y二y-1,

此時y=y?l=2,z=0,x=3;條件不再成立,執(zhí)行條件判斷后x=3,y=2,z=-lo

24有以下程序:#include<stdio.h>main(){intx=102,y=012;

printf(',%2d,%2d\n',,x,y);)執(zhí)行后的輸出結(jié)果是()°

A、10,01

B、02,12

C、102,10

D、02,10

標(biāo)準(zhǔn)答案:4

知識點解析:y=012是將八進(jìn)制數(shù)12賦給變量y。格式符%d,用于輸出十進(jìn)制整

數(shù):%md,m為指定的輸出值的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空

格,若大于m,則按實際位數(shù)輸出。本題是將八進(jìn)制數(shù)12也按十進(jìn)制數(shù)輸出,八

進(jìn)制數(shù)12轉(zhuǎn)換為十進(jìn)制數(shù)為10,輸出結(jié)果為102,10o

25、設(shè)有定義:intn=O,*p=&n,**q=&p;則以卜選項中,止確的賦值語句是()。

A、P=1

B、*q=2;

C、q=p;

D、*p=5;

標(biāo)準(zhǔn)答案:8

知識點解析:指針變量中只能存放地址(指針),不能將一個非地址類型的數(shù)據(jù)賦給

一個指針變量,選項A)錯誤;q是指向指針的指針,選項B)錯誤;q和p是基類型

不同的指針變量,不能相互賦值,所以選項C)錯誤。

26、有以下程序:#include<stdio.h>#include<stdlib.h>structNODE{intnum;

structNODE*next;};main(){struetNODE*p,*q,*r;intsum=0;p=(structNODE*)

malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(struetNODE));r=(struct

NODE*)malloc(sizeof(structNODE));P->num=l;q->num=2;r->num=3;p->

next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=P->num;

printf("%d\n",sum);)執(zhí)行后的輸出結(jié)果是()

A、3

B、4

C、5

D、6

標(biāo)準(zhǔn)答案:2

知識點解析:程序中q->next=r,所以q->next->num即為r->num,值為3,而

p->num=l,所以sum=3+l=4。

27、有以下程序:#include<stdio.h>main(){inti,s=0;for(i=1;i<10;i+=2)s+

=i+l;printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()°

A、正整數(shù)1?9的累加和

B、正整數(shù)1?10的累加和

C、正整數(shù)1?9中奇數(shù)之和

D、正整數(shù)1?10中偶數(shù)之和

標(biāo)準(zhǔn)答案:8

知識點解析:通過for(i=l;iV10;i+=2河知,i取值為1?10的奇數(shù),即1,3,5,

7,9,i+1即為2,4,6,8,10。因此,程序的功能是計算并輸出1?10中的偶數(shù)

之和,s+=i+l就是累加這些偶數(shù)。

28設(shè)有定義:inta,*pa二&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()。

A、scanf("%d",pa);

scanf("%d",a);

C、scanf("%dn,&pa);

D、scanf("%d",*pa);

標(biāo)準(zhǔn)答案:1

知識點解析:scanf函數(shù)是格式輸入函數(shù),用于輸入任何類型的多個數(shù)據(jù)。該函數(shù)

的一般形式為:scanf(格式控制,地址列表),其中“格式控制”是用雙引號括起來的

字符串,”地址列表”是由若干個地址組成的表列,可以是變量的地址,或字符串的

首地址。題目中可以作為地址列表項的有pa和&a。所以,選項A)正確。

29、有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是

使位置指針從文件末尾向前移2*sizeof(int)字節(jié)):#inckide<stdio.h>main()

{FILE*fp;inti,a[4]={1,2,3,4),b;^fopenCtdata.dar","wb");for(i=0;i<4;i++)

fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dar',,"rbn);fseek(fp,-

2L*sizeof(int),SEEK_END);firead(&b,sizeof(ini),l,fp);/*從文件中讀取sizeof(int)字節(jié)

的數(shù)據(jù)到變量b中*/幻(^你);printf("%d\n",b);}執(zhí)行后的輸出結(jié)果()。

A、2

B、1

C、4

D、3

標(biāo)準(zhǔn)答案:8

知識點解析:Leek(fp,-2L*sizeof(int),SEEK_END):語句的作用是使位置指針從

文件末尾向前移2*sizeof(int)字節(jié),調(diào)用此函數(shù)后指針指向a⑵,

fread(&b,sizeof(inl),l,fp)是從文件中讀取sizeof(inl)字節(jié)的數(shù)據(jù)到變量b中,也就是

從文件中讀取數(shù)據(jù)3到變量b中。

30、有以卜程序:#include<stdio.h>main(){FILE*fp;inti,k=0,n=0;

fp=fopen("dl.dat",nw");for(i=l;i<4;i++)fprintf(fp,"%d",i);fclose(fp);

fp=fopen("dI.dat","r");fscanf(fp,"%d%d",&k,&n):printf("%d%d\n",k,n);fclose(fp);{執(zhí)

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

A、12

B、1230

C、123

D、00

標(biāo)準(zhǔn)答案:2

知識點解析:fprintf、fscanf函數(shù)與printf、scanf函數(shù)作用相仿,都足格式化讀寫函

數(shù),其區(qū)別在于:fprinlf和fscanf函數(shù)的讀寫對象不是終端而是磁盤文件。這兩個

函數(shù)的一般調(diào)用方式為:fprintf(文件指針,格式字符串,輸出表列):fscanf(文件

指針,格式字符串,輸入表列);程序首先將123寫入dl.dat文件中,再從該文件

中將數(shù)據(jù)讀給變量k和n。由于文件dl.dat中的數(shù)據(jù)是123

溫馨提示

  • 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

提交評論