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

下載本文檔

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

文檔簡介

家二級(C語言)筆試模擬試卷10

(共9套)

(共542題)

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

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

70分。)

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

A、圖兀關(guān)系

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

C、控制流

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

標準答案:C

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

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

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

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

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

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

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

A、控制流

B、加工

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

D、源和潭

標準答案:A

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

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

源)、源和潭。

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

的是o

A、a++;

B、b++;

C、c++

D、d++

標準答案:D

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

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

A、元組

B、字段

C、屬性

D、碼

標準答案:A

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

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

鍵或碼。

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

A、關(guān)系模型

B、層次模型

C、網(wǎng)狀模型

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

標準答案:2

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

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

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

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

A、字處理軟件

B、系統(tǒng)軟件

C、服務(wù)性軟件

D、操作系統(tǒng)

標準答案:2

知識點解析:暫無解析

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

A、屬性

B、關(guān)系

C、鍵

D、域

標準答案:2

知識點解析:暫無解析

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

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

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

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

儲在其他元素的前面

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

序也是任意的

標準答案:8

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

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

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

9、線性表的鏈式存儲結(jié)構(gòu)是一種

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

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

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

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

標準答案:2

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

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

順序存儲。

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

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

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

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

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

標準答案:A

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

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

單。

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

分。)

11、當變量c的值不為2、4、6時,值也為“真”的表達式是

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)

標準答案:B

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

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

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

12、有以下程序ftin(intx){inlp;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

標準答案:C

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

調(diào)用,其過程可以描述為嚇皿(7)=7如11(5)=7-(5-加](3)尸7-(5-(3-仙](1)))=7-(5-(3-

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

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

外部指的是()。

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

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

C、作用范圍是全程的

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

標準答案:D

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

符的特征。

14、軟件是指()。

A、程序

B、程序和文檔

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

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

標準答案:D

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

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

A、getc()

B、gets()

C>getchar()

D、scanf()

標準答案:B

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

字符串的讀入。

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

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

B、charstr="\x43H;

C^charstr=";

D、charstr[]="\O";

標準答案:8

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

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

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

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

A、可立即執(zhí)行

B、是個源程序

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

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

標準答案:2

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

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

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

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

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

18、以下合法的賦值語句是。

A、X=Y=100

B、D-;

C、X+Y

D、C=int(A+B)

標準答案:2

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

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

為一賦值語句。

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

A、123,4

B、1234

C、123;4

D、123:4

標準答案:1

知識點解析:暫無解析

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

A、E3.4

B、-12345

C、2.2e0.8

D、4

標準答案:2

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

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

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

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

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

常量。

21有以下程序#includemain。{intx=011:printf("%d\n”,++x);}程序運行后

的輸出結(jié)果是

A、12

B、11

C、10

D、9

標準答案:C

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

primf函數(shù)后,x先加1.然后按十進制輸出,即程序輸出結(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

標準答案:C

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

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

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

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

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

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

A、g,GF,g

B、g,FF,g

C、G,fF,G

D、f,gf,g

標準答案:A

知識點解析:暫無解析

24、若運行以卜.程序時,從鍵盤輸入ADescriptor〈CR>(VCR>表示回車),則F

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

do{switch(c=getchar()){case,a,:case,A,:case,e,:case,E,:case'i':caseT:

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

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

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

v0=8,vl=4,v2=8

C、v0=ll,vl=4,v2=ll

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

標準答案:D

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

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

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

casc'U':vl+=l;只有在讀入的字母

是/、1'、'E,、丁、T、U、XT、'u'、,U'時才會執(zhí)行。

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

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

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

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

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

標準答案:D

知識點解析:暫無解析

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

A、getc()

B、gets()

C、getchai()

D、scanf()

標準答案:B

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

用于字符串的讀入。

27、卜歹!]程序的輸出結(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、不確定

標準答案:B

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

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

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

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

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

A、0987654321

B、4321098765

C、5678901234

D、0987651234

標準答案:C

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

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

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

a[12]={5,6,7,8,9,0,1,2,3,4}。

29、有如卜.程序main(){intn=9;while(n>6){n-;printf("%d*\n);})該程序的輸出結(jié)

果是

A、987

B、876

「、8765

D、9876

標準答案:B

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

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

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

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

排除選項C)o

30、以下敘述錯誤的是o

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

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

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

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

標準答案:C

知識點解析:暫無解析

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

A、10

B、0

C、100

D、-10

標準答案:B

知識點解析:暫無解析

32、有以下程序#includemain(){charpU={'a'Jb','c'},q[10]={b」c'};

printf("%d%d\n",slrlen(p),slrlen(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é)束符,故長度都不能確定

標準答案:A

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

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

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

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

scanf(”%d”,*p);}

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

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

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

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

標準答案:2

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

變量a的值。

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

A^max(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;)

標準答案:2'

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

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

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

datanext4____________________

—…—|E|一|F|\0一

head一

s-MI

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

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

句組是O

A、p=p->next;s->next=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;

標準答案:1

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

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

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

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

printf("%d%d%d\n”,k,a,B);)

A、104

B、004

C、103

D、003

標準答案:4

知識點解析:暫無解析

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

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

A、0

B、0.25

C、0.5

D、1

標準答案:4

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

條件XV10.0,所以執(zhí)行產(chǎn)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(M%d\nn,s);}若要使程序的輸出值為2,則應(yīng)該從鍵盤給n輸入的值是

()。

A、-1

B、-3

C、-5

D、0

標準答案:2

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

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

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

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

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

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

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

項中選項B符合題意。

39、以下敘述正確的是

A、可以把define和if定義為用戶標識符

B、可以把define定義為用戶標識符,但不能把if定義為用戶標識符

C、可以把if定義為用戶標識符,但不能把define定義為用戶標識符

D、define和if都不能定義為用戶標識符

標準答案:2

知識點3析:C語言中的保留字,而define不是保留字。用戶標識符不允許使用保

留字。

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

default:n=O;k-;case2:case4;n+=2;k—;break;)printfl"%d'\n);)whiIe(k>0&&n<

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

A、235

B、235

C>2356

D、2356

標準答案:2

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

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

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

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

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

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

出的結(jié)果是0235。

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

string.h>voidfunjehars[][10],intn){chart;

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

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

if(s[i][O]>sU][O])t=s[i][0];s[i][0]=s[j][O];sU][O]=

t;)}main()charss[5][10]={"bcc","bbcc","xy",

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

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

A^xy,aaaacc

aaaacc,xy

C、xcc,aabcc

D、acc,xabcc

標準答案:D

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

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

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

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

的二維數(shù)組初始化為{“bcc“,“bbcc",Hxy","aaaacc","aabcc"),通過fim()函數(shù)

n

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

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

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

分。)

42、在面向?qū)ο蟮姆椒ㄖ校枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。

A、類

標準答案:

知識點解析:在面向?qū)ο蟮姆椒ㄖ校丫哂邢嗤院头椒ǖ膶ο蠓Q為類,類是

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

43、排序是計算機程序沒計中的一種重要操作,常見的排序方法有插入排序、

和選擇排序。

A、交換排序

標準答案:

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

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

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

擇排序和堆排序。

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

標準答案:空間

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

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

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

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

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

標準答案:數(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ù),常常是手工憑證、手工文檔或計算機文件;處理過程。

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

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

標準答案:數(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ù),常常是手工憑證、手工文檔或計算機文件;處理過程。

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

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

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

標準答案:軟件工程學(xué)

知識點解析:為了消除軟件危機,通過認真研究解決軟件危機的方法,認識到軟件

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

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

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

的賦值語句。

標準答案:x+=1

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

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

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

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

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

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

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

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

標準答案:(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ù)是[]o#defineN2#defineMN+1

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

