c语言试题

【2.19】从键盘上输入"446755"时,下面程序的输出是____。#include<stdio.h>main(){intc;while((c=getchar())!=... 【2.19】从键盘上输入"446755"时,下面程序的输出是____。
#include <stdio.h>
main()
{ int c;
while((c=getchar())!='\n')
switch(c -'2')
{ case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}
printf("\n");
}
A) 888988 B) 668966 C) 88898787 D) 66898787

参考答案是C,
要求分析此程序的运行详细过程
展开
 我来答
百度网友c78d54c6b
2006-04-13 · TA获得超过363个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:0
展开全部
第1 个 "4" :4-2 =2 执行putchar(c+4);break; 结果为 4+4=8
第2 个 "4" :4-2 =2 执行putchar(c+4);break; 结果为 4+4=8
第3 个 "6" :6-2 =4 执行default: putchar(c+2);break;结果为 6+2=8
第4 个 "7" :7-2 =5 执行default: putchar(c+2);break;结果为 7+2=9
第5 个 "5" :5-2 =3 执行case 3: putchar(c+3);
default: putchar(c+2);break;结果为 5+3=8 5+2=7
第6 个 "5" :5-2 =3 执行case 3: putchar(c+3);
default: putchar(c+2);break;结果为 5+3=8 5+2=7
后面的两个是由于case 3 后面没有break;继续执行下面语句,直到遇到break;
最终结果 选 C
lazybones711
2006-04-13 · TA获得超过514个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:276万
展开全部
当然是这个值了,第一次,是2,所以是CASE2,C+4,C现在还是4,所以是8

以后类似,不过要注意,如果是CASE 1 和CASE 3的话,由于没有break;,所以要同时执行下条语句,直到遇到break 还要注意就是执行C-'2',只是判断CASE,但判断完后,C并不变~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
344791576
2006-04-13 · TA获得超过1396个赞
知道小有建树答主
回答量:913
采纳率:0%
帮助的人:220万
展开全部
好难呀.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式