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

下載本文檔

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

文檔簡介

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

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

10分。)

1、對建立良好的程序設(shè)計風(fēng)格,下列描述中正確的是()。

A、程序應(yīng)該簡單.、清晰、可讀性好

B、符號名的命名只需要符合語法

C、充分考慮程序的執(zhí)行效率

D、程序的注釋可有可無

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

知識點解析:“青晰第一,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要

保證程序清晰、可讀:對符號名的命名,除了要符合語法要求外,還要具有一定的

含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。

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

A^e3,el,e4,e2

B、e2,e4,e3,el

C、e3,e4,el,e2

知識點解析:由?!昂筮M(jìn)先出''的特點可知:A)中el不可能比e2先出,C)中el不

可能比e2先出,D)中棧是先進(jìn)后出的,所以不可能是任意順序。B)中出棧過程如

下圖所示:[*]

3、有以下程序:main(){charstr[][10]={,'ChinaH;,Beijing,,),*P=str;printf(M%s\n",

P+10);}程序運行后的輸出結(jié)果是O

A^China

B、Beijing

C、ng

D、ing

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

知識點解析:本題中p+10表示字符串“Beijing”的地址,故正確答案為B。

4、下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。

A、軟件測試

B、概要設(shè)計

C、軟件維護(hù)

D、詳細(xì)設(shè)計

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

知識點解析:軟件的生命周期可分為軟件定義、軟件開發(fā)及軟件運行維護(hù)3個階

段。其中軟件定義階段的主要工作有可行性研究與計劃制定和需求分析等:軟件開

發(fā)階段的主要工作有概要設(shè)計、詳細(xì)設(shè)計和測試等;軟件運行維護(hù)階段的主要工作

是軟件的運行及后期的維護(hù)等。

5、下列工具中為需求分析常用工具的是()。

A、PAD

B、PFD

C、N-S

D、DFD

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

知識點解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判

定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細(xì)設(shè)U的常用工

具,不是需求分析的工具。

6、如果進(jìn)棧序列為el、e2、e3、e4,則可能的出棧序列是()。

A、e3>el、c4、e2

B、e2、e4、e3、el

C、e3>e4>e2

D、任意順序

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

知識點解析:棧的特點是先進(jìn)后出,可知el肯定是最后出棧的.因此iF確答案為

選項Bo

7、表達(dá)式的值是()。

A、整數(shù)4

B、字符4

C、表達(dá)式不合法

D、字符6

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

知識點解析:在C語言中,字符都是變?yōu)槠鋵?yīng)的ASCII碼值來參加算術(shù)運算

的,但字符間的相對位置關(guān)系還是不變的,字符5和字符1的ASCII碼值相差仍是

4。

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

A、隊列屬于非線性表

B、隊列按“先進(jìn)后出”原則組織數(shù)據(jù)

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

D、隊列按“先進(jìn)先出”原則組織數(shù)據(jù)

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

知識點解析:隊列是“先進(jìn)先出”的數(shù)據(jù)結(jié)構(gòu),棧是“先進(jìn)后出”的數(shù)據(jù)結(jié)構(gòu),它們都

是特殊的線性表。隊列在隊頭刪除數(shù)據(jù)。

9、下列對于線性鏈表的描述中正確的是

A、存儲空間不一定是連續(xù),且各元素的存儲順序是任意的

13、存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面

C、存儲空間必須連續(xù),且前件元素一定存儲在后件元素的前面

D、存儲空間必須連續(xù),且各元素的存儲順序是任意的

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

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

點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系

是由指針域來確定的。

10、軟磁盤最外邊的磁道數(shù)是()

A、0

B、1

C、39

D、79

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

知識點解析:暫無解析

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

分。)

11、若i、J已定義成im型,則以下程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。

for(i=6;i>0;i—)for(j=0;j<4;j+-i-){...}

A、20

B、24

C、25

D、30

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

知識點解析:本題考查的是嵌套f?!秆h(huán)執(zhí)行次數(shù)。對于外層i的循環(huán)中任何一個

i,內(nèi)層j的循環(huán)中的j都要從0變化至l」3,j=4時退出循環(huán);然后外層i循環(huán)的i減

少1,內(nèi)層循環(huán)的i仍要從0變化到3,j=4時退出循環(huán)……直到外層i循環(huán)的i變

為0,退出i循環(huán)。所以執(zhí)行多重循環(huán)時,對外層循環(huán)變量的每一個值,內(nèi)層循環(huán)