標準答案:4

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

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

次。

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

標準答案:2

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

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

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

數(shù)的作用。

52、表達式10+'a'+1.5-0.5*'B,的結(jié)果是[]0

標準答案:75.5

知識點解析:暫無解析

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

標準答案:x+=2

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

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

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

標準答案:0

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

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

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

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

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

標準答案:8

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

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

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

56^求任意一個數(shù)(用16位二進制碼表示)的補碼。main(){unsignedinta;

[];scanf("%o",&a);printf(H%o\n",getbits(a));)unsignedintgetbits(value)

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

z=value;relurn(z);}

標準答案:unsignedintgetbitsOvalue&O100000z=~vak】e+l

知識點解析:暫無解析

57、有以下程序#inculdemain(){inta[3][3]={(l,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]o

標準答案:101418

知識點解析:當i=0時,bL0]=a[0][2]+a[2][0]=3+7=10;當i=l時,b

E1]=a[1][2]+a[2][1]=6+8=14;當i=2時,b[2]=a[2][2]+a

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

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

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

70分。)

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

A、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定大

B、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小

C、一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小

D、上述三種說法都不對

標準答案:8

知識點解析:算法的時間復(fù)雜度和算法的空間復(fù)雜度是從不同的角度來衡量算法的

執(zhí)行情況,它們之間沒有內(nèi)在聯(lián)系。

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

A、一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B、邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C、一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效

D、一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

標準答案:8

知識點解析:數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形

式,一種數(shù)據(jù)結(jié)構(gòu)可以艱據(jù)需要采用不同的存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序和鏈

式結(jié)構(gòu)。采用不同的存儲結(jié)構(gòu),其處理的效率是不同的。

3、對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。

A、125

B、n/2

C^n

D^n+1

標準答案:4

知識點解析:對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與

表中逐個元素的關(guān)鍵字進行比較,直到兩者相符,查找到所要找的元素為止.在最

壞的情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將

這個元素與表中的所有元素進行比較,因此比較次數(shù)為no

4、簡單的交換排序方法是()。

A、快速排序

B、選擇排序

C、堆排序

D、冒泡排序

標準答案:8

知識點解析:所謂的交奧類排序方法是指借助數(shù)據(jù)元素之間的互相交換進行排序的

一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它

通過相鄰元素的交換,逐步將線性表變成有序。

5、設(shè)計程序時,應(yīng)采納的原則之一是()。

A、程序的結(jié)構(gòu)應(yīng)有助于讀者的理解

B、限制GOTO語句的使用

C、減少或取消注釋行

D、程序越短越好

標準答案:1

知識點解析:程序設(shè)計的風格主要強調(diào)程序的簡單、清晰和可理解性,以便讀者理

解。程序濫用GOTO語句將使程序流程無規(guī)律,可讀性差;添加注釋行有利于對

程序的理解,不應(yīng)減少或取消,程序的長短要依據(jù)實際的需要而定,并不是越短越

好。

6、關(guān)于結(jié)構(gòu)化程序設(shè)計原則和方法的描述錯誤的是()0

A、選用的結(jié)構(gòu)只準許有一個入口和一個出口

B、復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)

C、不允許使用GOTO語句

D、語言中所沒有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

標準答案:4

知識點解析:限制使用GOTO語句是結(jié)構(gòu)化程序設(shè)計的原則和方法之一,但不是

絕對不允許使用GOTO語句。其他三項為結(jié)構(gòu)化程序設(shè)計的原則。

7、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖牵ǎ?/p>

A、多態(tài)性

B、繼承

C、封裝性

D、模塊化

標準答案:8

知識點解析:面向?qū)ο鬀]計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理

是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類

性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的

特點。

8、在面向?qū)ο蠓椒ㄖ校粋€對象請求另一個對象為其服務(wù)的方式是通過發(fā)送()。

A、調(diào)用語句

B、命令

