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

下載本文檔

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

文檔簡介

家二級C語言機試(選擇題)模擬試

卷3(共9套)

(共270題)

家二級C語言機試(選擇題)模擬試

卷第1套

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

1、某完全二叉樹按層次輸出(同一層從左到右)的序列為ABCDEFGH。該完全二叉

樹的前序序列為()。

A、ABCDEFGH

B、ABDHECFG

C、HDBEAFCG

D、HDEBFGCA

標準答案:B

知識點解析:完全二叉樹的特點是除最后一層外,每一層上的結(jié)點數(shù)均達到最大

值;在最后一層上只缺少右邊的若干結(jié)點。根據(jù)這一特點,再根據(jù)題意輸出序列為

ABCDEFGH,可以得到該二叉樹的結(jié)構(gòu)如下:也故此完

全二叉樹的前序序列為ABDHECFGo

2、若主函數(shù)中有定義語句:inta|10|,b|10],c;,在主函數(shù)前定義的Fun函數(shù)首

部為:voidfun(intx口),則以下選項中錯誤的調(diào)用語句是()。

A、fun(b);

B、fun(&c);

C、fun(&a[3]);

D、fun(b[ll]);

標準答案:D

知識點解析:fun函數(shù)的形式參數(shù)應(yīng)為一個數(shù)組,而b[11]是一個整型元素,參數(shù)類

型不一致,且b[ll]已經(jīng)溢出,所以D選項錯誤。

3、線性表的鏈式存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)相比,鏈式存儲結(jié)構(gòu)的優(yōu)點有

A、節(jié)省存儲空間

B、插入與刪除運算效率高

C、便于查找

D、排序時減少元素的比較次數(shù)

標準答案:B

知識點解析:順序存儲時,相鄰數(shù)據(jù)元素的存放地址也相鄰(邏輯與物理統(tǒng)一);

要求內(nèi)存中可用存儲單元的地址必須是連續(xù)的。優(yōu)點是存儲密度大(=1),存儲

空間利用率高;缺點是插入或刪除元素時不方便。鏈式存儲時,相鄰數(shù)據(jù)元素可隨

意存放,但所占存儲空間分兩部分,一部分存放結(jié)點值,另一部分存放表示結(jié)點問

關(guān)系的指針優(yōu)點是插入或刪除元素時很方便效率高,使用靈活。缺點是存儲密度小

(VI),存儲空間利用率低,故選項B正確。

4、語句strlenC'abcdcfiog\0\4")的結(jié)果是()。

A、4

B、6

C、II

D、12

標準答案:B

知識點解析:字符串的字符''0',它在C語言的字符串中具有特殊的意義,字符’

\0'標志字符串的結(jié)束,計算串長時,只計算字符'\0'之前的字符數(shù)量,而不計

算、0'之后有什么字符。

5、下列方法中,屬于白盒法設(shè)計測試用例的方法的是()。

A、錯誤推測

B、因果圖

C、基本路徑測試

D、邊界值分析

標準答案:C

知識點解析:白盒測試方法也稱為結(jié)構(gòu)測試或邏輯測試,主要方法有邏輯覆蓋測

試、基本路徑測試等。

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

A、C程序可以由一個或多個函數(shù)組成

B、C程序可以由多個程序文件組成

C、一個C語言程序只能實現(xiàn)一種算法

D、一個C函數(shù)可以單獨作為一個C程序文件存在

標準答案:C

知識點解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函

數(shù),所以一個C語言程序可以實現(xiàn)多種算法,答案選C。

7、軟件測試的1=1的是

A、評估軟件可靠性

B、發(fā)現(xiàn)并改正程序中的錯誤

C、改正程序中的錯誤

D、發(fā)現(xiàn)程序中的錯誤

標準答案:D

知識點解析:軟件測試的目的是為了發(fā)現(xiàn)程序中的錯誤,而軟件調(diào)試是為了更正程

序中的錯誤。

8、設(shè)表的長度為20。則在最壞情況下,冒泡排序的比較次數(shù)為

A、90

B、20

C、19

D、190

標準答案:D

知識點解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序的比較次數(shù)為

n(n-l)/2o本題中,n=20,所以20*19/2=190。所以選項D正確。

9、有以下程序main(){inti=5;do{if(i%3=l)if(i%5=2){printR“*%。,i);

break:)i++:)while(i!=0);printf(,,\n,,)i}程序的運行結(jié)果是

A、*3*5

B、*5

C、*7

D、*2*6

標準答案:C

知識點9由于循環(huán)變量i的初值等于5,所以第一、二次進入do…,while循

環(huán)語句時,條件語句if(i%3=l),if(i%5:=2){print出“*%d”,i);break;)不執(zhí)行,

只執(zhí)行i++語句。當(dāng)i=7時,滿足條件語句if(i%3=l),if(i%5=2){printfr*%d”,

i);break;),所以輸出*7,結(jié)束循環(huán)。

10、數(shù)據(jù)庫管理系統(tǒng)是

A、操作系統(tǒng)的一部分

B、在操作系統(tǒng)支持下的系統(tǒng)軟件

C、一種編譯系統(tǒng)

D、一種操作系統(tǒng)

標準答案:B

知識點解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構(gòu),它是一種系統(tǒng)軟件,負責(zé)數(shù)據(jù)庫中

的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等。

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

總是比度為2的結(jié)點多一個。所以選擇B)。

15、軟件生命周期中的活動不包括()。

A、市場調(diào)研

B、需求分析

C、軟件測試

D、軟件維護

標準答案:A

知識點解析:軟件生命周期可以分為軟件定義、軟件開發(fā)與軟件運行維護三個階

段。主要活動階段是:可行性研究與計劃階段,需求分析,軟件設(shè)計,軟件實現(xiàn),

軟件測試,運行和維護,所以選擇A)。

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

A、getc()

B、gets()

Csgctchar()

D、scanf()

標準答案:B

知識點解析:scanf()語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所

以用scanf()函數(shù)不能輸入空格;getchar。函數(shù)用于輸入字符,其調(diào)用形式為:

ch=getchar(),getchar。函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的一個字符賦

給變量ch。在輸入時,空格、回車符都將用于字符讀入,而且只有在用戶敲入

Enler鍵時,讀入才開始執(zhí)行。gels()函數(shù)的調(diào)用形式為:gets(str_adr),其中sljadr

是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指

針變量。gets。函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符

為止。gelc()函數(shù)的調(diào)用形式為:ch二getc(pD其中pf是文件指針。函數(shù)的功能是從

pf指定的文件中讀入一個字符.并把它作為函數(shù)值返g|c

17、有以卜程序#include〈stdio.h>#inckide<stdio.h>intfun(intn){int*p;

p=(int*)malloc(sizeof(int));*p=n;return*p;)main(){inta;a=fun(10);

printf(,,%d\n,\a+fun(10));}程序的運行結(jié)果是

