第 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”)缺少分号,因此会报编译错误。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |