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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

C、棧底元素永遠(yuǎn)不能被刪除

D、棧底元素最先被刪除

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

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

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

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

A、在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化

B、在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化

C、在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化

D、以上說法都不正確

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

知識(shí)點(diǎn)解析:棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在整個(gè)過程中,棧底指針不變,入棧與出

棧操作均由棧頂指針的變化來(lái)操作,所以選擇C

3、某二義樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二義樹的深度為(假設(shè)根

結(jié)點(diǎn)在第1層)()。

A、3

B、4

C、6

D、7

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

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

總比度為2的結(jié)點(diǎn)多一個(gè),所以本題中度為2的結(jié)點(diǎn)為1-1=0個(gè),所以可以知道本

題目中的二義樹的每一個(gè)結(jié)點(diǎn)都有一個(gè)分文,所以共7個(gè)結(jié)點(diǎn)共7層,即度為7。

4、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于

應(yīng)用軟件的是()。

A、學(xué)生成績(jī)管理系統(tǒng)

B、C語(yǔ)言編譯程序

C、UNIX操作系統(tǒng)

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

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

知識(shí)點(diǎn)解析:軟件按功能町以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、

編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理系統(tǒng)部屬于系統(tǒng)軟件。所以B、C、

D都是系統(tǒng)軟件,只有A是應(yīng)用軟件。

5、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。

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

B、GOTO跳轉(zhuǎn)

C、選擇(分支)結(jié)構(gòu)

D、重復(fù)(循環(huán))結(jié)構(gòu)

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

知識(shí)點(diǎn)解析:1966年Boehm和Jacopini證明了程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇

和重復(fù)三種基本控制結(jié)溝就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。

6、下面描述中錯(cuò)誤的是()。

A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)

B、軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過程

C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一

D、PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具

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

知識(shí)點(diǎn)解析:詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖中而非總體結(jié)構(gòu)圖中的每一個(gè)模塊確

定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),剛某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),

所以A錯(cuò)誤。

7、負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是()。

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

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

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

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

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

知識(shí)點(diǎn)解析:數(shù)據(jù)定義語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操

縱語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作;數(shù)據(jù)控制語(yǔ)言:負(fù)責(zé)數(shù)

據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。

8、一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授。則實(shí)體教師和課程問

的聯(lián)系是()。

A^I:1聯(lián)系

B、1:m聯(lián)系

C、m:1聯(lián)系

D、m:n聯(lián)系

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

知識(shí)點(diǎn)解析:因?yàn)橐粋€(gè)教師可講授多門課程,而一門課程乂能由多個(gè)老師講授所以

他們之間是多對(duì)多的關(guān)系,可以表爪為m:n。

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

A、自然連接

B、并

C、交

D、差

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

知識(shí)點(diǎn)解析:關(guān)系T中的元組是關(guān)系R中有而關(guān)系S中沒有的元組的集合,即從

關(guān)系R中除去與關(guān)系S中相同元組后得到的關(guān)系To所以做的是差運(yùn)算。

10、定義無(wú)符號(hào)整數(shù)類為UhH,下面可以作為類UInt實(shí)例化值的是()。

A、-369

B、369

C、0.369

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

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

知識(shí)點(diǎn)解析:只有B選項(xiàng)369可以用無(wú)符號(hào)整數(shù)來(lái)表示和存儲(chǔ)。A選項(xiàng)?369有負(fù)

號(hào),選項(xiàng)C0.369是小數(shù)都不能用無(wú)符號(hào)整數(shù)類存儲(chǔ)。選項(xiàng)D是一個(gè)整數(shù)集合得

用數(shù)組來(lái)存儲(chǔ)C

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

A、C程序在運(yùn)行過程中所有計(jì)算都以二進(jìn)制方式進(jìn)行

B、C程序在運(yùn)行過程中所有計(jì)算都以十進(jìn)制方式進(jìn)行

C、所有C程序都需要編譯鏈接無(wú)誤后才能運(yùn)行

D、C程序中字符變量存放的是字符的ASCII碼值

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

知識(shí)點(diǎn)解析:C程序在運(yùn)行過程中的所有計(jì)算都以二進(jìn)制方式進(jìn)行,所以B選項(xiàng)錯(cuò)

12、以下關(guān)于C語(yǔ)言的敘述中正確的是()。

A、C語(yǔ)言的數(shù)值常量中夾帶空格不影響常量值的正確表示

B、C語(yǔ)言中的變量可以在使用之前的任何位置進(jìn)行定義

C、在C語(yǔ)言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致

知識(shí)點(diǎn)解析:輸入數(shù)據(jù)的格式必須與scanf()的格式控制串完全匹配,所以輸入時(shí)

必須在3和5之間輸入“;

17、已知大寫字母A的ASCII碼值是65,小寫字母a的ASCH碼值是97。以下不

能將變量c中的大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語(yǔ)句是()。

A、c=('A'+c)%26-'a,

c=c+32

C、c=c-'A+a'

D、c=(c-'A,)%26+W

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

知識(shí)點(diǎn)解析:根據(jù)題意可知,小寫字母比與之對(duì)應(yīng)的大寫字母的ASCII碼大32。

A選項(xiàng)中字符A加上c表示的大寫字符再對(duì)字母?jìng)€(gè)數(shù)26取余,本身這個(gè)表達(dá)式?jīng)]

有任何含義,所以選擇A選項(xiàng)。

18、在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。

A、(E>0||E<0)

B、(E==0)

C、(!E==0)

D、(E!=0)

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

知識(shí)點(diǎn)解析:while語(yǔ)句中條件表達(dá)式E的值不為。即為真,認(rèn)為滿足條件,所以

與B選項(xiàng)中表達(dá)式的含義正好相反,選擇B選項(xiàng)。

19、以下程序段中,與語(yǔ)句:k=a>b?(b>c?l:0):0;功能相同的是()。

A、if((a>h)||(b>c))k=l;elsek=0;

B、if((a>b)&&(b>c))k=l;else!k=O;

C、if(a<=b)k=O;elseif(b<=c)k=l;

D、if(a>h)k=l;elseif(h>c)k=l;elsek=0;

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

知識(shí)點(diǎn)解析:條件表達(dá)式的含義是,如果表達(dá)式I成立,結(jié)果為表達(dá)式2的值,如

果不成立為表達(dá)式3的值。所以題干中k的值這樣取值:如果a>b且b>c,k值

