首页 > 试题广场 >

阅读下列程序并回答相应的问题。 #include

[问答题]
阅读下列程序并回答相应的问题。
#include <stdio.h>
void main()
{
int i,a,b,c;
printf("a.b.c:");
scanf("%d%d%d",&a,&b,&c);
for (i=0;i<a;i++)
switch(b)
{
case 1:if(c+i>5)
printf("%c",'y');
else
printf("%c",'x');
break;
case 2:if(c+i<5)
printf("%c",'y');
else
printf("%c",'x');
break;
default:printf("%c",'x');
}
printf("\n");
}
(1)上述程序若要输出yyx,输入a、b、c的值应为多少?
(2)上述程序若要输出xy,输入a、b、c的值应为多少?
推荐
(1)为了输出yyx,应有a=3,从switch结构中看到,i值是渐增的,先要输出y,后输出x,所以只能执行case2子句,故b=2;另外,要输出yyx,应使c+i(0)<5、c+i(1)<5、c+i(2)>=5条件都为真,这样c=3。所以上述程序若要输出yyx,输入a、b、c的值应分别为3、2、3。
(2)为了输出xy,这有a=2,x在前y在后,b=1;要输出xy,应使c+i(0)<=5、c+i(1)>5条件为真,这样c=5.所以上述程序若要输出xy,输入a、b、c的值应分别为2、1、5。
发表于 2018-05-06 21:19:38 回复(0)