内容正文:
专题四 选择结构
(一)单项选择题
1. 以下代码的输出结果是( )
int a = 5;
if (a = 0)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 无输出
2.若 score = 85,以下代码的输出结果是( )
if (score >= 60)
printf("及格");
else if (score >= 80)
printf("优秀");
A. 及格
B. 优秀
C. 无输出
D. 编译错误
3.以下代码的输出结果是( )
int x = 10, y = 20;
if (x > 5) {
if (y > 15)
printf("A");
} else
printf("B");
A. A
B. B
C. AB
D. 无输出
4.以下代码的输出结果是( )
int a = 1, b = 0;
if (a++ && ++b)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 不确定
5.关于 switch 语句,错误的是( )
A. switch 表达式可以是字符型
B. reak 用于跳出 switch
C. default 分支可以省略
D. bcase 后的常量可以是变量
6.以下代码的输出结果是( )
int num = 2;
switch (num) {
case 1: printf("A");
case 2: printf("B");
case 3: printf("C"); break;
default: printf("D");
}
A. B
B. C
C. D
D. BC
7.以下代码的输出结果是( )
int a = 10;
switch (a) {
default: printf("Default");
case 1: printf("1");
}
A. Default1
B. Default
C. 1
D. 编译错误
8.以下代码的输出结果是( )
int x = 5;
if (x > 3)
if (x < 10)
printf("A");
else
printf("B");
A. A
B. B
C. 无输出
D. 编译错误
9.以下关于 if 语句的描述,正确的是( )
A. if 的条件表达式只能是布尔类型
B. if-else 语句可以没有 else
C. if 的条件表达式可以为空
D. if 的条件表达式不能包含赋值操作
10.以下代码的输出结果是( )
int a = 0;
if (a = 1)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 不确定
11.以下代码的输出结果是( )
int x = 1, y = 2;
if (x > 0 || y++)
printf("%d", y);
A. -1
B. 0
C. 1
D. 2
12.以下代码的输出结果是( )
int num = 4;
switch (num) {
case 1: printf("A"); break;
case 4: printf("B");
default: printf("C");
}
A. B
B. BC
C. C
D. 无输出
13.以下代码的输出结果是( )
int a = 5, b = 10;
if (a > 10)
printf("A");
else if (b < 20)
printf("B");
else
printf("C");
A. A
B. B
C. C
D. AB
14.以下代码的输出结果是( )
int x = 0;
if (x = 0)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 不确定
15.以下关于C语言中switch语句的描述,正确的是( )
A. case后面的表达式可以是变量
B. default子句可以存在多个
C. switch的条件表达式可以是浮点类型
D. case后面的值必须是整型常量表达式
(二)判断题
1. if 语句的条件表达式可以是任意类型。( )
2. iswitch 语句的表达式可以是字符串。( )
3. icase 后的常量值可以重复。( )
4. idefault 分支必须放在 switch 语句的最后。( )
5. iif-else if 结构中的条件是按顺序判断的。( )
6. iswitch 语句中必须包含 default 分支。( )
7. icase 后的代码块可以为空。( )
8. iif (x = 5) 是合法的条件表达式。( )
9. iswitch 语句的 case 分支可以使用范围。( )
10. break 语句在 switch 中是可选的。( )
(三)填空题
1. 以下代码的输出结果是______。
int x = 3;
switch (x) {
case 1: printf("A"); break;
case 3: printf("B");
case 4: printf("C"); break;
}
2.以下代码的输出结果是______。
int x = 2;
switch (x) {
case 1: x += 1;
case 2: x += 2;
case 3: x += 3; break;
default: x += 4;
}
printf("%d", x);
(四)应用题
1.补充代码,实现判断输入的字符是否为元音字母(a、e、i、o、u):
char c;
scanf("%c", &c);
switch (____) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
printf("元音字母");
break;
default:
printf("非元音字母");
}
2. 补充代码,判断输入的年份是否为闰年(闰年条件:能被4整除但不能被100整除,或能被400整除):
int year;
scanf("%d", &year);
if (__________________________) {
printf("是闰年");
} else {
printf("不是闰年");
}
3. 补充代码,根据分数(0~100)输出等级(90+为A,80+为B,70+为C,其他为D):
int score;
scanf("%d", &score);
switch (____) {
case 10:
case 9:
printf("A");
break;
case 8:
printf("B");
break;
case 7:
printf("C");
break;
default:
printf("D");
}
4. 实现以下功能,根据月份输出季节,输入月份(1~12),输出对应的季节(春:3~5,夏:6~8,秋:9~11,冬:12~2)。
5. 实现以下功能,要求:输入两个整数和一个运算符(+、-、*、/),输出运算结果。若除数为0或运算符非法,输出错误信息。
学科网(北京)股份有限公司
$$
专题四 选择结构
(一)单项选择题
1. 以下代码的输出结果是( )
int a = 5;
if (a = 0)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 无输出
答案:B
2.若 score = 85,以下代码的输出结果是( )
if (score >= 60)
printf("及格");
else if (score >= 80)
printf("优秀");
A. 及格
B. 优秀
C. 无输出
D. 编译错误
答案:A
3.以下代码的输出结果是( )
int x = 10, y = 20;
if (x > 5) {
if (y > 15)
printf("A");
} else
printf("B");
A. A
B. B
C. AB
D. 无输出
答案:A
4.以下代码的输出结果是( )
int a = 1, b = 0;
if (a++ && ++b)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 不确定
答案:A
5.关于 switch 语句,错误的是( )
A. switch 表达式可以是字符型
B. reak 用于跳出 switch
C. default 分支可以省略
D. bcase 后的常量可以是变量
答案:D
6.以下代码的输出结果是( )
int num = 2;
switch (num) {
case 1: printf("A");
case 2: printf("B");
case 3: printf("C"); break;
default: printf("D");
}
A. B
B. C
C. D
D. BC
答案:D
7.以下代码的输出结果是( )
int a = 10;
switch (a) {
default: printf("Default");
case 1: printf("1");
}
A. Default1
B. Default
C. 1
D. 编译错误
答案:A
8.以下代码的输出结果是( )
int x = 5;
if (x > 3)
if (x < 10)
printf("A");
else
printf("B");
A. A
B. B
C. 无输出
D. 编译错误
答案:A
9.以下关于 if 语句的描述,正确的是( )
A. if 的条件表达式只能是布尔类型
B. if-else 语句可以没有 else
C. if 的条件表达式可以为空
D. if 的条件表达式不能包含赋值操作
答案:B
10.以下代码的输出结果是( )
int a = 0;
if (a = 1)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 不确定
答案:A
11.以下代码的输出结果是( )
int x = 1, y = 2;
if (x > 0 || y++)
printf("%d", y);
A. -1
B. 0
C. 1
D. 2
答案:D
12.以下代码的输出结果是( )
int num = 4;
switch (num) {
case 1: printf("A"); break;
case 4: printf("B");
default: printf("C");
}
A. B
B. BC
C. C
D. 无输出
答案:B
13.以下代码的输出结果是( )
int a = 5, b = 10;
if (a > 10)
printf("A");
else if (b < 20)
printf("B");
else
printf("C");
A. A
B. B
C. C
D. AB
答案:B
14.以下代码的输出结果是( )
int x = 0;
if (x = 0)
printf("True");
else
printf("False");
A. True
B. False
C. 编译错误
D. 不确定
答案:B
15.以下关于C语言中switch语句的描述,正确的是( )
A. case后面的表达式可以是变量
B. default子句可以存在多个
C. switch的条件表达式可以是浮点类型
D. case后面的值必须是整型常量表达式
答案:D
(二)判断题
1. if 语句的条件表达式可以是任意类型。( )
答案:×
2. iswitch 语句的表达式可以是字符串。( )
答案:×
3. icase 后的常量值可以重复。( )
答案:×
4. idefault 分支必须放在 switch 语句的最后。( )
答案:×
5. iif-else if 结构中的条件是按顺序判断的。( )
答案:√
6. iswitch 语句中必须包含 default 分支。( )
答案:×
7. icase 后的代码块可以为空。( )
答案:√
8. iif (x = 5) 是合法的条件表达式。( )
答案:√
9. iswitch 语句的 case 分支可以使用范围。( )
答案:×
10. break 语句在 switch 中是可选的。( )
答案:√
(三)填空题
1. 以下代码的输出结果是______。
int x = 3;
switch (x) {
case 1: printf("A"); break;
case 3: printf("B");
case 4: printf("C"); break;
}
答案:BC
2.以下代码的输出结果是______。
int x = 2;
switch (x) {
case 1: x += 1;
case 2: x += 2;
case 3: x += 3; break;
default: x += 4;
}
printf("%d", x);
答案:7
(四)应用题
1.补充代码,实现判断输入的字符是否为元音字母(a、e、i、o、u):
char c;
scanf("%c", &c);
switch (____) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
printf("元音字母");
break;
default:
printf("非元音字母");
}
答案:c
2. 补充代码,判断输入的年份是否为闰年(闰年条件:能被4整除但不能被100整除,或能被400整除):
int year;
scanf("%d", &year);
if (__________________________) {
printf("是闰年");
} else {
printf("不是闰年");
}
答案:(year % 4 == 0 && year % 100 != 0) || year % 400 == 0
3. 补充代码,根据分数(0~100)输出等级(90+为A,80+为B,70+为C,其他为D):
int score;
scanf("%d", &score);
switch (____) {
case 10:
case 9:
printf("A");
break;
case 8:
printf("B");
break;
case 7:
printf("C");
break;
default:
printf("D");
}
答案:score / 10
4. 实现以下功能,根据月份输出季节,输入月份(1~12),输出对应的季节(春:3~5,夏:6~8,秋:9~11,冬:12~2)。
答案:
#include <stdio.h>
int main() {
int month;
scanf("%d", &month);
switch (month) {
case 3: case 4: case 5:
printf("春季");
break;
case 6: case 7: case 8:
printf("夏季");
break;
case 9: case 10: case 11:
printf("秋季");
break;
case 12: case 1: case 2:
printf("冬季");
break;
default:
printf("输入错误");
}
return 0;
}
5. 实现以下功能,要求:输入两个整数和一个运算符(+、-、*、/),输出运算结果。若除数为0或运算符非法,输出错误信息。
答案:
#include <stdio.h>
int main() {
int a, b;
char op;
scanf("%d %d %c", &a, &b, &op);
switch (op) {
case '+':
printf("%d", a + b);
break;
case '-':
printf("%d", a - b);
break;
case '*':
printf("%d", a * b);
break;
case '/':
if (b != 0) {
printf("%d", a / b);
} else {
printf("除数不能为0");
}
break;
default:
printf("运算符错误");
}
return 0;
}
学科网(北京)股份有限公司
$$