C、口令

D、消息

標準答案:8

知識點解析:在面向?qū)ο蠓椒ㄖ校瑢ο笾g通過消息進行通信。消息中只包含傳遞

者的要求,它告訴接受者需要做哪些處理,但并不指示接受者應(yīng)該怎么完成這些處

理,接受者獨立決定采用什么方式完成所需的處理。

9、下列描述錯誤的是

A、繼承分為多重繼承和單繼承

B、對象之間的通信靠傳遞消息來實現(xiàn)

C、在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征

D、類是具有共同屬性、共同方法的對象的集合

標準答案:4

知識點解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)

部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

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

A、軟件交付使用后還需要進行維護

B、軟件一旦交付使用就不需要再進行維護

C、軟件交付使用后其生命周期就結(jié)束

D、軟件維護是指修復(fù)程序中被破壞的指令

標準答案:1

知識點解析:軟件生命周期一般可以分為軟件定義,軟件開發(fā)及軟件運行維護3個

階段。軟件交付并投入運行后,需要不斷地進行維護,并根據(jù)新提出的需求進行必

要而且可能的擴展和刪改。

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

分。)

11、下列程序的輸出結(jié)果是_____ointi=010,j=10;printf("%d,%d\n”,++i,j-);

A、11,10

B、9,10

C、010,9

D、10,9

標準依索.?

知識之解析:暫無解析

12、標有/**/的語句的執(zhí)行次數(shù)是。inty,i;for(i=0;i<20;i++){if

(i%2=0)continue;y+=i;/**/)

A、20

B、19

C、10

D、9

標準答案:4

知識點解析:暫無解析

13、下列程序的輸出結(jié)果是o#inckide<stdio.h>main(){inta,b,c=246;

a=c/100%9;b=(-1)&&(-!);printf("%d,%d\n",a,b);)

A、2,1

B、3,2

C>4,3

D、2,-1

標準答案:1

知識點解析:暫無解析

