1、有以下程序
main(){
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是______。
A:0,0
B:0,1
C:1,0
D:1,1
答案:C
评析:
本题的考查点是逻辑或运算。
a||b若a,b之一为真,则a||b为真,但如果a为真,则b不用考虑,也就是无需计算,仍为原值。
结合本题,因为b>a为真,即n=1,所以m不用计算仍为原值,且k值为1。
故本题答案为C。
2、有以下程序
main(){
int a;
char c=10;
float f=100.0;
double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f %3.1f\n",a,c,f,x);
}
程序运行后的输出结果是______。
A:1 65 1 6.5
B:1 65 1.5 6.5
C:1 65 1.0 6.5
D:2 65 1.5 6.5
答案:B
评析:
本题的考查点是复合的赋值运算符。
在赋值符"="之前加上其它运算符,可以构成复合的运算符。运算方向为自右至左。
本题中先计算c的值,c=c*(x=6.5)=10*6.5=65;
接下来计算f的值,f=f/c=100.0/65=1.5;
最后计算a的值,a=f,因为a为整数,取f的整数部分即为1。故本题答案为B。
3、有以下程序
main()
{int x, y, z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x, y, z);
}
程序运行后的输出结果是______。
A:2,3,3
B:2,3,2
C:2,3,1
D:2,2,1
答案:C
评析:
&n