結(jié)果為1,如果a>b,且bVc則值為0。如果aVb,k值為0。也就是只要a>b

與b>c中只要有一個(gè)條件不成立,k的值就為0,所以選擇B選項(xiàng)。

20、有以下程序:#include<stdio.h>main()(inta=l,}1=2;for(;a<8;

a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是

()。

A、9,18

B、8,11

C、7,II

D、10.14

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

知識(shí)點(diǎn)解析:第一次循環(huán)a的值為1,滿足條件,執(zhí)行b+=a,與a+=2,則b的值

變?yōu)?,a的值變?yōu)?。執(zhí)行a++,a的值為4,滿足條件進(jìn)入第二次循環(huán),執(zhí)行完

循環(huán)體后b的值為7,a的值為6。執(zhí)行a++,a的值為7,滿足條件進(jìn)入第三次循

環(huán),執(zhí)行完循環(huán)體后b的值為14,a的值為9。執(zhí)行a++,a的值變?yōu)?0,不滿足

條件,循環(huán)結(jié)束。所以選擇D選項(xiàng)。

21>有以下程序:#include<stdio.h>main()(inti,j,ni=55:for(i=l;i<=3;

i++)for(j=3;j<=i;j++)m=m%j;prinlf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果

是()。

A、0

B、1

C、2

D、3

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

知識(shí)點(diǎn)解析?:第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內(nèi)循環(huán),j的值

為3,不滿足條件,跳月內(nèi)循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內(nèi)

循環(huán)條件,跳出內(nèi)循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時(shí)進(jìn)入內(nèi)循環(huán)判斷條件

時(shí),條件成立,執(zhí)行m=m%j,m的值為1,跳出內(nèi)循環(huán),跳出外循環(huán)打印m的

值。

22、有以下程序:#inelude<stdio.h>main()(intx=8:for(;x>0;x--){if(x%

3){printf("%d,”,x-);continue;}printf(”%d,",-x);}}程序運(yùn)行后的輸出

結(jié)果是()。

A、7,4,2,

8,7,5,2,

C、9,7,6,4,

D、8,5,4,2,

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

知識(shí)點(diǎn)解析:coutinuc的作用是跳出循環(huán)體中剩余的語(yǔ)句而進(jìn)行下一次循環(huán)。第一

次循環(huán)x的值為8,循環(huán)體中if條件成直,打印x的值8后將x減1,再執(zhí)行

continue語(yǔ)句,跳出本次循環(huán)。第二次判斷循環(huán)條件時(shí),x的值變?yōu)?,不滿足循

環(huán)體內(nèi)if條件,執(zhí)行打印--X的操作,即打印5后跳出循環(huán)。第三次判斷循環(huán)條件

時(shí)x的值為4,滿足循環(huán)體中if條件,執(zhí)行打印X--的操作,即打印4,后將x值減

一,執(zhí)行continue語(yǔ)句,跳出本次循環(huán)。第四次判斷循環(huán)條件時(shí)x的為2,滿足循

環(huán)體中if條件,打印X,即打印2后將x減一,執(zhí)行continue語(yǔ)句,跳出本次循

環(huán)。在進(jìn)行for條件表達(dá)式中第三個(gè)表達(dá)式x-的操作后x的值為0,不滿足條件結(jié)

束循環(huán)。所以打印結(jié)果為8,5,4,2,o

23、以下敘述中錯(cuò)誤的是O。

A、C程序必須由一個(gè)或一個(gè)以上的函數(shù)組成

B、函數(shù)調(diào)用可以作為一個(gè)獨(dú)立的語(yǔ)句存在

C、若函數(shù)有返回值,必須通過return語(yǔ)句返回

D、函數(shù)形參的值也可以傳回給對(duì)應(yīng)的實(shí)參

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

知識(shí)點(diǎn)解析:形參是函數(shù)定義時(shí)由川戶定義的形式上的變量,實(shí)參是函數(shù)調(diào)用時(shí),

主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在C語(yǔ)言中,實(shí)參向形參傳送數(shù)據(jù)的方式

是“值傳遞”。因此D選項(xiàng)正確。

24>有以下程序:#include<stdio.h>main()(inta=l>b=3,c=5;int*pl=&a,

*p2=&b,*p=&c;*p=*pl*(*p2);printf("%d\n",c);}程序執(zhí)行后的輸出結(jié)果

是()。

A、1

B、2

C、3

D、4

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

知識(shí)點(diǎn)解析:該程序中int*pl=&a,*p2=&h,*p=&c;指定義三個(gè)指針變量,并賦

值,即使pl指向a;p2指向b;p指向c。*p=*pl*(*p2);該條語(yǔ)句是給p所指的

存儲(chǔ)單元c賦值,就是pl所指的存儲(chǔ)單元的值,即a的值,與p2所指的存儲(chǔ)單元

b的值相乘,也就是c=a*b,等價(jià)于c=l*3=3;因此C選項(xiàng)正確。

25、有以卜程序:#include<stdio.h>voidf(int*p?int*q);main(){intm=l,

n=2,*r=&m;f(r,&n);prinlf("%d,%d”,m,n);)voidf(int*p,int*q)

{p=p+l;*q=*q+l:)程序運(yùn)行后的輸出結(jié)果是()。

A、2,3

B、1,3

C、1,4

D、1,2

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

知識(shí)點(diǎn)解析:在int*q)函數(shù)中.執(zhí)行p=p+1是將p所對(duì)應(yīng)的地址加I,而

*q=*q+l是將q所指向的n的地址所對(duì)應(yīng)的值加1,所以m的得知所對(duì)應(yīng)的值沒有

變,而n的值則為3了<:因此B選項(xiàng)正確。

26、若有定義語(yǔ)句:inia[2][3],*p[3];則以下語(yǔ)句中正確的是()。

A、p=a;

B、p[0]=a;

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

D、p|I|=&a;

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

知識(shí)點(diǎn)解析:A選項(xiàng)錯(cuò)誤,因?yàn)閜是指向一個(gè)指針數(shù)組,作為數(shù)組名,不能指向別

的地方。B選項(xiàng)錯(cuò)誤,因?yàn)閜|0]是一個(gè)int指針,也就是int*;而a是一個(gè)指向指針

的指針int**。選項(xiàng)正確,因?yàn)閜⑼是一個(gè)int*,a[l]⑵是int,&a[l]⑵是int*,類

型吻合。D選項(xiàng)錯(cuò)誤,因?yàn)閍作為數(shù)組名,不能取地址。即使能取,p[l]是int*,