A、10

B、20

C、0

D、出錯

標準答案:B

知識點解析:函數(shù)fun(intn)的功能是在內(nèi)存中每次動態(tài)的申請一個整型變量的存儲

空間,把整型變量n的值存入這個存儲空間中。所以當(dāng)在主函數(shù)中執(zhí)行輸出語句

時,a+fun(10)的值等于20。

18、在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負責(zé)數(shù)據(jù)模式定義的是

A、數(shù)據(jù)定義語言

B、數(shù)據(jù)管理語言

C、數(shù)據(jù)操縱語言

D、數(shù)據(jù)控制語言

標準答案:A

知識點解析:數(shù)據(jù)庫管理系統(tǒng)一般提供相應(yīng)的數(shù)據(jù)語言,它們分別是:數(shù)據(jù)定義語

言,負責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言,負責(zé)數(shù)據(jù)的操

縱,包括查詢及增、冊上改等操作;數(shù)據(jù)控制語言,負責(zé)數(shù)據(jù)完整性、安全性的定

義與檢查以及并發(fā)控制、故隙恢復(fù)等功能。

19、若有定義語句:inla=3,b=2,c=l;以下選項中錯誤的賦值表達式是

A、a=b=c+l;

a=(b=4)=3;

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

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

標準答案:B

知識點解析:本題主要考查賦值表達式,對于賦值表達式來說,賦值號的左邊

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

20、有以下程序#includemain(){inty=l,x,a[]={2,4,6,8,10},*p;p=&a[l];for(x=0;x

<3;x++)y=y+*(p+x);printf("%d\n”,y);)程序運行后的輸出結(jié)果是

A、17

B、19

C、18

D、20

標準答案:B

知識點解析:本題通過語句“p=&a[l]將指針變量p指向了存儲單元a[l],即使得

p[0]的值為4c然后通過3次for循環(huán).x=0時,*(p+x)=*p=a[1]=4所以y=1+4=5:

x=l時,*(p+x)=*(p+l)=a[2]=6,所以y=5+6=ll;x=2時;*(p+x)=*(p+2)=a|3]=8,

所以y=l1+8=19。因此B選項正確。

21、若有定義語句:inta[2][3],*p[3];,則以下語句中正確的是

A、p=a;

B、p[0]=a;

C、p[0]=a[l][2];

D、p|I]=a;

標準答案:C

知識點解析:本題考查多維數(shù)組和數(shù)組指針。a是一個二維數(shù)組,p是一個指針數(shù)

組,該數(shù)組有3個元素,每個元索都是一個指向整型對象的指針。選項A錯誤,

等號的左邊是一個數(shù)組地址,不是變量;選項B數(shù)據(jù)類型不匹配,p[0]是指向一個

整型對象,而a是一個二維數(shù)組首地址;選項C正確,是把元素賦值給

p|0|;選項D和選項B一樣屬于數(shù)據(jù)類型不匹配,p[l]是指向一個整型對象,而

是一個二維數(shù)組首地址。

n

22、若有以下程序段charstr[4][12]={”aa,bbb","ccccc","d),*strp[4];inti;

for(i=0;i<4;i++)strp[i]=str[i];不能正確引用字符串的選項是

A、strp

B、str[O]

C、strp[3|

D、*strp

標準答案:A

知識點解析:程序段中定義指針數(shù)組*sirp,含有4個元素,for循環(huán)s【rp分別俁存

了二維數(shù)組str中的4個字符串的首地址,因此strp為二級地址,不能保存字符串

的首地址,*strp或者st「p[O]中存放了字符串“aa”的“首地址,所以不能正確引用字

符串的為選項A。

23有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t—;return(t-s);}以下關(guān)于

aaa函數(shù)功能敘述正確的是()。

A、求字符串s的長度

B、比較兩個串的大小

C、將串s復(fù)制到串t

D、求字符串s所占字節(jié)數(shù)

標準答案:A

知識點解析:數(shù)組名代表該數(shù)組的首地址。而函數(shù)循環(huán)"while(%++);"的結(jié)束條件為

I到達了當(dāng)前字符串的尾部,即*仁二?\0?成立,之后執(zhí)行語句循環(huán)結(jié)束后繼

續(xù)執(zhí)行語句“t--”,此時指針九二二?\0?,所以t-s計算的是該字符串首尾(不連帶字符

串結(jié)束符)之間間隔了幾個元素,即計算了s所指字符串的實際長度,答案選A。

24有以下程序:#includemain(){intx=1,y=0,a=0,b=0;switch(x)

{easel:switch(y){caseO:a++;break;case1:b++;break:)case2:a+

+;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);)

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

a=2,b=2

B、a=2,b=l

C、a=1,b=1

D^a=l,b=0

標準答案:B

知識點解析:case常量表達式只是起語句標號作用,并不是該處進行條件判斷。在

執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的case語句,就從比

case子句執(zhí)行下去,不在進行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)

層switch(y)時只執(zhí)行了a++,此時a的值為1。然后執(zhí)行外層case2語句的a+

+;b++;a為2,b為1。所以結(jié)果為B。

25、下面結(jié)構(gòu)體的定義語句中,錯誤的是()。

A^structord{intx:inty;intz:}structorda:

B、structord{intx;inty;intz;};structorda;

C、structord{intx;inty;intz;)a;

D、struct{intx;inty;intz;}a;

標準答案:A

知識點解析:A)選項structord{inix;inty;iniz;}structorda;錯誤,不能在定

義結(jié)構(gòu)體的同時,又用結(jié)構(gòu)體類型名定義變量。應(yīng)該寫成B)選項或者D)選項的格

式。

家二級C語言機試(選擇題)模擬試

卷第2套

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

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

A、能采用順序存儲的必定是線性結(jié)構(gòu)

B、所有的線性結(jié)構(gòu)都可以采用順序存儲結(jié)構(gòu)

C、具有兩個以上指針的鏈表必定是非線性結(jié)構(gòu)

D、循環(huán)隊列是隊列的鏈式存儲結(jié)構(gòu)

標準答案:B

知識點解析:所有的線性結(jié)構(gòu)都可以用數(shù)組保存,即都可以采用順序存儲結(jié)構(gòu)。而

反過來不可以,完全二叉樹也能用數(shù)組保存(按層次依次存放到數(shù)據(jù)元素中),但完

全二叉樹不屬于非線性結(jié)構(gòu)「雙向鏈表具有兩個以卜的指針,但屬于線性結(jié)構(gòu).循

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

2、下列敘述中正確的是

A、算法就是程序

B、設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計

C、設(shè)計算法時只需要考慮結(jié)果的可靠性

