有以下程序: main() { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a>b); printf("%d,%d\n"m,k,m); } 程序运行后的输出结果是( )。

admin2013-02-23  24

问题 有以下程序:    main()    { int a=1,b=2,m=0,n=0,k;    k=(n=b>a)||(m=a>b);    printf("%d,%d\n"m,k,m);    }    程序运行后的输出结果是(  )。

选项 A、0,0
B、O,1
C、1,0
D、1,1

答案4

解析 在||运算中当其左边的表达式为真,右边的表达式将不再执行。主函数中,||左边的表达式k=(n=b>a),2>1为真,所以n被赋值为1,接着k被赋值1,即||运算符左边表达式为真,此时不再计算||右边的表达式,因此m的值没有被改变仍为0,最后的输出结果1,0。所以,4个选项中选项C符合题意。
转载请注明原文地址:https://kaotiyun.com/show/GiPp777K
0

最新回复(0)