题目详情

第三题 阅读以下代码和问题,回答问题1至问题3,将解答填入答题纸的对应栏内。

【代码 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<stdio.h>

int main()

{ int score;

scanf("%d",&score);

switch (score)

{

case 5: printf("Excellent!\n");

case 4: printf("Good!\n"); break;

case 3: printf("Average!\n");

case 2:

case 1:

case 0: printf("Poor!\n");

default: printf("Oops,Error\n");

}

return 0;

}

【代码3】

#include<stdio.h>

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);

}

ruturn 0;

} 问题:3.1 (4分)

对于代码1,写出下面的函数调用后x1 、x2、x3和x4的值。

x1 = f(1997);

x2 = f(2000);

x3 = f(2100);

x4 = f(2020); 问题:3.2 (5分)

(1)写出代码2进行时输入为3的输出结果;

(2)写出代码2进行时输入为5的输出结果。 问题:3.3 (6分)

写出代码3运行后的输出结果。

正确答案及解析

正确答案
解析

x1=3;x2=0;x3=2;x4=1

第一个条件 0==yr%400, 2000满足,返回为A;其余都不满足,继续进行判断;

第二个条件 !yr%4, 1997不满足,返回为D;其余满足,继续进行判断;

第三个条件 0!=yr%100,2020满足,返回为B;2100不满足,返回为C。

枚举类型中列出的每一个枚举符都对应着一个整数值,枚举类型实际上是一个整型符号常量的集合。当定义枚举类型时,枚举符都已经被系统隐含地赋予了一个整型值,默认情况下,第一个元素为0,第二个元素为1,依此类推。所以相应的A=0,B=1,C=2,D=3,故返回为:x1=3;x2=0;x3=2;x4=1。

Average!

poor!

Oops,Error

(2)Excellent!

Good!

控制传递给与开关的值匹配的 case 语句。switch 语句可以包括任意数目的 case 实例,但是任何两个 case 语句都不能具有相同的值。语句体从选定的语句开始执行,直到 break 将控制传递到 case 体以外。case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即"只是开始执行处的入口标号". 因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行,而且执行完一个case后面的语句后,若没遇到break语句,就自动进入 下一个case继续执行,而不在判断是否与之匹配,直到遇到break语句才停止执行,退出break语句.因此,若想执行一个case分之后立即跳出 switch语句,就必须在此分支的最后添加一个break语句。 0 1 0

0 2 0

0 2 1

1 0 1

1 2 0

1 2 1

【解析】

此题考察多重for循环再加上一个判定条件,i的取值为(0,1),j的取值为(0,1,2),k的取值为(0,1),只要按顺序找到i!=j且j!=k的组合即可。

你可能感兴趣的试题

单选题

一台主机的IP地址为202.123.25.36,掩码为255.255.254.0。如果该主机需要在该网络进行直接广播,那么它应该使用的目的地址为( )

  • A.202.123.25.0
  • B.202.123.25.255
  • C.202.123.24.0
  • D.202.123.24.255
查看答案
单选题

在计算机系统的日常维护工作中,应当注意硬盘工作时不能__(2)__。另外,需要防范病毒,而__(3)__是不会被病毒感觉的。

  • A.电子邮件
  • B.硬盘
  • C.U盘
  • D.ROM
查看答案
单选题

有 4 个 IP 地址:201.117.15.254、201.117.17.01、201.117.24.5 和 201.117.29.3,如果子网掩码为 255.255.248.0,则这 4 个地址分别属于3个子网;其中属于同一个子网的是()

  • A.201.117.15.254 和 201.117.17.01
  • B.201.117.17.01 和 201.117.24.5
  • C.201.117.15.254 和 201.117.29.3
  • D.201.117.24.5 和 201.117.29.3
查看答案
单选题

在异步通信中,每个字符包含1位起始位、7位数据位、1位奇偶位和1位终止位,每秒钟传送200个字符,采用4相位调制,则码元速率为()。

  • A.50波特
  • B.500波特
  • C.550波特
  • D.1000波特
查看答案
单选题

在 Windows 中,运行( )命令得到下图所示结果。以下关于该结果的叙述中,错误的是( )。

Pinging 59.74.111.8 with 32 bytes of data:

Reply from 59.74.111.8: bytes=32 time=3ms TTL=60

Reply from 59.74.111.8: bytes=32 time=5ms TTL=60

Reply from 59.74.111.8: bytes=32 time=3ms TTL=60

Reply from 59.74.111.8: bytes=32 time=5ms TTL=60

Ping statistics for 59.74.111.8:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 3ms, Maximum = 5ms, Average = 4ms

  • A.该命令使得本地主机向目标主机发送了 4 个数据包
  • B.本地主机成功收到了目标主机返回的 4 个数据包
  • C.本地主机与目标主机连接正常
  • D.该命令用于查看目标主机的 IP 地址
查看答案

相关题库更多 +