&a是int=***,類型不對(duì)。因此C選項(xiàng)正確。

27、以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行由小到大排序;當(dāng)flag為0

時(shí),進(jìn)行由大到小排序。#include<stdio.h>voidf(intb[],intn,intflag){int

i,j,t;for(i=0;i<n-l;i++)for(j=i+l;j<n;j++)if(flag?b[i]>b[j]:b[i]<b[j])

{t=b[i];b[i]=b[j];b|j]=l;}}main(){inta[10]={5,4,3,2,1,6,7,8,9,

10),i;f(&a[2],5,0);f(a,5,1);for(i=0;i<10;i++)printf("%d,“,

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

A、1,2,3,4,5,6,7,8,9,10,

B、3,4,5,6,7,2,1,8,9,10,

C、5,4,3,2,1,6,7,8,9,10,

D、10,9,8,7,6,5,4,3,2,1,

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

知識(shí)點(diǎn)解析:本題重點(diǎn)考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩

種情況。本題就是結(jié)合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對(duì)數(shù)據(jù)進(jìn)行

排序,語(yǔ)句f(&a[2],5,0)的作用是對(duì)從a[2]開始的5個(gè)元素進(jìn)行從大到小排序。

注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對(duì)數(shù)組a操作,執(zhí)行

后的結(jié)果為5,4,7,6,3,2,1,8,9,10。語(yǔ)句f(a,5,1)對(duì)數(shù)組a的前5個(gè)

元素從小到大排序,排序后數(shù)組為:3,4,5,6,7,2,1,8,9,10。因此B選

項(xiàng)正確。

28、有以下程序:#include<stdio.h>main(){ints[12]={1,2,3?4,4,3,2,

1,1,1,2,3),c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=l;i<5:

i++)printf(”%d",c[i]);pnntf(H\nM);}程序運(yùn)行后的輸出結(jié)果是()。

A、2344

B、4332

C、1234

D、1123

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

知識(shí)點(diǎn)解析;在for(i=0;i<12;iii)c[s[i]]i?中,數(shù)組元素s[i]的值作為數(shù)組c的

下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組c的4個(gè)元素的值分別為4、3、3、2。因此B選項(xiàng)正

確。

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

A、charstr:"\x43";

B、charstr[]=n\0";

C、charstr=*\

D、charstr[]={,\064'}:

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

知識(shí)點(diǎn)解析:C語(yǔ)言中,字符串是用一對(duì)雙引號(hào)括起來(lái)的字符序列,并用字符型數(shù)

組來(lái)存放,故C選項(xiàng)和D選項(xiàng)不屬于字符串,A選項(xiàng)定義的是一個(gè)字符變量s【r,

卻用來(lái)存放字符串,顯然也不正確,因此B選項(xiàng)正確。

30、以下關(guān)于字符串的敘述中正確的是()。

A、空串比空格打頭的字符串小

B、兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行字符串大小的比較

C、可以用關(guān)系運(yùn)算符對(duì)字符串的大小進(jìn)行比較

D、C語(yǔ)言中有字符串類型的常量和變量

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

知識(shí)點(diǎn)解析:字符串比較大小是以第1個(gè)不相同字符的大小為標(biāo)準(zhǔn)的,跟長(zhǎng)度沒有

關(guān)系,B選項(xiàng)不正確;字符串比較大小除了使用庫(kù)函數(shù)slrcmp。以外,就只能靠自

己寫代碼來(lái)實(shí)現(xiàn)了,而不能通過關(guān)系運(yùn)算符來(lái)比較大小。因?yàn)樽址诒磉_(dá)式中相

當(dāng)于constchar*,即常字符指針,代表的是字符串的首地址,關(guān)系運(yùn)算符會(huì)將兩個(gè)

字符串的首地址值比較大小,這是毫無(wú)意義的。C選項(xiàng)不正確。C語(yǔ)言中只有字符

串常量而沒有字符串變量,D選項(xiàng)描述不正確;空串的長(zhǎng)度為0,而以空格打頭的

字符串的長(zhǎng)度至少為1,因此A選項(xiàng)是正確的。

31、有以下程序:#include<stdio<>h>voidfun(ehar*a?char*b)

{while(*a=,*,)a++;while(*b=*a){b++;a++;}}main()

{char*s="*****a*b****",t[80];fun(s,I);puts(t):})程序運(yùn)行后的輸出結(jié)果是

()o

A、ab

B、a*b

C、*****a*b

D、a*b****

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

知識(shí)點(diǎn)解析:在函數(shù)fim(char*a,char*b)中,while(*a='*')a++的功能是:如果*a

的內(nèi)容為,*,則a指針向后移動(dòng),鹵到遇到非,字符為止,退出循環(huán)進(jìn)入下一個(gè)

whik循環(huán),在while(*b=*a){b++;a++;}中,把字符數(shù)組a中的字符逐個(gè)賦給字符

數(shù)組b。所以在主函數(shù)口,執(zhí)行fun(s,1)語(yǔ)句后,字符數(shù)組I中的內(nèi)容為

“a*b****”。因此D選項(xiàng)正確。

32、卜列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=,\0'){a4-+;

b++:}}

A、將a所指字符串賦給b所指空間

B、使指針b指向a所指字符串

C、將a所指字符串和b所指字符串進(jìn)行比較

D、檢查a和b所指字符串中是否有、(T

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

知識(shí)點(diǎn)解析:While循環(huán)條件為:(*b=*a)!=,\0l執(zhí)行時(shí)先把指針a所指向的字符

賦給指針h所在內(nèi)存單元,如果該字符不是結(jié)束標(biāo)識(shí)執(zhí)行循環(huán)體a++;

h++;,指針a、b分別指向下一個(gè)字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)

把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到遇到結(jié)束標(biāo)識(shí)為止。因此A

選項(xiàng)正確。

33、有以卜程序:#include<stdio.h>intfun(intx)intp;if(x==O||x==l)

return(3):p=x-fun(x-2):returnp:}main())printf(H%d\n",fun(7));干旱序執(zhí)

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

A、2

B、3

C、7

D、0

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

知識(shí)點(diǎn)解析:因?yàn)閒un(intx)是一個(gè)遞歸函數(shù),所以主函數(shù)中fun(7)經(jīng)過3次遞歸調(diào)

用,其過程可以描述為“fun(7)=7?fun(5)=7-(5?fun(3))=7?(5?(3?fun(l)))=7?(5?(3?3))=7?

5=2",所以最后輸出結(jié)果為2。因此A選項(xiàng)正確。

34、有以下程序:#include<stdio.h>intfun()(staticintx=l;x*=2;returnx;

main。{inti,s=l:for(i=l;i<=2;i++)s=fun();printf(H%din",s);}程序運(yùn)行

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

A、0

B、1

C、4

D、8

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

知識(shí)點(diǎn)解析:fun函數(shù)中的x為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用

時(shí)仍可保留上次調(diào)用時(shí)的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第

一次調(diào)用時(shí)有效,從第二次調(diào)用開始,x的定義相當(dāng)于不存在,直接使用x的值。

主函數(shù)中調(diào)用兩次fun函數(shù):第一次調(diào)用:x=l,x=x*2=2,s=2;第二次調(diào)用:(直

接用上次x的值)x=x*2=4,s=4o因此C選項(xiàng)正確。

35、以下結(jié)構(gòu)體類型說明和變量定義中正確的是(),

A、structRFC:{intn:charc:):RECtl.t2:

B、typedefstruct{intn;charc;(REC;REC11,t2;

C、typedefstructREC;{intn=0:charc='A';}tl,t2;

D、struct{intn;charc;}REC;RECtl,t2:

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

知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)知識(shí),選項(xiàng)A中structREC后面不能有分

號(hào),C選項(xiàng)中typedefstructREC的后面也不能有分號(hào),選項(xiàng)D中REC已經(jīng)是結(jié)構(gòu)

體變量,不能當(dāng)做結(jié)構(gòu)體類型來(lái)使用。

36、似定己建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點(diǎn):

diunext

bead[3—11a1卜1db|T-4c[Q—>

............1P.iq.........................則以下選項(xiàng)中可將q所指結(jié)點(diǎn)從鏈

表中刪除并釋放該結(jié)點(diǎn)的語(yǔ)句組是()。

A、p->next=q->next;free(q);

B>p=q->next;free(q):

C^p=q;free(q);

D、(*p).next=(*q).next;free(p);

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

知識(shí)點(diǎn)解析:本題考查刪除鏈表中的結(jié)點(diǎn)操作,其方法是將要?jiǎng)h除結(jié)點(diǎn)的上個(gè)結(jié)點(diǎn)

的下個(gè)結(jié)點(diǎn)指向要?jiǎng)h除結(jié)點(diǎn)的下個(gè)結(jié)點(diǎn),然后釋放該要?jiǎng)h除結(jié)點(diǎn),所以選項(xiàng)A正

確。

37、有以下程序:#include<stdio.h>#include<string.h>structA{inta;char

bLIOJ;doublec;);voidf(structAt);main()structAa={1001,"ZhangDa",

1098.0);f(a);printf;"%d,%s,%6.lf\nM,a.a,a.b,a.c);}void

f(structAt){t.a=1002;strcpy(t.b,"ChangRong');t.c=1202.0;}程序運(yùn)行

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

A、1002,ZhangDa,1202.0

B、1002,ChangRong,1202.0

C、1001,ChangRong,1098.0

D、1001,ZhangDa,1098.0

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

知識(shí)點(diǎn)解析:本題考查結(jié)構(gòu)體的相關(guān)操作以及傳值、傳址的區(qū)別,該題中調(diào)用f函

數(shù)后,會(huì)生成參數(shù)a的一個(gè)副本,而不會(huì)改變a的值,所以a值維持原值,選項(xiàng)D

正確。

38、有以下程序:#include<stdio.h>#defineN5#defineMN+l#definef(x)(x*M)

main(){intil,i2:il=f(2):i2=f(l+l);printf("%d%d\n”,il,i2);}程序運(yùn)行

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

A、127

B、1212

C、11II

D>117

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

知識(shí)點(diǎn)解析:本題考查宏定義的用法,宏定義只是做個(gè)簡(jiǎn)單的替換,所以本題中執(zhí)

行f(2)=(2*N+l)=U,執(zhí)行f(l+l)=(l+l*N+l)=7。選項(xiàng)D正確。

39、有以下程序:#include<stdio.h>main()inta=5,b=l,t:t=(a<<2)|b:

printf("%d\n”,t);}程序運(yùn)行后的輸出結(jié)果是(),

A、1

B、11

C、6

D、21

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

知識(shí)點(diǎn)解析:本題考查位運(yùn)算,以及按位或操作,將a左移一位相當(dāng)于是將a乘以

了4,所以aVV2等于20,二進(jìn)制表示為00010100,與b按位或得到00010101,

即21,所以選項(xiàng)D正確。

40、設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返

回值為()。

A、0

B、,\(r

C、非0值

D、NULL

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

知識(shí)點(diǎn)解析:本題考查文件的定位,feof函數(shù)的用法是從輸入流讀取數(shù)據(jù),如果到

達(dá)文件末尾(遇文件結(jié)束符),eof函數(shù)值為非零值,否則為0,所以選項(xiàng)C正確。

二、程序填空題(本題共[題,每題1.0分,共/分。)

41、下列給定程序中,函數(shù)fun的功能是進(jìn)行數(shù)字字符轉(zhuǎn)換。若形參ch中是數(shù)字

字符”?9,則將十轉(zhuǎn)換成9,'1'轉(zhuǎn)換成’8、2轉(zhuǎn)換成7,……,9轉(zhuǎn)換成

40\若是其他字符則保持不變:并將轉(zhuǎn)換后的結(jié)果作為函數(shù)值返回。請(qǐng)?jiān)诔绦虻?/p>

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

源程序在文件BLANK1.C中。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include<stdio.h>/**********found**********/[l]fun(charch){/

**********^und**********/if(ch>=40,&&[2])/*******?**found**********/

retum'9'-(ch-[3]);returnch;main(){charcl,c2;printf(M\nTheresult:\n");

cl=,2,;c2=fun(cl);printf("cl=%cc2=%c\n",cl,c2);cl=,8,;c2=fun(cl);

printf("cl=%cc2=%c\n",cl,c2);cl='a';c2=fun(cl);printf("cl=%cc2=%c\

n",cl,c2);)

標(biāo)準(zhǔn)答案:(l)char(2)ch<=,9,(3),0\

知識(shí)點(diǎn)解析:本題考查:函數(shù)定義,注意函數(shù)定義的一般形式以及有參函數(shù)和無(wú)參

函數(shù)的區(qū)別;if語(yǔ)句條件表達(dá)式,本題的條件表達(dá)式是判斷數(shù)字字符;函數(shù)返回

值,其一般形式為“retum表達(dá)式:”。有參函數(shù)定義,其一般形式為:類型標(biāo)識(shí)符

函數(shù)名(形式參數(shù)表列){聲明部分語(yǔ)句}在形參表中給出的參數(shù)稱為形式參數(shù),它

們可以是各種類型的變量,各參數(shù)之間用逗號(hào)間隔。在進(jìn)行函數(shù)調(diào)用時(shí),主調(diào)函數(shù)

將賦予這些形式參數(shù)實(shí)際的值。形參既然是變量,必須在形參列表中給出類型說

明。

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

42、給定程序MODII.C中,函數(shù)fun的功能是:判斷輸入的任何一個(gè)正整數(shù)n,

是否等于某個(gè)連續(xù)正整數(shù)序列之和。若是,則輸出所有可能的序列,否則輸出“不

能分解”。例如:當(dāng)輸入100時(shí),輸出:100=9+10+11+12+13+14+15+16

100=18+19+20+21+22請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)

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

程序:#includc<stdio.h>voidfun(intn)(intj,b,c>m?flag=0;for(b=1;b<

=n/while(m!=0&&m>

C++)/

**********,。^^*********/if(m!=0){printf("%d=,\n);for(j=b;j<c-l;

j++)prinlf("%d+",j);printf("%d\n",j);flag=l:}if(flag==O)prinlf("不能分解

\n");)main(){intn;printf(”請(qǐng)輸入一個(gè)整數(shù):");seailf(',%dH,&n);

fun(n);}

標(biāo)準(zhǔn)答案:(l)m:n;(2)m:m-c;C++;(3)if(m==0)o

知識(shí)點(diǎn)解析:(1)每次循環(huán),程序需要對(duì)n執(zhí)行減去連續(xù)的正整數(shù)序列來(lái)判斷n是

否剛好為0,即n是否是連續(xù)的正整數(shù)序列之和,所以需要使用臨時(shí)變量m寄存n

的值,每次循環(huán)對(duì)m執(zhí)行減運(yùn)算操作,不滿足繼續(xù)下一輪。另外,程序聲明變量

m時(shí),未初始化它的值,所以此處應(yīng)該修改為:m=n。(2)語(yǔ)法錯(cuò)誤。C語(yǔ)言中每

個(gè)語(yǔ)句必須以分號(hào)結(jié)束,所以應(yīng)修改為:m=m-c;C++;。(3)題目判斷n是否是連

續(xù)的正整數(shù)序列之和,若是,則輸出所有序列,程序中m依次減去連續(xù)的正整

數(shù),當(dāng)m為。時(shí),表示m(即n)滿足條件,再輸出當(dāng)前序列中的每個(gè)正整數(shù),所以

此處判斷條件反了,應(yīng)修改為:if(m==0)。

四、程序設(shè)計(jì)題(本題共[題,每題7.0分,共7分0)

43、編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符為1,則輸出3。注意:部分源程序在

文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)

fun的花括號(hào)中填入你編寫的若干語(yǔ)句。#include<sldio.h>#include<string.h

>#defineM81intfun(char*ss,chare){)main(){chara[M],ch:voidNONO();

printf("\nPleaseenterastring:");gets(a);printf("\nPleaseenterachar:");

ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));

NONO();}voidNONO(){/*本函數(shù)用于打開文件,輸入測(cè)試數(shù)據(jù),調(diào)用fun函

數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/inti;FILE*rf,*wf:chara[M],b[M],ch;

rf=fopcn("in.dat","r");wf=fopcn("out.datn?"w'r);for(i=0;i<10;i++)

{fscanf(rf,"%s",a);fscanf(rf,"%s",b);ch=*b:fprintf(wf,"%c二%d\n",

ch,fun(a,ch));}fclose(rf);fclose(wf);}

標(biāo)準(zhǔn)答案:inlflun(char*ss,chare){inti=0:for(;*ss!='\O';ss++)if(*ss==c)

i++;/*求出ss所指字符串中指定字符的個(gè)數(shù)*/relurni:}。

知識(shí)點(diǎn)解析:本題考查:for循環(huán)語(yǔ)句遍歷字符串,并通過if條件語(yǔ)句,判斷字符

串是否結(jié)束。從字符串中查找指定字符,需要使外循環(huán)判斷結(jié)構(gòu),循環(huán)語(yǔ)句用來(lái)

遍歷字符串,循環(huán)條件為字符串沒有結(jié)束,即當(dāng)前字符不是\0',判斷語(yǔ)句用來(lái)

判斷當(dāng)前字符是否為指定字符。最后返回指定字符的個(gè)數(shù)。

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

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

1、數(shù)據(jù)結(jié)構(gòu)主要研究的是數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的運(yùn)算和()。

A、數(shù)據(jù)的方法

B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)

C、數(shù)據(jù)的對(duì)象

D、數(shù)據(jù)的邏輯存儲(chǔ)

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

知識(shí)之解析B:數(shù)據(jù)結(jié)構(gòu)是研究數(shù)據(jù)元素及其之間的相互關(guān)系和數(shù)據(jù)運(yùn)算的一門學(xué)

科,它包含3個(gè)方面的內(nèi)容,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)的運(yùn)算。

2、一棵二叉樹的前序遍歷結(jié)果是ABCEDF,中序遍歷結(jié)果是CBAEDF,則其后序

遍歷的結(jié)果是()。

A、DBACEF

B、CBEFDA

C、FDAEBC

D、DFABEC

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

知識(shí)點(diǎn)解析:由于該二叉樹的前序遍歷結(jié)果是ABCEDF,顯然A結(jié)點(diǎn)為根結(jié)點(diǎn),

所以后序遍歷時(shí)A結(jié)點(diǎn)是最后遍歷的,其后序遍歷的結(jié)果為CBEFDAo

3、在數(shù)據(jù)處理中,其處理的最小單位是()。

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

B、數(shù)據(jù)項(xiàng)

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

D、數(shù)據(jù)元素

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

知識(shí)點(diǎn)解析:數(shù)據(jù)元素是由多個(gè)數(shù)據(jù)項(xiàng)組成,數(shù)據(jù)是能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加

工處理的信息載體,數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng)。

4、在數(shù)據(jù)庫(kù)系統(tǒng)的內(nèi)部結(jié)構(gòu)體系中,索引屬于()。

A、模式

B、內(nèi)模式

C、外模式

D、概念模式

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

知識(shí)點(diǎn)解析:內(nèi)模式又禰物理模式,它給出了數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方

法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式

的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)備級(jí)上(如磁盤及磁盤

操作)。

5、以下()不屬于對(duì)象的基本特征。

A、繼承性

B、封裝性

C、分類性

D、多態(tài)性

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

知識(shí)點(diǎn)解析:對(duì)象具有如下特征:標(biāo)識(shí)惟一性,指對(duì)象是可區(qū)分的。分類性,指

可以將具有相同屬性和操作的對(duì)象抽象成類。多態(tài)性,指同一個(gè)操作可以是不同

對(duì)象的行為。封裝性,從外面看只能看到對(duì)象的外部特征,而不知道也無(wú)需知道

數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。模塊獨(dú)立性好,對(duì)象是面向?qū)ο蟮能浖?/p>

基本模塊,對(duì)象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。

6、數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。

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

B、軟件開發(fā)

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

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

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

知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫(kù)

的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實(shí)施對(duì)數(shù)據(jù)庫(kù)的統(tǒng)一

管理和控制。用戶使用的各種數(shù)據(jù)庫(kù)命令以及應(yīng)用程序的執(zhí)行,最終都必須通過

DBMSo另外,DBMS還承擔(dān)著數(shù)據(jù)庫(kù)的安全保護(hù)工作,按照DBA所規(guī)定的要

求,保證數(shù)據(jù)庫(kù)的完整件和安全性C

7、開發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱做()。

A、軟件矛盾

B、軟件危機(jī)

C、軟件藕合

D、軟件產(chǎn)生

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

知識(shí)點(diǎn)解析:隨著計(jì)算機(jī)軟件規(guī)模的擴(kuò)大,軟件本身的復(fù)雜性不斷增加I,研制周期

顯著變長(zhǎng),正確性難以保證,軟件開發(fā)費(fèi)用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了

入們難以控制軟件發(fā)展的局面,即所謂的“軟件危機(jī)”。

8、關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是()。

A、實(shí)體完整性約束

B、參照完整性約束

C、屬性完整性約束

D、用戶自定義的完整性約束

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

知識(shí)點(diǎn)解析:關(guān)系模型允許3類數(shù)據(jù)約束,它們是:實(shí)體完整性約束該約束要求

關(guān)系的主鍵中屬性值不能為空值,這是數(shù)據(jù)庫(kù)完整性的最基本要求。參照完整性

約束該約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即

在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實(shí)際存在的元組,要么就為空值。用戶定義

的完整性約束用戶定義的完整性就是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件,它反

映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。

9、關(guān)系表中的每一行記錄稱為一個(gè)()。

A、字段

B、元組

C、屬性

D、關(guān)鍵碼

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

知識(shí)點(diǎn)解析:在關(guān)系表中,每一列稱為一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段;每一行稱

為一個(gè)元組,對(duì)應(yīng)表中的一條記錄。

10、在數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展中,數(shù)據(jù)獨(dú)立性最高的是()。

A、人工管理

B、文件系統(tǒng)

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

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

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

知識(shí)點(diǎn)解析:在人工管理階段,數(shù)據(jù)無(wú)法共享,冗余度大,不獨(dú)立,完全依賴程

序;在文件系統(tǒng)階段,數(shù)據(jù)共享性差:在數(shù)據(jù)庫(kù)系統(tǒng)階段,共享性好,獨(dú)立性高。

11、以下敘述錯(cuò)誤的是()。

A、C語(yǔ)言區(qū)分大小寫

B、C程序中的一個(gè)變量,代表內(nèi)存中一個(gè)相應(yīng)的存儲(chǔ)單元,變量的值可以根據(jù)需

要隨時(shí)修改

C、整數(shù)和實(shí)數(shù)都能用C語(yǔ)言準(zhǔn)確無(wú)誤地表示出來(lái)

D、在C程序中,正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來(lái)表示

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

知識(shí)點(diǎn)解析:本題涉及C語(yǔ)言最基本的3個(gè)概念:①C語(yǔ)言是區(qū)分大小寫的,q和

Q是兩個(gè)不同的變量;②變量的實(shí)質(zhì)就是在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,存儲(chǔ)單

元里存放的是該變量的值,變量的值可以根據(jù)需要進(jìn)行修改;③整數(shù)在允許的范

圍內(nèi)可以準(zhǔn)確的表示出來(lái),但不可能表示無(wú)限度的實(shí)數(shù)。正整數(shù)可用二進(jìn)制、十進(jìn)

制、八進(jìn)制和十六進(jìn)制表示。

12、有以下程序段:inli,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case

1:case3:pfintf("%d\n",n);break;case2:case4:printf("%d\n",n);

continue;case0:exit(0);}printf(',%d\n",n);}以下關(guān)于程序段執(zhí)行情況的敘

述,正確的是()

A、for循環(huán)語(yǔ)句固定執(zhí)行8次

B、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí)結(jié)束循環(huán)操作

C、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為1和2時(shí)不做任何操作

D、當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí)結(jié)束程序運(yùn)行

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

