在C语言中,下列程序运行后输出的结果是什么,怎么运算的?

main( )
{
char c1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2 - -);
printf("%c%c",c1,c2);
printf("\n");
}

如果for(c1='0',c2='9';c1<c2;c1++,c2 - -);后面的;去掉:
09 //调整c1和c2,这时候判断1<8成立
18 //调整c1和c2,这时候判断2<7成立
27 //调整c1和c2,这时候判断3<6成立
36 //调整c1和c2,这时候判断4<5成立
45 //调整c1和c2,这时候判断5<4不成立成立,打印一个回车

最终屏幕输出为:
0918273645

如果for(c1='0',c2='9';c1<c2;c1++,c2 - -);的;不去掉,那么printf语句会等for循环结束才打印,
这个时候经过如上所述的调整,c1和c2分别变为了5和4,
所以屏幕上会打印出:
54
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-19
首先输出初始值c1=‘0’,c2='9',然后c1执行++运算实际上是其对应的ASII码执行++运算,c2执行--亦是同理,循环终止条件是c1++到c1=‘4’,c2--到c2=‘5’,输出后,若再执行,c1=‘5’,c2=‘4’,不满足c1《c2,循环结束
第2个回答  2012-10-01
运行结果是:54
for循环中,循环条件是c1<c2,其实是0<9,可以执行;然后是c1++,c2--,分别是1<8,2<7,3<6,执行到了4<5,c1加1变为5,c2减1变为4,5<4为假跳出循环,就把54输出来了

c语言下列程序执行后的输出结果 G
2.38 执行结果是 a=12 y=12 a=16 y=28,过程如下:初始状态:a=10,y=0 第一次执行循环体,a+=2,y+=a 等价于a=a+2,y=y+a 执行完毕后,a的值为12,y的值为12 执行输出语句输出a=12,y=12 执行选择语句因为y=12小于20,所以条件为假,不执行break语句。判断循环条件,a=14,为真...

c语言 以下程序的输出结果是___。 我要答案和过程,谢谢
c = 1;c -= ++b; \/\/ b = ++b => 3; c -= 3 ==> c = -2b *= a + c; \/\/ b *= (3 + (-2)); b = 3 {\/\/ 这个块里面的运算中b,c是下面的变量,a是上面的int b = 5, c = 12;c

C语言 分析下列程序的运行结果
1、输出为:1 if条件语句中,当()中的值为零时,条件为假,非零时条件为真;由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句;最终输出为1 2、输出为:7 运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break,或者整个switch语句结束 所以最终b=1+1+2+3=7 3、...

以下代码段执行后的输出结果为( ) int x =-3; int y =-10; System.out...
C 第一句为赋值,也就是x的值为-3,y的值为-10,现在要输出y%x,也就是y除以X求余数,-10\/-3的余数为1。例如 5%3=2 5%-3=2 -5%3=-2 -5%-3=-2 可以认为被除数决定了余数的正负。

c语言,这个运行结果是多少,怎么来的?
,因此,第一次调用f函数时c为5(a=c++是先赋值后自增),第二次调用f函数时c为6,又因为逗号运算符的优先级低于赋值运算符,所以变量a被赋值为变量c(而不是变量b),并被返回给k,因此第一次调用f后k为5,第二次调用f后k为6,程序打印的是第二次调用f后k的结果,所以输出6....

以下程序段执行后输出结果()。inti;for(i=1;;i++);printf(“%d”,i+...
是永远不会有输出的 首先for(i=1;;i++)是个无限循环,因为没有循环的判断条件 另外,再for(i=1;;i++);后面紧跟着一个分号,所以循环执行的是一个空语句,后面的printf是不在循环体内的

15.写出下面程序的运行结果___ #include <stdio.h> main() { int a...
输出表列有三项,格式控制字符只有一项,对应表达式a=a+1=2,所以输出2 1.a= b+ c 所以表达式值为非零,为真,执行printf ("###\\n");2.自增运算符后缀,所以先引用,后自增,m为2,m>2为假,然后m自增一值为3,执行else部分,m+2=5 7.注意是x=2 ,是=,赋值号,也就是x被赋值为2,表达式...

C语言运算题,结果是什么?
最终结果是10 关键点是continue与break的区别!continue,直接开启下一次循环;break,结束整个循环。所以,for循环第4次执行时,sum已累加至10;第5次循环时,i为5,执行了continue,跳过后边的语句,直接开启第6次循环。第6次循环时,i为6,执行了break,for循环整个结束。此时sum为10。include<stdio....

请教一个C语言问题。若输入3个整数3,2,1,则以下程序输出的结果是?
在主函数中,第一次调用sub()函数,传入的是i=1,在函数里面t先等于aa[0],即输入的2,然后做+=运算,t变成5,n++成为2。在if判断中不满足条件,所以uu[2]=5第二次调用sub()函数可以类推,不同点在于这次满足if条件。最后应该输出的是2 1 6 1吧,没有太仔细算,你可以用vc运行一下看看啊,我的vc刚好最近出...

求C语言运行程序结果,答案是0,怎么算的啊?求大神,谢谢了。。。
因为a=1,所以!a=0即false,第一个if不能执行,程序执行至else if(a==0),因为a不等于0,也走不进来,由于if(a)……else是一对分支结构,都是else if(a==0)的子分支,当然也走不到。b没有做任何运算。输出b=3

相似回答