第 1 頁(yè):選擇題 |
第 5 頁(yè):程序填空題 |
第 6 頁(yè):程序改錯(cuò)題 |
第 7 頁(yè):程序設(shè)計(jì)題 |
21有以下計(jì)算公式
若程序前面已在命令中包含math.h文件,不能夠正確
計(jì)算上述公式的程序段是( )。
A.if(x>=0)y=-sqrt(x);
else y=sqrt(-x);B.y=sqrt(x)
if(x<0)y=sqrt(~x);C.if(x>=0)y—sqrt(x);
If(x<0)y=sqrt(一x);D.y=sqrt(x>=0?x:-x);
參考答案:B
參考解析:選項(xiàng)A、C、D分別用一個(gè)ifelse語(yǔ)句、兩個(gè)if語(yǔ)句和條件表達(dá)式表達(dá)了計(jì)算公式的含義。
22當(dāng)輸入為"hello?"時(shí),下面程序的執(zhí)行結(jié)果是( )。
#includedstdio.h>
main()
( char C;
c=getchar();
while(c!='?')
(putchar(c);break;
)
}
A.RvfsuB.hC.?D.hello
參考答案:B
參考解析:本題考查getchar()函數(shù)與putchar()函數(shù),通過9etchar()函數(shù)讀入字符,并通過putchar()函數(shù)將字符逐個(gè)輸出,當(dāng)用戶輸入“?”時(shí)停止輸出,且C是一個(gè)字符變量只占一個(gè)字節(jié)。
23下列選項(xiàng)中不是C語(yǔ)句的是( )。
A.{ int i;i++;printf(”%d\n”,i);)B.;C.a=5,c=10D.{;}
參考答案:C
參考解析:C項(xiàng)缺少分號(hào)。因?yàn)橘x值語(yǔ)句兩個(gè)標(biāo)志: 賦值(就是”=”)和語(yǔ)句(加上”;”)。
24若有下列定義和語(yǔ)句:
int u一011,v一0x11,w一11:
printf(”%o,%x,%d\n”,u,v,w):
則輸出結(jié)果是( )。
A.9,17,11B.9,11。11C.11,11,11D.11,17。11
參考答案:C
參考解析:“%O”表示八進(jìn)制無符號(hào)型輸出整型數(shù)據(jù)(即不帶前導(dǎo)o);“%X”表示以十六進(jìn)制無符號(hào)型輸出整型數(shù)據(jù)(即不帶前導(dǎo)ox或OX);“%d”表示輸出帶符號(hào)的十進(jìn)制整型數(shù)。
25執(zhí)行下列程序中的輸出語(yǔ)句后,a的值是( )。
main()
{ int a;
printf(”%dkn”,(a=2*3,a*5,a+7));
)
A.17B.37C.6D.13
參考答案:C
參考解析:本題考查逗號(hào)表達(dá)式。程序輸出時(shí)輸出一個(gè)%d,所以輸出第一個(gè)a的值與后續(xù)無關(guān)。
26下列選項(xiàng)中不會(huì)引起二義性的宏定義是( )。
A.#define S(x)X*x
B.#define S(x) (x)*(x)
C.#define S(x) (x*x)
D.#define S(x) ((x)*(x))
參考答案:D
參考解析:本題考查參數(shù)的宏替換。為避免二義性有些參數(shù)表達(dá)式必須加括號(hào),否則在實(shí)參表達(dá)式替換時(shí),會(huì)出現(xiàn)錯(cuò)誤。例如x為(m+n)時(shí)替換A:m+rl*m+n,所以選項(xiàng)D最符合條件。
27下列程序的輸出結(jié)果是( )。
#include%stdio.h>
main()
{ int i;
for(i=1;i<=10,i++)
f if((i*i>=20)&&(i*i<=100))
break;
)
print[(”%d\n”,i*i);
)
A.49B.36C.25D.64
參考答案:C
參考解析:本題考查for循環(huán)及if語(yǔ)句。當(dāng)執(zhí)行到第一個(gè)滿足(i*i>=20)&&(i*i-<=100)這個(gè)條件的i出現(xiàn)時(shí),break跳出循環(huán),執(zhí)行下列的printf語(yǔ)句。
28有以下程序:
#included stdio.h>
main()
{ char cl='1',c2='2';
cl=getchar():c2=getchar();putchar(c1);putchar
(c2);
}
當(dāng)程序運(yùn)行時(shí)輸入a<回車>后,下列敘述中正確的是( )。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
參考答案:A
參考解析:本題考查getchar()函數(shù),從終端讀入一個(gè)字符作為函數(shù)值。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入回車鍵時(shí),讀入才開始執(zhí)行。所以當(dāng)輸入a<回車>后,變量cl被賦予字符a,而變量c2被賦予回車符。
29有如下程序:
main()
( int x=1,a=O,b=0;
switch(x)
{
CgtSC 0:b++;
case 1:a++;
CaSe 2:a++;b++;
)
printf(”a=%d.b=%d\n”,a.b);
}
該程序的輸出結(jié)果是( )。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2 b=2
參考答案:A
參考解析:當(dāng)X為1時(shí),執(zhí)行casel,a自加等于l,因?yàn)閏asel后沒有break,接著執(zhí)行case2,此時(shí)a的值為2,b自加為1,故選擇A選項(xiàng)。
30有以下程序:
#include
main()
{ int k=-3:
if(k<=0)printf(”****\n”)
else printf(”&&&&\n”);
}
程序的輸出結(jié)果是( )。
A.輸出####B.輸出&&&&C.輸出####&&&&D.有語(yǔ)法錯(cuò)不能通過編譯
參考答案:D
參考解析:{intk=一3;if(k<=0)printf(”*”**\n”)elseprintf(”&&&&\n”);)中printf(”****\rl”)缺少分號(hào),因此會(huì)報(bào)編譯錯(cuò)誤。
相關(guān)推薦:
2015計(jì)算機(jī)二級(jí)《C語(yǔ)言》考試上機(jī)測(cè)試題匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |