國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷43_第1頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷43_第2頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷43_第3頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷43_第4頁(yè)
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷43_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1

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

1、下列關(guān)于c語(yǔ)言文件的敘述中正確的是()。

A、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件

B、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件

D、文件由字符序列組成,其類型只能是文本文件

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

知識(shí)點(diǎn)解析:C語(yǔ)言將文件看作是一個(gè)字符(字節(jié))的序列,即由一個(gè)一個(gè)字符(字

節(jié))數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組成形式,可將文件分為兩種:①ASCH文件,又

稱文本(text)文件,它的每一個(gè)字節(jié)可放一個(gè)ASCII碼,代表一個(gè)字符;②二進(jìn)制

文件,是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式原樣輸出到磁盤上存放。所以

C文件就是一個(gè)字節(jié)流或一個(gè)二進(jìn)制流。

2、下列哪一條不屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)?()

A、設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用結(jié)構(gòu)

B、設(shè)計(jì)數(shù)據(jù)庫(kù)概論結(jié)構(gòu)

C、設(shè)計(jì)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)

D、設(shè)計(jì)數(shù)據(jù)庫(kù)物理結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)工作量大而且過(guò)程復(fù)雜,既是一項(xiàng)數(shù)據(jù)庫(kù)工程也是一項(xiàng)龐

大的軟件工程??紤]數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)開發(fā)全過(guò)程.將數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)

階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施和數(shù)

據(jù)庫(kù)的運(yùn)行和維護(hù)。

3、下列敘述中錯(cuò)誤的是()。

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

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

C、用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開頭

D、用戶定義的標(biāo)識(shí)符中,大、小寫字母代表不同標(biāo)識(shí)

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

知識(shí)點(diǎn)解析:在C語(yǔ)言中,合法標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字

和下劃線組成,并且第一個(gè)字符必須為字母或下劃線,凡是要求標(biāo)識(shí)符的地方都必

須按此規(guī)則命名。在C語(yǔ)言的標(biāo)識(shí)符中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同

的字符。在選擇標(biāo)識(shí)符時(shí),應(yīng)注意做到“見名知義”,即選擇具有一定含義的英文單

詞或漢語(yǔ)拼音作為標(biāo)識(shí)符,以增加程序的可讀性。

4、有以下程序:#include<stdio.h>main(){ints,t,A=10:doubleB=6;

s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6.0平臺(tái)上編譯

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

A、10,6

B、4,4

C、2,4

D、4,8

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

知識(shí)點(diǎn)解析:C語(yǔ)言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長(zhǎng)度,在VC6.0平臺(tái)中,

整型int占有4個(gè)字節(jié),double型數(shù)據(jù)占有8個(gè)字節(jié)。

5、有關(guān)return語(yǔ)句說(shuō)法不正確的是()。

A、系統(tǒng)默認(rèn)的返回值類型為整型,故當(dāng)函數(shù)的返回值為int型時(shí);在函數(shù)定義

時(shí),返回值的類型說(shuō)明可以省略。

B、當(dāng)函數(shù)有返回值時(shí),凡是允許表達(dá)式出現(xiàn)的地方,都可以調(diào)用該函數(shù)。

C、當(dāng)函數(shù)沒有返回值時(shí),函數(shù)的返回值類型可以說(shuō)明為void型,它表示“無(wú)類型”

或“空類型

D、函數(shù)的返回值類型必須與return語(yǔ)句中的表達(dá)式值的類型一致,但C語(yǔ)言也允

許不同:這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類型說(shuō)明為準(zhǔn),并自動(dòng)地將return語(yǔ)句

中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。

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

知識(shí)點(diǎn)解析:函數(shù)的返回值類型一般與return語(yǔ)句中的表達(dá)式值的類型一致,但C

語(yǔ)言也允許不同;這時(shí),系統(tǒng)以函數(shù)定義時(shí)的返回值類型說(shuō)明為準(zhǔn),并自動(dòng)地將

return語(yǔ)句中表達(dá)式的值轉(zhuǎn)換為函數(shù)的返回值類型。

6、有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){int

i;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,

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

u

y):for(i=0;i<N:i++)printf(%d,%y[i]);printf("\n");}程序運(yùn)行后的輸出

結(jié)果是()。

A、-3,-1,1,3,

B、-12,-3,0,0,

C、0,1,2,3,

D、-3,-39-39-3,

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

知識(shí)點(diǎn)解析:本題中由fun函數(shù)可知,b[0]=a[0][0]-a[0][3]=l-4=-3,b[l]=a[l][l]-

[1][2]=6-7=-1,b[2]=a[2][2]-[2][l]=l1-10=1,b[3]=a[3][3]-[3][l]=16-13=3o所以主函

數(shù)中打印y數(shù)組元素的值為A選項(xiàng)。

7、下面程序的運(yùn)行結(jié)果是()。y=5;x=14;y-((x=3*y,x+6),x—I);

printf("x=%d,y=%d",x,y);

A、x=27,y=27

B、x=12,y=13

C、x=15,y=14

D^x=y=27

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

知識(shí)點(diǎn)3析:本題考查的是逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的求解步驟是先求解表達(dá)式

1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個(gè)逗號(hào)表達(dá)式的值就是最后一

個(gè)表達(dá)式N的值。表達(dá)式(x=3*y,x+6)中,x=!5o表達(dá)式y(tǒng)=x—1=14。

8、兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入3和2,則輸出結(jié)果是()。

#includemain(){intx;scanf(4t%d,\&x);if(x++〉2)printf("%d'',x);else

printR"%d\n",X-);}

A、4和3

B、4和2

C、4和1

D、3和2

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

知識(shí)點(diǎn)解析:本題考查if-else語(yǔ)句。首先,scanf函數(shù)通過(guò)鍵盤讀入x的值。當(dāng)

x=3時(shí),第一個(gè)if語(yǔ)句先判斷條件,取x的值3和2比較,然后將x的值加1,if

條件成立,執(zhí)行下面的printf語(yǔ)句,輸出x的值4。當(dāng)x=2時(shí),第一個(gè)if語(yǔ)句先判

斷條件,先取x的值2和2比較,然后將x的值加l(x的值變?yōu)?),if條件不成

立,執(zhí)行下面的else語(yǔ)句,先輸出x的值3,再將x的值減I。

9、有以下程序:includemain(){intb[3][3]={0,1,2,0,1,2,O,1,2},i,

j,t=l;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];prinff("%d\n",

t):)程序運(yùn)行后的輸出結(jié)果是()c