D、設(shè)計算法時要考慮時間復(fù)雜度和空間復(fù)雜度

標準答案:D

知識點解析:算法復(fù)雜度,即算法在編寫成可執(zhí)行程序后,運行時所需要的資源,

資源包括時間資源和內(nèi)存資源。算法分析的目的在于選擇合適算法和改進算法。

個算法的評價主要從時間復(fù)雜度和空間復(fù)雜度來考慮。

3、下列各組的排序方法中,最壞情況下比較次數(shù)相同的是

A、冒泡排序與快速排序

B、簡單插入排序與希爾排序

C、堆排序與希爾排序

D、快速排序與希爾排序

標準答案:A

知識點解析:最壞情況下冒泡排序需要比較n(n-l)/2次,即序列逆序的情況。簡單

插入排序,無論是否最壞情況,都需要n(n-l)/2次c直接插入排序,最壞情況需要

比較次n(n-1)/2次。堆排序,無論是否最壞都要比較O(nlog2n)次??焖倥判?,最

壞情況退化為冒泡排序,需要比較n(n-l)/2次。在最壞情況下,希爾排序所需要的

比較次數(shù)為

4、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。

A、可行性分析報告

B、軟件需求規(guī)格說明書

C、概要設(shè)計說明書

D、集成測試計劃

標準答案:B

知識點解析:A選項錯誤,可行性分析階段產(chǎn)生口J行性分析報告。C選項錯誤,

概要設(shè)計說明書是總體設(shè)計階段產(chǎn)生的文檔。D選項錯誤,集成測試計劃是在概要

設(shè)計階段編寫的文檔。B選項正確,需求規(guī)格說明布是后續(xù)工作如設(shè)計、編碼等需

要的重要參考文檔。

5、對軟件設(shè)計中應(yīng)遵循的準則描述正確的是()。

A、高耦合低內(nèi)聚

B、高內(nèi)聚低耦合

C、模塊獨立性僅與內(nèi)聚度相關(guān)

D、內(nèi)聚與耦合無關(guān)

標準答案:B

知識點解析:軟件設(shè)計應(yīng)遵循的準則有抽象、逐步求精和模塊化、信息隱蔽和局部

化、模塊獨立性。模塊的獨立性程度是評價設(shè)計好壞的重要程度標準,有兩個定

性標準度量,即模塊間的耦合性和模塊內(nèi)的內(nèi)聚性。耦合性是模塊間互相連接的

緊密程度的度量。一個模塊的耦合性越高則該模塊的獨立性越弱。內(nèi)聚性是指一個

模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度。一個模塊的內(nèi)聚性越高則該模塊的獨立

性越強。好的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合。

6、下面不能作為軟件設(shè)計工具的是()。

A、PAD圖

B、程序流程圖

C、數(shù)據(jù)流程圖(DFD圖)

D、總體結(jié)構(gòu)圖

標準答案:c

知識點解析:軟件設(shè)計可以使用的工具有總體結(jié)構(gòu)圖、程序流程圖、N-S圖、PAD

圖、PDL。數(shù)據(jù)流程圖(DFD圖)是需求分析使用的工具。

7、若有定義語句: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語言合法的表達式。

X、學(xué)校的數(shù)據(jù)庫中有表示系和學(xué)生的關(guān)系:系(系編號,系名稱,系主任,電話,

地點),學(xué)生(學(xué)號,姓名,性別,入學(xué)日期,專業(yè),系編號),則關(guān)系學(xué)生中的主鍵

和外鍵分別是()。

A、學(xué)號,

B、學(xué)號,專業(yè)

C、學(xué)號,姓名

D、學(xué)號,系編號

標準答案:D

知識點解析?:一個屬性(即一列),在某張表中不是主鍵(主碼),但在其他表中是主

鍵(主碼),則它是第一張表的外鍵(外碼)。在“系”表中,"系編號'為主鍵;在“學(xué)生”

表中,“學(xué)號”是主鍵,“系編號”不是主鍵,貝廣系編號”是表“學(xué)生”的外鍵。

9、下面不屬于軟件工程的3個要素是

A、工具

B、過程

C、方法

D、環(huán)境

標準答案:D

知識點解析:軟件T程的3個要素是工具、過程和方法°

10、數(shù)據(jù)字典(DD)所定義的對象都包含于

A、數(shù)據(jù)流圖(DFD圖)

B、程序流程圖

C、軟件結(jié)構(gòu)圖

D、方框圖

標準答案:C

知識點解析:本題考查數(shù)據(jù)流程圖DFD的概念。對于面向數(shù)據(jù)流的結(jié)構(gòu)化分析方

法,按照DeMarco的定義,“結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典

(DD)、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格

說明的目標文檔結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分

解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主耍工具,建立系統(tǒng)的邏輯模

型。數(shù)據(jù)流圖(DFI)——DataFlowDiagram)是描述數(shù)據(jù)處理過程的工具,是需求理

解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加

工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。由此可得數(shù)據(jù)流程圖是結(jié)

構(gòu)化方法的需求分析工具。

11、在關(guān)系模型中,每一個二維表稱為一個

A、關(guān)系

B、屬性

C、元組

D、主碼(鍵)

標準答案:A

知識點解析:每個二維表代表一個關(guān)系,由表框架及表的元組組成。

12、有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;

inti:for(i=0:i<30:i+=10)a+=f((double)i):printf("%3.Of\n",a);)double

f(doublex){returnx*x+I:}程序的運行結(jié)果是()。

A、500

B、401

C、503

D、1404

標準答案:C

知識點解析:本題重點考查函數(shù)的定義和調(diào)用。第一次循環(huán),a=0,i=0,返回值

a=0*0+1=1;第二次循環(huán),a=l,i=10,返回值a=10*10+l+l=102;第三次循環(huán),

a=102,i=20,返回值a=20*20+l+102=503;第四次循環(huán),a=503,i=30,不符合i

<30,跳出循環(huán),最后結(jié)果輸出a=5O3。

13、有以下程序#includeVstdio.h>intflintx,inty){retum((y-x)*x);}main()

(inta=3,b=4,c=5,d;d=flfla,b),f(a,c)):printf(,,%d\n,\d);)程序運行后

的輸出結(jié)果是

A、10

B、8

C、9

D、7

標準答案:C

