内容正文:
专题4:分支结构程序设计
一、单项选择题(在每小题列出的四个备选答案中,只有一个是正确选项。)
1.以下关于if语句的说法,错误的是( )
A. if语句可以单独使用
B. if语句的条件表达式可以是任意合法的表达式
C. if语句的条件表达式结果为非0时,执行其后的语句
D. if语句的条件表达式必须用花括号括起来
2.若有int a = 5;,执行if(a > 3) printf("A"); else printf("B");,输出结果是( )
A. A
B. B
C. 无输出
D. 编译错误
3.对于if (x > 5) x++; else x--;,当x = 5时,执行后x的值是( )
A. 4
B. 5
C. 6
D. 不确定
4.若int x = 10;,则(x > 5) ? (x = 5) : (x = 15);执行后,x的值是( )
A. 5
B. 10
C. 15
D. 不确定
5.条件表达式(a > b) ? a : b,当a = 3,b = 5时,结果是( )
A. 3
B. 5
C. 0
D. 1
6.若有int x = 1, y = 2;,执行if (x > y) x = y; y = x;后,y的值是( )
A. 1
B. 2
C. 0
D. 不确定
7.以下if语句书写正确的是( )
A. if (x == 0) printf("OK");
B. if x == 0 printf("OK");
C. if (x = 0); printf("OK");
D. if (x == 0) then printf("OK");
8.当a = 1,b = 2,c = 3时,执行if (a > b) c = a; a = b; b = c;后,a、b、c的值分别是( )
A. 1,2,3
B. 2,3,3
C. 2,3,1
D. 2,3,2
9.若int a = 5, b = 3;,则(a > b) ? (a = 1) : (b = 1);执行后,a和b的值是( )
A. 5,3
B. 1,3
C. 5,1
D. 1,1
10.若int x = 2;,执行switch (x),case 1: x++; case 2: x++; case 3: x++;后,x的值是( )
A. 2
B. 3
C. 4
D. 5
11.switch语句的case后必须是( )
A. 变量
B. 常量表达式
C. 函数调用
D. 任意表达式
12.以下switch语句,当x = 3时,输出结果是( )
switch (x)
{
case 1: printf("1"); break;
case 2: printf("2"); break;
case 3:
case 4: printf("3 or 4"); break;
default: printf("other");
}
A. 1
B. 2
C. 3 or 4
D. other
13.若char ch = 'B';,执行switch (ch),case 'A': printf("A"); break; case 'B': printf("B"); case 'C': printf("C"); break; default: printf("D");,输出结果是( )
A. A
B. B
C. BC
D. BCD
14. switch语句中,default的位置( )
A. 必须在所有case之后
B. 必须在所有case之前
C. 可以在任意位置
D. 不能存在
15.若int x = 5;,执行switch (x % 3),case 0: printf("0"); break; case 1: printf("1"); break; case 2: printf("2"); break;,输出结果是( )
A. 0
B. 1
C. 2
D. 无输出
16.以下关于分支结构的说法,错误的是( )
A. if语句可以实现单分支、双分支和多分支结构
B. switch语句适合多分支且条件为常量的情况
C. if语句的条件可以是复杂的逻辑表达式
D. switch语句的case后可以是变量
17.若int a = 3, b = 5;,执行if (a > b) { printf("a大"); } else { printf("b大"); },输出结果是( )
A. a大
B. b大
C. 无输出
D. 编译错误
18.若有int x = 1, y = 2;,则(x > y) ? x++ : y++执行后,x和y的值是( )
A. 1,3
B. 2,2
C. 1,2
D. 2,3
19.若char grade = 'B';,执行switch (grade),case 'A': printf("优秀"); break; case 'B': printf("良好"); case 'C': printf("及格"); break; default: printf("不及格");,输出结果是( )
A. 良好
B. 良好及格
C. 及格
D. 不及格
20.以下代码,当a = 3时,输出结果是( )
if (a == 1)
printf("one");
else if (a == 2)
printf("two");
else if (a == 3)
printf("three");
else
printf("other");
A. one
B. two
C. three
D. other
二、阅读程序,写出运行结果。
21.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int a = 3, b = 5;
if (a > b)
if (b > 0) printf("A");
else
printf("B");
}
22.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 2;
switch (x) {
case 1:
case 2:
printf("2");
case 3:
printf("3");
break;
default:
printf("0");
}
}
23.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int a = 1, b = 2;
a = (b > a) ? (++a) : (--b);
printf("%d,%d", a, b);
}
24.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 0, y = 5;
if (x++ && (y = 10))
printf("yes");
else
printf("%d,%d", x, y);
}
25.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
char ch = 'B';
switch (ch) {
case 'A':
printf("1");
break;
case 'B':
case 'C':
printf("2");
case 'D':
printf("3");
break;
default:
printf("4");
}
}
26.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 3, y = 4;
x = (x > y) ? (y++) : (x--);
y = (x < y) ? (x++) : (y--);
printf("%d,%d", x, y);
}
27.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 5;
switch (x % 3) {
case 0:
printf("0");
break;
case 1:
printf("1");
break;
default:
printf("2");
break;
}
}
28.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int score = 60;
if (score >= 90)
printf("A");
else if (score >= 80)
printf("B");
else if (score >= 70)
printf("C");
else if (score >= 60)
printf("D");
else
printf("E");
}
三、程序填空题。
29.下列程序的功能是:判断闰年。
#include <stdio.h>
void main() {
int year;
scanf("%d", &year);
if (___①___ || (year % 4 == 0 && year % 100 != 0))
printf("是闰年");
else
printf("不是闰年");
}
30.下列程序的功能是:字符分类(字母、数字、其他)。
#include <stdio.h>
void main() {
char ch;
scanf(" %c", &ch); // 加空格跳过换行
if (___①___)
printf("字母");
else if (___②___)
printf("数字");
else
printf("其他字符");
}
学科网(北京)股份有限公司
$
专题4:分支结构程序设计
一、单项选择题(在每小题列出的四个备选答案中,只有一个是正确选项。)
1.以下关于if语句的说法,错误的是( )
A. if语句可以单独使用
B. if语句的条件表达式可以是任意合法的表达式
C. if语句的条件表达式结果为非0时,执行其后的语句
D. if语句的条件表达式必须用花括号括起来
【答案】D
2.若有int a = 5;,执行if(a > 3) printf("A"); else printf("B");,输出结果是( )
A. A
B. B
C. 无输出
D. 编译错误
【答案】A
3.对于if (x > 5) x++; else x--;,当x = 5时,执行后x的值是( )
A. 4
B. 5
C. 6
D. 不确定
【答案】A
4.若int x = 10;,则(x > 5) ? (x = 5) : (x = 15);执行后,x的值是( )
A. 5
B. 10
C. 15
D. 不确定
【答案】A
5.条件表达式(a > b) ? a : b,当a = 3,b = 5时,结果是( )
A. 3
B. 5
C. 0
D. 1
【答案】B
6.若有int x = 1, y = 2;,执行if (x > y) x = y; y = x;后,y的值是( )
A. 1
B. 2
C. 0
D. 不确定
【答案】A
7.以下if语句书写正确的是( )
A. if (x == 0) printf("OK");
B. if x == 0 printf("OK");
C. if (x = 0); printf("OK");
D. if (x == 0) then printf("OK");
【答案】A
8.当a = 1,b = 2,c = 3时,执行if (a > b) c = a; a = b; b = c;后,a、b、c的值分别是( )
A. 1,2,3
B. 2,3,3
C. 2,3,1
D. 2,3,2
【答案】B
9.若int a = 5, b = 3;,则(a > b) ? (a = 1) : (b = 1);执行后,a和b的值是( )
A. 5,3
B. 1,3
C. 5,1
D. 1,1
【答案】B
10.若int x = 2;,执行switch (x),case 1: x++; case 2: x++; case 3: x++;后,x的值是( )
A. 2
B. 3
C. 4
D. 5
【答案】C
11.switch语句的case后必须是( )
A. 变量
B. 常量表达式
C. 函数调用
D. 任意表达式
【答案】B
12.以下switch语句,当x = 3时,输出结果是( )
switch (x)
{
case 1: printf("1"); break;
case 2: printf("2"); break;
case 3:
case 4: printf("3 or 4"); break;
default: printf("other");
}
A. 1
B. 2
C. 3 or 4
D. other
【答案】C
13.若char ch = 'B';,执行switch (ch),case 'A': printf("A"); break; case 'B': printf("B"); case 'C': printf("C"); break; default: printf("D");,输出结果是( )
A. A
B. B
C. BC
D. BCD
【答案】C
14. switch语句中,default的位置( )
A. 必须在所有case之后
B. 必须在所有case之前
C. 可以在任意位置
D. 不能存在
【答案】C
15.若int x = 5;,执行switch (x % 3),case 0: printf("0"); break; case 1: printf("1"); break; case 2: printf("2"); break;,输出结果是( )
A. 0
B. 1
C. 2
D. 无输出
【答案】C
16.以下关于分支结构的说法,错误的是( )
A. if语句可以实现单分支、双分支和多分支结构
B. switch语句适合多分支且条件为常量的情况
C. if语句的条件可以是复杂的逻辑表达式
D. switch语句的case后可以是变量
【答案】D
17.若int a = 3, b = 5;,执行if (a > b) { printf("a大"); } else { printf("b大"); },输出结果是( )
A. a大
B. b大
C. 无输出
D. 编译错误
【答案】B
18.若有int x = 1, y = 2;,则(x > y) ? x++ : y++执行后,x和y的值是( )
A. 1,3
B. 2,2
C. 1,2
D. 2,3
【答案】A
19.若char grade = 'B';,执行switch (grade),case 'A': printf("优秀"); break; case 'B': printf("良好"); case 'C': printf("及格"); break; default: printf("不及格");,输出结果是( )
A. 良好
B. 良好及格
C. 及格
D. 不及格
【答案】B
20.以下代码,当a = 3时,输出结果是( )
if (a == 1)
printf("one");
else if (a == 2)
printf("two");
else if (a == 3)
printf("three");
else
printf("other");
A. one
B. two
C. three
D. other
【答案】C
二、阅读程序,写出运行结果。
21.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int a = 3, b = 5;
if (a > b)
if (b > 0) printf("A");
else
printf("B");
}
【答案】B
22.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 2;
switch (x) {
case 1:
case 2:
printf("2");
case 3:
printf("3");
break;
default:
printf("0");
}
}
【答案】23
23.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int a = 1, b = 2;
a = (b > a) ? (++a) : (--b);
printf("%d,%d", a, b);
}
【答案】2,2
24.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 0, y = 5;
if (x++ && (y = 10))
printf("yes");
else
printf("%d,%d", x, y);
}
【答案】1,5
25.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
char ch = 'B';
switch (ch) {
case 'A':
printf("1");
break;
case 'B':
case 'C':
printf("2");
case 'D':
printf("3");
break;
default:
printf("4");
}
}
【答案】23
26.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 3, y = 4;
x = (x > y) ? (y++) : (x--);
y = (x < y) ? (x++) : (y--);
printf("%d,%d", x, y);
}
【答案】3,3
27.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int x = 5;
switch (x % 3) {
case 0:
printf("0");
break;
case 1:
printf("1");
break;
default:
printf("2");
break;
}
}
【答案】2
28.下列程序的运行结果是:____________
#include <stdio.h>
void main() {
int score = 60;
if (score >= 90)
printf("A");
else if (score >= 80)
printf("B");
else if (score >= 70)
printf("C");
else if (score >= 60)
printf("D");
else
printf("E");
}
【答案】D
三、程序填空题。
29.下列程序的功能是:判断闰年。
#include <stdio.h>
void main() {
int year;
scanf("%d", &year);
if (___①___ || (year % 4 == 0 && year % 100 != 0))
printf("是闰年");
else
printf("不是闰年");
}
【答案】① year % 400 == 0
30.下列程序的功能是:字符分类(字母、数字、其他)。
#include <stdio.h>
void main() {
char ch;
scanf(" %c", &ch); // 加空格跳过换行
if (___①___)
printf("字母");
else if (___②___)
printf("数字");
else
printf("其他字符");
}
【答案】
① (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')
② ch >= '0' && ch <= '9'
学科网(北京)股份有限公司
$