A、3

B、4

C、1

D、9

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

知識(shí)點(diǎn)解析:每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時(shí)

t=t+b[O][b[O][O]]=l+b[O][O]=l+O=l;第二次外循環(huán)時(shí)

t=t+b[l][b[l][l]]=l+b[l][l]=l+l=2;第三次外循環(huán)時(shí)

Qt+b⑵2⑵⑵]=2+b⑵⑵=2+2=4。

10、以下不正確的定義語(yǔ)句是()。

A、doublex[5]={1.0,2.0,3.0,4.0,5.0);

B>inty[51={0,1,2,3,4,5);

C、charcl[]={,l,,2,3,'4','5'};

D、charc2[]={V,'b','c'};

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

知識(shí)點(diǎn)解析:本題考查對(duì)一維數(shù)組的賦值。選項(xiàng)Bj中,y[5]說(shuō)明數(shù)組中有5個(gè)元

素,但卻給它賦了6個(gè)值,數(shù)組溢出所以是錯(cuò)誤的。

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

值語(yǔ)句中錯(cuò)誤的是()。

A、data2={datal.real,datal.unreal);

B、data2=(2,6);

C、data2.rcal=datal.real;

D、data2->real=datal.unreal;

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

知識(shí)點(diǎn)解析:本題主要考查結(jié)構(gòu)體變量的定義與初始化。題目中定義了complex類

型的結(jié)構(gòu)體變量datal和data2,并對(duì)datal進(jìn)行了初始化??梢杂靡粋€(gè)結(jié)構(gòu)在變量

的成員對(duì)另一個(gè)結(jié)構(gòu)體變量的成員賦值。

12、以卜程序段的輸出結(jié)果為()。staticchara|^"programme";char*p;p=a;

for(p=a;p

A、programme

B、porm

C、有語(yǔ)法錯(cuò)誤

D^prog

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

知識(shí)點(diǎn)解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地

址,第一次for循環(huán),p=a,p指向數(shù)組的第一個(gè)元素,狗是取指針p所指地址的內(nèi)

容,輸出p;第二:次for循環(huán),p=p+2,則p指向數(shù)組的第三個(gè)元素,*p是取指

針p所指地址的內(nèi)容,輸出。;第三次for。循環(huán),p=p+2,則p指向數(shù)組的第5個(gè)

元素.*p是取指針p所指地址的內(nèi)容.輸出r:第四次for循環(huán),p=p+2,則p指向

數(shù)組的第7個(gè)元素,*p是取指針p所指地址的內(nèi)容,輸出m;結(jié)束循環(huán)。

13、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是(),

A、可封裝

B、自頂向下

C、模塊化

D、逐步求精

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

知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使

用goto語(yǔ)句,所以選擇A。

14、下列敘述中錯(cuò)誤的是()。

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

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

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

D、后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行

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

知識(shí)點(diǎn)解析:C源程序經(jīng)過(guò)程序編譯之后生成一個(gè)后綴為obi”的二進(jìn)制文件(稱

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

接起來(lái)生成一個(gè)后綴為“.exe”的可運(yùn)行文件。

15、已知下列函數(shù)定義:fun(int*b,intc,intn,intdata){intk;for(k=0;k<

m*n;k++){*b=data;b++;}}則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說(shuō)明為

inta[5OJ)()。

A、fun(*a,4,5,1);

fun(&a,4,5,1);

C、fun((int*)a,4,5,1);

D、fun(a,4,5,1);

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

知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。fun函數(shù)的調(diào)用形式為“fun(int*b,

intm,intn,intdataf,而調(diào)用數(shù)組時(shí),用數(shù)組名表示一個(gè)指向數(shù)組第一個(gè)元素的

指針,因此調(diào)用時(shí)的形式為:fun(a,4,5,1)。

16、有以下程序(說(shuō)明:字母A的ASCII碼值是65):#includevoidfun(char*s)

{while(*s)if(*s%2)primf("%C”,*s);S++:main。{chara(尸“BYTE”;fun(a);

printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。

A、BT

B、YE

C、YT

D、BY

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

知識(shí)點(diǎn)解析:本題中執(zhí)行fun(a)時(shí),會(huì)取字符串a(chǎn)的第一個(gè)字母R.因?yàn)樽帜窧的

ASCII碼值為66,所以不會(huì)輸出字母B,函數(shù)只會(huì)輸出ASCH碼值為奇數(shù)的字

母,字母Y的ASCII碼值為89,字母T的ASCII碼值為84,字母E的ASCII碼值

為69。因此B選項(xiàng)正確。

17、若以“a+”方式打開一個(gè)已存在的文件,以下敘述正確的是()。

A、文件打開時(shí),原有文件內(nèi)容不被刪除,可以進(jìn)行添加和讀操作

B、文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件開頭,可以進(jìn)行重寫

和讀操作

C、文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件中間,可以進(jìn)行重寫

和讀操作

D、文件打開時(shí),原有文件內(nèi)容被刪除,只可進(jìn)行寫操作

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

知識(shí)點(diǎn)解析:C語(yǔ)言文件打開時(shí),打開方式“a+”表示打開一個(gè)文本文件,從文件開

始位在讀,在文件尾部添加數(shù)據(jù),如果指定的文件不存在,系統(tǒng)將使用調(diào)用

fopen()時(shí)指定的文件名創(chuàng)建一個(gè)新的文件,如果指定的文件存在,那么文件原有內(nèi)

容將被保存,新的數(shù)據(jù)追加到原有文件之后,本題答案為A。

18、以下描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是()。

A、可隨機(jī)訪問(wèn)

B、需要連續(xù)的存儲(chǔ)空間

C、不便于插入和刪除

D、邏輯相鄰的數(shù)據(jù)物理位置上不相鄰

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

知識(shí)點(diǎn)解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來(lái)存放數(shù)據(jù)元素,其特點(diǎn)是邏

輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在

物理位置的相鄰元素之中,因此不需要另外開辟空間來(lái)保存元素之間的關(guān)系。

19、有以下程序:#include<stdio.h>voidfun(char**p){++p;printf(u%s\n",

*p);}main(){char*a[]={"Morning","Afternoon","Evening'*,"Night"};

fun(a);}程序運(yùn)行后的輸出結(jié)果是()。

A、Mternoon

B、fternoon

C、Morning

D、coring

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

知識(shí)點(diǎn)解析:本題主函數(shù)中定義了一個(gè)指針數(shù)組a,可以將它看成一個(gè)以字符指針

為元素的一維數(shù)組。和一般的一維數(shù)組名能賦給同類型指針變量一樣,該字符指針

數(shù)組也可以賦給指向字符指針的指針,所以數(shù)組名a可以用做函數(shù)fun()的實(shí)參。

在fun()函數(shù)中,++p操作使形參p往后移動(dòng)一個(gè)字符指針的位置,即指針a⑴的位

置。故最后通過(guò)pfinff()函數(shù)輸出的字符串為"Afternoon”。因此A選項(xiàng)正確。

20、結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。

A、順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)

B、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)

C、分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)

D、分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)溝就

