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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C語(yǔ)言(C語(yǔ)言程序設(shè)計(jì))機(jī)

試模擬試卷1(共9套)

(共247題)

國(guó)家二級(jí)C語(yǔ)言(C語(yǔ)言程序設(shè)計(jì))機(jī)

試模擬試卷第1套

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

1、fun函數(shù)的功能是:通過(guò)鍵盤(pán)輸入給x所指的整型數(shù)組所有元素賦值。在下劃線(xiàn)

處應(yīng)填寫(xiě)的是#include<stdio.h>#dcfineN5Voidfun(intx[N]){intm;for(m=N-

1;m>=0;m—)scanf(H%d",);}

A、x+m

x[m+l]

C、x+(m++)

D、x[++m]

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

知識(shí)點(diǎn)解析:本題考查數(shù)組和scanf函數(shù)的使用。程序通過(guò)for循環(huán)來(lái)給數(shù)組元素

斌值,賦值語(yǔ)句通過(guò)調(diào)用scanf函數(shù)來(lái)實(shí)現(xiàn)。scanf函數(shù)從鍵盤(pán)接收數(shù)據(jù),函數(shù)的第

二個(gè)參數(shù)是數(shù)據(jù)保存的地址,因此選項(xiàng)B)和選項(xiàng)D)不是地址,錯(cuò)誤。選項(xiàng)A)和選

項(xiàng)C)是地址,但是選項(xiàng)C)的m值會(huì)++自增,然后「01?循環(huán)里面又自減,會(huì)導(dǎo)

致死循環(huán),不滿(mǎn)足要求,選項(xiàng)A)正確。

2、設(shè)有定義語(yǔ)句intx[61={2,4,6,8,5,7),*p=x,i;要求依次輸出x數(shù)組6

個(gè)元素中的值不能完成此操作的語(yǔ)句是

A、for(i=0;i<6;i++)printf(,'%2d",*(p++));

B、for(i=0;i<6;i++)printf(”%2d",*(p+i));

C、for(i=0;i<6;i++)printf(n%2d",*p++);

D、for(i=0;i<6;i++)pfintf("%2d",(*p)++);

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

知識(shí)點(diǎn)解析:指針p指向數(shù)組x,因此可以使用p來(lái)輸出數(shù)組x的值。選項(xiàng)A)中,

*(p++)表示先取出P指向的元素的值,然后P++指向下一個(gè)元素,滿(mǎn)足耍求;選項(xiàng)

B)中*(p+i)每次i的值發(fā)生變化,(p+i)指向x數(shù)組的x[i]元素,因此*(p+i)是取已數(shù)

組x的x[i]元素的值,滿(mǎn)足要求;選項(xiàng)C)和選項(xiàng)A)相比,少了括號(hào),由于*運(yùn)算符

的優(yōu)先級(jí)比++要求,因此,因此*p++表示先取出p指向的元素的值,然后p再++

指向下一個(gè)元素,滿(mǎn)足要求;選項(xiàng)D)中(+p)++表示先取出p指向的元素的值,然

后該值++,p沒(méi)有增加,每次循環(huán)都*p取出的x[0]的值,不滿(mǎn)足要求。

3、程序段:intx=12;doubley=3.141593;printf('%d%8.6f,x,y);的輸出結(jié)

果是

A、123.141593

B、123.141593

C、12,3.141593

D、123.1415930

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

知識(shí)點(diǎn)解析:本題考查格式化輸出函數(shù)printf。在printf函數(shù)調(diào)用里面首先輸入整

型變量x的值12,然后按照“%8.6『格式輸出double類(lèi)型變量y的值,“%8.6產(chǎn)

表示輸出8位,小數(shù)點(diǎn)后輸出6位。

4^有以下程序main。{chara,b,c,d;scanf("%c%c",&a,&b);c=gctchar();

d=getchar();printff'%c%c%c%cha”,a,b,c,d);}當(dāng)執(zhí)行程序時(shí),按下列方

式愉入數(shù)據(jù)(從第1列開(kāi)始,代表回車(chē),注意:回汴也是一個(gè)字符)1234則輸出結(jié)

果是

A、12

B、1234

C、123

D、1234

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

知識(shí)點(diǎn)解析:scanf和gccchar函數(shù)分別從鍵盤(pán)上讀入一個(gè)字符,因此輸入12空格

34,則變量a中存放的為1,b中存放2,c中存放空格,d中存放3。

5、設(shè)有定義:inta;floatb;執(zhí)行scanf("%2d%r‘,&a,&b);語(yǔ)句時(shí),若從鍵盤(pán)

輸入876543.0貝Ia和b的值分另IJ是

A、876和543.0

B、87和6.0

C、87和543.0

D、76和543.0

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

知識(shí)點(diǎn)解析:在輸入函數(shù)scanf的輸入格式符%2d%f中,2d表示輸入的數(shù)據(jù)的寬

度為2,所以當(dāng)從鍵盤(pán)輸入876543.0〈cR>時(shí),這時(shí)把輸入數(shù)字串的前兩位87

賦給變量a,然后將緊接著將6按照格式控制符%£的形式賦給變量b,所以b的值

為6.OOOOOOo

6、以下敘述中正確的是

A、當(dāng)用scanf從鍵盤(pán)輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在沒(méi)按下回車(chē)鍵(Enler鍵)前,可以任

意修改

B、花括號(hào)對(duì){}只能用來(lái)表示函數(shù)的開(kāi)頭和結(jié)尾,不能用于其他1=1的

C、空語(yǔ)句就是指程序中的空行

D、復(fù)合語(yǔ)句在語(yǔ)法上包含多條語(yǔ)句,其中不能定義局部變量

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

知識(shí)點(diǎn)解析:當(dāng)使用scanf函數(shù)從鍵盤(pán)輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)在未按下回車(chē)鍵之

前,可以任意修改。但按下回車(chē)鍵后,scanf函數(shù)即接受了這一行數(shù)據(jù),不能再修

改。選項(xiàng)A)正確,對(duì)于選項(xiàng)B),{}還可以表明復(fù)合語(yǔ)句的開(kāi)頭結(jié)尾,或者循環(huán)體

的開(kāi)頭結(jié)尾等,選項(xiàng)B)錯(cuò)誤,而空語(yǔ)句為“:”,不是空行,選項(xiàng)C)錯(cuò)誤,在復(fù)

合語(yǔ)句中可以定義變量為局部變量,選項(xiàng)D)錯(cuò)誤。

7、有以下程序#includcVstdio.h>main(){charcl,c2,c3,c4,c5,c6;

scanf("%c%c%c%c'\&cl,&c2,&c3,&c4);c5=getchar();c6=getchar();

putchar(cl):putchar(c2);printf("%c%c\n",c5,c6):}程序運(yùn)行后,若從鍵盤(pán)

輸入(從第1歹U開(kāi)始)12345678則輸出結(jié)果是

A、1256

B、1278

C、1245

D、1267

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

知識(shí)點(diǎn)解析:當(dāng)用scanf函數(shù)從鍵盤(pán)輸入數(shù)據(jù)時(shí),每行數(shù)據(jù)的未尾按下回車(chē)鍵

