int arr[ ]={79,85,93,65,44,70,100,57};
int i,m;
m=sizeof(arr)/sizeof(int); //计算数组元素的个数,用 m 表示
(5); //调用 selectSort 对数组 arr 进行非递减排序
for((6);i
试题三
阅读以下代码和问题,回答问题 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
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
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;
【问题 1】(4 分)
对于代码 1,写出下面的函数调用后 x1 、x2、x3 和 x4 的值。
x1 = f(1997);
x2 = f(2000);
x3 = f(2100);
x4 = f(2020);
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。
【问题 2】(5 分)
(1)写出代码 2 进行时输入为 3 的输出结果;
(2)写出代码 2 进行时输入为 5 的输出结果。
(1)Average!
poor!
Oops,Error
(2)Excellent!
Good!
控制传递给与开关的值匹配的 case 语句。switch 语句可以包括任意数目的 case 实例,
但是任何两个 case 语句都不能具有相同的值。语句体从选定的语句开始执行,直到 break
将控制传递到 case 体以外。case 后面的常量表达式实际上只起语句标号作用,而不起条件
判断作用,即"只是开始执行处的入口标号". 因此,一旦与 switch 后面圆括号中表达式的值
匹配,就从此标号处开始执行,而且执行完一个 case 后面的语句后,若没遇到 break 语句,就
自动进入 下一个 case 继续执行,而不在判断是否与之匹配,直到遇到 break 语句才停止执行,
退出 break 语句.因此,若想执行一个 case 分之后立即跳出 switch 语句,就必须在此分支的
最后添加一个 break 语句。
【问题 3】(6 分)
写出代码 3 运行后的输出结果。