足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。遵循程序結(jié)構(gòu)化的設(shè)計(jì)原則,按結(jié)

構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序易于理解、使用和維護(hù);可以提高編程工作的效

率,降低軟件的開發(fā)成本。

21、設(shè)有以下說(shuō)明,則不正確的敘述是()。unionun{inta:charb:float

c;}arr;

A、arr所占的內(nèi)存長(zhǎng)度等于成員c的長(zhǎng)度

B、arr的地址和它的各成員的地址都是同一地址

C、arr可以作為函數(shù)參數(shù)

D、不能在定義arr時(shí)對(duì)它初始化

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

知識(shí)點(diǎn)解析:本題主要考查聯(lián)合體的內(nèi)存使用:聯(lián)合體所占用的內(nèi)存空間為最長(zhǎng)的

成員所占用的空間,int占2個(gè)字節(jié),char占1個(gè)字節(jié),float占4個(gè)字節(jié),所以art

所占的內(nèi)存長(zhǎng)度等于成員c的長(zhǎng)度:air的地址和它的各成員的地址都是同一地

址;不能直接對(duì)art賦值,即不能在定義air時(shí)對(duì)它初始化;art也不可以作為函數(shù)

參數(shù)。

22、設(shè)變量已正確定義,以下不能統(tǒng)計(jì)出一行中輸入字符個(gè)數(shù)(不包含回年符)的程

序段是()。

A^n=0:while((ch:getchar())!="\n")n++;

B、n=0;while(getchar()!\n,,)n-H-;

C、for(n=0;getchar()!n++);

D^13:O;for(ch=getchar()!="\n";n++);

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

知識(shí)點(diǎn)解析:要統(tǒng)計(jì)一行中輸入字符個(gè)數(shù)(不包含回車符),首先定義一個(gè)用作統(tǒng)計(jì)

的變量n,賦初值為0;一行字符是否結(jié)束的判斷條件應(yīng)為getchar。!="\n”;D

項(xiàng)中for循環(huán)表達(dá)式格式錯(cuò)誤,應(yīng)在ch前添加“;”號(hào)。

23、以下有關(guān)宏替換的敘述不正確的是()。

A、使用宏定義可以嵌套

B、宏定義語(yǔ)句不進(jìn)行語(yǔ)法檢查

C、雙引號(hào)中出現(xiàn)的宏名不替換

D、宏名必須用大寫字母表示

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

知識(shí)點(diǎn)解析:本題考查宏替換的規(guī)則。宏替換有兩類:簡(jiǎn)單的字符替換和帶參數(shù)的

宏替換.使用宏應(yīng)注意:①宏定義僅僅是符號(hào)替換.不是賦值語(yǔ)句,因此不做語(yǔ)

法檢查;②為了區(qū)別程序中其他的標(biāo)示符,宏名的定義通常用大寫字母,但不是

必須用大寫;⑧雙引號(hào)中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義

的宏中可以使用先定義的宏。

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

A、用C語(yǔ)言編寫的程序只能放在一個(gè)程序文件中

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

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

D、C程序書寫格式自由,一個(gè)語(yǔ)句可以寫在多行上

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

知識(shí)點(diǎn)解析:C語(yǔ)言編寫的程序可以放置于多個(gè)程序文件中,所以A錯(cuò)誤。C程序

中的一行可以有多條語(yǔ)句,所以B錯(cuò)誤。C語(yǔ)言中的注釋語(yǔ)句可以與原語(yǔ)句放在一

行也可以不放在一行,所以C錯(cuò)誤。

25、以下不是合法C語(yǔ)言轉(zhuǎn)義字符的是()。

A、

B、

C>,\b,

D、

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

知識(shí)點(diǎn)解析:C語(yǔ)言中,轉(zhuǎn)義字符、a,表示響鈴,、b,表示退格,表示回車

不換行。

26、設(shè)有定義:chars電1];int尸U;以下不能將一行(不超過(guò)8。個(gè)字符)帶有空格

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

A、scanf(',%s",s);

B、while((s[i-H-]=getcharO)!=,\n,);s[i]=,\O*;

C、gets(s);

D、do{scanf(,'%c,,,&s[i]);}while(s[i++]!=,\n,);s[i]=,\O,;

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

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

答案選A)。

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

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

B、算法設(shè)計(jì)

C、制定軟件確認(rèn)測(cè)試計(jì)劃

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

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

知識(shí)點(diǎn)解析:從技術(shù)觀點(diǎn)上看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)

計(jì)、過(guò)程設(shè)計(jì)。所以A、B、D正確,C為軟件測(cè)試階段的任務(wù)。

28、有三個(gè)關(guān)系R、S和T如下:1111

則由關(guān)系R和S得到關(guān)系T的操作是()。

A、自然連接

B、交

C、投影

D、并

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

知識(shí)點(diǎn)解析:自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量

必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以根據(jù)T中元組可

以判斷R和S做的是自然連接操作。

29、有以下程序:#includevoidfun(char*x,char*y){while(*x=='*")x++;

while(*y=*x){y++;x++;}}main(){char*s=,,*****x*****y,\t[80];fun(s,t);

puts(t);)程序運(yùn)行后的輸/結(jié)果兔()。

A、xy

B、x

C、x*****y

D、y

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

知識(shí)點(diǎn)解析:子函數(shù)的功能是將字符串x拷貝到宇符串y中,如果x前面是木,則

從不是*的字符開始拷貝,但如果有非*得字符出現(xiàn),則后面即使出現(xiàn)*也會(huì)被拷

貝。

30、C程序中合法的用戶標(biāo)識(shí)符的是()。

A、_0_

B、l_a

C、int

D、unsigned

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

知識(shí)點(diǎn)解析:選項(xiàng)C和D是關(guān)鍵字,選項(xiàng)B開頭使用了數(shù)字,所以不合法,只有

選項(xiàng)A是合法的。

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

A、棧是一種先進(jìn)后出的線性表

