第三题阅读以下代码和问题,回答问题1至问题3,将解答填入答题纸的对应栏内。 【代码1】 typedefenum{A,B,C,D}EnumType; EnumTypef(intyr) { if(0==yr%400){ returnA; } elseif(!(yr%4)){ if(0!=yr%100) returnB; else returnC; } returnD; } 【代码2】 #include<stdio.h> intmain() {intscore; sc

欢迎免费使用小程序搜题/刷题/查看解析,提升学历,成考自考报名,论文代写、论文查重请加客服微信skr-web

第三题阅读以下代码和问题,回答问题1至问题3,将解答填入答题纸的对应栏内。 【代码1】 typedefenum{A,B,C,D}EnumType; EnumTypef(intyr) { if(0==yr%400){ returnA; } elseif(!(yr%4)){ if(0!=yr%100) returnB; else returnC; } returnD; } 【代码2】 #include<stdio.h> intmain() {intscore; scanf("%d",&score); switch(score) { case5:printf("Excellent!\n"); case4:printf("Good!\n");break; case3:printf("Average!\n"); case2: case1: case0:printf("Poor!\n"); default:printf("Oops,Error\n"); } return0; } 【代码3】 #include<stdio.h> intmain() {inti,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); } ruturn0; }问题: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的组合即可。

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top