C语言问题求详细解答
若运行下列程序时,输入以下指定数据,请选择正确的运行结果填入【】.#include<stdio.h>intmain(){ints;while((s=getchar())!...
若运行下列程序时,输入以下指定数据,请选择正确的运行结果填入【 】.
#include<stdio.h>
int main( )
{
int s;
while((s=getchar( ))!='\n')
{
switch(s-'2')
{
case 0:
case 1: putchar(s+4);
case 2: putchar(s+4); break;
case 3: putchar(s+3);
default: putchar(s+2); break;
}
}
printf("\n");
return 0;
}
输入数据:2473<回车>
A:6688766
B:66778777
C:668966
D:668977 展开
#include<stdio.h>
int main( )
{
int s;
while((s=getchar( ))!='\n')
{
switch(s-'2')
{
case 0:
case 1: putchar(s+4);
case 2: putchar(s+4); break;
case 3: putchar(s+3);
default: putchar(s+2); break;
}
}
printf("\n");
return 0;
}
输入数据:2473<回车>
A:6688766
B:66778777
C:668966
D:668977 展开
推荐于2016-06-16
展开全部
首先将2带入到循环体switch里
s-2为0
执行case0;没有,继续执行case1(s+4)先输出2+4的值,在执行case2的值2+4。接着break退出本次循环。回到while
接着是带入4
4-2等于=执行case2(s+4)接着退出、
再次是7
7-2等于5。没有case的值。执行default(s+2)接着退出。
最后是3
先执行case1(s+4),接着向下之心case2(s+4)接着退出。
因为输入的是字符串。字符串的最后会带有'\0'即为空。
判断while语句退出循环输入换行字符。。
结束
结果就是D:668977
s-2为0
执行case0;没有,继续执行case1(s+4)先输出2+4的值,在执行case2的值2+4。接着break退出本次循环。回到while
接着是带入4
4-2等于=执行case2(s+4)接着退出、
再次是7
7-2等于5。没有case的值。执行default(s+2)接着退出。
最后是3
先执行case1(s+4),接着向下之心case2(s+4)接着退出。
因为输入的是字符串。字符串的最后会带有'\0'即为空。
判断while语句退出循环输入换行字符。。
结束
结果就是D:668977
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询