B、隊(duì)列是一種后進(jìn)先出的線性表

C、棧與隊(duì)列都是非線性結(jié)構(gòu)

D、以上三種說(shuō)法都不對(duì)

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

知識(shí)點(diǎn)解析:棧是一種后進(jìn)先出的線忤表,隊(duì)列是一種先進(jìn)先出的線件表.

32、以下敘述中錯(cuò)誤的是

A、數(shù)值型常量有正值和負(fù)值的區(qū)分

B、常量可以用一個(gè)符號(hào)名來(lái)代表

C、定義符號(hào)常量必須用類型名來(lái)設(shè)定常量的類型

D、常量是在程序運(yùn)行過(guò)程中值不能被改變的量

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

知識(shí)點(diǎn)解析:數(shù)值型常量有整型常量,實(shí)型常量,不論是整型常量還是實(shí)型常量都有

正值和負(fù)值之分,所以A正確,在C語(yǔ)言的預(yù)編譯處理中,可以用符號(hào)名代表一個(gè)常

量,定義時(shí)不必指定常量類型,所以C錯(cuò)誤,B正確,常量的定義就是常量是在程序運(yùn)

行過(guò)程中值不能被改變的量,所以D正確。

33、下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inti;for(i=i;i<

=5;i++){if(i%2)printf(n*n);elseprintf("#n);}}

B、#*#*#*

C、*#*#

D、#*#*

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

知識(shí)點(diǎn)解析:分析程序可知,程序循環(huán)5次,然后利用if語(yǔ)句決定每次循環(huán)時(shí)輸

出的字符。當(dāng)i為奇數(shù)時(shí),i%2二i,if(i%2)為真,輸出“*”;當(dāng)i為偶數(shù)時(shí),i%

2=0,if(i%2)為假,執(zhí)行else語(yǔ)句,輸出‘鏟,所以當(dāng)i取1、3、5值時(shí)輸出“*”,

當(dāng)i取2、4值時(shí)輸出

34、下面程序的運(yùn)行結(jié)果是()。#include<stdio.h>voiddel(char*s){inti,j;

char*a;a=s;for(i=0,j=0;a[i]!=,\0,;i++){if(a[i]>=,0,&&a[i]<

=,9,){s[j]=a[i];j++;}s|j]=,\O,;)}main(){chars[]=naa89gggh";del(s);printf(n

\n%s",s);)

A^aa

B、89

C>gggh

D、aa89gggh

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

知識(shí)點(diǎn)解析:本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入s數(shù)組中的字符,如

果遇到數(shù)字,則將其重新存在s中,遇到非數(shù)字字符則跳過(guò)。所以最后輸出的應(yīng)該

是字符串s中的所有數(shù)字。

35、設(shè)有n個(gè)數(shù)按從大到小的順序存放在數(shù)組x中,以下能使這n個(gè)數(shù)在x數(shù)組中

的順序變?yōu)閺男〉酱蟮氖?/p>

A、for(i=0;i<n/2;i++){t=x[i];x[i]=x[n-i-l];x[n-i-l]=t;)

B、for(i=0;i<n;i++){t=x[i];x[i]=x[n-i-l];x[n-i-l]=t;)

C、for(i=0;i<n/2;i++){t=x[i];x[i]=x[n-i+1];x[n-i+1]=t;}

D、for(i=0;i<n/2;i+=2){t=x[i];x[i]=x[n-i-l];x[n-i-l]=t;)

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

知識(shí)點(diǎn)解析:本題使用for循環(huán)實(shí)現(xiàn)數(shù)組元素首尾倒置。A選項(xiàng)中控制變量上限為

n/2,用變量I實(shí)現(xiàn)數(shù)下標(biāo)值i與n-i?l的元素交換,使數(shù)組元素首尾倒置,從而實(shí)

現(xiàn)從小到大排列,A選項(xiàng)正確。B選項(xiàng)控制變量上限為n,用變量t實(shí)現(xiàn)數(shù)下標(biāo)值i

與nil的元素交換,當(dāng)仁n/2時(shí),已經(jīng)實(shí)現(xiàn)數(shù)組首尾倒置,而繼續(xù)運(yùn)行至i=n,將

再次將新的數(shù)組首尾倒置,與原數(shù)組相比沒有發(fā)生變化,依然是從大到小排列,B

選項(xiàng)錯(cuò)誤。C選項(xiàng)數(shù)組越界,i=0時(shí)x[n+l]不存在,C選項(xiàng)錯(cuò)誤。D選項(xiàng)控制變量

每次加2,實(shí)現(xiàn)數(shù)組偶數(shù)下標(biāo)值的元素首尾倒置,奇數(shù)下標(biāo)值元素不變,不能實(shí)現(xiàn)

整個(gè)數(shù)組從小到大排列,D選項(xiàng)錯(cuò)誤。

36、有以下程序#inckide<stdio.h>#include<string.h>main(){char

a[20]=,,ab',,b[20]="cdef,;intk=0;strcat(a,b);while(a[k]!=,\0,){b[k]=a[k];k++;}

puts(b);}程庠而運(yùn)行結(jié)果是

A、abcdef

cbcdef

C、cdef

D、ab

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

知識(shí)點(diǎn)解析:strcat(字符串1,字符串2)函數(shù)是把字符串2連接到字符串I的后

面,最終結(jié)果存放到字符組1中,因此本題把a(bǔ),b字符串連接起來(lái)放在a數(shù)組中,

while語(yǔ)句完成功能是再將a字符串賦給b字符串,因此答案為A選項(xiàng)。

37、存儲(chǔ)在計(jì)算機(jī)內(nèi)有結(jié)構(gòu)的數(shù)據(jù)集合是

A、數(shù)據(jù)庫(kù)

B、數(shù)據(jù)庫(kù)系統(tǒng)

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

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

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可?共享的數(shù)據(jù)集合。

數(shù)據(jù)庫(kù)系統(tǒng)是由數(shù)據(jù)庫(kù)及其管理軟件組成的系統(tǒng),是應(yīng)用軟件。數(shù)據(jù)庫(kù)管理系統(tǒng)

是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它位于用戶與操作系統(tǒng)之間,屬于系統(tǒng)軟件。數(shù)據(jù)結(jié)構(gòu)是

“算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。故本題選A選項(xiàng)

38、有以下程序#include<stdio.h>#include<siring.h>voidfun(char*s,intml,

intm2){chart,*p;p=s4-m1;s=s+m2;while(s<p){t=*s;*s=*p;*p=t;s++;p—;))

