阅读以下代码和问题,回答问题,将解答填入对应栏内。 【代码1】 typedef enum{A,B,C,D}EnumType; EnumType f(int yr) { if(0==yr%400){ return A; } else if(

admin2018-11-21  57

问题 阅读以下代码和问题,回答问题,将解答填入对应栏内。
【代码1】
typedef enum{A,B,C,D}EnumType;
EnumType f(int yr)
{
if(0==yr%400){
    return A;
    }
else  if(!(yr%4)){
      if(0!=yr%100)
      return B;
    else
    return C;
    }
    return D;

【代码2】
#include
int main()
{    int Score;
Scanf(’’%d’’,&score);
switch(score)

case 5:printf(’’Excellent!\n’’);
case 4:print(’’Good!\n’’);break;
case 3:print(’’Average!\n’’);
case 2:
case 1:
case 0:printf(’’Poor!\n’’);
default:printf(’’Oops,Error\n’’);
}
return 0;

【代码3】
#include
int main()
{  int i,j,k;
    for(i=0; i<2; i++)
    for(j=0;j<3;j++)
    for(k=0;k<2;k++)  {
    if(i!=j&&j!=k)
    printf(’’%d%d%d\n’’,i,j,k);
    }
    return 0;
}
(1)写出代码2运行时输入为3的输出结果;
(2)写出代码2运行时输入为5的输出结果。

选项

答案(1) Average! Poor! Oops,Error。 (2) Fxcellent! Good!

解析 本问题主要通过输入不同值考查对switch语句的理解和应用,特别要注意其中break的作用。题目中的switch语句在逻辑上可以理解为下面流程图的含义,实际上通过将各情况的代码位置记在一个称为跳转表的数组中,根据score的值实现直接跳转,可以得到更高效的执行效率。

    输入为3时,score的值不等于5也不等于4,而满足score等于3的情况,输出“Average!”后,由于没有遇到break,所以接下来执行输出“Poor!”和输出“Oops,Error”,然后结束Switch语句。
    输入为5时,满足score等于5的情况,输出“Excellent!”后,由于没有遇到break,所以接下来执行输出“Good!”,遇到brealk,就结束switch语句。
    若输入为4,满足score等于4的情况,因此执行输出“Good!”,遇到break,就结束switch语句。
    若输入为6,score的值不等于5、4、3、2、1和0中的任何一个,则执行default部分的语句,即输出“Oops,Error”,然后结束switch语句。
转载请注明原文地址:https://kaotiyun.com/show/92jZ777K
0

最新回复(0)