的循環(huán)變量都要從初始值變化到終值。對外層循環(huán)的每一次循環(huán),內(nèi)層循環(huán)要執(zhí)行

完整的循環(huán)語句。外層for語句執(zhí)行6次,內(nèi)層for語句執(zhí)行4次,所以內(nèi)循環(huán)體

執(zhí)行6*4=24次。

12、對序線性表(23,29,34,55,60,70,78)用二分法查找值為60的元素時,

需要比較次數(shù)為()。

A、1

B、2

C、3

D、4

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

知識點解析:根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進(jìn)行

比較,由于60大于55,所以在線性表的后半部分查找。②第二次比較的元素是后

半部分的中間元素,將60與表中間的元素70進(jìn)行比較,由于60小于70,所以在

線性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這

時兩者相等。即查找成功。

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

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

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

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

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

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

知識之解析:結(jié)構(gòu)化程序設(shè)計是指將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模

塊,與具體的語句結(jié)構(gòu)無關(guān)。Got。語句的濫用會導(dǎo)致程序的可讀性降低。三種基

本結(jié)構(gòu)構(gòu)成的程序依然可以解決大規(guī)模的問題,只是不利于復(fù)用。

14、若有定義語句inta,b;doublex;則下列選項中沒有錯誤的是()。

A、switch(x%2){caseO:a++;break;case1:b++;break;default:a++;

b++;}

switch((int)x/2.0){caseO:a++;break;case1:b++;break;default:

a++;b++:}

C^switch((int)x%2){caseO:a++:break;case1:b++;break:default:a++;

b++;)

D、switch((int)(x)%2){caseO.O:a++;break;case1.0:b++;break;

default:a++:b++:)

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

知識點解析:C語言中switch語句中的表達(dá)式和case表達(dá)式都不能是浮點類型。

所以選Co

15、以下敘述中正確的是

A、C語言的源程序不必通過編譯就可以直接運行

B、C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令

c、c源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運行

D、C語言中的函數(shù)不可以單獨進(jìn)行編譯

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

知識點解析:本題考核的知識點是C程序從編寫到生成可執(zhí)行文件的步驟。C語言

采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫好一個C程序到完成運行

一般經(jīng)過以下幾個步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進(jìn)制的

目標(biāo)代碼,經(jīng)編譯后的得到的二進(jìn)制代碼還不能直接執(zhí)行,因為每一個模塊往往是

單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標(biāo)代碼與系統(tǒng)提供的標(biāo)準(zhǔn)模塊連接后

才能運行;連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)連接處理后,得到

具有絕對地址的可執(zhí)行文件,它是計算機(jī)能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個經(jīng)過

編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項A、C、D均不正確°所

以,4個選項中選項B符合題意。

16、以下敘述不正確的是。

A、分號是C語言的必要組成部分

B、C程序的注釋可以寫在句的后面

C、函數(shù)是C程序的基本單位

D^主函數(shù)的名字不一定用main表示

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

知識點解析:C語言的程序是由主函數(shù)main。開始運行,由主函數(shù)來調(diào)用其他函

數(shù),所以D是錯誤的。

17、設(shè)x,y均為int型變量,且x=10,y=3,則priiHf("%d,%d\n”,x?,?y);語句的輸出

結(jié)果是Q

A、10,3

B、9,3

C、9,2

D、10,2)

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

知識點解析:C語言的自減運算符有前置與后置兩種形式。當(dāng)自減運算符前置時,

變量先自減一后再參與表達(dá)式運算;而后置時,變量先參與表達(dá)式運算后再自身減

18、己有定義和語句:doublea,b,c;scanf("%1f%1f%1f*,&a,&b,&c);:要

求給a、b、c分別輸入10.0、20.0、30.0,不正確的輸入形式是

A、10.0〈回車>20.0V回車,

B、10.0〈回車>2030V回車〉

C、1020V回車>30.0〈回車〉

D、10.0,20.0,30.0V回車,

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

知識點解析:scanf函數(shù)要求格式控制串中的非格式控制字符,在輸入數(shù)據(jù)時必須

按照格式控制的要求來輸入。本題中格式控制申中在各個輸入數(shù)據(jù)格式之間沒用任

何分隔符號,所以從鍵盤輸入數(shù)據(jù)時,不應(yīng)該有“,”等分隔符,所以選項D)錯

誤。注意:選項A)、B)、C)都能正確的輸入。