知識點解析:本題考查函數(shù)的嵌套調(diào)用。首先計算f(a,b)與f(a,C,f(a,b)=(h

a)*a=3,f(a,C=(c.a)*a=6,然后計算f(3,6)=(6-3)*3=9o

14、設(shè)有定義語句:char*aa[2]={nabcd","ABCD"):則以下敘述正確的是

A、aa數(shù)組的兩個元素只能存放含有4個字符的一維數(shù)組的首地址

B、aa數(shù)組的值分別是字符串“abed”和“ABCD”

C、aa是指針變量,它指向含有兩個元素的字符型數(shù)組

D、aa⑼存放了字符串“abed”的首地址

標準答案:D

知識點解析:題目中char*aa[2],定義了指針數(shù)組aa,有兩個元素,aa⑼存放

“abed”地址,而aa[l]存放“ABCD”地址。

15、有以下程序#include#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;

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

A、0

B、-12

C、-20

D、10

標準答案:C

知識點解析:本題考查宏定義,宏定義只是做簡單的替換,所以本題中

SUB(a+b)*c=(a+b)-(a+b)*c=-20,所以答案為C選項。

16、設(shè)有以下函數(shù):voidfun(intn,char*s){.......}則下面對函數(shù)指針的定義和賦

值均正確的是

A、void(*pf)(int,char);pf=&fun;

B、void*pf();pf=fun;

C、void*pf();*pf=fun;

D,void(*pf)(int,char*);pf=fun:

標準答案:D

知識點解析:函數(shù)的參數(shù)可以是指針類型。它的作用是將一個變量的地址傳送到另

一個函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應(yīng)該定義為void

(*p0()o如果定義為void*pf(),則表示函數(shù)pf返回值為一個基類型為void的指

針。因此D選項正確。

17、若有以下程序段doublex=5.16894:printf("%f\n",(int)(x*1000+0.5)/

(double)1000);則程序段的輸出結(jié)果是

A、5.175000

B、5.169000

C、5.170000

D、5.168000

標準答案:B

知識點解析:(int)(x*1000+0.5)/(double)1000表達式功能,保存數(shù)據(jù)x的后三位

小數(shù),把第四位四舍五入。

18、有以下程序yoidfun(char*S){chara[10];strcpy(a,"STRING'');S=a;}

,,,

main(){char*p=TROGRAM;fun(P);printf(''%s\n'',p);)程序運行后的輸出

結(jié)果是(此處□代表空格)

A、STRNG□口□口

B、PROGRAM

C、STRING□□口

D、STRING

標準答案:B

知識點解析:函數(shù)fun的主要功能是把字符串"STRING",存放到字符數(shù)組a中,

s指向該字符串,函數(shù)調(diào)用結(jié)束以后,釋放s和a指向的空間。主函數(shù)調(diào)用

fun(p),并不能更改p的值,因此p的指向沒有改變。

19^有以下程序#includeVstdio.h>intfiin(int(*s)[4],intn,intk){intm,i;

m=s[O][k];for(i=l;i<n;i++)if(s[i][k]>m)m=s[i][k];returnm:)main()(int

a[4|[4]={{l,2,3,4),{II,12,13,14),{21,22,23,24),{31,32,33,

34});printfC%d\n",fun(a,4,0));}程序的運行結(jié)果是

A、31

B、34

C、4

D、32

標準答案:A

知識點解析:函數(shù)點n(int(*s)[4],intn,intk)的功能是返回二維數(shù)組第k列的最大

元素。在主函數(shù)中由于二維數(shù)組a⑷[4]已經(jīng)初始化.所以fun(a,4,0)的值是二維

數(shù)組叫口第I列中的最大元素31。

20,若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是

A、a|2|[!l]

B、a[2][3]

C、a[0][3]

D、a[l>2][!l]

標準答案:D

知識點解析:本題考查數(shù)組的使用,C語言中數(shù)組的下標從0開始。本題中a是一

個二維數(shù)組,兩個下標的范圍分別是0-1和0-2。選項A中第一個下標越界,超出

了范圍:選項B中第一個和第二個下標都超出了范圍;選項C中第二個下標超出

范圍:選項D中,122的值為0.!1的值為0.因比選項D實際是訪問a[0][0].

21、若有以下程序#includeVstdio.h>int*f(int*s,int*t){int*k;if(*s<*t){k=s;

s=t;t=k;}returns;)main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q);

printf(M%d,%d,%d,%d,%d\nH,i,j*p,*q,*r);}則程序的輸出結(jié)果是

A、3,5,513,5

B、5,3,5,3,5

C>5,3,3,5,5

D、3,5,3,5,5

標準答案:D

知識點解析:本題考查了返回值為指針的函數(shù),函數(shù)f的主要功能為第一個參數(shù)小

于第二個參數(shù),那么交爽指針的指向,這對于實參指向的數(shù)據(jù)時沒有影響的。最后

返回比較大的元素的地址。主函數(shù)中p指向i,q指向j,調(diào)用kf(p,q)o返回q的

地址,因此*p=3,*q=5,*r=5o

22、下列關(guān)于棧敘述正確的是()。

A、棧頂元素最先能被刪除

B、棧頂元素最后才能被刪除

C、棧底元素永遠不能被刪除

D、棧底元素最先被刪除

標準答案:A

知識點解析:棧是先進后出的數(shù)據(jù)結(jié)構(gòu),所以棧頂元素最后入棧卻最先被刪除。棧

底元素最先入棧卻最后被刪除。所以選擇A)。

23、定義無符號整數(shù)類為Ulnt,下面可以作為類Ulnt實例化值的是()。

A、-369

B、369

C、0.369

D、整數(shù)集合{1,2,3,4,5}

標準答案:B

知識點解析:只有B)選項369可以用無符號整數(shù)來表示和存儲。A)選項一369有負

號,選項00.369是小數(shù)都不能用無符號整數(shù)類存儲。選項D)是一個整數(shù)集合得

用數(shù)組來存儲。

24、若變量已正確定義,以下選項中非法的表達式是

A、a!=4『b'

B、,a>=l/2*(x=y=20,x*3)

C、’a'%4

D、'A'+32

標準答案:B

知識點解析:A選項中h即表示a為字符常量,再給E賦值l/2*(x=y=20,x*3),是

不正確的。因此B選項正確。

25>有以下程序:#includemain(){intx=1?y=0?a=0,b=0;switch(x)

{case1:switch(y){caseO:a++;break;case1:b++;break;)case2:a+

+;b++;break;case3:a++;b++;)printf(na=%d,b=%d\n",a,b);)

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

A、a=2,b=2

B、a=2,b=1

C、a=l,b=1

D、a=l,b=0

標準答案:B

知識點解析:case常量表達式只是起語句標號作用,并不是該處進行條件判斷。在

執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的case語句,就從此

case子句執(zhí)行下去,不在進行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)

層switch(y)時只執(zhí)行了a++,此時a的值為1。然后執(zhí)行外層case2語句的a+

+;b++;a為2,b為1。所以結(jié)果為B。

國家二級C語言機試(選擇題)模擬試

卷第3套

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

1、以下敘述中錯誤的是

A、算法正確的程序最終一定會結(jié)束

B、算法正確的程序可以有零個輸入

C、算法正確的程序可以有零個輸出

D、算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果