14、下列程序的輸出結(jié)果是omain(){intm=5;if(m++>5)printf

("%d\n",m);elseprintf('1%d\n"jn—);}

A、7

B、6

C、5

D、4

標準答案:2

知識點解析:暫無解析

15^下列程序執(zhí)行后的輸出結(jié)果是omain(){charx=0xFFFF;printf("%d

}

A、-32767

B、FFFE

C>-1

D、-32768

標準答案:4

知識點解析:暫無解析

16、下列程序的輸出結(jié)果為omain(){unsignedinta=65535;intb=-2;printf

(H\na=%d,%u;b=%d,%u?a,a,b,b);}

A、-1,65535-2,65534

B、65535,65535;?2,65534

C、65535,65535:65534,65534

D、-1,65535:65534,65534

標準答案:1

知識點解析:暫無解析

17、下列語句中,不正確的是_____o

A、staticchara[]={"China'1};

B、staticchara[]=,,China";

C、pnntt("%s\aLOJ);

D、scanf(H%s",a);

標準答案:4

知識點解析:暫無解析

18、給出發(fā)下定義:charx[]=MabcdefgH;chary卜{'a','b','c','d','e',f'g'};則正確

的敘述為O

A、數(shù)組x和數(shù)組y等價

B、數(shù)組x和數(shù)組y的長度相同

C、數(shù)組x的長度大于數(shù)組y的長度

D、數(shù)組x的長度小于數(shù)組y的長度

標準答案:4

知識點解析:暫無解析

19、當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______o

A、數(shù)組的長度

B、數(shù)組的首地址

C、數(shù)組中每一個元素的地址

D、數(shù)組每個元素中的值

知識曾解析:暫無解析

20、下列程序的輸出結(jié)果是。main(){unsignedshorta=65536;intb;

printf(H%d\nH,b:a);)

A、0

B、1

C、2

D、3

標準答案:1

知識點解析:暫無解析

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

分。)

21、以下敘述中正確的是()。

A、調(diào)用pfintf函數(shù)時,必須要有輸出項

B、使用putchar函數(shù)時,必須在之前包含頭文件stdio.h

C、在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出

D、調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCH碼

標準答案:2

知識點解析:在使用標準輸入輸出庫函數(shù)前,必須要用預(yù)編譯命令“#include”將頭

文件“stdio.h”包括到用戶源文件中。

22有以下程序段:typedefstructNODE{intnum;structNODE*nex;)OLD;以下

敘述中正確的是()。

A、以上的說明形式非法

B、NODE是一個結(jié)構(gòu)體類型

C、OLD是一個結(jié)構(gòu)體類型

D、OLD是個結(jié)構(gòu)體變量

標準答案:4

知識點解析:typedef關(guān)鍵字用于聲明一個新的類型名代替已有的類型名。本題中

如果沒有用typedef進行定義的話,則structNODE為結(jié)構(gòu)體類型,而用typedef定

義后,相當于用OLD代表了siruetNODE這一結(jié)構(gòu)體類型,故OLD為結(jié)構(gòu)體類

型。

23、設(shè)有定義:inta=2,b=3,c=4;則以下選項中值為0的表達式是()。

A、(!a==l)&&(!b==0)

B、(a<b)&&!cII1

C、a&&b

D、aII(b+b)&&(c-a)

標準答案:1

知識點解析:邏輯運算符的優(yōu)先級由高到低運算次序如

下:!(非)-&&(與)T||(或),選項A)的表達式中,先計算!a,結(jié)果為0,由于

“0==1”不成立,故整個表達式的值為0。

24、當把以下四個表達式用做if語句的控制表達式時,有一個選項與其他三個選

項含義不同,這個選項是()。

A、k%2

B、k%2==l

C、(K%2)!=0

D、!k%2==l

標準答案:8

知識點解析:本題選項A)、B)、C)中表達式用做if語句控制表達式時,其值一

致,即判斷k的值是否為奇數(shù),若為奇數(shù),其表達式為真,否則為假;而選項D)

的表達式!k%2==l相當于(!k)%2==L只要k的值不為0,則此表達式的值均為

假。

25、設(shè)變量a,b,c,d和y都已正確定義并賦值。若有以下if語句:if(a<b)

if(c==d)y=0;elsey=l;該語句所表示的含義是()。

,f°=d

A>I1QNb

(0a<b~d

1

D、

0a<b.c二d

{1a<b,c^d

(0a<b,c=d

1c+d

標準答案:4

知識點0析:在C語言中,從if語句的最內(nèi)層開始,else總是與它上面最近的(未

曾配對的)if配對,故本題中y=l的條件是c¥d。又因為此if語句是前一個if語句

的內(nèi)層嵌套語句,所以在滿足內(nèi)層嵌套的if語句之前,必須先滿足外層的if語句

中的條件表達式。a<b,所以選項C)正確。

26、若有語句:char*linc[5];以下敘述中正確的是()。

A、定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量

B、定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組

C、定義line是一個指針數(shù)組,語句中的.號稱為求地址運算符

D、定義line是一個指向字符型函數(shù)的指針

標準答案:1

知識點解析?:由于運算符口優(yōu)先級比率高,所以line是--個數(shù)組,每個數(shù)組元素是

一個基類型為char的指針變量。

27、設(shè)變量已正確定義,則以下能正確計算仁n!的程序段是()。

A、f=0;for(i=l;i<n;i++)f*=i;

B、f=l;for(i=l;i<n;i++)f*=i;

C、f=l;for(i=n;i>1;i++)f*=i;

D、f=l;for(i=n;i>=2;i-)f*=i;

標準答案:8

知識點解析:n!=n,(n-1)*…*2*1,由于選項A)中f的初值為0,所以循環(huán)n次

后,f的值依然為0,故選項A)錯誤;選項B)中循環(huán)的終止條件是iVn,即只執(zhí)行

