5.11 若运行时给变量x输入12,则以下程序的运行结果是
main()
{int x,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
}
A)0
B)22
C)12
D)10
正确答案: A
5.12 已知char ch=′C′;则以下表达式的值是
ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;
A)A
B)a
C)Z
D)c
正确答案: D
5.13 若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A)(exp==0)
B)(exp!=0)
C)(exp==1)
D)(exp!=1)
正确答案: B
5.14 有以下程序
main()
{int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是
A)1,1,2
B)2,2,1
C)2,2,2
D)2,2,3
正确答案: C
5.15 请阅读以下程序:
main()
{ int a=5,b=0,c=0;
if(a=b+c)printf("***\n");
else printf("$$$\n");
}
以上程序
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
正确答案: D
5.16 若执行下述程序时,若从键盘输入6和8时,结果为
main()
{int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=b;
s*=s;
printf("%d",s);
}
A)36
B)64
C)48
D)以上都不对
正确答案: B
5.17 有如下程序
main()
{float x=2.0,y;
if(x<0.0)y=0.0;
else if(x<10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);}
该程序的输出结果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
正确答案: C
5.18 以下4个选项中,不能看做一条语句的是
A);
B)a=5,b=2.5,c=3.6;
C)if(a<5);
D)if(b!=5)x=2;y=6;
正确答案: D
5.19 若int k=8;则执行下列程序后,变量k的正确结果是
main()
{int k=8;
switch(k)
{case 9:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1;}
printf("%d\n",k);}
A)12
B)11
C)10
D)9
正确答案: D
5.20 阅读如下程序段
#include "stdio.h"
main()
{ int a=45,b=40,c=50,d;
d=a>30?b:c;
switch(d)
{ case 30 : printf("%d,",a);
case 40 : printf("%d,",b);
case 50 : printf("%d,",c);
default : printf("#");}}
则输出的结果是
A)40,50,
B)50,#
C)40,#
D)40,50,#
正确答案: D
5.21 现有如下程序段,此程序段编译有错误,则程序段的错误出在
#include
main()
{ int a=30,b=40,c=50,d;
d=a>30?b:c;
switch(d)
{ case a:printf("%d,",a);
case b:printf("%d,",b);
case c:printf("%d,",c);
default:printf("#");}}
A)default:printf("#");这个语句
B)d=a>30?b:c;这个语句
C)case a:printf("%d,",a); case b:printf("%d,",b); case c:printf("%d,",c);这三个语句
D)switch(d)这个语句
正确答案: C