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

admin2018-11-21  46

问题 阅读以下代码和问题,回答问题,将解答填入对应栏内。
【代码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,写出下面的函数调用后x1、x2、x3和x4的值。
x1=f(1997);
x2=f(2000);
x3=f(2100);
x4=f(2020);

选项

答案D或3或x1=D或x1=3或其等价形式 A或0或x2=A或x2=0或其等价形式 C或2或x3=C或x3=2或其等价形式 B或1或x4=B或x4=1或其等价形式

解析 本问题主要通过以不同实参调用同一个函数考查对if语句的理解和应用。
    代码中if语句的含义可用下面的流程图表示:

    对于函数调用x1=f(1997),将1997传给yr后计算yr%400值为397,等于0不成立(即不能被400整除),接下来计算yr%4值为1,等于0不成立(即不能被4整除),因此执行。return D。
    对于函数调用x1=f(2000),将2000传给yr后计算yr%400值为0,等于0成立(即可以被400整除),因此执行returnA。
    对于函数调用x1=f(2100),将2100传给yr后计算yr%400值为10,等于0不成立(即不能被400整除),接下来计算yr%4值为0,等于0成立(即可以被4整除),接下来计算yr%100值为0,不等于0不成立(即可以被100整除),因此执行return C。
    对于函数调用x1=f(2020),将2020传给yr后计算yr%400值为20,等于0不成立(即不能被400整除),接下来计算yr%4值为0,等于0成立(即可以被4整除),接下来计算yr%100值为20,不等于0成立(即不能被100整除),因此执行return B。
转载请注明原文地址:https://jikaoti.com/ti/88W7FFFM
0

最新回复(0)