main(){charss[10]=M012345678";intn=6;fun(ss,0,n-l);fun(ss,9,n);fun(ss,0,9);

printf("%s\nH,ss);)程序運(yùn)行后的輸出結(jié)果是

A、012345

B、876543210

C、876543

D、12345678

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

知識(shí)點(diǎn)解析:fun(*ss,ml,m2)的作用是,如果ml>m2交換數(shù)組元素ss[ml

ss[m2]o因此,fun(ss,0,5)后ss的0,1,2,3,4,5,6,7,8,\0。fun(ss,9,6)后ss的0,1,2,34,5,

\0,8,7,6ofun(ss,0,9)后ss的01,2,3,4,5,\0,8,7,6。因此打印結(jié)果012345。故答案為A

選項(xiàng)

39、下列關(guān)于線性表的敘述中,不正確的是()。

A、線性表可以是空表

B、線性表是一種線性結(jié)構(gòu)

C、線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件

D、線性表是由n個(gè)元素組成的一個(gè)有限序列

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

知識(shí)點(diǎn)解析:線性表是一種線性結(jié)構(gòu),由n(ni>0)個(gè)元素組成,所以線性表可以是

空表。但是在線性表中,第一個(gè)結(jié)點(diǎn)沒有前件,最后一個(gè)結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)

有且只有一個(gè)前件和后件,所以選項(xiàng)C)是錯(cuò)誤的。

二、程序填空題(本題共I題,每題7.0分,共I分0)

40、下列給定程序中已建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中的各結(jié)點(diǎn)按結(jié)點(diǎn)數(shù)據(jù)

域中的數(shù)據(jù)遞增有序鏈接。函數(shù)fun的功能是:把形參x的值放入一個(gè)新結(jié)點(diǎn)并插

入鏈表中,使插入后各結(jié)點(diǎn)數(shù)據(jù)域中的數(shù)據(jù)仍保持遞增有序.請(qǐng)?jiān)诔绦虻南庐嬀€

處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序

給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<

stdio.h>#include<stdlib.h>#defineN8typedefstructlist{intdata:struer

liSt*next;)SLIST;voidfun(SLIST*h,intx){SLISTp,*q,*s;

s=(SLIST*)malloc(Sizeof(SLIST));/*********found*********/S—>data=

[11;q=h:P=h—>next:while(p!=NULL&&x>p—>data){/

*********fbund*********/q=[2j;p=p—>next;)s—>next=p;/

*********found*********/q—>next=[3];}SLIST*creatlist(int*a)

{SLTST*h,*P.*q:inti:h=P=(SIJST*)malloc(si7eof(SIJST)):for(i=0:i<N:

i++){q=(SLIST*)malloc(sizeof(SLIST));q—>data=a[i];P—>ncxL=q;p=q;)p

—>nexL=0;returnh:)voidoutlist(SLIST*h){SLIST*P:P=h—>next;

if(P==NULL)printf(n\nThelistisNULL!\n");else{printf("\nHead");

do{printf("—>%d",P—>data);P=P—>next;|while(p!=NULL);printf("—>

End\n");}}main(){SLIST*head;intX;inta[N]={11,12,15,18,19,22,

25,29):head=treatlist(a):printf("\nThelistbeforeinserting:\n");

outlist(head);printf("\nEnteranumber:");scanf(n%d",&x);fun(head,x);

printf("\nThelistafterinserting:\n");outliSt(head);)

標(biāo)準(zhǔn)答案:(l)x(2)p(3)s

知識(shí)點(diǎn)解析:填空1:將形參x賦值給結(jié)點(diǎn)的數(shù)據(jù)域。填空2和填空3:將新的結(jié)

點(diǎn)和原有鏈表中的結(jié)點(diǎn)進(jìn)行比較。

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

41、下列給定程序中,函數(shù)fun的功能是:依次取出字符串中所有的數(shù)字字符,形

成新的字符串,并取代原字符串。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的垢

果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題

程序:#include<stdlib.h>升includeVsldio.h>#includeVconio.h>void

fun(char*s){inti,j;for(i=0,j=0;s[i]!='\0';i++)if(s[i]>=,0,&&s[i]<=,9,)/

*********3und*********/s[j]—s|i|*/*********8und*********/s[j]='1\

0";)voidmain(){charitem[80],system("CLS");printf("\nEnterastring:");

gets(item);printf(n\n\nThestringis:%s、n",item);fun(item);printf("\n\

nThestringofchangingis:%s'n",item);}

標(biāo)準(zhǔn)答案:(l)s[j++]=s[i];(2)s[j]=,\0,;

知識(shí)點(diǎn)解析:題目要求依次取出字符串中所有的數(shù)字字符,因此將元素s[i]存入

s[j]后耍使j加1,為下次存儲(chǔ)做準(zhǔn)備。sU]="\0";是一個(gè)語(yǔ)法錯(cuò)誤。

四、程序設(shè)計(jì)題(本題共7題,每題1.0分,共7分。)

42、學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組

S中,請(qǐng)編寫函數(shù)fun,它的功能是:把分?jǐn)?shù)最低的學(xué)生數(shù)據(jù)放在b所指的數(shù)組

中,注意:分?jǐn)?shù)最低的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最低的學(xué)生的人數(shù)。注

意:部分源程序在文件PROG1.C文件中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的

任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。#includc#dcfincN16

typedefstruct{charnum[10];ints;JSTREC;intfun(STREC*a,STREC*b)|)

main(){STRECs[N]={{"GA05",85),{"GAOS'1,76},{"GA02",69),{"GA04",

85),{nGA0r,,91),{"GA07",72),{"GA08",64),{“GA06”,87},

{"GA015M,85},{“GA013”,91},{"GA012n,64},{nGA014",91),

{"GA011".91},("GA017,\64),{HGA018%64),("GA016",72}):STREC

h|NJ;inti,n;FILE*out;n=fun(s,h);printf{nThe%dlowestscore:\n",

n);for(i=0;i

標(biāo)準(zhǔn)答案:inti,j=0,min=a[0].s;for(i=0;ia[i].s){j=0;b|j++]=a[i];

min=a[i].s;)elseif(min==a[i].s)b|j++]=a[ij;)returnj;

知識(shí)點(diǎn)解析:(1)要把最低分?jǐn)?shù)的學(xué)生數(shù)據(jù)放在數(shù)組中,首先求出最低分?jǐn)?shù),再使

用一個(gè)for循環(huán)把所有的成績(jī)進(jìn)行比較,找出最低的分?jǐn)?shù)來(lái)。(2)找出所有與最低