(Enter鍵)之前,可以任意修改。但按下回車(chē)鍵putchar(cl)(Emer鍵)之后,scanf函

數(shù)即接受了這一行數(shù)據(jù),不能再回去修改。所以本題中,當(dāng)輸入123VCR〉時(shí),

變量cl、c2、c3的值分別為1、2、3,當(dāng)輸入45678VCRAH寸,變量c5、c6的值

4和5。所以用輸出函數(shù)pulehar(cl)輸出1.putchar(c2)輸出2,printf("%c%c\

n",c5,c6)輸出45。

8、有以下程序段intj;floaty;charname|50|;scanf("%2d%f%sn>&j,&y,

name);當(dāng)執(zhí)行上述程序段,從鍵盤(pán)上輸入555667777abc后,y的值為

A、55566.0

B、7777.0

C、566.0

D、566777.0

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

知識(shí)點(diǎn)。析:因?yàn)樵谳斎敫袷娇刂品兄付ㄗ兞縥的輸入格式控制符為“%2d”,即

變量j所占的寬度為2,所以變量i只接收輸入數(shù)據(jù)的前兩位,從第三位開(kāi)始直到

空格之間的輸入整數(shù)都會(huì)被保存到變量y中,因?yàn)閥為浮點(diǎn)型數(shù)據(jù),所以輸出結(jié)果

為選項(xiàng)C)。

9、以下是if語(yǔ)句的基木形式:if(表達(dá)式)語(yǔ)句其中“表達(dá)式”

A、必須是邏輯表達(dá)式

B、必須是關(guān)系表達(dá)式

C、必須是邏輯表達(dá)或關(guān)系表達(dá)

D、可以是任意合法的表達(dá)式

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

知識(shí)點(diǎn)解析:本題考查if語(yǔ)句,C語(yǔ)言中if語(yǔ)句中的表達(dá)式可以是任意合法的表達(dá)

式。

10、有以下程序段inta,b,c;a=10;b=50;c=30;if(a>b)a=b>b=c;c=a;

printf(Ha=%db=%dc=%d\n",a,b,c);程序的輸出結(jié)果是

A、a=10b=50c=3O

B、a=10b=30c=10

C、a=10b=50c=10

D、a=50b=30c=50

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

知識(shí)點(diǎn)露析:本題的程序段首先定義三個(gè)整型變量a。boc,并且其初始值分別等

于10,50,30.然后判斷a>b是否成立,如果條件成立,則把b的值賦給a,把c

的值賦給b。由a和b的初始值可知,此條件表達(dá)式不成立,所以a和b的值保持

不變。再執(zhí)行下一條語(yǔ)句,把a(bǔ)的值賦給c,所以c的當(dāng)前值等于10。最后由輸出

語(yǔ)句輸出變量a,b,c的當(dāng)前值,分別為10,50,10o

rV*(x^o)

11、有以下計(jì)算公式產(chǎn)1匚7(x<o>若程序前面已經(jīng)在命令行中包含math,h文

件,不能夠正確計(jì)算上述公式的程序段是

A^y=sqrt(x);if(x<O)y=sqrt(-x);

BNif(x>=O)y=sqrt(x);clsey=sqrt(-x);

C、if(x>=O)y=sqrt(x);if(x<O)y=sqrt(-x);

D^y=sqrt(x>=07x:-x);

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

知識(shí)點(diǎn)解析:由題意可知計(jì)算公式的含義是:當(dāng)x大于等于。時(shí),y值等于x的算

*平方根;當(dāng)x小于0時(shí),y值等于x的相反數(shù)的算*平方根。所以選項(xiàng)B)用一個(gè)完

整的ifelse語(yǔ)句表達(dá)了計(jì)算公式的含義:選項(xiàng)C)用兩個(gè)if語(yǔ)句表達(dá)了計(jì)算公式的

含義;選項(xiàng)D)在求平方根函數(shù)的后面用xX)?x:?x條件表達(dá)式來(lái)表達(dá)了計(jì)算公式

的含義。選項(xiàng)A)沒(méi)有用C語(yǔ)言語(yǔ)句正確的表達(dá)計(jì)算公式的含義。

12、若有以下程序#includeVstdio.h>main。{inta=l,b=2,c=3,d=4;

if((a=2)||(b=l))c=2;if((c==3)&&(d=-l))a=5;printfi"%d,%d,%d,%d\n”,

a,b,c,d);}則程序的輸出結(jié)果是

A、2,1,2,-1

B、2,2,2,4

C、5,1,2,-1

D、1,2,3,4

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

知識(shí)點(diǎn)解析:代碼中有兩條并列的if語(yǔ)句,第一條if語(yǔ)句執(zhí)行,(a=2)||(b=l)值為

1,由于邏輯或表達(dá)式,根據(jù)其短路運(yùn)算規(guī)則,a=2,b=2,即b值不變執(zhí)行if分支

c=2o并列的if語(yǔ)句中表達(dá)式(c==3)&&(d=-l)為邏輯與表達(dá)式,c==3不成立,不考

慮d=l表達(dá)式,d為5.邏輯表達(dá)式值為0,不執(zhí)行相應(yīng)if分支。

13、以下敘述中正確的是

A、if語(yǔ)句只能嵌套一層

B、不能在else子句中再嵌套if語(yǔ)句

C、if子句和else子句中可以是任意的合法的C語(yǔ)句

D、改變計(jì)?sc語(yǔ)句的縮進(jìn)格式,會(huì)改變程序的執(zhí)行流程

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

知識(shí)點(diǎn)解析:含else子句的if語(yǔ)句的格式為ifr表達(dá)式)語(yǔ)句1else語(yǔ)句2其中if和

else是C語(yǔ)言的關(guān)鍵字。“語(yǔ)句1”稱(chēng)為if子句,“語(yǔ)句2”稱(chēng)為else子句,這些子句

只允許為一條語(yǔ)句,若需要多條語(yǔ)句時(shí),則應(yīng)該使用復(fù)合語(yǔ)句,對(duì)于if?fielse語(yǔ)句

的嵌套原則是比較自由的。

14、若有定義:floatx=l.5;inta=l,b=3,c=2;則正確的switch語(yǔ)句是

A、switch(a+b){easel:printf(H*\n");case2+1:printf("**\nn);}