19>有如下程序main。{inty=3,x=3,z=l:printf("%d%d\n",(++x,++y),

z+2);}運行該程序的輸出結(jié)果是()。

A、34

B、42

C、43

D、33

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

知識點解析:首先看逗號表達(dá)式,逗號表達(dá)式中從左向右計算,最后該表達(dá)式的值

取最右邊表達(dá)式的值,故該表達(dá)式的值為++y的值(因為++y的值為y的值加1即

4),算術(shù)表達(dá)式z+2的值為3,所以最后輸出的值為4和3,所以,4個選項中選項

C符合題意。

20、以下定義語句中正確的是

A、chara='A'b='B';

B、floata=b=10.0;

C、inta=10,*b=&a;

D、float*a,b=&a;

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

知識點解析:選項A中定義兩個變量a和b,并賦初值,C語言中可以同時定義多

個變量,但變量之間必須用“,”隔開,顯然,選項A中少了一個逗號“,”;選項B

中定義變量時用了連續(xù)的賦值語句,這在定義變量是不正確的;選項D定義一個

指針,然后定義了一個變量并讓這個變量的初值為該指針變量,顯然這這時的指針

變量還沒初始化就被賦值給變量。

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

A、getc()

B、gcts()

C、getchar()

D、scanf()

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

知識點解析:函數(shù)gelchar。的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個

字符,且只能接受一個字符(回車符也算是一個字符),所以getchar。不能用宋讀入

字符串。scanf()函數(shù)要求按一定的格式來輸入,若同時輸入多個字符串,則以空格

或回車分割,所以空格不能被識別為一個字符,也就無法讀入空格字符。函數(shù)

gets。的作用是從終端輸入一個字符串(包括空格)至字符數(shù)組,直到遇到換行符為

止,所以可以用來鍵盤讀入空格字符。

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

分。)

22、下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){int

m=l,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d,',s);}

A、sum=18

B、sum=10

C>sum=9

D、sum=25

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

知識點解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:

s=m+n+m+n*k=1+2+1+2*3=10。

23、有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20)

{for(;;){if((i%5)==0)break;elsei-;}i+=13,a+=i;)pfintf("%d\n",A);}

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

A、62

B、63

C、23

D、36

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

知識點解析:暫無解析

24、對以下說明語句的正確理解是inta[10]={6,7,8,9,10);

A、將5個初值依次賦給a[l]至a[5]

B、將5個初值依次賦給a[0]至a[4]

C、將5個初值依次賦給a⑹至a[10]

D、因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確

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

知識點解析:本題中,表達(dá)式將5個初值賦給a[0]至a[4],后面的部分,將自動被

補零。

25、在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是

A、autoflregister

B、extern和register

C、auto^0static

D、static^11register

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

知識點解析:在C語言中只有自動變量和寄存器變量在使用時才占用內(nèi)存單元。

26、若有說明charsl[30]="abc",s2[]="defghi”;,則在使用函數(shù)streamsl,s2)后,結(jié)果

是()。

A^si的內(nèi)容更新為abedefghi

B、si的內(nèi)容更新為defghi'O

C、si的內(nèi)容更新為defghiabc'O

D、si的內(nèi)容更新為abcdcfghi'O

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

知識點解析:strcat(sl,s2)是把s2字符串連接到si字符串的末尾,要保證si能容納

下連接后的字符串。

27、若有以下語句lypedefstructS{intg;charh;}T;以下敘述中正確的是()。

A、可用S定義結(jié)構(gòu)體變量

B、可用T定義結(jié)構(gòu)體變量

C、S是struct類型的變量

D、T是structS類型的變量

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

知識點解析:語句lypedefstructS{intg;charh:}T的作用是用T作為stnietS{im

g:charh;)的簡寫,所以選B。

28二有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個鏈表中

的三個連續(xù)結(jié)點。structnode{intdata;structnode*next;}*p,

現(xiàn)要將q

和r所指結(jié)點的先后位置交換,同時要保持鏈表的連續(xù),以下錯誤的程序段是

A、q->next=r->next;r->next=q;p->next=r;

B、q->next=r->next;p->next=r;r->next=q;

C^p->next=r;q->next=r->next;r->next=q;

D、r->next=q;q->next=r->next;p->next=r;

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

知識點解析:暫無解析

29、有以卜程序#includevoidWriteStr(char*fn,char*str){FILE*fp;

fp=fopen(fn,HwM);fputs(str,fp);fclose(fp);)main(){WriteStr("tl.dat\

"start");WriteStr("tl.daf'/'end");)程序運行后,文件tl.dat中的內(nèi)容是

A、start

end

C、startend

D^endrt

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

知識點解析:暫無解析

30、有以下程序int*f(znt*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);}執(zhí)行后輸出結(jié)果是

A、7,8,8

B、7&7

C、8,7,7

D、8,7,8

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

知識點解析:本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形

參x和y)該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變量。主函

數(shù)中定義了兩個指針變量p和小并讓它們指向了變量a和b,調(diào)用函數(shù)f(),返回指

向的變量值較小的指針變量,「的值為指針變量p的值(變量a的地址),因此最后

輸出的*p、*q和,r的值是7,8和7。所以,B選項為所選。

31、有以下程序:main(){intk=5;while(-k)printf("%d",k-=3);printf("\n");)執(zhí)行

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

A、1

B、2

C、4

D、死循環(huán)

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

知識點解析:因為在while循環(huán)的循環(huán)條件中,一運算符是前綴形式,所以表達(dá)式

-k的值是k自減之后的值.程序開始時,將k的值初始化為5.然后進(jìn)入while

循環(huán),因為一k的值為4(非零),所以執(zhí)行循環(huán)體輸出k-=3的值1,此時k的值也

變?yōu)?。第2次執(zhí)行循環(huán)條件,—k的值為0,所以循環(huán)結(jié)束。因此最后輸出的結(jié)

果是1,故應(yīng)該選擇A。

32、有以卜程序:#include<stdio.h>main(){printf("%d\n",NULL);)程序運行后

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

A、0

B、1

C、-1

D、NULL沒定義,出錯

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

知識點解析:在C語言中NULL的ASCII碼值為0,而輸出函數(shù)要求以整形格式

輸出,故最后的輸出數(shù)為0。所以,4個選項中選項A符合愿意。

33、設(shè)a=l,b=2,c=3?d=4,則表達(dá)式aVb?a:cVd?a:d的結(jié)果為______。

A、4

B、3

C、2

D、1

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

知識點解析:暫無解析

34>下列程序運行后,輸出結(jié)果是_____o#include<stdio.h>#include<string,h

>fun(char,intn){chart,*s1,*52;sl=w;s2=w+n-l;while(sl<s2)(t=*sl++;

*sl=*s2—;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A、1234567

B、7654321

C、1711717

D、7177171

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

知識點解析:暫無解析

35、已知n=1S.執(zhí)行后,寫入fp指向的文件的是?

A、15

B、1111

C、63

D、1111

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

知識點解析:使用fprin【f()函數(shù)時,函數(shù)向文件輸出的是ASCH碼,特別在輸出數(shù)

值時,輸出的是該數(shù)值的ASCH碼,而不是數(shù)值本身。

36、以卜程序的輸出結(jié)果是#includeVstdio.h>main。{inta=15/b=21,m=0;

switch(a%3){caseO:m++;break:case1:m++;switch(b%2){default:m++;

case0:m++;break;))printf("%d\n",m);)

A、I

B、2

C、3

D、4

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

知識點解析:switch語句的條件是“a%3=15%3=0",所以執(zhí)行case0后面的語句,

m++;m=l,然后就執(zhí)行break,跳出switch語句,所以最后輸出的m的值為1。

注意:switch嵌套語句的使用。

37、若指針p已正確定義,要使p指向兩個連續(xù)的整型動態(tài)存儲單元,則正確語句

是()

A^p=2*(int*)malloc(sizeof(int));

B、p=(int*)calloc(2*sizeof(int));

C、p=(int*)malloc(2*sizeof(int));

D^p=2*(int*)calloc(sizeof(int));

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

知識點解析:暫無解析

38、下面程序段的執(zhí)行結(jié)果為()。inti=3,j=0,k=0;for(;i>0;-i){++k;do{++j;if

(i!=j)break;++k;)while(j<5);}printf("i=%dj=%dk=%d\n",i,j,k);

A、i=0j=4k=12

1=0j=5k=5

C、i=0j=4k=4

D、i=Oj=3k=3

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

知識點解析:程序開始時(i,j,k)三個值分別為(3,0,0),然后進(jìn)入for循環(huán),由

于for的第一條語句空缺,所以不做初始化,此時i為3滿足循環(huán)條件,進(jìn)入循環(huán)

體。然后執(zhí)行“++k;”使k變成1,再無條件進(jìn)入do?while循環(huán)體執(zhí)行“++j;”使j

變成1,此時i和j不相等所以執(zhí)行break:語句跳出do-while循環(huán)。準(zhǔn)備開始第二

遍for循環(huán),i的值被減1,此時3個值分別為(2,1,1),i為2滿足循環(huán)條件,進(jìn)

入循環(huán)體。然后依次執(zhí)行十十k;和十十j;使它們增1,此時i和j同為2相等,所以

跳過break;語句再執(zhí)行一次++k;使k為3,由于此時j滿足do-while的循環(huán)條

件,所以下一步回到前面執(zhí)行do后面的++j;語句,使j為3,此時i和j不相等,

所以執(zhí)行break;跳出do-whilc循環(huán)。準(zhǔn)備開始第三遍for循環(huán),i的值被減1,此

時3個值分別為(1,3,3),i為1滿足循環(huán)條件,進(jìn)入循環(huán)體。然后依次執(zhí)行

++k;和++j;使它們增1,此時i和j不相等,所以執(zhí)行break;跳出do-while循

環(huán)。準(zhǔn)備開始第四遍for循環(huán),i的值被減1,此時3個值分別為(0,4,4),i為0

不滿足for語句的循環(huán)條件,所以執(zhí)行循環(huán)體后面的printf()函數(shù)輸出3個值,故正

確答案為C。

39、若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。

Structstu{inti;intname;)st,*p;p=&st;

A、st.i

*p.i

C、(*p).i

D、p->i

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

知識點解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)

