版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標(biāo)志物在藥物臨床試驗(yàn)中的藥物研發(fā)應(yīng)用
- 生物材料與干細(xì)胞聯(lián)合應(yīng)用策略
- 生物制劑臨床試驗(yàn)中免疫原性檢測(cè)標(biāo)準(zhǔn)化
- 生物傳感器在腫瘤耐藥監(jiān)測(cè)中的應(yīng)用
- 深度解析(2026)GBT 19701.2-2016外科植入物 超高分子量聚乙烯 第2部分:模塑料
- 中石油安全監(jiān)督專(zhuān)員面試題庫(kù)與解析
- 生命末期兒童壓瘡預(yù)防的全程護(hù)理方案
- 項(xiàng)目經(jīng)理的績(jī)效考核與反饋
- 新能源項(xiàng)目運(yùn)維主管技能考核題庫(kù)含答案
- 會(huì)員運(yùn)營(yíng)專(zhuān)員面試題及答案
- 幼兒園消防安全培訓(xùn)知識(shí)培訓(xùn)
- 代碼安全審計(jì)培訓(xùn)大綱課件
- XJJ 068-2014 民用建筑電氣防火設(shè)計(jì)規(guī)程
- 質(zhì)檢員安全培訓(xùn)課件
- 科研項(xiàng)目進(jìn)度管理與質(zhì)量控制
- 《信息系統(tǒng)安全》課程教學(xué)大綱
- 民族學(xué)概論課件
- 新產(chǎn)品開(kāi)發(fā)項(xiàng)目進(jìn)度計(jì)劃表
- 2024年湖南石油化工職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案
- 2020年科學(xué)通史章節(jié)檢測(cè)答案
- 長(zhǎng)期臥床患者健康宣教
評(píng)論
0/150
提交評(píng)論