B、switch((int)x);{case1:printf(n*\n");case2:printf("**\n"):)

C、switch(x){casel.0:printf("*\n");case2.0:printf(n**\n");}

D、switch(a+b){easel:printf("*\n");casec:printf(H**\n");)

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

知識(shí)點(diǎn)解析:在C語(yǔ)言中,switch。后一對(duì)圓括號(hào)中的可以是整型表達(dá)式或字符表

達(dá)式。case語(yǔ)句后面的常量表達(dá)式的類(lèi)型必須與switch后圓括號(hào)中的表達(dá)式類(lèi)型相

同,各case語(yǔ)句標(biāo)號(hào)的值應(yīng)該互不相同,選項(xiàng)B)中switch后括號(hào)表達(dá)式出錯(cuò),選

項(xiàng)C)中case后面的常量類(lèi)型不正確,選項(xiàng)D)中Case后面出現(xiàn)了變量表達(dá)式,所

以D)不正確。

15>有以下程序程ncludemain。{intx=l,y=0?a=0,b=0:switch(x)(easel:

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

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

a=l,b=l

B、a=l,b=0

C、a=2,b=l

D^a=2,b=2

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

知識(shí)點(diǎn)詞析:本題考查的是用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),首先進(jìn)入第一個(gè)

switch(x)判斷,進(jìn)入easel中進(jìn)行嵌套判斷,如果switch(y)也成立,a自加I,遇到

break,退出嵌套,接著執(zhí)行case2,a自加為2,b自加為I,遇到break,結(jié)束循

環(huán),此時(shí)a=2,b=lo

16、關(guān)于"while(條件表達(dá)式)循環(huán)體”,以下敘述正確的是

A、循環(huán)體的執(zhí)行次數(shù)總是比條件表達(dá)式的執(zhí)行次數(shù)多一次

B、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣

C、條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次

D、條件表達(dá)式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無(wú)關(guān)

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

知識(shí)點(diǎn)解析:while語(yǔ)句中表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體。while語(yǔ)句中當(dāng)表達(dá)

式計(jì)算的值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句。因此條件表達(dá)式執(zhí)行的次數(shù)總是比循

環(huán)體多一次。

17、有以下程序#includc<stdio.h>voidman】(){ints;scant("%d”,&s);

while(s>0){switch(s){easel:prinlf("%d",s+5);case2:prinlf("%d",s+4);

break;case3:primf("%d",s+3);default:printf(,,%d"s+l);break:)scanf("%

d",&s);}}運(yùn)行時(shí),若輸入123450,則輸出結(jié)果是

A、66656

B、6566456

C、66666

D、6666656

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

知火點(diǎn)解析:這道試題主要考查了switch和break語(yǔ)句,當(dāng)變量s的值為1時(shí)。,執(zhí)

行easel、case2兩條語(yǔ)句,輸出65;當(dāng)變量s的值為2時(shí),執(zhí)行case2語(yǔ)句,輸出

6:變量s的值為3時(shí),執(zhí)行case3、default兩條語(yǔ)句,輸出64;變量s的值為4

時(shí),執(zhí)行default語(yǔ)句,輸入5,變量s的值為5時(shí),執(zhí)行default語(yǔ)句,輸出6;變

量s的值為0時(shí),程序運(yùn)行結(jié)束。

18、若有以下程序main。{inta=-2,b=0;while(a++)++b:printf("%d,%d\n",

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

A、0.2

R、I.2

C、I,3

D、2,3

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

知識(shí)點(diǎn)解析:循環(huán)體執(zhí)行兩次,第一次表達(dá)式a++值為-2,a的值為.1,執(zhí)行循環(huán)

體++b,b值為1,第二次表達(dá)式a++值為-1,a的值等于0,執(zhí)行++b,b值為2,

第三次判斷條件a++,表達(dá)式值為0,不執(zhí)行循環(huán)體,但是條件判斷以后,a的值

為lo

19、以下不構(gòu)成無(wú)限循環(huán)的語(yǔ)句或語(yǔ)句組是

A、n=0;do{++n;)while(n<=0);

B、n=0;while(l){n++;]

C>n=10;while(n);{n-;)

D^for(n=0?i=l;;i+-)n+=i;

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

知識(shí)點(diǎn)解析:選項(xiàng)B)中whiled)永遠(yuǎn)為真所以進(jìn)入死循環(huán),選項(xiàng)C)中

while(n=10)同理,選項(xiàng)D)中for循環(huán)沒(méi)有循環(huán)限定條件也將進(jìn)入無(wú)限循環(huán),只有選

項(xiàng)A)中while(nV=0)循環(huán)判定成立,循環(huán)將不進(jìn)入無(wú)限循環(huán)。

20、有以卜程序main(){inta=3;do{printf(M%d,",a-=2);)while(!(—a));printf("

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

A、1,1

B、1,-2,

C、3,0,

D、1,0

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

知識(shí)點(diǎn)解析:循環(huán)體執(zhí)行兩次。首先輸出a=l,然后判斷表達(dá)式!(-a),a為0,循

環(huán)條件表達(dá)式值為1,執(zhí)行第二次循環(huán)體,輸出a=2。判斷循環(huán)條件表達(dá)式值為

0,循環(huán)退出。

21有以下程序#includeVstdio.h>main(){inty=9;for(;y>0:y-)if(y%

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

A、963

B、852

C、741

D、875421

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

知識(shí)點(diǎn)解析:y的值的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),if

語(yǔ)句的條件成立,執(zhí)行輸出語(yǔ)句,輸出表達(dá)式-y的值,因?yàn)樽詼p符號(hào)在y的前面,

所以首先y的自減1,然后再輸出y的值,故輸出結(jié)果為852。

22、設(shè)變量已正確定義,則以下能正確計(jì)算仕n!的程序段是

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

f=l;for(i:1:i<n;i++)f*=i;

C、f=I;for(i=n;i>1;i++)if=i;

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

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

知識(shí)點(diǎn)解析:本題主要考查for循環(huán)的使用。題目要求計(jì)算階乘n!,通過(guò)foi?循環(huán)

來(lái)實(shí)現(xiàn),循環(huán)變量i可以從1到n(包括n)或者從n到1,在循環(huán)體內(nèi)做累乘。選項(xiàng)

A)中,累乘變量的初值為0,最終計(jì)算結(jié)果也為0:選項(xiàng)B)中循環(huán)次數(shù)為n-1次,

累乘結(jié)果少乘了n;選項(xiàng)C)是死循環(huán);選項(xiàng)D)正確。

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

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

continue;caseO:exit(0);)printf(n%d\n",n);]

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

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

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

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

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

知識(shí)點(diǎn)解析:rand()函數(shù)功能為產(chǎn)生一個(gè)隨機(jī)數(shù),rand()%5,則產(chǎn)生0?4之間的任

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

運(yùn)行。

24、若有以下程序#includechar*a=nyoun;charb|]="WelcomeyoutoChina!";

main(){inti,j=0:char*p;for(i=0:b[i]!=>\0*;i++){if(*a==b[i]){p=a;for(j=i;

*p!=,\0';j++)(it(*p!=b|jJ)brcak;p++;}iR*p=='\U')break;})pnntt("%s",

&b[i]);}則程序的輸出結(jié)果是

A、youtoChina!

toChina!

C、meyoutoChina!

D^China!

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

知識(shí)點(diǎn)解析:程序中循環(huán)部分的主要功能是,在字符串b中尋找是否含有子串a(chǎn),

如果含有則退出,此時(shí)i為子串a(chǎn)在字符串b中第一次出現(xiàn)的位置。因此最后的輸

出函數(shù)則從笫i個(gè)字符開(kāi)始一直輸出到字符串的末尾。

25、以下敘述中正確的是

A、循環(huán)發(fā)生嵌套時(shí),最多只能兩層

B、三種循環(huán)for,while,do-while可以互相嵌套

C、循環(huán)嵌套時(shí),如果不進(jìn)行縮進(jìn)形式書(shū)寫(xiě)代碼,則會(huì)有編譯錯(cuò)誤

D、for語(yǔ)句的圓括號(hào)中的表達(dá)式不能都省略掉

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

知識(shí)點(diǎn)解析:在一個(gè)循環(huán)體內(nèi)又完整包含了另一個(gè)循環(huán),稱(chēng)為循環(huán)嵌套。循環(huán)的嵌

套可以多層,但每一層循環(huán)在邏輯卜必須是完整的cfor循環(huán)、while循環(huán)、do-

while循環(huán)可咀互相嵌套,但每層循環(huán)在邏輯上必須完整。而在for語(yǔ)句中,f。「語(yǔ)

句中的表達(dá)式可以部分或全部省略,但兩個(gè)“;”不可省略。

26、以下敘述中正確的是

A、break語(yǔ)句不能用于提前結(jié)束for語(yǔ)句的本層循環(huán)

B、continue語(yǔ)句使得整個(gè)循環(huán)終止

C、使用break語(yǔ)句可以使流程跳出switch語(yǔ)句體

D、在for語(yǔ)句中,continue與break的效果是一樣的,可以互換

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

知識(shí)點(diǎn)解析:用break語(yǔ)句可以使程序流程跳出switch語(yǔ)句體,也可用break語(yǔ)句

在循環(huán)結(jié)構(gòu)中終止循環(huán)體,從而提前結(jié)束循環(huán)。而continue語(yǔ)句的作用是結(jié)束本次

循環(huán),即跳過(guò)本次循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,立刻進(jìn)行下一次的循環(huán)條件

判斷,可以理解為僅結(jié)束本次循環(huán)。

國(guó)家二級(jí)C語(yǔ)言(C語(yǔ)言程序設(shè)計(jì))機(jī)

試模擬試卷第2套

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

1、設(shè)有定義:intnl=O,n2,*p=n2,*q=nl;,以下賦值語(yǔ)句中與n2=nl;語(yǔ)句等

價(jià)的是

A^*p;*q;

B、p=q;

C、*p=nl;

D^p=*q;

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

知識(shí)點(diǎn)解析:本題考查指針的使甩。指針p和q分別指向變量n2和nl,n2=nl可

以用指針來(lái)代替,即*p代替n2,*q代替〉1。

2、以下敘述中正確的是

A、賦值語(yǔ)句是一種執(zhí)行語(yǔ)句,必須放在函數(shù)的可執(zhí)行部分

B、scanf和printf是C語(yǔ)言提供的輸入和輸出語(yǔ)句

C、由printf輸出的數(shù)據(jù)都隱含左對(duì)齊

D、由prinlf輸出的數(shù)據(jù)的實(shí)際精度是由格式控制中的域?qū)捄托?shù)的域?qū)拋?lái)完全決

定的

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

知識(shí)點(diǎn)解析:C語(yǔ)言本身沒(méi)有提供輸入輸出語(yǔ)句,但是可以通過(guò)調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)中

提供的輸入和輸出函數(shù)來(lái)實(shí)現(xiàn)輸入和輸出,選項(xiàng)B)錯(cuò)誤:采用primf輸出數(shù)據(jù),輸

出數(shù)據(jù)都默認(rèn)為右對(duì)齊,若要左對(duì)齊,可以在格式控制中的"%''和寬度之間加一個(gè)

“」號(hào)來(lái)實(shí)現(xiàn),選項(xiàng)C)錯(cuò)誤;printf的輸出精度由變量的類(lèi)型決定,與域?qū)挓o(wú)關(guān),

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

3、執(zhí)行以下程序段后,w的值為intW=,A',x=14,y=15;w=((x||y)&(w<,a,));

A、-1

B、NULL

C、I

D、0

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

知識(shí)點(diǎn)解析:本題考查表達(dá)式和邏輯運(yùn)算。x和y分別為14和15.因此(x||y)的值

是真。w的值為,A"其ASCH值為65,弁的ASCII值為97,因此(wVW)的值為

真。表達(dá)式w=((x||y)&(wV/))的前后兩個(gè)值均為真,整個(gè)表達(dá)式的值為真(1),

4、若有以卜程序#include〈sldio.h>main(){intb=10,a=-11;a%=b%=4:

printfC%d%d\n",a,b);}則程序的輸出結(jié)果是

A、12

B、-1-2

C、-12

D、1-2

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

知識(shí)點(diǎn)解析:對(duì)于表達(dá)武a%=b%=4為復(fù)合的賦值運(yùn)算,結(jié)合性自右至左,相當(dāng)

于先計(jì)算1)4%4,a=a%b;結(jié)果的符號(hào)和第一個(gè)操作數(shù)的符號(hào)相同,因此b為2,

a的結(jié)果為-1。

5、若變量己正確定義為int型,要通過(guò)語(yǔ)句scanf("%d,%d,%d",&a,&b,

&c);給a賦值I、給b賦值2、給c賦值3,以下輸入形式中錯(cuò)誤的是(注:□代表

一個(gè)空格符)

A、□□□1.2,3

B、1,□□□2,口口口3

C、1.2.3

D、1口2口3

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

知識(shí)點(diǎn)解析:本題主要考查scanf函數(shù)的輸入格式問(wèn)題。scanf函數(shù)的一般形式為:

scanf(格式控制字符串,地址1,地址2,…);格式控制字符串是由雙撇號(hào)括起來(lái)

的字符串,它主要由兩種類(lèi)型的字符組成:①格式說(shuō)明符由“%”和格式字符組

成,如%“,%d,%s,%f等。其作用是將輸入的數(shù)據(jù)轉(zhuǎn)換為指定的格式,賦給

scanf的二個(gè)參量(是地址1)所指定的內(nèi)存單元(可能一次使用多個(gè))中。格式說(shuō)明以

“%”字符為標(biāo)志;②普通字符,是需要用戶(hù)在輸入時(shí)原樣輸入的字符。在本題中

格式控制字符串為"%d,%d,%d",表示按十進(jìn)制輸入三個(gè)數(shù)據(jù)。要求在輸入數(shù)

據(jù)時(shí),兩個(gè)數(shù)據(jù)間一定以一個(gè)逗號(hào)",''作為間隔符,

6、若有定義inta;floatb;doublec;程序運(yùn)行時(shí)輸入:345能把值3輸入給變量

a、4輸入給變量b、5輸入給變量c的語(yǔ)句是

A、scanf("%d%lf%lf,&a,&b,&c);

B、scanfC%d%f%ir,&a,&b,&c);

C、scanf("%d%f%f,&a,&b,&c);

D、scanf("%f%lf%lf\&a,&b,&c);

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

知識(shí)點(diǎn)解析:scanf函數(shù)進(jìn)行輸入的時(shí)候,默認(rèn)的輸入間隔為空格、跳格和回車(chē),

變量a、b和c均為數(shù)值型數(shù)據(jù),輸入時(shí)間隔為空格,因此scanf。函數(shù)的第一個(gè)表

示格式的參數(shù)之間不用加入分隔符,而要輸入double型數(shù)據(jù),格式控制必須用%

If(或%le)。否則,數(shù)據(jù)不能正確輸入。

7、以下敘述中正確的是

A、在scanf函數(shù)的格式申中,必須有與輸入項(xiàng)---對(duì)應(yīng)的格式轉(zhuǎn)換說(shuō)明符

B、只能在prinlf函數(shù)中指定輸入數(shù)據(jù)的寬度,而不能在scanf函數(shù)中指定輸入數(shù)據(jù)

占的寬度

C、scanf函數(shù)中的字符串,是提示程序員的,輸入數(shù)據(jù)時(shí)不必管它

D、復(fù)合語(yǔ)句也被稱(chēng)為語(yǔ)句塊,它至少要包含兩條語(yǔ)句

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

知識(shí)點(diǎn)解析:輸入函數(shù)的調(diào)用格式:scanf(格式控制,輸入項(xiàng)1,輸入項(xiàng)2,…)格

式控制的主要作用是指定輸入時(shí)的數(shù)據(jù)轉(zhuǎn)換格式,格式串中,必須含有與輸入項(xiàng)一

一對(duì)應(yīng)的格式轉(zhuǎn)換說(shuō)明符選項(xiàng)A)正確,在scanf。函數(shù)的格式字符前可以加入一個(gè)

正整數(shù)指定輸入數(shù)據(jù)所占的寬度.但不可以用實(shí)數(shù)指定小數(shù)位的寬度,選項(xiàng)B)錯(cuò)

誤,scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,無(wú)論其中有什么字符,

也不會(huì)輸出到屏幕.匕因此若想在屏幕上輸出提示信息,應(yīng)該首先使用printf函數(shù)

輸出,選項(xiàng)C)錯(cuò)誤,復(fù)合語(yǔ)句還可以是空語(yǔ)句呢,并沒(méi)有規(guī)定語(yǔ)句條數(shù),選項(xiàng)

D)錯(cuò)誤。

8、以下程序段完全正確的是

A、intk,*p=&k;scanf("%d",p);

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

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

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

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

知識(shí)點(diǎn)解析:選項(xiàng)B)沒(méi)有對(duì)指針進(jìn)行初始化,無(wú)效指針。選項(xiàng)C)錯(cuò)在沒(méi)有對(duì)指

針進(jìn)行初始化,無(wú)效指針。并且在scanf("%d”,&p)中無(wú)需再進(jìn)行取地址操作0選

項(xiàng)D),語(yǔ)句“*p=&k"的左端*p是指針?biāo)竷?nèi)存空間的值,&k是地址,應(yīng)為

“p=&k”。

9、si和s2已正確定義并分別指向兩個(gè)字符串。若要求:當(dāng)si所指串大于s2所指

串時(shí),執(zhí)行語(yǔ)句S;則以下選項(xiàng)中正確的是

A、if(s1>s2)S:

B、if(strcmp(sl>s2))S;

C、if(strcmp(s2,sl)>O)S;

D、if(strcp(sl,s2)>0)S;

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

知識(shí)點(diǎn)解析:字符串標(biāo)汜使用strcmp函數(shù),該函數(shù)有兩個(gè)參數(shù)分別是需要比較大

小的兩個(gè)字符串si和s2,如果si大于s2則返回值大于0,如果si小于s2則返回

值小于0,否則si和s2相同返回0。題目要求si大于S2時(shí)執(zhí)行語(yǔ)句s,因此

strcmp(sl,s2)的返回值大于0時(shí)執(zhí)行so

10>有以下程序main。{intx=l,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;else

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

A、2

B、0

C、I

D、3

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

知識(shí)點(diǎn)解析:x=l,if和elseif的條件都不滿(mǎn)足,故y值不改變輸出。

11、if語(yǔ)句的基本形式是:if(表達(dá)式)語(yǔ)句,以下關(guān)于“表達(dá)式”值的敘述中正確的是

A、必須是整數(shù)值

B、必須是正數(shù)

C、可以是任意合法的數(shù)值

D、必須是邏輯值

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

知識(shí)點(diǎn)解析:在if語(yǔ)句中,表達(dá)式可以是在意合法的數(shù)值。當(dāng)其值為非零時(shí),執(zhí)

行jf語(yǔ)句,為0時(shí)執(zhí)行else語(yǔ)句。

I2N有以下程序main(){inta=l,b=2,c=3,d=0;if(a=l&&b++=2)if(b!=2||c—!=3)

printf("%d,%d,%d\n",a,b,c);elseprintf("%d,%d,%d\n",a,b,

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

A、I,3,2

B、1,2,3

C、1,3,3

D、3,2,i

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

知識(shí)點(diǎn)解析:a,b,c,d初始值分別為1,2,3,Oo嵌套的if語(yǔ)句中,第一個(gè)if

中,表達(dá)式a==l&&b++==2值為1,執(zhí)行嵌套的if分支,此時(shí)“b=3,b!=2”成立,由

于運(yùn)算符是II,不管后面一個(gè)表達(dá)式的值是不是1,其整個(gè)表達(dá)式的值總是1,

-!=3"表達(dá)式不執(zhí)行,最后打印出a,b,c的值是1,3,3o

13、若有以下程序程nchideVstdio.h>main(){inta=l,b=2,c=3>d=4;if((a:

2)&&(b=l))c=2;if((c==3)||(d=-1))a=5;printf("%d,%d,%d,%d\n”,a,b,c,

d);)則程序的輸出結(jié)果是

A、2,1,2,-1

B、2,2,2,4

C、1,2,3,4

D、5,1,2,-1

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

知識(shí)點(diǎn)解析:代碼中有兩條并列的if語(yǔ)句,第一條if語(yǔ)句,邏輯與表達(dá)式

(a=2)&&(b=l)中,a=2,則執(zhí)行b=L得到該邏輯與表達(dá)式值為1,執(zhí)行分支語(yǔ)句

c=2:第二條if語(yǔ)句(c==3)||(d=-l),c==3不成立,執(zhí)行d=-l,而后得出整個(gè)邏輯與

表達(dá)式值為1,執(zhí)行分支語(yǔ)句a=5。

14、若以下選項(xiàng)中變量全部為整型變量,且已正確是義并賦值,則語(yǔ)法正確的

switch語(yǔ)句是

A^switch(a+b){easel:case3:y=a+b;break;caseO:case4:y=a-b;}

B>switch(a*a+b*b){default:break;case3:y=a+b:break;case2:y=a-b;

break:)

C>switch(a+9){casecl:y=a-b;casec2:y=a+b;}

D、switcha*b{case10:x=a+b;default:y=a-b:}

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

知識(shí)點(diǎn)解析:本題考查switch的使用。選項(xiàng)A)中的cascO和case4沒(méi)有break語(yǔ)

句;選項(xiàng)B)正確;選項(xiàng)。中的case后面不是常量,錯(cuò)誤;選項(xiàng)D)中swilch后面

沒(méi)有括號(hào)。

15、有以下程序main(){intk=5,n=O;do{switch(k){easel:case,n+=1;k—;

break;default:n=0;k—;case2:case4:n+=2;k—;break;)printf("%d",

n);}while(k>0&&n<5))運(yùn)行以后的輸出結(jié)果是

A、0235

B、235

C、02356

D、2356

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

知識(shí)點(diǎn)解析:因?yàn)樽兞康某跏贾捣謩e為k=5,n=0,所以程序第1次進(jìn)入循環(huán)時(shí),

