问题 单项选择题

有以下程序
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

解析: 在“||”运算中当其左边的表达式为真,右边的表达式将不再执行。主函数中,“||”左边的表达式k=(n=b>A) ,“2>1”为真,所以n被赋值为1,接着k被赋值1,即“||”运算符左边表达式为真,此时不再计算“||”右边的表达式,因此m的值没有被改变仍为0,最后的输出结果1,0。

选择题
填空题