请帮我解释一道C语言程序题
发布网友
发布时间:2023-09-07 17:32
我来回答
共5个回答
热心网友
时间:2023-09-19 01:58
getchar()是获取字符
getchar()!='#'是取得的字符不为‘#’则循环
每getchar()一次就取一个字符
只循环一次
c=1; //初始
2!=#; //条件
putchar(c); //条件为真,执行,这时c就是1
c=3 //是最后执行的
所以答案是1呀
热心网友
时间:2023-09-19 01:59
不是1啊
这是一个输入什么字符就输出什么字符的程序
从程序的本意上看,应该是输入'#'跳出循环,程序结束
for(c=getchar();getchar()!='#';c=getchar())
上句改为for(c=getchar();c!='#';c=getchar())会有输入#跳出的功能
正是由于有getchar()!='#'这句才会有输出1的结果。
输入123#,c得到1,然后getchar()又得到2,!='#',所以输出1
然后继续循环,c得到3,getchar()得到#,程序跳出,不用输出了
所以只有一个1,如果找我所说上述改法,将输出123
热心网友
时间:2023-09-19 01:59
c=getchar()取第一个'1' getchar()!='#'取第二个'2' for中的第二个c=getchar()取第三个'3' 执行第二次循环时getchar()正好是#
热心网友
时间:2023-09-19 02:00
for( ①; ②; ④ ){ ③ }
循环的步骤是①先设定初值;②判断条件;条件成立执行③;然后执行循环步骤④;再重复判断②和执行③④;直到②不满足条件,退出循环。
所以,该程序的for循环执行步骤是:
1.设定初值c=getchar(),读取字符'1',c='1';
2.判断条件getchar()!='#',读取字符'2',条件满足,执行循环;
3.putchar(c),显示字符c的内容'1';
4.执行循环步骤c=getchar(),读取字符'3',c='3';
5.判断条件getchar()!='#',读取字符'#',条件不满足,退出循环。
运行结果为:1
热心网友
时间:2023-09-19 02:00
第一次进入循环,通过getchar获得字符1,然后判断getchar()是否为字符'#',getchar()获取一个字符后指向下一个,第一次判断的时候通过getchar()获取的是字符'2',因此结果为true;进入循环输出c,然后再执行c = getchar(),此时c的值是字符'3',然后执行判断,此时getchar()获取的字符是'#',循环就结束了。