執(zhí)行default語(yǔ)句,“n=0,k=4”,沒(méi)有break語(yǔ)句,囚此執(zhí)行case2分支語(yǔ)句,n為

2,k為3,程序進(jìn)行第2次循環(huán),執(zhí)行“case3:n=3,k=2",輸出n值為3,程序進(jìn)

行第3次循環(huán),執(zhí)行case3這個(gè)分支,結(jié)果是“n=5,k=l”,打印出5;這時(shí)因?yàn)?/p>

n=5不滿(mǎn)足nV5的循環(huán)條件,因此退出循環(huán),程序運(yùn)行結(jié)束。

16、在嵌套使用if語(yǔ)句時(shí),C語(yǔ)言規(guī)定else總是

A、和之前與其具有相同縮進(jìn)位置的if配對(duì)

B、和之前與其最近的if配對(duì)

C、和之前與其最近的且不帶else的if配對(duì)

D、和之前的第一個(gè)if配對(duì)

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

知識(shí)點(diǎn)解析:本題考查if語(yǔ)句,在C語(yǔ)言中,else總是和之前與其最近的且不帶

else的if配對(duì)。

17、有以下程序main(){intk=5;while(—k)printf(H%d"?k-=3);printf("\n'*);}

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

A、2

B、4

C、1

D、死循環(huán)

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

知識(shí)點(diǎn)解析:在程序語(yǔ)句中,k的初始值為5,進(jìn)行第1次while循環(huán)后-k自減1為

4,菲0,執(zhí)行循環(huán)體里的printf語(yǔ)句,輸出1,此時(shí)k的值變?yōu)?。程序執(zhí)行第2

次循環(huán)時(shí),k自減1變?yōu)?,為假,退出while循環(huán)語(yǔ)句。所以程序的最后結(jié)果為

lo

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)答案:A

知識(shí)點(diǎn)解析:在wh】le(E)中,表達(dá)式匕可以是C語(yǔ)言中任意合法的條件表達(dá)式,但

不能為空,由它來(lái)控制循環(huán)體是否執(zhí)行。在選項(xiàng)A)中表達(dá)式E>0||EV0是一個(gè)邏

輯表達(dá)式。

19、有以下程序main(){inta=-2,b=0;while(a++&&++b);printf("%d,%d\

n",a,b);}程序運(yùn)行后輸出結(jié)果是

A、0,3

B、1,2

C、1,3

D、0,2

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

知識(shí)點(diǎn)解析:循環(huán)體為空,共執(zhí)行2次。第一次變量a初值為-2,b初值為o,表

達(dá)式a++&&++b值為1,同時(shí)a的值為-1,b的值為I。第二次循環(huán)條件判斷以

后,a的值為0,b的值2,執(zhí)行循環(huán)體空,第三次判斷條件表達(dá)式值為3不執(zhí)行

循環(huán)體,而a的值為1,但是表達(dá)式a++的值為0,因此不計(jì)算表達(dá)式++b的值,b

的值仍為2。

20>若變量己正確定義,有以下程序段i=0;doprintf("%d,",i);while(i++);

printfC%d\n",i);其輸出結(jié)果是

A、0,0

B、1.1

C、0,1

D、程序進(jìn)入無(wú)限循環(huán)

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

知識(shí)點(diǎn)解析:do…while循環(huán)的執(zhí)行過(guò)程如下:①執(zhí)行do后面的循環(huán)體中的語(yǔ)

句。②計(jì)算while后一對(duì)圓括號(hào)中表達(dá)式的值。當(dāng)值為非。時(shí),轉(zhuǎn)去執(zhí)行步驟

①:當(dāng)值為0時(shí),執(zhí)行步驟③。③退出do…while循環(huán)。對(duì)于本題變量i的初始

值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語(yǔ)句,輸出變量i的值0。再判斷while

后面括號(hào)中表達(dá)式i++的值,其值為0,所以循環(huán)結(jié)束。此時(shí)變量i的值經(jīng)過(guò)自加

已經(jīng)變?yōu)?,所以再次輸出i的值"1”。

21、若k是im類(lèi)型變量,且有以下for語(yǔ)句1for(k=-l;k<0;k++)printf("****\

n");下面關(guān)于語(yǔ)句執(zhí)行情況的敘述中正確的是

A、循環(huán)體執(zhí)行兩次

B、循環(huán)體執(zhí)行一次

C、循環(huán)體一次也不執(zhí)行

D、構(gòu)成無(wú)限循環(huán)

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

知識(shí)點(diǎn)解析:本題考查for循環(huán)的使用。在程序中,for循環(huán)的初始值k=-l,循環(huán)

結(jié)束條件是kVO,每次循環(huán)k增加1,第一次進(jìn)入循環(huán)的時(shí)候k為.1,k小于0,

執(zhí)行打印,然后k的值變成0,下次進(jìn)入循環(huán)k不小于0,循環(huán)結(jié)束,因此循環(huán)只

能執(zhí)行一次。

22、有以下程序#includeVstdio.h>voidmain(){intc==0,k;for(k=l;k<3;

k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}

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

A、9

B、7

C、5

D、3

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

知識(shí)點(diǎn)解析:在這段程序中,整型變顯c的初始值賦為0,在第一次執(zhí)行for循環(huán)

語(yǔ)句時(shí),因?yàn)榇藭r(shí)變量k的值等于1,所以在swilch語(yǔ)句中首先執(zhí)行defaull語(yǔ)句,

給變量c的值加1,因?yàn)樵赿efault語(yǔ)句后面沒(méi)有break語(yǔ)句,所以就會(huì)接著執(zhí)行

case2這條語(yǔ)句,再給變量c的值加1,其值變?yōu)?,這時(shí)退出switch語(yǔ)句塊,進(jìn)入

第二次for循環(huán),此對(duì)k的值等于2,就會(huì)執(zhí)行swieh語(yǔ)句塊中的case2這條語(yǔ)

句,再給變量c的值加1,這時(shí)變量c的值就是3,此時(shí)退出switch語(yǔ)句塊,循環(huán)

變量k的值加1,成為3,此時(shí)已不再滿(mǎn)足循環(huán)條件,執(zhí)行程序中的最后一條語(yǔ)

句,把變量c的值在屏幕上輸出。

23、有以下程序#inchideV*tdio.h>voidmain(){charb.c:inti:h=,a>:

c='A';for(i=0:i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);)printf(n\

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

A、ABCDEF

B、aBcDeF

C、abcdef

D、AbCdEf

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

知識(shí)點(diǎn)解析:循環(huán)變量i從0依次遞增到5,依次輸出字母A,b,c,d,E,fo

24>若有以下程序main。{inta=6,b=0,c=0;for(;a&&(b==0);)(b+=a;a-

=c++:}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是

A、6,0,0

B、5,6,0

C、6,6,I

D、5,6,1

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

知識(shí)點(diǎn)解析:循環(huán)條件a&&(b==0),a非零同時(shí)b==0則執(zhí)行循環(huán)體,否則退出。

循環(huán)體執(zhí)行一次,此時(shí)b=6,a=6,c=lo

25、有以下程序main。{inti,j;for(i=l;i<4;i++){for(=i;j<4.j++)printf("%

d*%d=%d",i,j,i*j);printf("\nn);)|

A、1*1=11*2=2I*3=32*1=22*2=43*1=3

B、1*1=11*2=22*2=41*3=32*3=63*3=9

C>1*1=11*2=21*3=32*2=42*3=63*3=9

D、1*1=12*1=22*2=43*1=33*2=63*3=9

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

知識(shí)點(diǎn)解析:外層for循環(huán)的自變量i從I開(kāi)始,每次循環(huán)后增1,直到i等于3結(jié)

束。對(duì)于外層循環(huán)自變量i的每一個(gè)值,內(nèi)層循環(huán)的自變量j每次從i開(kāi)始,每次

循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開(kāi)始后,內(nèi)層循環(huán)在一行先打

印i*j二兩個(gè)乘數(shù)的積,然后回車(chē)換行,下次循環(huán)從卜一行開(kāi)始打印輸出結(jié)果。

26、有以下程序#include〈stdio.h>main(){intx=8;for(;x>0;x--){if(x%

3){printf("%d,",x"):continue:}printf("%d,",—x);}}程序的運(yùn)行結(jié)果是

A、8,7,5,2,

B、9,7,6,4,

C、7,4,2,

D、8,5,4.2,

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

知識(shí)點(diǎn)解析:“x-”表示先執(zhí)行程序,再令x的值減1:而“-X”表示令x的值減1,

再執(zhí)行程序。x=8時(shí),x%3為非0值,執(zhí)行語(yǔ)句“{print("%d,",x—):

continue;產(chǎn),輸出“8,”,此時(shí)經(jīng)過(guò)x-x的值變?yōu)?,跳出此次循環(huán):執(zhí)行X

x=6.x%3=0”.后面語(yǔ)句不執(zhí)行.執(zhí)行語(yǔ)句“printf("%d,”,—x):輸出

“5,”;執(zhí)行for語(yǔ)句中的x-?,得到x=4,判斷x%3,輸出“4,”,執(zhí)行兩次x?

后,x=2,執(zhí)行“{printf("%d,",x-);continue;}”后,輸出“2,”;然后執(zhí)行兩次

x-后,x=0,不符合“x>0”,循環(huán)全部結(jié)束。

國(guó)家二級(jí)C語(yǔ)言(C語(yǔ)言程序設(shè)計(jì))機(jī)

試模擬試卷第3套

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

1、以下能正確定義且賦初值的語(yǔ)句是

A、intnl=n2=10:

charc=32;

C、floatf+1.1:

D、doublex=!2.3E2.5;

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

知識(shí)點(diǎn)解析:本題主要考查變量的定義和賦值,C君言中變量的定義形式為:類(lèi)型

說(shuō)明符變量名二初始值:選項(xiàng)A)中。nl和n2只能單獨(dú)賦初值;選項(xiàng)B)正確,定義

了一個(gè)字符變量c,初值為32;選項(xiàng)C錯(cuò)誤,初值設(shè)置自身不能參與運(yùn)算;選項(xiàng)

D)中字母E后面的指數(shù)必須是整數(shù)。

2、以下選項(xiàng)中,合法的是

A、charname[10];name="char";

B、charstrl[5]=,,pass,,?str2[6];str2=strl;

C、charstr3||:{d,C','b','u','g','\0'};

D^charstr4;str4:"helloworld";

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

知識(shí)點(diǎn)解析:本題考查字符數(shù)組。選項(xiàng)A)定義了一個(gè)字符數(shù)組name,接下來(lái)直接

給name賦值字符串是錯(cuò)誤的;選項(xiàng)B)定義了兩個(gè)字符串?dāng)?shù)組strl和str2.sE和

sir2表示兩個(gè)字符串的首地址,直接把sirl賦值給sir2錯(cuò)誤;選項(xiàng)C)是正確的;選

項(xiàng)D)定義了一個(gè)字符變量sir%給字符變量賦值字符串是錯(cuò)誤的。

3、有以下程序段intk=0,a=l,b=2,c=3;k:a<b?b:a;k=k>c?c:k;執(zhí)行程

序段后,k的值是

A、3

B、2

C、1

D、0

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

知識(shí)點(diǎn)解析:本題主要考查條件表達(dá)式。k=aVb?b:a中aVb為真,因此k的值為

b,即k=2。k=k>c?c:k中k>c為假,k的值為2,

4、有如下程序段:intx=12;doubley=3.141593:printf("%d%8.6f,x,y);

其輸出結(jié)果是

A、123.141593

B、12,3.141593

C、123.1415930

D、123.141593

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

知識(shí)點(diǎn)解析:本題考查printf語(yǔ)句。printf()函數(shù)是格式化輸出函數(shù),一股用于向標(biāo)

準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫(xiě)程序時(shí)經(jīng)常會(huì)用到此函數(shù)。prinlR)函數(shù)的

調(diào)用格式為:printFV格式化字符串>”,(參量表>)。其中,“格式化字符串”包括

兩部分內(nèi)容:一部分是正常字符,這些字符將按原樣輸出:另一部分是格式化規(guī)定

字符,以“%”開(kāi)始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來(lái)確定輸出內(nèi)容格式。格式化

字符串的格式是:%[標(biāo)志][輸出最小寬度][精度][長(zhǎng)度]格式字符①標(biāo)志:標(biāo)志字

符為-、+、空格等,其意義如下所示:結(jié)果左對(duì)齊,右邊填空格;+:輸出符

號(hào)(正號(hào)或負(fù)號(hào));空格:輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號(hào)。②輸出最小

寬度:用十進(jìn)制整數(shù)來(lái)表示輸出的最少位數(shù)(包括小數(shù)點(diǎn)在內(nèi)至少要輸出這么多

位)。若實(shí)際位數(shù)多于定義的寬度,則按實(shí)際位數(shù)輸出;若實(shí)際位數(shù)少于定義的寬

度,則右對(duì)齊,左邊留空;有負(fù)號(hào),左對(duì)齊,右邊留空:表示寬度的數(shù)字以。開(kāi)

始,則右對(duì)齊,左邊留空。③精度:精度格式符以開(kāi)頭,后跟十進(jìn)制整數(shù)。

它的意義是:如果輸出數(shù)字,則表示小數(shù)的位數(shù),若實(shí)際位數(shù)大于所定義的精度

數(shù),則四舍五入,若不足則補(bǔ)0;如果輸出的是字符,則表示輸出字符的個(gè)數(shù),若

實(shí)際位數(shù)大于所定義的精度數(shù),則截去超過(guò)的部分;④長(zhǎng)度:長(zhǎng)度格式符為h和

1兩種。h表示按短整型量輸出,1表示按長(zhǎng)整型量輸出。

