C语言循环体中很简单的一道题?

程序如下#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}//答案是852解... 程序如下
#include<stdio.h>
main()
{
int y = 9;
for( ; y > 0 ; y--)
if(y%3 == 0)
printf("%d",--y);
}
//答案是852解析中说道第一次打印--9,打印8后循环表达式三自减为7再进入循环。那么打印时的数值y的数值也被改变了?
像下面这道题
#include<stdio.h>
main()
{
char ch = 'D'
while(ch > 'A')
{
ch--;
putchar(ch);
if(ch == 'A')break;
putchar(ch+1);
}
printf("%d",--y);
}
//答案为CDBCA 解析中的第一次循环ch + 1打印D时,再次进入循环体时为什么又不是以打印的值D再次进入循环体呢?
这两道题,一个是通过printf 一个通过putchar打印。那么说难道打印是不改变其值吗?
展开
 我来答
百度网友4176b05
2020-03-11 · TA获得超过206个赞
知道小有建树答主
回答量:430
采纳率:58%
帮助的人:49.9万
展开全部
首先要理解y--和--y都是y=y-1的意思,第一题那里printf("%d",--y);这是先执行了--y,即y=y-1再执行输出printf,所以输出是8,你可以试试printf("%d",y--),这个时候输出的是9。而第二题的ch+1那里,类似于假如ch不是字符而是3,拿输出ch+1=3+1=4,你看到的输出是4,但实际上ch还是等于3,对应于题目中的C,打印输出来ch+1即D
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式