標準答案:C

知識點解析:算法是指為解決某個特定問題而采取的確定且有限的步驟。一個算法

應(yīng)該具有以下5個特征:①有窮性。一.爪算法包含的操作步驟應(yīng)該是有限的。

也就是說,在執(zhí)行若T個操作步驟之后,算法將結(jié)束,而且每一步都在合理的時

間內(nèi)完成。②確定性。算法中的每一條指令必須有確切的含義,不能有二義性,

對于相同的輸入必能得出相同的執(zhí)行結(jié)果。③可行性。算法中指定的操作,都可

以通過已經(jīng)驗證過可以實現(xiàn)的基本運算執(zhí)行有限次后實現(xiàn)。④有零個或多個輸

入。在計算機上實現(xiàn)的算法是用來處理數(shù)據(jù)對象的,在大多數(shù)情況下這些對象需要

通過輸入來得到。⑤有一個或多個輸出。算法的目的是為了求“解“,這些“解”只有

通過輸出才能得到。

2、下面敘述中正確的是

A、線性表是線性結(jié)構(gòu)

B、棧與隊列是非線性結(jié)構(gòu)

C、線性鏈表是非線性結(jié)構(gòu)

D、二叉樹是線性結(jié)構(gòu)

標準答案:A

知識點解析:線性表是最簡單的、最常用的一種線性結(jié)構(gòu)。所謂線性鏈表指的是采

用鏈式存儲結(jié)構(gòu)的線性表。棧和隊列其實是一種特殊的線性表。樹是一種簡單的非

線性結(jié)構(gòu),二義樹是樹的一種。

3、下列與隊列結(jié)構(gòu)有關(guān)聯(lián)的是

A、函數(shù)的遞歸調(diào)用

B、數(shù)組元素的引用

C、多重循環(huán)的執(zhí)行

D、先到先服務(wù)的作業(yè)調(diào)度

標準答案:D

知識點解析:隊列中最先插入的元素將最先被刪除,最后插入的元素將最后被刪

除。

4、下列敘述中正確的是

A、循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)

B、循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)

C、循環(huán)隊列是非線性結(jié)構(gòu)

D、循環(huán)隊列是一種邏輯結(jié)構(gòu)

標準答案:B

知識點解析:本題主要考查循環(huán)隊列的概念.循環(huán)隊列作為隊列的一種也應(yīng)該是線

性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。