n-1次循環(huán),得到的f值為(n?l)*…*2*1的結(jié)果,故選項B)錯誤;在選項C)中,當

n>l時,由于初值i=n符合條件i>l,且增量為+1,故循環(huán)中永遠不會出現(xiàn)不滿

足條件i>l的值,出現(xiàn)死循環(huán)。

28、設(shè)有定義:inlnl=O,n2,*p二&n2,*q=&nl;以卜.賦值語句中與n2=nl語句等價

的是()。

A、*P=*q;

B、p=q;

C^*p=&nl;

D、p=*q;

標準答案:1

知識點解析:定義變量后,指針變量P指向變量n2的地址,指針變量q指向了變

量nl的地址,要使nl的值賦n2,可將指針變量q指向的存儲單元的值賦給指針

變量p指向的存儲單元,即*P二*q。

29、若有定義:intx=O,*p=&x;則語句printf("%d\n”,*p);的輸出結(jié)果是()。

A、隨機值

B、0

C、x的地址

D、p的地址

標準答案:2

知識點解析:由*p=&x可知,指針變量p指向了x的地址,故輸出*p的值即為x

的值0。

30、有以下程序:#include<stdio.h>main(){inta[10]={1,2,3,4,5,6,7,

8,9,10),*p=&a[3],*q=p+2;prinffC'%d\n";*p+*q);}程序運行后的輸出結(jié)果

是()。

A、16

B、10

C、8

D、6

標準答案:2

知識點解析:由變量的定義可知,指針變量p初始化為&a[3],即*P的值為4;指

針變量q初始化為p+2,即&a[3]+2,所以*q的值為6,*p+*q的值為10。

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

A、用戶所定義的標識符允許使用關(guān)鍵字

B、用戶所定義的標識符應(yīng)盡量做到“見名知意”

C、用戶所定義的標識符必須以字母或下劃線開頭

D、用戶定義的標識符中,大、小寫字母代表不同標識

標準答案:1

知識點解析:C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第

一個字符必須是字母或下劃線。大寫字母和小寫字母被認為是兩個不同的字符,用

戶在定義標識符時應(yīng)盡量做到“見名知意”,且不允許使用關(guān)鍵字作標識符。

32、有以卜程序:#include<stdio.h>main(){inta||={2,4,6,8JO),y=0,x,*p;p

=&a[l];for(x=l;x<3;x++)y+=p[x];printf("%d\n\y);}程序運行后的輸出結(jié)果是

()。

A、10

B、11

C、14

D、15

標準答案:4

知識點解析:本程序通過語句尸將指針變量p指向存儲單元a[l],使得

p[0]的值為4,通過for循環(huán),使y的值丸P⑴與p[2]之和,即產(chǎn)6+8,所以輸出的

y值為14o

33、有以卜程序:#includc<stdio,h>#includc<string,h>structSTU{intnam;float

TotalSeore;);voidf(strnctSTUp){structSTUs[2]={{20044,550),{20045,537});

p.num=s111.num;p.TotalScore=s11].TotalScore;main(){structSTUs|2]=

{{20041,703),{20042,580));f(s[O]);

printf("%d%3.Of\n",s[0].num,s[0].TotalSeore);)程序運行后的輸出結(jié)果是()。

A、20045537

R、20044550

C、20042580

D、20041703

標準答案:8

知識點解析:函數(shù)f中定義了結(jié)構(gòu)體類型的變量P作為形參,在main函數(shù)中,將

結(jié)構(gòu)體變量s[0]中的值傳給了形參變量P,在函數(shù)f中,雖然改變了p中的內(nèi)容,

但其改變對main函數(shù)中s[0]的值不產(chǎn)生影響,所以main函數(shù)中輸出s[0]的數(shù)據(jù)仍

然是main函數(shù)中初始化時的數(shù)據(jù)。