變量訪問,即st.i,也可以用等價的指針形式即(作).i和p->i。

40、有以下程序:main(){inta[10]={l,2,3,4,5,6,7,

8,9,10),*p=&a[3],*q=p+2;printf(,'%d\n,\*p+*q);}

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

A、16

B、10

C、8

D、6

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

知識點解析:;數(shù)組a各元素a[0]?a[9]的值依次為1?10;在程序的說明部分,

指針變量p初始化為&a[3],即*p的值為4;指針變量q初始化為p+2,即

&a[3]+2,所以*q的值為6,所以*p+*q的值為10。

41、有以下程序#inelude(stdio.h>intf(intn);main(){inta=3,s;s=f(A);

8=s+f(A);\n",s);)mtf(intn){staticifita=1:n+=a++:returnn;}

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

A、7

B、8

C、9

D、10

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

知識點解析:s=f(a)表達(dá)式第一次調(diào)用f(n)函數(shù)時。f(n)函數(shù)運行結(jié)果為n:4,

a=2,即s等于4;s=g+f(a)表達(dá)式第二次涮用f(n)函數(shù)時,f(n)函數(shù)運行結(jié)果為

n=5,所以得到s值為9。

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

分。)

42、二分法查找僅限于這樣的表:表中的數(shù)據(jù)元素必須有序,其存儲結(jié)構(gòu)必須是

標(biāo)準(zhǔn)答案:順序存儲(順序方式存儲)

知識點解析:二分法查找對表的要求是有序的順序表,即第一要求是數(shù)據(jù)元素有

序,第二要求是按順序方式存儲。

43、在面向?qū)ο蟮某绦驔]計中,類描述的是具有相似性質(zhì)的一組【】。

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

知識點解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共

同方法的對象的集合。

44、與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。

標(biāo)準(zhǔn)答案:結(jié)構(gòu)化設(shè)計

知識點解析:與結(jié)構(gòu)化需求分析方法相對應(yīng)的是結(jié)構(gòu)化設(shè)計方法。結(jié)構(gòu)化設(shè)計就是

采用最佳的可能方法設(shè)計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技

術(shù)。也就是說,結(jié)構(gòu)化設(shè)計是這樣一個過程,它決定用哪些方法把哪些部分聯(lián)系起

來,才能解決好某個具體且有清楚定義的問題。

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

知識點解析:二叉樹的中序遍歷指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者

中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且遍歷左,右子樹

時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。因此本題中序遍歷的

結(jié)果為DBXEAYFZCo

46、設(shè)二叉樹如下:對該二叉樹進(jìn)行后序遍歷的

結(jié)果為【】。

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

知識點解析:后序遍歷二義樹的定義為:若二義樹為空,則空操作;否則,后序遍

歷左子樹,后序遍歷右子樹,訪問根結(jié)點。根據(jù)該規(guī)則,遍歷結(jié)果應(yīng)為

EDBGHFCA。

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

47、以下程序的輸出結(jié)果是()。#include<stdio.h>voidswap(int*a,int*B){int*t;