知識(shí)點(diǎn)解析:當(dāng)產(chǎn)生的隨機(jī)數(shù)n為。時(shí),執(zhí)行case。:exit(O)這條語(yǔ)句,結(jié)束程序

的運(yùn)行。

13、可在C程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()。

A、voiddefineWORD

B、as_b3_123If

C、For_abccase

D、2cDOSIG

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

知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)

字符必須是字母或下劃線,關(guān)鍵字不能用作用戶標(biāo)識(shí)符。

14、若變量已正確定義并賦值,則以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是()。

A、a=a+7;

B、a=7+b+c,a++

C、int(12.3%4)

D、a=a+7=c+b

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

知識(shí)點(diǎn)解析:選項(xiàng)A是一個(gè)C語(yǔ)句,不是表達(dá)式:選項(xiàng)R是利用一個(gè)逗號(hào)表達(dá)式

給a賦值;選項(xiàng)C中的“%”求余運(yùn)算符要求兩個(gè)運(yùn)算對(duì)象都必須是整型;選項(xiàng)D

中,不能用表達(dá)式給表達(dá)式賦值,但是變量可以給自身賦值,例如:a=a+l。

15、有以下程序段charch;intk;ch='a';k=12;pfintf("%c,%d,",ch,ch,

k);printf("k=%d\nn,k);已知字符a的ASCII十進(jìn)制代碼為97,則執(zhí)行上述程

序段后輸出結(jié)果是()。

A、因變量類型與格式描述符的類型不匹配輸出無(wú)定值

B、輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值

C、a,97,12k=12

D、a,97,k=12

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

知識(shí)點(diǎn)解析:在用基本輸出函數(shù)prinif時(shí),格式說明與輸出項(xiàng)的個(gè)數(shù)應(yīng)該相同。如

果格式說明的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),多余的輸出項(xiàng)不予輸出;如果格式說明個(gè)數(shù)