34、有以卜程序:#include<stdio,h>#definef(x)(x*x)main(){intil,i2;il=

f(8)/f(4);i2=f(4+4)/f(2+2);printf(n%d,%d\n”,il,⑵;

A、64,28

B、4,4

C、4,3

D、64,64

標準答案:4

知識點解析:程序中il=f(8)/f(4)宏替換后得到il=(8*8)/(4*4),結(jié)果為4;

i2=f(4+4)/f(2+2)宏替換后得至h2=(4+4*4+4)/(2+2*2+2),其結(jié)果為3。故本題輸出

的值為4,3o

35、有以3程序:#include<stdio.h>main(){charP[]=,q□:MabcM;

printf("%d%d\n",sizeof(p),sizeof(q));}程序運行后的輸出結(jié)果是()。

A、44

B、33

C、34

D、43

標準答案:4

知識點解析:sizeof運算符是計算變量或數(shù)組所分配到的內(nèi)存空間的大小,

b,,c,}使數(shù)組的長度等于字符的個數(shù)3;q[]="abc”使數(shù)組的長度等于

字符個數(shù)加上1個串結(jié)束符,'\0',共4個字符,其中,’\0,,占用一個存儲空間。

故本題的輸出結(jié)果是34。

36、有以下程序:#include<stdio,h>main(){charal='M',a2=,m,;

pnntt("%c\n",(a1,a2));)以下敘述中正確的是()。

A、程序輸出大寫字母M

B、程序輸出小寫字母m

C、格式說明符不足,編譯出錯

D、程序運行時產(chǎn)生出錯信息

標準答案:2

知識點解析:本題輸出的是逗號表達式的值,即a2的值m。

37、有以下程序段:intn,t=Ls=0;scanf("%",&n);do{s=s+t;t=t-2;}

while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是().

A、任意正奇數(shù)

B、任意負偶數(shù)

C、任意正偶數(shù)

D、任意負奇數(shù)

標準答案:8

知識點解析:要使程序段不陷入死循環(huán),必須存在終止循環(huán)的條件由于t的

初始值為1,且每執(zhí)行一次循環(huán)都會使t的值減2,故執(zhí)行本程序后t有可能的最大

值為-1,然后,每循環(huán)一次就減2,所以鍵盤輸入的n的值必須是[的值之一,即

為任意負奇數(shù)c

38、有以3程序:#include<stdio,h>voidswapI(intcO[],intel[|){intt;t=cO[OJ;

c0[0]:cl[0];cl[0]=t;}voidswap2(int*c0,int*cl){intt;t=*c0;*c0=*cl;*cl

=t;)main(){inta[2]={3.5}.b[2]={3,5);swapl(a,a+1);swap2(&b[0],&b[1]);printf("%

d%a%d%d\n",a[0],a[l],b[0],b[l]);}程序運行后的車出結(jié)果是()。

A、3553

B、5335

C、3535

D、5353

標準答案:8

知識點解析:函數(shù)swap1,swap2的功能均為交換兩個數(shù)。main函數(shù)調(diào)用

swapl(a,a+1);使得數(shù)組a的首地址賦給形參c0[],a[l]的首地址賦給形參cl[],

故交換c0[0]與cl⑼后,a[0]與a[l]的值也發(fā)生了變化;函數(shù)調(diào)用swap2(&b[0],

&b[l]);的功能也一樣,使指針變量c0指向了b[0]存儲單元,cl指向了b[l]存儲

單元,并在sw叩2函數(shù)中進行了交換,所以b[0],b⑴的值也發(fā)生變化,故本程序

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

39、有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序甜include<

stdio,h>#inelude<string,h>voidf(char*p|]Jntn)char*t;inti,j;for(i=0;i<n-

l;i++)for(j=i+l;j<n;j++)if(strcmp(p[i],p|j])>0){t=p[i];p[i]=p[j];p[j]

=t;))main(){char*p[5

溫馨提示

  • 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

提交評論