永发信息网

do { putchar(c++); } while((c=getchar()) != '#');

答案:2  悬赏:0  手机版
解决时间 2021-03-12 05:41
  • 提问者网友:我是女神我骄傲
  • 2021-03-11 05:11
有以下程序

#include
main( )
{ char c;
c=getchar();
do {
putchar(c++);
} while((c=getchar()) != '#');
}

程序运行时从第一列开始输入:abcdefg##<回车>,则输出结果是

  A) bcdefgh$

  B) bcdefgh

  C) abcdefg#

  D) abcdefg
这这里c++的作用是什么?不应该先执行do后语句再执行while,所以#为什么不输出呢?
最佳答案
  • 五星知识达人网友:迟山
  • 2021-03-11 05:19
选D;
首先c=getchar();对c赋予初值a。//此处的c=getchar();整个过程只执行一次
然后执行do…while循环,输出第一个字符a,之后对a加1;
while((c=getchar()) != '#');有两个作用,第一读入字符bcdef……,第二判断是否是‘#’。
如果是,那么终止循环。
最终读入#,while判断一下,表示你太丑了,不给你输出。所以最终输出来的是D选项的结果。
全部回答
  • 1楼网友:青尢
  • 2021-03-11 06:55
#include void main() { char c; //c=getchar();去掉这一行,这个getchar()吃掉了第一个字符 while((c=getchar())!='?') putchar(++c); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