多于輸出項(xiàng)個(gè)數(shù),則對(duì)于多余的格式項(xiàng)輸出不定值或0。

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

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

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

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

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

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

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

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

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

17、有以下程序#includevoidmain。{inta=l,b=0;printf("%d,",

b=(a++)+(a++));printfC%d\n",a+b);}程序運(yùn)行后的輸出結(jié)果是()。

A、4,6

B、2,5

C、3,5

D、2,6

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

知識(shí)點(diǎn)解析?:在主函數(shù)中定義了兩個(gè)整型變量a和b,并把它們的初值分別設(shè)置為

1和0;在第二條語(yǔ)句中,首先“算b=a+a,然后a自增兩次,囚此第二句結(jié)束

時(shí),b=2,a=3,然后第三句,a+b=5。

18、若有代數(shù)式(其中e僅代表自然對(duì)數(shù)的底數(shù),不是變量),則下列能

夠正確表示該代數(shù)式的C語(yǔ)言表達(dá)式是()o

A、sqrl(abs(nAx+eAx))

sqrt(fabs(pow(n,x)+pow(x,e)))

C、sqrt(fabs(pow(n,x)+cxp(x)))

D、sqrt(fabs(pow(x,n)+exp(X)))

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

知識(shí)點(diǎn)解析:n和。的x累次方,要分別調(diào)用C語(yǔ)言的數(shù)學(xué)庫(kù)函數(shù)doublepow(n,

x)和doubleexp(x),因?yàn)檫@兩個(gè)函數(shù)的返回值都為double型,對(duì)兩者的和計(jì)算絕對(duì)

值,調(diào)用庫(kù)函數(shù)doublefabs(pow(n,x)+exp(x)),求出和的絕對(duì)值,再調(diào)用開平方

函數(shù)doublesqrt(fabs(pow(n,x)+exp(x))),這樣計(jì)算出的結(jié)果就是題干中表達(dá)式的

值。

19、設(shè)有定義:intk=0;,下列選項(xiàng)的4個(gè)表達(dá)式中與其他3個(gè)表達(dá)式的值不相同

的是()。

A、k++

B、k+=l

C、++k

D、k+|

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

知識(shí)點(diǎn)解析:因?yàn)轭}中有語(yǔ)句“intk=O;=所以選項(xiàng)B、C、D都是對(duì)k的值加1,

選項(xiàng)A的語(yǔ)句k++表示先利用k的值進(jìn)行運(yùn)算,然后k的值才加lo

20>有下列程序,其中%u表示按無(wú)符號(hào)整數(shù)輸出。main。(unsignedint

x=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/printf("%u\n",x);}程序運(yùn)行后的輸

出結(jié)果是()。

A、-1

B、65535

C、32767

D、OX卜卜卜卜

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

知識(shí)點(diǎn)解析:“%u”格式符表示以十進(jìn)制形式輸出無(wú)符號(hào)整形變量。本題中無(wú)符號(hào)

整形變量x=0xFFFF表示的是十六進(jìn)制無(wú)符號(hào)整型變量的最大值65535,所以最后

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

