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,
要求分析此程序的运行详细过程 展开
#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,
要求分析此程序的运行详细过程 展开
3个回答
展开全部
第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
第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
展开全部
当然是这个值了,第一次,是2,所以是CASE2,C+4,C现在还是4,所以是8
以后类似,不过要注意,如果是CASE 1 和CASE 3的话,由于没有break;,所以要同时执行下条语句,直到遇到break 还要注意就是执行C-'2',只是判断CASE,但判断完后,C并不变~~
以后类似,不过要注意,如果是CASE 1 和CASE 3的话,由于没有break;,所以要同时执行下条语句,直到遇到break 还要注意就是执行C-'2',只是判断CASE,但判断完后,C并不变~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好难呀.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询