C语言的i++的使用的过程的一些问题??

来源:百度知道 编辑:UC知道 时间:2024/09/22 11:42:59
3. 阅读以下程序,当输入数据的形式为:25,13,10<CR>(注:<CR>表示回车),则正确的输出结果为 。
main()
{ int x,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,x+y+z);
}
A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值

答案是:D.
请问是为什么呢??我觉得应该是A。如果觉得是D的请解释详细些。。

另外一道题目是“
3.#include<stdio.h>
main( )
{ int i;
for(i=0;++i;i<5)
{
if(i==3)
{
printf("%d\n",++i);
break;
}
printf("%d ",++i);
}
}
答案是:2 4
但是我用程序运行后,答案是1 3 5。我就不明白到底应该是什么样的答案才是正确的。。。
因为这个不是很懂,希望大家给与建议!!看法!!谢谢!!

我来告诉你吧:
第一道:有这么句:
scanf(“%d%d%d”,&x,&y,&z); 而你的输入是:
25,13,10<CR>;对比一下:%d%d%d;可以看出来输入的时候多了2个逗号;系统读取数据是以空格为间隔的,也就是说它将(25,)(不是25)成一个整数,所以没有确切值!!
第2道:注意下面这句:for(i=0 a ;++i b;i<5 c) 这与常见的不一样,但遵守的规则是一样的:先是a,i=0;后是b,i=1;进入循环后printf("%d ",++i); i=2;(并输出);然后是c,这里c并没有什么用,然后b,i=3,进入循环后,
if(i==3)
{
printf("%d\n",++i);break; 所以i=4(并输出后跳出循环),
所以是2 4;呵呵希望对你有帮助

选择题那个
正确的输入应该是不带逗号的,带了逗号的话,最后的结果就不是48了

第2个for(i=0;i<5;++i)改成这样的话是1 3 5
第一次i=0,printf("%d",++i),i=1,输出1,
第二次for中间++i,i=2,printf("%d",++i),i=3,输出3
第三次for中间++i,i=4,printf("%d",++i),i=5,输出5,break,退出循环

前一个题输入不应该有逗号

你怎么运行出来的1,3,5呢? 应该是2,4的, 具体也没什么可说的,按照for语句的规则仔细看看就知道怎么走的了

第1问:在scanf语句的格式串中由于没有非格式字符在“%d%d%d”之间作输入时的间隔,因此在输入时要用一个以上的空格作为每两个输入数之间的间隔(而不是“,”)。因此在输入时要用一个以上的空格作为每两个输入数之间的间隔。