t=a:a=b:b=c;)main(){inti=3,j=5,*p=&i?*q=&j:swap(p,q);

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

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

知識點解析:本題考查函數(shù)中形參和實參的傳遞。在C語言函數(shù)中實參和形參傳

遞具有不可逆性,參數(shù)只能由實參傳向形參,而不能由形參傳向?qū)崊?,雖然

函數(shù)的功能是實現(xiàn)兩個數(shù)的交換,但由于沒有返回值,故最終的輸出結(jié)果為35。

48、下面程序的運行結(jié)果是______o#include<stdio.h>main()[inty,a;y=2,

a=l;while(y—!=-l){do{a*=y;a++;)while(y-);}printf("%d,%d”,a,y);)

A、1,-2

標(biāo)準(zhǔn)依索.

知識之解析:暫無解析

49、線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu),隊列是一種特殊的

線性表,循環(huán)隊列是隊列的()存儲結(jié)構(gòu)。

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

知識點解析:順序存儲是把邏輯上相鄰的節(jié)點存儲在物理位置相鄰的存儲單元里,

節(jié)點間的邏輯關(guān)系由存儲單元的鄰接關(guān)系來體現(xiàn),由此得到的存儲表示稱為順序存

儲結(jié)構(gòu)。鏈接存儲不要求邏輯上相鄰的節(jié)點在物理位置上亦相鄰,節(jié)點間的邏輯關(guān)

系是由附加的指針字段表示的,由此得到的存儲表示稱為鏈?zhǔn)酱鎯Y(jié)構(gòu)。將隊列存

儲空間的最后一個位置繞到第一個,形成邏輯上首尾相接的圓環(huán),這種形式的順序

隊列稱為循環(huán)隊列,它是隊列的順序存儲結(jié)構(gòu)。

50、下列程序運行的結(jié)果是ointk=0;voidfun(intm){m+=k,k+=m;

printf("m=%dk=%d",m,k++);}main(){inti=4;fun(i++);printf("i=%dk=%d\

n",i,k);}

標(biāo)準(zhǔn)答案:m=4k=4i=5k=5。

知識點解析:程序中k為全局變量,在主函數(shù)中,局部變量i=4.所以fun(i++)就

調(diào)用fun(4),在函數(shù)fun(4)中輸出m=4,k=4.然后變量k++等于5,變量i++等于

5,所以主函數(shù)的prinlf("i=%dk=%d\n",i,k);語句輸出i=5,k=5。

51、設(shè)有定義:FILE*fw;,請將以下打開文件的語句補充完整,以便可以向文本文

件readme.txt的最后續(xù)寫內(nèi)容。fw=fopen(',readme.txt",,'()")

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

知識點解析:文件常用的打開方式”a”的作用是向文本文件尾增加數(shù)據(jù)。

52、以下程序運行后的輸出結(jié)果是______。main(){inta[4][4]={{1,2,3,4),{5.

6,7,8),{11,12,13,14},{15,16,17,18));inti=O,j=O,s=O;while(i++<4)

{if(i==2||i==4)continue;j=0;do(s+=a[i][j];j++;)while(j<4);)

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

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

知識點解析:暫無解析

53、有以下程序main(){chara,b,C,d;scanf("%c,%c,%d,%d",&a,

&b,&c,&d);printf("%c,%c,%c,%c\n"a,b,c,d);}若運行時從鍵盤上

輸入:6,5,65,66〈回車>。則輸出結(jié)果是______o

標(biāo)準(zhǔn)答案;6,5,A,B

知識點解析:暫無解析

54、以下程序的運行結(jié)果是_____o#include<string.h>typedefstruct

student{charname[10];longsno;floatscore;)STU;main(){STU

a=(nzhangsan",2001,95},b={nShangxian",2002,90},c={HAnhua",2003,95),d,*p-&d;

d=a;if{strcmp(a.nalne,)>O)d=b:if(strcmp(,)>0)d=c;

printf("%ld%s\n,,,d.sno,p>name);}

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

知識點解析:本題考核的知識點是結(jié)構(gòu)體類型的定義、賦初值以及字符串的比較。

本題中首先定義一個結(jié)閡體類型STU,鎮(zhèn)結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、

一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)

體變量a、b、c、d,并且給a、b、c賦初值,然后定義?一個結(jié)構(gòu)體指針p,并讓

它指向變量d。然后讓將變量a的值賦給變量d,接著通過兩個

溫馨提示

  • 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

提交評論