C语言.下列程序的运行结果是

C语言.下列程序的运行结果是.下列程序的运行结果是________。
main()
{int i=0,k=100,j=4;
if(i+j)
k=(i=j)?(i=1):(i=i+j);
printf("%d\n",k);
}
 A. 0 B. 1 C. 4 D. 5

#include <stdio.h>

int main()
{
int i = 0, k = 100, j=4;

if (i + j) {
k = (i = j) ? (i = 1) : (i = i + j);
}

printf("%d\n", k);

return 0;
}

就不能把代码弄得好看一点么……

结果是 1,因为

k = (i = j) ? (i = 1) : (i = i + j);

i 用的是赋值,不是判断是否相等。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-13
B . 1
。。。。。。。。。。。追问

怎么算的呀....

拜托了

追答


if(i+j) i+j=0+4=4 4!=0 所以执行k=...。

k=(i=j)?(i=1):(i=i+j)
先分析 (i=j), i=j=4 不为零 所以 k=(i=1)=1;
最终输出 k 即1

相似回答