以下程序的运行结果是: main() {int m=6; if(m-->5) printf("%d\n",m); else printf("%d\n",m--); }

如题所述

1 结果是:
5
2 分析:
int main()
{
int m=6; if(m-->5) printf("%d\n",m); //m-->5成立,执行这行。在判断m-->5后,m的值变为5。
else printf("%d\n",m--);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-10
5

以下程序的运行结果是 : main() {int m=5;
所以if(5>5)为FALSE,走else printf("%d\\n",m--);相当于先printf("%d\\n",m);再m-- 所以答案是6

95、以下程序运行结果是(D) void main( ) { int n=5; if ( n++==6...
n这时=5 所以和6不相等 但是计算完逻辑表达式后 自身要执行 +1的操作 所以 到else 之前 n=6 所以在else 又执行了n+1 的操作当然就是7了 如果将if语句中的n++ 改为++n 那就是6了

...main() { int m=5;if(m++>5) printf("%d",m);else printf("%d\\...
main(){ int m=5;if(m++>5) \/\/m++,此时先使用m=5去比较,结果为假,跳到else,但是m还要加1变为6,即m=6 printf("%d",m);else printf("%d\\n",m--);\/\/m--,此时先使用m=6去输出,然后m还要减1变为5,即m=5 } 所以输出结果为:6 ...

...h>main() {int m=5;if(m++>5)printf("%d\\n,m");else printf("%d\\...
if(m++>5) \/\/先判断m>5,不成立;判后m=6 printf("%d\\n,m");else \/\/转到这里 printf("%d\\n",m--) \/\/显示6,m再-1,变成5

...h> main(){ int m=5; if(m++==5) printf("%d\\n",m); else printf...
m++==5这是先算m==5再算m++ m++后缀运算是先把m提出来进行运算再自加

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

下面程序的运行结果是 main() {int a[6],i; for(i=1;i<6;i++) {
i取1到5,i=5时,9*(5-2+4*1)%5=3,i=4,9*(4-2+4*1)%5=4,选C。

以下程序的输出结果是 main( ) { int n=4; while(n--)printf("%d...
—还是后——的问题,第一次循环:n= 4,先操作后——,4 > 0所以进入循环,减去1后n= 3打印3:;随后——再赋值(其实单条语句前——与后——一样的)n = 2‘第二次循环:n = 2 > 0进入循环,减去1后n = 1,打印1;随后——再赋值,n= 0,不再进入循环体,结束。所以选B ...

以下程序的运行结果是( )。 main() { int x = 4; do { printf("%2d...
4,C正确,选C——因为输出4后!x就是!4==0,就结束循环了。

...C) main() {int y=-5;while (y++);printf("y=%d\\n",y)} A y=0...
很简单啊 while (y++); 这是一个循环操作 只有当他为假的时候才会结束 所以只有y++ = 0的时候才会退出 ,以后y++是后++操作 所以最后结果是1

相似回答