C语言中 -1<=i<1 这样的语句是无法达到你要的效果的,对于这个句子,C语言是这样处理的:
(-1<=i)<1 (1)
这样的话,-1<=i为真,所以这个表达式的值为1,也就是说(1)这个表达式等价于(1<1)然后这个式子为假,所以不会进入该循环,所以i没有发生变化,也不会输出i,所以答案为-1
如果for循环写成这样:for (a=1,i=-1;-1<=i&&i<1;i++) 那么题主你的答案就对了。
题目中错误比较多,从题目和答案来看原本应该是
#include<stdioh>
int main() {
char p="13542";
while(p!='4')
printf("%c",(p++)+1);
return 0;
}
while里是判断p指向的位置是不是字符4,如果不是才继续,所以循环就是
输出p+1,p此时为'1',+1后自然就是'2',因此输出2,p++
同样,输出'3'+1即'4',p++
再输出'5'+1即6
此时p已经指向'4'了,循环中止
答案就是A
首先,要注意a--和--a的区别:
a--是先进行a在式中的计算再进行a--。
--a是先进行a的自减再计算。
比如:a=1;b=a--;这样的话b的值为1。
a=1;b=--a;这样的话b的值是0。
其次,a=1时运行完while(a-->=0)后 a=0;m会自增,m=1。
所以while(a-->=0)在上次循环后仍会符合条件,m仍会自增,此时a=-1,m=2。
m自增后并未跳出循环。这个判断句仍然会执行一次,然后发现结果不符合条件了。所以就跳出了循环。
纯手打,欢迎追问。
你的代码格式太乱了, if和else中的语句快最好加{}标记起来,段落之间分好
有个良好的代码书写规范,无论是对自己还是对看你代码的人都很重要
上边的代码是我重新整理格式之后的,你可以尝试加{}代码规范之后,就很容易推断出结果了
建议自己编译一下,跑一下结果给你很简单
scanf("%d",&n),输入符合%d格式要求的数据,也就是整型数,而不是字符或浮点数时,n正常读入数值后返回1;
以上while组合语句就是输入的是整型数时,进入循环体,进行循环,一直到输入字符或浮点数时终止循环。
以上就是关于C语言的一道题:下面程序段的运行结果是:__ for (a=1,i=-1;-1<=i<1;i++)全部的内容,包括:C语言的一道题:下面程序段的运行结果是:__ for (a=1,i=-1;-1<=i<1;i++)、C语言程序问题,求运行详细过程、C语言运行程序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)