#include <stdio.h> void main() { int a=1,b=0; if(!a) b++; else if(a==0)if(a)b+=2; else b+=3; printf 3.下面程序的输出结果是( ) . #include <st...

作者&投稿:霍姚 (若有异议请与网页底部的电邮联系)
#include <stdio.h>
void main()
{
int a=1,b=0;
if(!a) b++;//!a的意思是a==0这里不成立
else if(a==0)//判断这里也不成立
{//是这么分段的,所以下面的都不做了,b没有变化
if(a)b+=2;
else b+=3;
}
printf("%d\n",b);
}

else if(a==0)后面掉了分号,if(a)这一句没有运行,所以b的值没有变化。

不对啊,这个满意答案我还是没看懂,他是把if(a==)后面加了花括号的在这不成立不是再继续判断else么??还是毛看懂。。。

有以下程序 #include<stdio.h>main() { int a=1,b=1; for(;a--;) b--; printf("%d,%d",a,b); }~

a=a+++b+++c++很显然这个表达式里面有运算符加号,所以要先分类,
a=
a++
+
b++
+
c++,层次清楚了在从运算规则分解表达式a=a+b+c;a=a+1;b=b+1;c=c+1;所以最后结果为4,2,2

程序运行的输出是:
5047
它等于:
100+99+98+97+.........+5+4+3=(100+3)*98/2=5047