分?jǐn)?shù)相等的學(xué)生,并將最低分?jǐn)?shù)的人數(shù)累加。

國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2

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

1、有以下程序:#include<stdio.h>main(){intx[3][3]={1>2,3>4,5,61

7,8,9),i;for(i-l;i<3;i++)printf("%dH,x[i][3—i]);}程序運(yùn)行后的輸出

結(jié)果是()。

A、2,4

B、6,8

C、3,7

D、2,6

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

知識(shí)點(diǎn)解析:二維數(shù)組的起始行標(biāo)和列標(biāo)均為O,即x[O][O]=l。當(dāng)i=l時(shí),for循

環(huán)判斷條件成立,輸出x[l|[2]=6;此時(shí)i自增為2,開始第二次「or循環(huán),條件成

立,輸出x⑵[1]=8。故B選項(xiàng)正確。

2、下面是有關(guān)C語(yǔ)言字符數(shù)組的描述,其中錯(cuò)誤的是()。

A、不可以用賦值語(yǔ)句給字符數(shù)組名賦字符串

B、可以用輸入語(yǔ)句把字符串整體輸入給字符數(shù)組

C、字符數(shù)組中的內(nèi)容不一定是字符串

D、字符數(shù)組只能存放字符串

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

知識(shí)點(diǎn)解析:字符數(shù)組可以用來(lái)存放單個(gè)的字符或者字符串。

3、以下選項(xiàng)中正確的定義語(yǔ)句是()。

A^doublea:b:

doublea=b=7;

C、doublea=7,b=7;

D、double,a,b;

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

知識(shí)點(diǎn)解析:同一類型變量的定義時(shí),不同變量之間需要用“,”分隔;定義變量時(shí)

初始化賦值時(shí)不能用等號(hào)連接;變量類型說(shuō)明后面不能用逗號(hào),而是用空格分離。

4、語(yǔ)句“printf("a\bhow\'arc\'y\\\bou'n");”的輸出結(jié)果是()。

A、a\bhow\'are\'y\\bou

B、a\bhow\'are\'y\bou

C、how'arc'you

D、ahow'are'y\bou

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

知識(shí)點(diǎn)解析:“\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆

蓋,導(dǎo)致“\b”格式符前面的字母不能輸出;”\川格式符表示輸出單引號(hào)字符;

“\\”格式符表示輸出反斜線字符。

5、下面程序的運(yùn)行結(jié)果是()。#includemain(){inti;for(i=l;i<=5;i++){if(i%

2)printf(H*H);elseprintf("#");))

A、*#*#*

B、#*#*#*

C、*#*#

D、#*#*

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

知識(shí)點(diǎn)解析:分析程序可知,程序循環(huán)5次,然后利用if語(yǔ)句決定每次循環(huán)時(shí)輸

出的字符。當(dāng)i為奇數(shù)時(shí),i%2=l,if(i%2)為真,輸出“”:當(dāng)i為偶數(shù)時(shí),i%

2=0,if(i%2)為假,執(zhí)行else語(yǔ)句,輸出“#",所以當(dāng)i取1、3、5值時(shí)輸出

當(dāng)i取2、4值時(shí)輸出

6、若輸入''abcdef'、"abdeP,以下程序的輸出結(jié)果為()。include<stdio.h>

#include<string.h>main(){intn;chars11201,s2|20],*pl,*p2;scanf(''%

s”,si);scanf(''%s'',s2);pl=sl;p2=s2;n=strcmp(pl,p2);printR''%d\

nLn);)

A、-

B、0

C、,,abcdcf,

D、''abdeF'

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

知識(shí)點(diǎn)解析:本題考查兩個(gè)知識(shí)點(diǎn):①字符串比較函數(shù)strcmp(sl,s2),若sl>

s2,則返回I;若sl=s2,則返回0;若slVs2,則返回?1。②字符串依次比較的

是它們相同位置上字符的ASCH碼值。

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

A、在不同的函數(shù)中可以使用相同的名字的變量

B、函數(shù)中的形式參數(shù)是局部變量

C、在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D、在一個(gè)函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)右.效

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

知識(shí)點(diǎn)解析:此題考查的是變量的作用范圍。選項(xiàng)D中,在一個(gè)函數(shù)的復(fù)合語(yǔ)句

中定義的變量是局部變量,只在定義此變量的復(fù)合語(yǔ)句內(nèi)有效,并不是在整個(gè)函數(shù)

體內(nèi)都有效。

8、在printf的格式字符中,e格式字符的作用是()(:

A、以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)

B、以帶符號(hào)的十進(jìn)制形式輸出整數(shù)

C、以指數(shù)形式輸出實(shí)數(shù)

D、以字符形式輸出,且只輸出一個(gè)字符

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

知識(shí)點(diǎn)解析:本題考查printf函數(shù)的格式。格式字符飛”或者都表示以指數(shù)形式

輸出單精度或雙精度數(shù)。

9、檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為()。

A、確認(rèn)測(cè)試

B、需求測(cè)試

C、驗(yàn)證測(cè)試

D、路徑測(cè)試

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

知識(shí)點(diǎn)解析:確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿足需

求規(guī)格說(shuō)明中確定的各種需求。

10>有下列程序:main(){intm,n,p;scanf(nm=%dn=%dp=%d",&m,&n,

&p);printf("O%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中

的值為123,n中的值為456,P中的值為789,則正確的輸入是()。

A、m=123n=456p=789

B、m=123n=456p=789

C、m=123,n=456.p=789

D、123456789

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

知識(shí)點(diǎn)解析:scanf()函數(shù)中格式控制字符串是為了輸入數(shù)據(jù)用的,無(wú)論其中有什么

字符,在輸入數(shù)據(jù)時(shí),發(fā)照一一對(duì)應(yīng)的位置原樣輸入這些字符。

11>有以卜程序:#include<stdio.h>main()(intal,a2;charc1,c2;scanf("%

d%c%d%c",&al,&cl,&a2,&c2);printf(H%(l,%c,%d,%c",al,cl,

a2,c2);}若想通過(guò)鍵盤輸入,使得al的值為12,a2的值為34,cl的值為字符

a,c2的值為字符b,程序運(yùn)行后的輸出結(jié)果是:12,a,34,b。則正確的輸入格

式是(以下一代表空格,VCR>代表回車)()。

A、12-4JbVCR>

B、123—34—b〈CR>

C、12,a,34,h<CR>

D、12a34h<CR>

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

知識(shí)點(diǎn)解析:存輸入多個(gè)數(shù)據(jù)時(shí),若格式控制串中無(wú)非格式字符,則認(rèn)為所有輸入

的字符均為有效字符。所以應(yīng)按選項(xiàng)D的順序輸入數(shù)據(jù)。

12、若要求定義具有10個(gè)ini型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是

()。

A、inta[5+5];

B、intn=10,a[n];

C、#definen5inta[2*n];

D、#dcfincN10inta[N]:

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

知識(shí)點(diǎn)解析:一維數(shù)組的定義方式為:類型說(shuō)明符數(shù)組名[常量表達(dá)式];注意定義

數(shù)組時(shí),元素個(gè)數(shù)不能是變量。因此應(yīng)該選B選項(xiàng)。

13、以下程序運(yùn)行后的輸出結(jié)果是()。#include<stdio.h>voidreverse(inta[],

intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-l-i];a[n-l-i]=t;}}main()

{intb[10]={10,9,8,7,6,5,4,3,2,1};inti,s=0;reverse(b?10);

for(i=0;i<3;i++)s+=b[i];printf(H%d\n",s);}

A、27

B、6

C、25

D、30

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

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

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

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

14、有三個(gè)關(guān)系R、S和T如下:

關(guān)系R和S得到關(guān)系T的操作是()。

A、選擇

B、差

C、交

D、并

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

知識(shí)點(diǎn)解析:關(guān)系T是關(guān)系R的一部分,并且將關(guān)系R去掉了R和S相同的元

素,符合差操作。

15、下列關(guān)于C語(yǔ)言數(shù)據(jù)文件的敘述中正確的是()。

A、文件由ASCII碼字符序列組成,C語(yǔ)言只能讀寫文本文件

B、文件由二進(jìn)制數(shù)據(jù)序列組成,C語(yǔ)言只能讀寫二進(jìn)制文件

C、文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

D、文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

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

知識(shí)點(diǎn)解析:本題考查的是數(shù)據(jù)文件的有關(guān)概念。文件由數(shù)據(jù)流的形式組成,可以

按數(shù)據(jù)存放的形式分為二進(jìn)制文件和文本文件,C:,吾言既能讀寫文本文件,又能讀

寫二進(jìn)制文件。

16>有以下程序:#includemain(){inti=0;i=~i;printf("%d\n'>>i);}程序

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

A、8

B、0

C、I

D、-1

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

知識(shí)點(diǎn)解析:本題考查按位取反運(yùn)算。0按位取反就是-1,所以選項(xiàng)D正確。

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

A、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)

B、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)

C、葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍

D、度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍

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

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

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

18、下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A、多態(tài)性

B、標(biāo)識(shí)惟一性

C、封裝性

D、耦合性

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

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

是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:標(biāo)識(shí)

惟一性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性好。

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

{3,7,2,5},[4,8,6,1});inti,j,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+l;k<

4;k++)if(a|j][i]>a[k][i]){t=a[j][i];a[j][i]=a|k||i];a[k][i]=t;}/*按列排序*/for

(i=0;i<4;i++)printf("%d,",a[i][i]);}程序運(yùn)行后的輸出結(jié)果是

A、1,6,2,1,

B、8,7,3,1,

C、4,7,5,2,

D、1,6,5,7,

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

知識(shí)點(diǎn)解析:首先對(duì)二維數(shù)組進(jìn)行賦值操作,a[0][0].a[O][l].........a[3][2]、

a[3][3]的值為1、4........6、1。通過(guò)for語(yǔ)句和if語(yǔ)句,對(duì)二維數(shù)組各列元素進(jìn)行

由小到大的排序操作,程序最后通過(guò)for語(yǔ)句輸出二維數(shù)組對(duì)角線上的元素。因此

D選項(xiàng)正確。

20、若輸入“abcdcF'、"abdcf,以下程序的輸出結(jié)果為()。#includc#includc

main(){intn;charsi[20],s2[20|,*pl,*p2;scanfV'%s",si);scanf{“%s”,

s2);p1=s1;p2=s2;n=strcmp(pl,p2);printf("%d\n",n);}

A、-1

B、0

C、“abcdeF

D、“abdef

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

知識(shí)點(diǎn)解析:本題考查兩個(gè)知識(shí)點(diǎn):①字符串比較函數(shù)strcmp(sl,s2),若

sl>s2,則返回1;若sl=s2,則返回0;若si

21、若有以卜.程序:#includemain(){iniy=9;for(;Y>0;y--)if(y%

3==0)printf("%d",-y);則程序的運(yùn)行結(jié)果是()。

A、852

B、963

C、741

D、875421

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

知識(shí)點(diǎn)解析:第一次f。「循環(huán),y的值為9.y%3的值為0,滿足條件,打印-丫,

即先減1后打印,所以打印8;第二次for循環(huán),y的值為7,y%3的值為1,示執(zhí)

行打印語(yǔ)句;第三次fo「循環(huán),y的值為6,y%3的值為0,滿足條件,打印

打印5;第四次for循環(huán),y的值為4,不滿足if條件,不執(zhí)行打印語(yǔ)句;第立次

for循環(huán),y的值為3,滿足if條件,打印2;第六次for循環(huán),y的值為1,不滿足

條件,不執(zhí)行打印語(yǔ)句。

22、一棵二叉樹共有25個(gè)結(jié)點(diǎn),其中5個(gè)是葉子結(jié)點(diǎn),則度為1的結(jié)點(diǎn)數(shù)為

A、16

B、10

C、6

D、4

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

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

比度為2的結(jié)點(diǎn)多一個(gè),所以本題中度為2的結(jié)點(diǎn)是5-1=4個(gè),所以度為1的結(jié)

點(diǎn)的個(gè)數(shù)是25—5—4=16個(gè)。

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

A、8.0E0.5

B、lei

「、011

D^Oxabcd

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

知識(shí)點(diǎn)解析:A選項(xiàng)中E后面的指數(shù)必須為整型數(shù)據(jù),所以A錯(cuò)誤。C選項(xiàng)中011

表示的是八進(jìn)制常量,Oxabcd表示的是十六進(jìn)制常量。

24、設(shè)有定義:imk=0:以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的

是()。

A、++k

B、k+=l

C、k++

D、k+1

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

知識(shí)點(diǎn)解析:++k,先使k的值自增1后再使用,k++是先取得k的值再將k的值

自增1,所以C選項(xiàng)中表達(dá)式的值為0,而其他三個(gè)表達(dá)式的值均為1,所以選擇

Co

25、下列語(yǔ)句組中,不正確的是()。

A、char*s;s="Olympic";

B、chars[]="Olympic";

C、char*s;s={"Olympic");

D、chars[]={"Olympic"!;

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

知識(shí)點(diǎn)解析:s是一個(gè)字符指針變量,s代表其地址,C將字符串賦給地址,因此

選項(xiàng)C)錯(cuò)誤。

26、若有定義語(yǔ)句:inix=12,y=8,z;在其后執(zhí)行語(yǔ)句z=0.9+x/y;則z的值為

A、1

B、1.9

C、2

D、2.4

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

知識(shí)點(diǎn)解析:先計(jì)算X/Y,結(jié)果為1,然后計(jì)算0.9+1,結(jié)果為1.9,但由于變量z為整

型,所以取值1,所以z的值為1。

27、有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(,,%d5\

k-=3):pr血f("\rT);}程序執(zhí)行后的輸出結(jié)果是()。

A、1

B、2

C、4

D、死循環(huán)

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

知識(shí)點(diǎn)解析:一一k先自減再使用,所以第一次判斷條件即為while(4),條件為

真,執(zhí)行打印k的值k=4?3,結(jié)果為1;第二次判斷條件即為while(O),條件為假,

結(jié)束循環(huán),打印回車換行符。所以選擇A選項(xiàng)。

28、有以下程序:#includc#includcmain(){charW[20],a[5][10]={"abcdef,

"ghijkl","mnopq',,Vstuv*',nwxyz.");inii;for(i=0;i<5;i++)

w[i]=a[i][strlen(a[i])—1];w[5]=,\0,;puts(w);)程序的運(yùn)行結(jié)果是()。

A、flqv.

agmrw

C^ekpuy

D、flqvz

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

知識(shí)點(diǎn)解析:puls()函數(shù)將數(shù)組中存放的字符串輸出,用“\n”取代字符串結(jié)束符”

\0\strlen()函數(shù)求字符串的實(shí)際長(zhǎng)度(不包含結(jié)束標(biāo)志)。程序中for循環(huán)將第i個(gè)

字符串最后一個(gè)字符放入w數(shù)組下標(biāo)值為i的位置,最后將數(shù)組最后一個(gè)字符賦值

為“\0”,輸出字符串認(rèn)為flqv.。

29、以下正確的字符串常量是

A、\\\

B、'abc'

C^OlympicGames

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

知識(shí)點(diǎn)解析:本題考察的知識(shí)點(diǎn)是:字符串常量。在C語(yǔ)言中,字符串常量是以

雙引號(hào)括起來(lái)的字符序列。因此B選項(xiàng)和C選項(xiàng)不正確。字符序列中可包含一些

轉(zhuǎn)義字符,轉(zhuǎn)義字符都是以“'"開頭的。A選項(xiàng)中包含了三個(gè)“\“,前兩個(gè)(\\)代表了

一個(gè)字符,后面一個(gè)和”心一起(\”)被看作一個(gè).所以該字符串缺少一個(gè)結(jié)束的

,因此不正確。D選項(xiàng)的兩個(gè)“心之間沒有任何字符,代表的是一個(gè)空串,是合

法的字符串常量,因此D選項(xiàng)正確。

30、設(shè)有以下程序段:floata|8]={l.0,2.0};intb[l]={0};charc卜{“A",

"B");chard=="l";以下敘述正確的是()“

A、只有變量c的定義是合法的

B、只有變量a,b,C的定義是完全合法的

C、所有變量的定義都是完全合法的

D、只有變量a,b的定義是完全合法的

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

知識(shí)點(diǎn)解析:noata[8]={1.0,2.0):定義了一個(gè)包含8個(gè)float型元素的數(shù)組,

并初始化了數(shù)組的前2項(xiàng),其他項(xiàng)是隨機(jī)數(shù)。intb[l]={0},定義了只有一個(gè)int型

元素的數(shù)組,并初始化為0。char*c[]={。",“B”};定義一個(gè)char型數(shù)組,大小有

初始化元素決定,但初始化值是字符串,類型不兼容.編譯出錯(cuò).chard="l":定

義一個(gè)char型變量,但是初始化賦值字符串,類型不兼容,編譯出錯(cuò)。因此只有

a,b定義和初始化正確。故答案為D選項(xiàng)。

31、在C語(yǔ)言中,只有在使用時(shí)才占用內(nèi)存單元的變量,其存儲(chǔ)類型是()。

A^autostatic

B、extern和register

C、autoflregister

D^static和register

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

知識(shí)點(diǎn)解析:auto:函數(shù)中的局部變量,動(dòng)態(tài)地分配存儲(chǔ)空間,數(shù)據(jù)存儲(chǔ)在動(dòng)態(tài)存

儲(chǔ)區(qū)中,在調(diào)用該函數(shù)時(shí)系統(tǒng)會(huì)給它們分配存儲(chǔ)空間,在函數(shù)調(diào)用結(jié)束時(shí)就自動(dòng)釋

放這些存儲(chǔ)空間。regisler:為了提高效率,C語(yǔ)言允許將局部變量的值放在CPU

中的寄存器中,這種變量叫“寄存器變量”,只有局部自動(dòng)變量和形式參數(shù)可以作為

寄存器變量。extern:外部變量(即全局變量)是在函數(shù)的外部定義的,它的作用域

為從變量定義處開始,到本程序文件的末尾。如果外部變量不在文件的開頭定義,

其有效的作用范圍只限于定義處到文件終了。static:靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)

類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。

32、以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式為()。

A、x%2=l

B、x/2

C、x%2!=0

D、x%2=0

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

知識(shí)點(diǎn)解析:當(dāng)x為大于1的奇數(shù)時(shí),x對(duì)2求余的結(jié)果為1,不為0,所以選項(xiàng)

D中表達(dá)式的值為0。

33、設(shè)有定義:structcomplex{intreal,unreal;)a={1?8),b;則以下賦值語(yǔ)句

中錯(cuò)誤的是()。

A、b=(2,9);

B、b=a;

C、b.real=a.real;

D、b.real=a.unreal:

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

知識(shí)點(diǎn)解析:結(jié)構(gòu)體賦值時(shí),應(yīng)該用大括號(hào);選項(xiàng)B和C是正常賦值表達(dá)式,選

項(xiàng)D中的結(jié)構(gòu)體元素雖然不對(duì)應(yīng),但合法引用

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論