详细说明一下这个C语言是1 7 0

详细说明一下这个C语言是1 7 0#include<stdio.h>
int main()
{int x=1,y=1,z=0;
if(z<0)
if(y>0)
x=3;
else
x=5;
printf("%d\t",x);
if(z=y<0)
x=3;
else if(y==0)
x=5;
else
x=7;
printf("%d\t",x);
printf("%d\t",z);

}

#include <stdio.h>
int main() {
int x = 1,y = 1,z = 0;
if(z < 0) {//假,不执行{}内的语句块。
if(y > 0) x = 3;
else x = 5;
}
printf("%d\t",x); // 这里输出1和8个空格。
if(z = y < 0) x = 3;//y原值是1,y < 0为假, 故z值为0,不会执行x = 3操作。
else if(y == 0) x = 5;// 也不会执行x = 5操作。
else x = 7; // 必然执行 x = 7操作。
printf("%d\t",x); // 合理输出7和8个空格。
printf("%d\t",z);//这里输出0和8个空格。
return 0;//与int main() 相呼应
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-09-10
加上括号,便于理解逻辑关系。
int x=1,y=1,z=0;
if(z<0){ if(y>0) x=3; else x=5; }; //z=0; 不满足z<0; 整句跳过。
printf("%d\t",x); //输出 1
if(z=y<0) {x=3; } else { if (y==0) x=5; else x=7;};
z=y<0 是赋值语句。y=1, 小于0 为假,z得假,就是 z=0. 执行 else 后面的条件语句。 y==0 为假,执行 else 后面的 x=7; x得7。
printf("%d\t",x); 输出 x, 输出为 7
printf("%d\t",z); 输出 z, 输出为 0 (0 就是逻辑值 “假”)
答案 1 7 0。本回答被网友采纳
第2个回答  2018-09-09

这里有一个难点,通过以下代码测试一下理论。
#include
void main() {
int i;
if (i=0) printf("i=0");
if (i=1) printf("i=1");
}
这个程序会输出 i=1,也就是说执行了第二个if语句的执行部分。

相似回答
大家正在搜