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