main() {int i=10,j=0; do {j=j+i;i--;} while(i>2); printf("%d\n",j); } 求输出结果,详细解及思路

main()
{int i=10,j=0;
do
{j=j+i;i--;}
while(i>2);
printf("%d\n",j);
}
求输出结果,详细解及思路

输出:52
do
{
j=j+i;
i--;
}
while(i>2);
这段代码的功能是:循环累加i的值,从10到3,因为循环条件语句为while(i>2);需要i最小为3.
所以10+9+8+7+6+5+4+3=52
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-30
52
相当于就是10+9+...+3
i作为循环的条件,j在拿i的数值不停的累加

...main(){ int i=10,j=1; printf("%d,%d\\n",i--,++j); },执行后输出...
同理++写前面,先+1再取j的值 显示的是10,2 最后i的值是9,j的值是2

...main( ) { int i=010,j=10; printf("%d,%d\\n",i++,j--); }_百度...
解释一下:变量i初始化为010,最高位的0表示它是八进制数,而八进制的10就对应10进制的8,变量j就是10进制的10.对于++,--自增自减运算,如果变量在前就先用变量,再自增或自减,如果++ --在前则先自增或自减再用.所以题中输出的就应该是i,j自增自减前的原值8和10 比如我设z=i++;那么这...

main() { int i=10,j=1; printf("%d,%d\\n",i--,++j);}结果是多少
所以这里的i--, 先取值, 值为10.++j, 先自加j=2, 再取值.于是输出是10,2

...main() { int i=010,j=10; printf("%d,%d\\n",++i,j--);
j--是先返回j的值10,然后再减1也就是9.选B

设有int I=10,j=10;则printf("%d,%d\\n",++I,j--)的输出是
设有int I=10,j=10;则printf("%d,%d\\n",++I,j--)的输出是 11,10 若是printf("%d,%d\\n",i++,--j)结果是 10,9 你只要记住 自增或自减符号在前面就先++或--再使用变量,在后面就是先使用变量再++或--

...i=10; main() {int j=1; j=fun(); printf("%d,",j
首先这个i在这里是全局变量,那个fun函数执行完了后并不释放i也就是一直保留i的值而不会消失,第一次执行fun函数时,k=0+10=10;i=10+10=20;返回k=10的值,这是第一个j=10;第二次执行fun函数时,k=0+20=20;这个20是i在第一次执行fun函数时,i=i+10这个语句得到的值,一直保留而...

...main() { int i=010,j=10; printf("%d,%d\\n",++i,j--); }_百度知...
i是9吧!不是10

...main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--) printf("%d...
只循环一次,输出结果:0

...main() { int i=10; printf("%d,%d,%d\\n",++i,i,i++); printf("%d...
结果是 12 11 10 最后输出一个12 printf的参数是从 后面往前计算的,先是 i++ 这个是先使用i 10 然后改变i的值加1 i的值变为11 第二个输出i 也就是 11 第三个输出 ++i 是先改变i的值为12 然后再使用i输出 就是12 ...

...main() { int i=0,j=10,k=2,s=0; for(;;;) { i+=k; if(i>j); {...
for(;;;) for 分号太多,2 个可以。if(i>j); -- 去掉分号 改为:include<stdio.h> void main() { int i=0,j=10,k=2,s=0;for(;;) { i+=k;if(i>j) {printf("%d\\n",s);break; } else printf("i=%d\\n",i);} } ...

相似回答