c语言中,下面程序的运行结果是

c语言中,下面程序的运行结果是,第1张

你好

1程序的运行结果是:1,-2

2解释每一步的运行过程:

#include <stdioh>

void main()

{

int y, a ;

y=2, a=1;

while (y--!=-1)

{

do{

a=y ;

a++ ;

} while(y--);

}

printf("%d,%d\n",a,y);

}

从y=2,a=1开始哈

(首先我们要知道后自减y--型的返回值是y自减前的值 例如y=2 y--就返回2)

进入while循环

y--返回2 不等于-1 (此时y=1)

于是循环继续进入do while循环

执行a=y;a++后

a=2 y=1

y--返回1 是非零 于是do while循环继续进行 (此时y=0)

执行a=y;a++后

a=1 y=0

y--返回0 于是do while循环终止 (此时y=-1)

再判断while的循环条件: y--返回-1 于是while循环终止 此时y=-2

(讲的比较多 希望楼主能理解了)

这里最主要的问题在于对while (a[i++]!='\0') b[i]=a[i];这句话没有理解清楚。strcat(a,b)所以:a="ABLMNP"; b=“LMNP”

while (a[i++]!='\0') i=0表达式i++=0判断a[0]!='\0'后,i自增1,即i=1;所以进入循环体执行b[i]=a[i]时,i=1的,b[1]=a[1]='B';b[0]的值并未改变,b[0]=L;

因此将a[i]后面的值赋给b[i],所以结束的时候b="LBLMNP"。//

while (a[i]!='\0')

{

b[i]=a[i];

i++;

}

改成这样就是"ABLMNP"

当i==0时,y[x[i]++]即y[x[0]]++,即y[2]++

当i==1时,y[x[i]++]即y[x[1]]++,即y[3]++

当i==2时,y[x[i]++]即y[x[2]]++,即y[0]++

所以数组y实际是对数组x元素的计数,所以y[3]存储的实际就是x数组中3出现的次数,显然结果是4

答案是C

因为当i=4时 第一个for循环 j=1到j<=4 打印四个# 第二个for循环 j=1到j<0 不打印

当i=3时 第一个for循环 j=1到j<=3 打印三个# 第二个for循环 j=1到j<1 不打印

当i=2时 第一个for循环 j=1到j<=2 打印两个# 第二个for循环 j=1到j<2 打印一个

当i=1时 第一个for循环 j=1到j<=1 打印一个# 第二个for循环 j=1到j<3 打印两个

i从1到5循环,对应的b初始为1,0,1,0,1。

b-->=0是先取b的值判断是否>=0,再将b减1。

所以当b=0时,b-->=0成立,之后b=-1,b>=0不成立,但b--还会执行,b变成-2。

所以当b=0时,while(b-->=0)会执行一次,当b=1时,会执行两次。所以k++总共执行了2+1+2+1+2=8次。

以上就是关于c语言中,下面程序的运行结果是全部的内容,包括:c语言中,下面程序的运行结果是、下面程序的运行结果是。、下面程序运行结果是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9805637.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存