5、有以下程序段inin,t=l,s=0;scanf("%d",&n);do{s=s++;t=t-

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

A^任意正奇數(shù)

B、任意負(fù)偶數(shù)

C、任意正偶數(shù)

D、任意負(fù)奇數(shù)

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

知識(shí)點(diǎn)解析:本題考查基本輸入和循環(huán)。程序代碼的功能是通過(guò)scanf給變量n賦

值,在do...whilc循環(huán)中,s變量自增,t變量每次減2,t的初值為1,循環(huán)執(zhí)行執(zhí)

行一次后t的值變成然后是?3、-5…,直到t的值和n的值相同循環(huán)結(jié)束。從t

的值的變化可知,[是一個(gè)變化的負(fù)奇數(shù),因此輸入的n如果是負(fù)奇數(shù),則循環(huán)能

退出,否則是死循環(huán)。

6、若有定義:inia,b;通過(guò)語(yǔ)句scanf("%d;%d",&a,&b);能把整數(shù)3賦給

變量5賦給變量h的輸入數(shù)據(jù)是

A、3.5

B、35

C、3;5

D、35

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

知識(shí)點(diǎn)謁析:在采用scant這個(gè)函數(shù)輸入數(shù)據(jù)時(shí),要嚴(yán)格遵守其輸入的規(guī)則定義。

本題此函數(shù)定義的規(guī)則是,在兩個(gè)整數(shù)之間加分號(hào)輸入。

7、以F敘述中正確的是

A、在scanf函數(shù)中的格式控制字符串是為了輸入數(shù)據(jù)用的,不會(huì)輸出到屏幕.上

B、在使用scanf函數(shù)輸入整數(shù)或?qū)崝?shù)時(shí),輸入數(shù)據(jù)之間只能用空格來(lái)分隔

C、在print「函數(shù)中,各個(gè)輸出項(xiàng)只能是變量

D、使用printf函數(shù)無(wú)法輸出百分號(hào)%

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

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

么字符,也不會(huì)輸出到屏幕上,因此若想在屏幕上輸出提示信息,應(yīng)該首先使用

printf函數(shù)輸出,選項(xiàng)A)正確;在使用scanf。函數(shù)輸入整數(shù)或?qū)崝?shù)時(shí),輸入數(shù)據(jù)

之間可以用空格、跳格、回車(chē)來(lái)分隔,選項(xiàng)B)錯(cuò)誤;printf輸出項(xiàng)不但可以為變

量,還可以表達(dá)式或者常量,選項(xiàng)C)錯(cuò)誤:如果要輸出“%”,可以在格式控制中

用“%%”表示。將輸出一個(gè)“%”,選項(xiàng)D)錯(cuò)誤。

8、若有定義語(yǔ)句:doublex,y,*px,*py;執(zhí)行px=&x;py=&y;正確的輸入語(yǔ)

句是

A、scant("%f%f"&x,&y);

B>scanf("%f%f,x,y);

C、scanf("%lf%Ie",px,py):

D、scanf("%lf%lf,x,y);

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

知識(shí)點(diǎn)解析:本題考查scanf語(yǔ)句。scanf()函數(shù)的一般格式為:scanf(”格式字符串

”,輸入項(xiàng)首地址表),對(duì)于。aoublc類(lèi)型數(shù)據(jù),輸入時(shí)候要加上1修飾,否則會(huì)產(chǎn)

生錯(cuò)誤的輸入信息,同時(shí)輸入項(xiàng)必須是地址,可以使保存變量地址的指針變量。

9、有以下程序段charname[20]:intnum;scanf("name=%snum=%d",name,

&num);當(dāng)執(zhí)行上述程序段,并從鍵盤(pán)輸入:name=Lilinum=1001后,name的值

A^name=Lili

B、Lilinum=

C、name=Lilinum=1001

D、Lili

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

知識(shí)點(diǎn)解析:在題目中以字符串的形式給字符數(shù)組賦值,所以字符數(shù)組name的值

為L(zhǎng)ilin

10、有以下程序main。{inta=0,b=0?c=0,d=0;if(a=I)b=l;c=2;elsed=3;

primf("%d,%d,%d,%d\HH,a,b,c,d);}程序輸出

A、0,0,0,3

B>1,1,2,0

C、編譯有錯(cuò)

D、0,1,2,0

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

知識(shí)點(diǎn)解析:if語(yǔ)句的格式為:if(表達(dá)式)語(yǔ)句1else語(yǔ)句2if和else是C語(yǔ)言的

關(guān)鍵字?!罢Z(yǔ)句1”稱(chēng)為if子句,“語(yǔ)句2”稱(chēng)為else子句,這些子句只允許為一條語(yǔ)

句.若需要多條語(yǔ)句時(shí),則應(yīng)該使用復(fù)合語(yǔ)句。因此題目“if(a=l)b=l;c=2;else

d=3:",if分支有兩條語(yǔ)句,沒(méi)構(gòu)成復(fù)合語(yǔ)句。

11、設(shè)有定義:inta=l,b=2,c=3;以下語(yǔ)句中執(zhí)行效果與其它三個(gè)不同的是

A、if(a>b)c=a;a=b;b=c;

if(a>b){c=a,a=b,b=c;)

C^if(a>b)c=a,a=b,b:c;

D、if(a>b){c=a;a=b;b=c;)

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

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

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

B)、C)、D)表示的功能相同,而選項(xiàng)A)表示的是一條if語(yǔ)句,兩條賦值語(yǔ)句。

12、有以下程序includemain()|intx;scant("%d",&x);it(x<=3);else

if(x!=IO)printf("%d\n",x);}程序運(yùn)行時(shí),輸入的值在哪個(gè)范圍才會(huì)有輸出結(jié)果

A、不等于10的整數(shù)

B、大于3或等于10的整數(shù)

C、小于3的整數(shù)

D、大于3且不等10的整數(shù)

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

知識(shí)點(diǎn)解析:題目中,雖然else和第二個(gè)if不在同一行上,但等價(jià)于在同一行

上,因此,程序的意思是當(dāng)x大于3且不等于10時(shí)打印出來(lái)。

13、若有以下程序#inckideVstdio.h>main(){inta=Lb=2,c=3,d=4,r=0;

if(a!=l);elser=l;if(b==2)r+=2;else;if(c!=3)r+=3;else;if(d=4)r+=4;

printf("%d\n",r);}則程序的輸出結(jié)果是

A、10

B、6

C、7

D、3

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

知識(shí)點(diǎn)解析:程序代碼中有四條并列的if語(yǔ)句,第一條if表達(dá)式a!=1不成立,執(zhí)

行else分支,r=l;第二條if表達(dá)式b==2成立,執(zhí)行r+=2,r=3;第三條if語(yǔ)句

c!=3不成立,執(zhí)行else分支,分支為空語(yǔ)句:第四條if分支d==4成立,執(zhí)行該if

分支語(yǔ)句,r+=4,r=7o

14、以下選項(xiàng)中與if(a==l)a=b;elsea++;語(yǔ)句功能不同的switch語(yǔ)句是

A、switch(a){easel:a=b;break;default:a++:}

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

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

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

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

知識(shí)點(diǎn)解析:本題主要考查if和switch結(jié)構(gòu)?!癷f(a=l)a=b;elsea++;”代碼段的功

能是如果a等于則把b的值賦值給a,否則a++。選項(xiàng)A)使用swilch對(duì)a進(jìn)行判

斷,如果是1則a=b,跳出switch,如果是其他值則a++;選項(xiàng)B)對(duì)a==l的結(jié)果

進(jìn)行switch判斷,如果為0表示a不等于1則a

溫馨提示

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

評(píng)論

0/150

提交評(píng)論