c语言难题

来源:百度知道 编辑:UC知道 时间:2024/06/02 15:17:20
a=b=c=0;x=35;
if(!a)x--;
else if(b);
if(c) x=3;
else x=4;
运行后x是多少?
这里if(!a),if(b),if(c)是什么意思?

运行结果是x=4,若你想屏幕上看到这结果,那就在这些语句后面加上这一句:printf("x=%d",x);
你好象不知道if语句的用法,介绍如下:

if(表达式)
语句1
else
语句2;

if语句执行过程:先计算表达式的值,若表达式的值为“真”(何为真?就是if后面括号里的值只要不是0,就是“真”),若为表达式为“假”(表达式的值为0),则执行语句2。

再来看你的程序,首先你定义了,a、b、c为0,x=35。再接着是
if(!a)x--;
else if(b);
if后面括号内是!a,前面定义了a=0,所以括号内值为“假”,便执行else后的语句x--,x减1等于34。
再看第二个if语句
if(c) x=3;
else x=4;
if(c),c在前面定义了c=0,所以括号里为“假”,执行else后面的语句x=4 ,这里给x重新赋值使x=4,所以最后的x等于4
前面x等于多少不管,这后面x重新定了个值x=4

希望上面的答案对你有用,若有用,请将分数给我

1 表示 “真” 0 表示 “假”
所以 !a 表示 “真” 为 1.
b ,c还为假 为 0.
若为f(1) 则直接执行 紧跟的语句,
又 f(0) 则 执行else.

运行了一下,结果将x打印出来得4
if语句是这样的:c语言里if的判断条件是0和!0,也就是代表true和false。比如if(a == b)...其实是这样判断的,如果a == b,会返回!0,否则返回0,然后if再判断括号里面的是否为0,如果是0就不进入if语句,是!0就进入。
所以if(b)表示,当b不是0时就进入if,当b是0时就不进入。

if(!a)是说!a的值不为0,即a为0就执行后面的句子.
if(b)是b不为0就执行后面的句子
if(c)是 c不为0就执行后面的句子.
if(