5、閱讀以下程序^includetma,in(){intcase:floatprinth;printf(“請輸入2個

數(shù):"):scanf("%d%F',&case,&printF);printf('%d%t5n",case,printF);}該程

序在編譯時產(chǎn)生錯誤,其出錯原因是

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

B、定義語句出錯,case是關(guān)鍵字,不能用作用戶自定義標識符

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

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

標準答案:B

知識點解析:case是C吾言中的一個關(guān)鍵字,小能用作用戶標識符米使用,所以

這段程序代碼在編譯時就會處錯。

6、在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()。

A、邏輯設(shè)計

B、需求分析

C、詳細設(shè)計

D、物理設(shè)計

標準答案:B

知識點解析:軟件開發(fā)階段包括需求分析、總體設(shè)計、詳細設(shè)計、編碼和測試五個

階段c其中.需求分析階段常用的T具是數(shù)據(jù)流圖和數(shù)據(jù)字典c

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

A、C程序可以由多個程序文件組成

B、一個C語言程序只能實現(xiàn)一種算法

C、C程序可以由一個或多個函數(shù)組成

D、一個C函數(shù)可以單獨作為一個C程序文件存在

標準答案:B

知識點解析:在一個C語言程序中可以進行多種算法的實現(xiàn),對算法的個數(shù)沒有

規(guī)定,所以B選項錯誤。

8、數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨立性是指()。

A、不會因為存儲策略的變化而影響存儲結(jié)構(gòu)

B、不會因為數(shù)據(jù)的變化而影響應(yīng)用程序

C、不會因為系統(tǒng)數(shù)據(jù)存儲結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序

D、不會因為某些存儲結(jié)構(gòu)的變化而影響其他的存儲結(jié)構(gòu)

標準答案:C

知識點解析:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨立性,是指數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序且不依

賴于應(yīng)用程序,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程

序。數(shù)據(jù)獨立性一般分為物理獨立性和邏輯獨立性兩級。

9、數(shù)據(jù)模型的三個要素是()。

A、外模式、概念模式、內(nèi)模式

B、實體完整性、參照完整性、用戶自定義完整性

C、數(shù)據(jù)增加、數(shù)據(jù)修改、數(shù)據(jù)查詢

D、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)約束

標準答案:D

知識點解析:數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,所描述的內(nèi)容有三個部分:數(shù)據(jù)結(jié)構(gòu)、

數(shù)據(jù)操作、數(shù)據(jù)約束。數(shù)據(jù)結(jié)構(gòu)主要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的

聯(lián)系等。數(shù)據(jù)操作主要描述在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操作類型與操作方式。數(shù)據(jù)約束

主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語法、語義聯(lián)系,它們之間的制約與依存關(guān)系,以及

數(shù)據(jù)動態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效與相容。

10、數(shù)據(jù)流圖中帶有箭頭的線段表示的是

A、控制流

B、事件驅(qū)動

C、模塊調(diào)用

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

標準答案:D

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

移動變換過程。其中帶箭頭的線段表示數(shù)據(jù)流,沿箭頭方向傳遞數(shù)據(jù)的通道,一般

在旁邊標注數(shù)據(jù)流名。

11>設(shè)有如下語句:typcdefstructDate{intyear;intmonth:intday;)DATE;

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

A、DATE是用戶說明的新結(jié)構(gòu)體類型名

B、structDate是用戶定義的結(jié)構(gòu)體類型

C、DATE是用戶定義的結(jié)構(gòu)體變量

D、struct是結(jié)構(gòu)體類型的關(guān)鍵字

標準答案:C

知識點解析:該定義語句把結(jié)構(gòu)體structDate命名為一個新的類型名“DATE”,

DATE相當(dāng)于“structDate",是結(jié)構(gòu)體類型名,選項C描述錯誤,答案選C。

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

A、定義階段

B、開發(fā)階段

C、維護階段

D、上述三個階段

標準答案:B

知識點解析:本題考查軟件生命周期的相關(guān)概念。通常,將軟件產(chǎn)品從提出、實

現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考

慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般

包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用以及維護等活動。還可

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

13、有以下程序:#includemain(){ima,b:for(a=0;a<3;a++){seanR“%d”,

&b);switch(b){default:pnnff('、%d”,++b);case1.:pnnff('、%d”,++b);

case2C%deasepnnu",++b);}}}執(zhí)行時輸入:123v回車〉,則輸出結(jié)果是0。

A、233456

B、234

C、223444

D、234344

標準答案:A

知識點解析:這是一個循環(huán)結(jié)構(gòu)嵌套選擇結(jié)構(gòu),按照外層循環(huán),內(nèi)層選擇一步一步

處理即可。本題重點注意,switch語句中并沒有出現(xiàn)break語句,所以內(nèi)層循環(huán)是

不會跳出的。

14、在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是

A、程序內(nèi)部邏輯

B、程序外部功能

C、程序數(shù)據(jù)結(jié)構(gòu)

D、稗序流程圖

標準答案:B

知識點解析:黑盒測試法指的是根據(jù)程序的外部功能,把程序本身看成一個黑盒

子.設(shè)計測試用例來驗證程序外部功能的正確件C

15、若有以下程序#includemain(){intb=10,a=-11;a%=b%=4;printf("%d%d\

n",a,b);)則程序的輸出結(jié)果是

A、12

B、-1-2

C、-12

D、1-2

標準答案:C

知識點解析:對于表達式a%=b%=4為復(fù)合的賦值運算,結(jié)合性自右至左,相當(dāng)

于先計算b.b%4,a=a%b:結(jié)果的符號和第一個操作數(shù)的符號相同,因此b為

2,a的結(jié)果為.1。

16、數(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)。

17、某系統(tǒng)結(jié)構(gòu)圖如下圖所示,該系統(tǒng)結(jié)構(gòu)圖的最大扇出數(shù)是

A^n

B、1

C、3

D、4

標準答案:A

知識點解析:扇出指的是由一個模塊直接調(diào)用的其它模塊數(shù)。題干中“某系統(tǒng)”為一

個模塊,其扇出數(shù)目為n(n>3),功能1與功能n模塊扇出數(shù)均為2,故選項A正

確。

18、下列程序段中完全正確的是()。

A、int*p;scanf("%d",&p);

B、int*p;scanf("%d",p);

C、intk,*p=&k;scanr(H%d",p);

D、intk,*p:*p=&k;scanf(H%d",p);

標準答案:C

知識點睛析:A選項中錯在沒有對指針進行初始化,無效指針,并且在scanfC%

d",&p)中無須再進行取地址操作;B選項中沒有對指針進行初始化,無效指針;

D選項中語句*p=&k;的左端*p是指針所指內(nèi)存空間的值,&k是地址,應(yīng)為

p=&koC選項正確。

19>有以下程序#includcmain(){intk=5;while(-k)printf("%d",k-=3);printf("\nn);}

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

A、1

R、2

C、4

D、死循環(huán)

標準答案:A

知識點解析:--k先自減在使用,所以第一次判斷條件即為whi1e(4),條件為真執(zhí)行打

印k的值k=4-3,結(jié)果為1,第二次判斷條件即為while(O),條件為假,結(jié)束循環(huán),打印回

車換行符。所以選擇A選項。

20、若函數(shù)調(diào)用時的實參為變量時,以下關(guān)于函數(shù)形參和實參的敘述中正確的是

A、形參只是形式上的存在,不占用具體存儲單元

B、函數(shù)的形參和實參分別占用不同的存儲單元

C、同名的實參和形參占同一存儲單元

D、函數(shù)的實參和其對應(yīng)的形參共占同一存儲單元

標準答案:B

知識點解析:在C語言中,函數(shù)的實參單元與形參單元在內(nèi)存中分配不同的存儲

單元。在調(diào)用函數(shù)時,給形參分配臨時存儲單元,并將實參對應(yīng)的值傳遞給形參,

在被調(diào)用函數(shù)中對形參存儲單元中的值進行運算,最后通過return語句把函數(shù)值返

回調(diào)用函數(shù)。當(dāng)調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。

21、下列關(guān)于C語言文件的敘述中正確的是()。

A、當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B、打開一個已存在的文件并進行寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C、在一個程序中對文件進行寫操作后,必須先關(guān)閉該文件然后再打開才能讀到第

一個數(shù)據(jù)

D、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

標準答案:A

知識點解析:B選項中打開一個已存在的文件并進行寫操作后,原有文件中的全部

數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C選項中在一個程序中對文

件進行寫操作后,不是先關(guān)閉該文件然后再打開才能讀到第一個數(shù)據(jù),用fseek()

函數(shù)進行重新定位即可。D選項中,C語言中的文件可以進行隨機讀寫。

22、以下選項中關(guān)于C語言常量的敘述錯誤的是

A、經(jīng)常被使用的變量可以定義成常量

B、常量分為整型常量、實型常量、字符常量和字符串常量

C、常量可分為數(shù)值型常量和非數(shù)值型常量

D、所謂常量,是指在程序運行過程中,其值不能被改變的量

標準答案:A

知識點解析:C語言中,常量是指在程序運行過程中其值不能被改變的量,變量是指

運行過程中其值可以改變的量,二者不能混淆,所以A選項錯誤。

23、以下敘述中正確的是

A、C程序書寫格式嚴格,要求一行內(nèi)只能寫一個語句

B、C程序書寫格式自由,一個語句可以寫在多行上

C、C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面

D、用C語言編寫的程序只能放在一個程序文件中

標準答案:B

知識點解析:本題主要考查的是C語言結(jié)構(gòu)中的源程序書寫格式這個知識點,在

C活言中注釋部分對程序的運行結(jié)果不產(chǎn)生任何影響,它可以出現(xiàn)在任意位置:C

語言書寫自由,一行內(nèi)可以寫多個語句,一個語句可以寫在多行上;由于C語言

編寫的程序有很好的移植性,可以放在多個程序文件中。

24、以下C語言用戶標識符中,不合法的是

A、_1

B、AaBc

C、a_b

D、a—b

標準答案:D

知識點解析:本題考查用戶標識符,C語言中,用戶標識符只能由字母、下劃線和

數(shù)組組成,且必須以字母或者下劃線開始。選項A)、B)和C)都是正確的,選項D)

中的case是C語言關(guān)鍵字,不能作為用戶標識符,是錯誤的。

25、設(shè)有定義語句:char*aa[2]=rabed”了abcD”}:則以下敘述正確的是

A、aa數(shù)組的兩個元素只能存放含有4個字符的一維數(shù)組的首地址

B、aa數(shù)組的值分別是字符串"abed”和一beD,'

C、aa是指針變量,它擰向含有兩個元素的字符型數(shù)組

D、aa[O]存放了字符串“abed、的首地址

標準答案:D

知識點解析:題目中char*aa⑵,定義了指針數(shù)組aa,有兩個元素,aa[O]存

放”abed”地址,而aa[l]存放''ABCD''地址。

26、以下敘述中正確的是

A、語句inta口={0}:是不合法的,遺漏了數(shù)組的大小

B、語句chara[2]={“A\"B”};是合法的,定義了一個包含兩個字符的數(shù)組

C、語句inta[8]={0};是合法的

D、語句chara[3];a="AB":是合法的,因為數(shù)組有三個字符空間的容量,可以保

存兩個字符

標準答案:C

知識點解析:當(dāng)系統(tǒng)為所定義的數(shù)組在內(nèi)存中開辟一串連續(xù)的存儲單元時.這些存

儲單元中并沒有確定的值,可以在定義語句中為所定義數(shù)組的各個元素賦初值。

數(shù)組初始化賦值是指在數(shù)組定義時給數(shù)組元素賦予初值。初始化賦值的一般形式

為:類型說明符數(shù)組名[常量表達式上{值,值,…,};。需要注意的是當(dāng)所!K初

值多于所定義數(shù)組的元索個數(shù)時,在編譯時將給出出錯信息,在指定初值時,第一

個初值必定賦給下標為0的元素,然后按這些數(shù)值的排列順序賦初值,只能給元素

逐個賦值,不能給數(shù)組整體賦值。如果給全部元素賦值,則在數(shù)組說明中,可以不

給出數(shù)組元素的個數(shù)。

27、關(guān)于typedef的敘述中錯誤的是O。

A、用typedef可以說明一種新的類型名

B、typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤

C、可以用typedef說明的新類型名來定義變量

D、typedef的作用是用一個新的標識符來代表已存在的類型名

標準答案:B

知識點解析:C語言規(guī)定typedef語句的作用僅僅是用“標識符”來代表已存在的“類

型名“,并未產(chǎn)生新的數(shù)據(jù)類型,原來類型名依然有效。為了便于識別,一般習(xí)慣

將新的類型名用大寫字母表示,但也可以是小寫。

28、有以下程序#incluclevoidfun(char*c,intd){*c=*c+l;d=d+l;printf(M%

c,%c,",*c,d);}main(){charb=,a,,a='A';tun(&b,a);printf("%c,%c

\n'\b,a);}程序運行后的輸出結(jié)果是

A、b,B,b,A

B、b,B,B,A

C、a,B,B,a

D、a,B,a,B

標準答案:A

知識點解析:本題中fun函數(shù)的參數(shù)傳遞方式,形參c是傳地址,形參d是傳值,

所以在主函數(shù)中,執(zhí)行fun時,把變量b的地址傳給了c,把a的值傳遞給了d,

經(jīng)過運算,輸出的值為b,Bo在主函數(shù)的輸出語句中,輸出變量b的值為b,變

量a的值為A。

29、在數(shù)據(jù)庫中,數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和

A、查詢

B、數(shù)據(jù)類型

C、關(guān)系運算

D、數(shù)據(jù)約束

標準答案:D

知識點解析:在數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)模型有二個要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)

的約束條件。其中數(shù)據(jù)的約束條件包括三種:實體完整性約束條件、參照完整性約

束條件和用戶定義的完整性約束條件。因此選項D正確。

30、以下程序段中的變量已正確定義for(i=0;iV4;i++,i++)for(k=l;k<

3;k++);printf("*");程序段的輸出結(jié)果是

A、********

B、**木*

C、**

D、*

標準答案:D

知識點解析:本題考查循環(huán)語句,題中第二個(內(nèi)層)for循環(huán)之后有一個分號,意

思是每次循環(huán)中的操作為空,不執(zhí)行任何操作。再循環(huán)結(jié)束后執(zhí)行prinlf語句,即

只打出一個九

31、下列敘述中正確的是

A、C程序中所有函數(shù)之間都可以相互調(diào)用

B、在C程序中main函數(shù)的位置是固定的

C、在C程序的函數(shù)中不能定義另一個函數(shù)

D、每個C程序文件中都必須要有一個main函數(shù)

標準答案:C

知識點解析:C程序中主函數(shù)不能被其他函數(shù)調(diào)用,所以A選項錯誤,main函數(shù)可

以放在程序開始,也可以放在中間,也可以放在最后,位置不固定,但程序執(zhí)行時必須從

main函數(shù)開始,所以B選項錯誤,在C程序的函數(shù)中不能定義另一個函數(shù),可以聲明

或調(diào)用另一個函數(shù),所以C選項正確?每個C程序中必須包含一個main函數(shù),但不一

定是每個C程序文件中必須有,用戶單獨編寫的某個函數(shù)也可以存儲為一個C程序

文件,所以D選項錯誤。

32、以下與函數(shù)fseek(fp,OL,SEEK_SET)有相同作用的是

A^feof(fp)

B、ftell(fp)

C、fgetc(fp)

D、rewind(fp)

標準答案:D

知識點解析:本題主要考查文件系10函數(shù)的使用,fseek函數(shù)用于設(shè)置文件指針的

位置,feof函數(shù)用于判斷是否已經(jīng)到了文件結(jié)束,ftell函數(shù)返回文件指針的當(dāng)前位

置,fgetc從文件讀取一個字符,rewind函數(shù)將文件指針重新指向文件開始。題目

當(dāng)中fseek(fp,0L,SEEK_SET)表示把文件指針移動到文件的開始位置0,和

rewind函數(shù)功能一致。

33、以下敘述中正確的是

A、打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

R、在一個程序中當(dāng)對文件進行了寫操作后.必須先關(guān)閉該文件然后再打開.才能

讀到第1個數(shù)據(jù)

C、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

D、當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

標準答案:D

知識點解析:在C語言中,有兩種對文件的存取方式;順序存取和直接存??;如

果以“a”的方式對一個已打開的文件進行寫操作后,則原有文件中內(nèi)容將保存,新

的數(shù)據(jù)寫在原有內(nèi)容之后。如果以“a+”的方式為讀和寫而打開一個文件,則既可以

對文件進行讀,也可以對文件進行寫,而且在讀和寫操作之間不必關(guān)閉文件,可以

從頭開始讀。當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉。

34、有以下程序#includeVstring.h>main(){charp[20]={,a\3',3','d'},

q[]="abcM,r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n".

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

A、9

B、Il

C、6

D、7

標準答案:C

知識點解析:字符串連諼函數(shù)strcaKp,r)的功能是把字符數(shù)組p[]和山連接起來,

此時字符數(shù)組p[]的有效字符長度為9,再執(zhí)行strcpy(p+stHcn(q),q)字符串復(fù)制函

數(shù),把字符數(shù)組q[]復(fù)制到字符數(shù)組叫從p[3]開始到p[5]數(shù)組位置中,由于字符數(shù)

組q口中的內(nèi)容為字符串“abc”復(fù)制時把字符串結(jié)束標志\nul「也復(fù)制到字符數(shù)組

p[]中,這時字符函數(shù)st「lcn(p)返回字符數(shù)組p[]的有效字符長度為6。

35有以下程序#includevoidfun(char*p,intn){charb[6]="abcde";inti;

for(i=O,p=b;i<n;i++)p[i]=b[i];}main(){chara[6]=nABCDE";fun(a,

5);printfC,%s\n';a);}程序運行后的輸出結(jié)果是

A、abcde

B、ABCDE

C、edcba

D、EDCBA

標準答案:B

知識點解析:本題考查數(shù)組名作為函數(shù)參數(shù),執(zhí)行f函數(shù)時,傳進去的a指針械重

新指向了b,所以原本a數(shù)組的地址內(nèi)容不變,所以輸出結(jié)果為ABCDE,答案為

B選項。

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

A、getc()

gets()

C、getchar()

D、scanf()

標準答案:R

知識點解析:scanf()語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所

以用scanf()函數(shù)不能輸入空格;getchar。函數(shù)用于輸入字符,其調(diào)用形式為:

ch=getchar(),getchar。函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的一個字符賦

給變量ch。在輸入時,空格、回車符都將用于字符讀入,而且只有在用戶敲入

Enter鍵時,讀入才開始執(zhí)行。gets。函數(shù)的調(diào)用形式為:gets(stradr),其中sljadr

是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指

針變量。gcls()函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符

為止。getc()函數(shù)的調(diào)用形式為:ch二getc(pf)其中pf是文件指針。函數(shù)的功能是從

pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。

37、有定義語句:intyear=2009,*p=&year;以下不能使變量year中的值增至

2010的語句是

A、(*p)++:

B、++(*p);

C、*p++;

D^*p+=l;

標準答案:C

知識點解析:由于自加運算符++的運算級高于間接運算*的運算級,所以選項A)的

表達式*P++不能使變量year中的值增至2010。

38、下面關(guān)于“EOF”的敘述,正確的是

A、EOF的值等于0

B、文本文件和二進制文件都可以用EOF作為文件結(jié)束標志

C、EO卜是在庫函數(shù)文件中定義的符號常量

D、對于文本文件,fgetc函數(shù)讀入最后一個字符時,返回值是EOF

標準答案:C

知識點解析:EOF是在stdio.h庫函數(shù)文件中定義的符號常量,其值等于-1。EOF

用作文件結(jié)束標志,在二進制或者文本文件內(nèi)部有一個位置指針,用以指示文件內(nèi)

部的當(dāng)前讀寫位置。使用fgetc函數(shù),每讀寫一次,該指針均向后移動,

39、對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為

A、9

B、10

C、45

D、90

標準答案:C

知識點解析:冒泡法是在掃描過程中逐次比較相鄰兩個元素的大小,最壞的情況是

每次比較都要將相鄰的兩個元素互換,需要互換的次數(shù)為

9+8+7+6+5+4+3+2+1=45,選C。

40、若有定義語句:doublea,*p=&a;以下敘述中錯誤的是()。

A、定義語句中的*號是一個間址運算符

B、定義語句中的木號是一個說明符

C、定義語句中的p只能存放double類型變量的地址

D、定義語句中,*p=&a把變量a的地址作為初值賦給指針變量p

標準答案:A

知識點解析:在變量定義doublea,*p=&a;中,*號是一個指針運算符,而非

間址運算符,所以A錯誤。

國家二級C語言機試(選擇題)模擬試

卷第4套

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

1、下面敘述中正確的是

A、線性表是線性結(jié)構(gòu)

B、棧與隊列是非線性結(jié)構(gòu)

C、線性鏈表是非線性結(jié)構(gòu)

D、二叉樹是線性結(jié)構(gòu)

標準答案:A

知識點解析:線性表是最簡單的、最常用的一種線性結(jié)構(gòu)。所謂線性鏈表指的是采

用鏈式存儲結(jié)構(gòu)的線性表。棧和隊列其實是一種特殊的線性表。樹是一種簡單的非

線性結(jié)構(gòu),二叉樹是樹的一種。

2、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進后出”原則存取數(shù)據(jù)的是

A、循環(huán)隊列

B、棧

C、隊列

D、二叉樹

標準答案:B

知識點解析:棧按照“先進后出”(FILO)或“后進先出”(LIFO)組織數(shù)據(jù):隊列是“先進

先出”F(IFO)或“后進后出”(LILO)的線性表。

3、下列各項中,對對象概念描述正確的是()。

A、對象間的通信靠消息傳遞

B、對象是名字和方法的封裝體

C、任何對象必須有繼承性

D、對象的多態(tài)性是指一個對象有多個操作

標準答案:A

知識點解析:對象之間進行通信的構(gòu)造叫作消息,選項A正確。封裝性是指從外

面看只能看到對象的外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操

作,選項B錯誤。對象不一定必須有繼承性,選項C錯誤。多態(tài)性是指同一個操

作可以是不同對象的行為,選項D錯誤。

4、以下選項中非法的C語言字符常量是

A、

B、,\007,

C、‘a(chǎn)a'

D,,\xaa'

標準答案:C

知識點解析?:一個字符常量代表ASCH字符集中的一個字符,在程序中用單引號

把一個字符括起來作為字符常量。

5、若有以下定義,則對數(shù)組元素的正確引用是()。inta[5],*p=a;

A、*&a|5|

B、(*a)+2

C^*p+4

D、*(a+2)

標準答案:D

知識點解析:本題考查通過指針引用數(shù)組元素。選項A、C沒有這種引用形式;選

項B,(*a)+2與*a+2相同,表示第一個元素的值加2;選項D,*(a+2)引用數(shù)組的

第3個元素。

6、下面不屬于軟件設(shè)計階段任務(wù)的是

A、軟件總體設(shè)計

B、算法設(shè)計

C、制定軟件確認測試計劃

D、數(shù)據(jù)庫設(shè)計

標準答案:C

知識點解析:軟件設(shè)計階段總體分為兩部分:概要設(shè)計和詳細設(shè)計,此階段的主要

任務(wù)就是將需求規(guī)格說明文檔轉(zhuǎn)換為軟件設(shè)計文檔,將需求階段提出的問題,

解釋,形成詳細設(shè)計文檔,并根據(jù)功能要求,定制相應(yīng)數(shù)據(jù)結(jié)構(gòu)、各種流程圖等,

為下一步編碼做準備。

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

A、9

B、10

C、11

D、12

標準答案:C

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

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

8、以下選項中與if(a=l)a:b;elsea++;語句功能不同的switch語句是

A、switch(a=l){caseO:a=b;break;case1:a++;)

switch(a){casel:a=b:break;default:a++;)

C、switch(a){default:a++;break;caseI:a=b;)

D、switch(a=l){easel:a=b;break;caseO:a++;)

標準答案:A

知識點解析:jfelse語句的含義是,如果變量a

溫馨提示

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

評論

0/150

提交評論