c语言,求大神解答一下第8题,我知道答案是abcd$end,但不知道过程,求

c语言,求大神解答一下第8题,我知道答案是abcd$end,但不知道过程,求解答,谢谢... c语言,求大神解答一下第8题,我知道答案是abcd$end,但不知道过程,求解答,谢谢 展开
 我来答
红颜不求得
2017-05-14 · TA获得超过773个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:219万
展开全部
我们从外向内剖析一下,可以发现,while处是这样的:
while(循环条件);
因为()后直接就是; 所以这个while语句没有循环体,那个printf("end")是while语句执行完后执行的单条语句。
接下来我们看看()内的循环条件,发现它是这样的:
putchar(参数)!='$'
也就是说,while语句的循环条件是“putchar()输出的不是'$'”,也就是说只要putchar()的不是'$',我们的while语句就会一直执行下去,while每次执行的同时,putchar()也会执行(不然怎么知道putchar()的不是一个'$'呢?)
再接下来我们看看putchar(参数)中的参数,发现它就是:
getchar()
所以putchar(参数)其实就是“将getchar()得到的字符输出”,而while语句也就是“将getchar()得到的字符通过putchar()输出,除非输出了一个'$',否则一直执行下去”。
因此,当你输入“abcd$abcde\n”后,while语句不断putchar()到了第五个字符也就是'$'后就跳出了循环,然后执行了printf("end"),于是出现了程序输出为“abcd$end”的情况。
物理公司的
2017-05-14 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1320万
展开全部
while(//输出直到碰到$,然后退出),$后面的直接无视;
printf("end")//这个不是while循环的,while没有循环体
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式