以下程序的运行结果为什么会是3啊,请高手详细分析一下 main() { int a=2,b=-1,c=3; if(a<b) if(b<0) c=2;

如题所述

main()
{
int a=2,b=-1,c=3;
if(a<b)
if(b<0)
c=2;
else
c++;
printf("%d\n",c);
}
首先,因为a是2,b是-1,所以if(a<b)这个if不满足,也就不进行if(b<0) 的判断了
而在你没用{}的时候,c语言自动把你这里的else和最近的if关联所以这个else也就是if(b<0)的else,因为if(b<0)这个判断不执行,所以else的内容也跳过,所以程序实际上就是直接执行了printf
温馨提示:内容为网友见解,仅供参考
无其他回答

以下程序输出的结果是 main() {int t,a=2,b=3,c=-2; while (a>b>c...
这点清楚了之后就很好理解了,a>b这个是个bool值,不是1就是0,所以第一次循环的时候必为真,交换ab值,c++之后为-1,再循环一次后,ab值再次交换,此时的a为2,b为3,c++后c为0,再次循环的时候,a>b为假,值为0,再跟C比较,

以下程序执行后的输出结果为( ). main() { int a=3,b=0,c=0; if(a...
这题咋答?因为代码中有汉字符号,所以过不了编译,应该选A;如果没有这些错误,就应该选D。

以下程序运行后的输出结果是 main() {int a,b,c; a=1;b=3;c=5; pri...
结果是3,10啊。这主要是由于自增操作符++前置还是后置决定的,比如说++a,就是先自增再使用,而a++就是说先使用再自增。执行printf(“%d,%d\\n”,(++a,b++),a+b+c)这条语句的过程中,a=2(就是说已经自增了),b=3(还没自增)。等这条语句执行完之后,那么a=2 b=4~...

main() { int a=2,b=-1,c=2; if(a<b) if(b<0) c=0; else c++; printf...
它们这个整体同属于上一个if(a<b) 里面的分支。因为a=2,b=-1,不能进入if(a<b) 里面的分支 所以就直接跳出了,执行printf("%d\\n",c)这个时候c未做任何改变,所以值为2

设int a =1,b =2,c =3;执行表达式(a >b )&&(C =1)后c 的值为什么等于3...
在执行表达式(a>b)&&(c=1)时,系统发现是与运算,先计算与运算前面的逻辑判断,发现a>b得到假,由于是与运算,无论后面的式子等于什么与假进行与都会得到假,则后面的式子就不算(执行)了,直接得到整个式子的结果是假,结果c=1就没有被执行过 ...

#include<stdio.h> void main() {int a=1,b=2,c=3; if(c=a) printf...
注意看这句 if(c=a)括号里面只有一个等号,所以是一个赋值表达式,也就是把a的值赋给c,表达式的结果就是所赋的值1,表达式的值非零为真,继续执行,输出c的值,由于c已经被赋为1了,所以输出结果为1。注意 c=a 和 c==a 是不一样的,前者是赋值,后者才是比较相等。

以下程序的输出结果是()main(){ int a=3,b=2,c=1;
b=b*(a+b)=3*(3+3)=18 include <stdio.h> void main(){ float a,b,c,d;for(d=1;;d++)\/\/*这里的d就不做要求,它属于整个自然数集合里面,另外a,b,c,d都是分母,所以定义的初始值都为1*\/\/ for(c=1;c<=d;c++)for(b=1;b<=c;b++)for(a=1;a<=b;a++)if(1\/a+...

main(){ int a=1,b=2,c=3;if(c=a)printf("%d\\n",c);else printf("%\\n...
if(c=a)在c语言中 =是赋值运算符, 运算结果 c=1,c=a 作为整个表达式的结果,是运算后的值也就是 1,if 语句需要一个条件表达式,任何非零的值就是 真值,而零就是假值 另c语言中的相等比较运算符是 ==

...是()#include<stdio.h>main() {int a=1 ,b=2,c=3,t=4; while (a<...
main(){ int a=1 ,b=2,c=3,t=4;while (a<b<c) \/\/当条件成立,就执行while里面的代码,那么,这里面不成立就为0,成立就为1 { t=a;a=b;b=t;c--;} printf("%d,%d,%d",a,b,c);} 这个程序的难点在于while (a<b<c) ,a<b<c是如何判断的,我经过调试,一步一步观察...

以下程序的运行结果是( ). int a=2,b=3; int min(int a,int b) { i...
main中的a为局部变量,值为4;b为全局变量,值为3 输出4和3中的最小值,显然输出3

相似回答