21、下面程序的運(yùn)行結(jié)果是()。for(i=3;i<7;i++)printf((i%2)?("**%d\n"):

C##%d\n"),i);

A、**3##4**5**6

B、##3**4##5**6

C、##3**4##5##6

D、**3##4**5##6

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

知識(shí)點(diǎn)解析:本題考查printf函數(shù)的輸出格式和條件表達(dá)式“?:”的使用。①printf

函數(shù)輸出時(shí)“**%d\n”和“用%中的“白鏟和…”都是直接輸出。②條件表達(dá)式

的基本格式為:“a?b:c"。它的運(yùn)算規(guī)則為:當(dāng)a為非。時(shí),整個(gè)表達(dá)式的值取b

的值,當(dāng)a為0時(shí),整個(gè)表達(dá)式取c的值。

22設(shè)有語(yǔ)句:if(a=l)b=2;c=3;,以下語(yǔ)句中與之等價(jià)的是()。

A、if(a==l){b=2;c=3;}

B、if(a!=l){;}else{b=2;c=3;}

C、if(a==l)c=3;b=2;

D^(a==l)?b=2:a=a;c=3;

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

知識(shí)點(diǎn)解析:在C語(yǔ)言中,用分號(hào)表示一條語(yǔ)句的結(jié)束,用{}把幾條語(yǔ)句放在一

塊表示一個(gè)語(yǔ)句塊,其整體表示一個(gè)功能。因而在題目給出的四個(gè)選項(xiàng)中,選項(xiàng)

A、B、C均與題中所給不同,而選項(xiàng)D相同。

23、運(yùn)行下列程序時(shí),若輸入數(shù)據(jù)為“321”,則輸出結(jié)果是()。main(){intnum,

ij,k,s;scabf("%d”,&nun):if(num>99)s=3;elseif(nurn>9)s=2:elses=1;

i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(s){case3:

printf("%d%d%d\n”,k,j,i);break;case2:printf("%d%d\n",k,j);case

1:printfC%d\n",k);))

A、123

B、1,2,3

C、321

D、3,2,1

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

知識(shí)點(diǎn)解析:本題考查if-else語(yǔ)句和switch語(yǔ)句。scanf函數(shù)通過鍵盤讀入Bum的

值。因?yàn)閚um=32l>99,所以s=3,i=3,j=2,k=l<>因?yàn)閟=3,所以執(zhí)行case3,

輸出k,j,i的值,然后通過break結(jié)束程序。

24、有以卜程序#include#}includestructA{】nta;charb[10];doublec;);

structAf(structAt);main(){structAa={1001,"ZhangDa",1098.0);a=f(a);

printf("%d,%s,%6.If\n*',a.a,a.b,a.c);)structAf(structAt)

{t.a=1002;strcpy(t.b,"WangPeng");t.c=1220.0;returnt;}程序運(yùn)行后的

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

A^1001,ZhangDa,1098.0

B、1002,ZhangDa,1220.0

C、1001,WangPeng,1098.0

D、1002,WangPeng,1220.0

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

知識(shí)點(diǎn)解析:在主函數(shù)中定義結(jié)構(gòu)體A的變量a,并對(duì)其賦初值,再調(diào)用函數(shù)

f(a),在函數(shù)f(a)中對(duì)結(jié)構(gòu)體變量a的各個(gè)成員重新進(jìn)行了賦值操作,并把其值返

回在屏幕上輸出。

25、判斷char型變量cl是否為小寫字母的正確表達(dá)式為()。

A、,a,<=cl<=,z,

B、(cl>=a)&&(cl<=z)

C、(3>=clll,zV=cl)

D、(cl>=")&&?<='7')

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

知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,字符常量在程序中要用單引號(hào)括起來(lái)。首先判斷cl是

否為小寫字母的主要條件cl>=H和clv=,N是邏輯與關(guān)系,其次選項(xiàng)A的這種形

式C語(yǔ)言中沒有,所以選項(xiàng)D正確。

26、設(shè)有定義:charsUO];inti=0;,以下不能將一行(不超過)00個(gè)字符)帶有空

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

A、gets(s);

B、scanf("%s",s);

C^while((s[i-H-]=getchar())!=,\n');s[i]=,\0\

D、do{scanf("%cn,&s[i|);}while(s[i++]!='\n>s[i]=,\0,;

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

知識(shí)點(diǎn)解析:本題考查標(biāo)準(zhǔn)輸出函數(shù)和循環(huán)語(yǔ)句。wets(s)函數(shù)的作用是將輸入的字

符讀入字符串s,直到遇到回車。而scanf()函數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車或

者空格。因此選項(xiàng)B不能,選項(xiàng)C和選項(xiàng)D中按字符逐個(gè)讀入字符串s中,直到

讀入的字符是換行符為止,因此正確。

27、下面4個(gè)關(guān)于C語(yǔ)言的結(jié)論中錯(cuò)誤的是()。

A、可以用do…while語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用while語(yǔ)句實(shí)現(xiàn)

B、可以用for語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用while語(yǔ)句實(shí)現(xiàn)

C、可以用while語(yǔ)句實(shí)現(xiàn)的循環(huán)一定可以用for語(yǔ)句實(shí)現(xiàn)

D、do...while語(yǔ)句與while語(yǔ)句的區(qū)別僅是關(guān)鍵字"while”出現(xiàn)的位置不同

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

知識(shí)點(diǎn)解析:本題考查幾個(gè)循環(huán)語(yǔ)句的關(guān)系。①do…while語(yǔ)句、while語(yǔ)句、tor

語(yǔ)句所實(shí)現(xiàn)的循環(huán)可以相互替代:②do…while語(yǔ)句和while語(yǔ)句的區(qū)別是

do…while語(yǔ)句至少執(zhí)行一次,再判斷循環(huán)條件,while語(yǔ)句是先判斷條件再執(zhí)行。

28、若有以下程序段:structst{intn;int*m;);inta=2,b=3,c=5;structst

s[3]=({101,&a},{102,&c),{103,&b});main(){structst*p;ps;...}則以

下表達(dá)式中值為5的是()。

A、(p++)->m

B、*(p++)->m

C、(*p).m

D、*(++p)->m

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

知識(shí)點(diǎn)解析:本題考查如何通過指針引用數(shù)組元素。首先定義了一個(gè)結(jié)構(gòu)體,然后

定義了一個(gè)結(jié)構(gòu)體變量s[3],并賦了初值。在主程序中,定義了一個(gè)指向結(jié)構(gòu)體變

量s的指針p,要使表達(dá)式的值為5,就應(yīng)該引用m的值,使指針p指向

s[l],++p可以實(shí)現(xiàn)將p指針加1,指向s[l]。

29、下列程序的運(yùn)行結(jié)果是()。#includevoidsub(int*s?int*y){staticintm=4;

*y=s[0];m++:)voidmain(){inta[]={1,2,3,4,5),k;intx;printf(H\

n");for(k=0:k<=4;k++){sub(a,&x);printf("%d,",x);))

A、1,1,1,1,1,

B、1,32,3,4,5,

C、0,0,0,0,0,

D、4,4,4,4,4,

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

知識(shí)點(diǎn)解析:本題中su5(int*s,int*y)函數(shù)的參數(shù)是兩個(gè)指針型變量,在函數(shù)體內(nèi)

將數(shù)組s的第一個(gè)元素賦給y。主程序內(nèi),首先定義了一維數(shù)組并賦初值,然后通

過for循環(huán),5次調(diào)用sub(a,&x)函數(shù),每一次調(diào)用都是將數(shù)組a的第一個(gè)元素1

賦給x,并輸出。

30、有以下程序:#includeintfun(intx,inly){if(x!=y)return(y);elseretum((x+y)

/2);}main(){inta=4,b=5>c=6;printfr^od\nM,fun(2*a,fun(b,c)));}程

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

A、3

B、6

C、8

D、12

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

知識(shí)點(diǎn)解析:fun(b,c)即fun(5?6),5!=6?所以返回6;fun(2*a?6)即fun(8,6),

8!=6,所以返回6。

31、C語(yǔ)言中規(guī)定,程序中各函數(shù)之間()。

A、既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B、不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

C、允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D、不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

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

知識(shí)點(diǎn)解析?:本題考查函數(shù)調(diào)用的基本概念。在函數(shù)調(diào)用時(shí),只要符合函數(shù)的使

用,程序中的各個(gè)函數(shù)間既可以直接調(diào)用其他函數(shù),也可以遞歸調(diào)用其自身。

32、以下程序的輸出結(jié)果是O。includemain(){inta[3][3]={0,1,2,0,1,2,

0,1,2},i,j,s=l:for(i=0:i<3;i++)for(j=i:j<=i.j++)s+=a[i][a[j][j]];

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

A、3

B、4

C、I

D、9

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

知識(shí)點(diǎn)解析:當(dāng)外層循環(huán)為i時(shí),內(nèi)層循環(huán)j只能取j=i,所以其實(shí)

就是s+=a[i][a[i][i]],當(dāng)i=0時(shí),s=s+a[0][a[0][0]]os+a[0][0]=l,當(dāng)i=l時(shí),

s=s+a[1][a[1][1]]=s+a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論