内容正文:
《编程语言基础——C语言》高等教育出版社(第5版)
第二章 分支结构程序设计 章节过关卷(一)(原卷版)
考试时间:90分钟 满分:100分
姓名 班级 学号
一、单项选择题(本题共25小题,每题2分,共50分)
1、下列哪个运算符是关系运算符( )
A. && B. || C. == D. !
2、表达式 5 > 3 && 2 < 4 的值是( )
A. 0 B. 1 C. 2 D. 不确定
3、若 a = 3, b = 4,则表达式 a == b 的值是( )
A. 0 B. 1 C. 3 D. 4
4、以下哪项不是合法的逻辑运算符( )
A. & B. && C. || D. !
5、在C语言中,表示“等于”的关系运算符是( )
A. = B. == C. != D. >=
6、表达式 !(5 > 3) 的值是( )
A.0 B. 1 C. 5 D. 3
7、若有定义 int x = 0;,则表达式 x || 1 的值是( )
A. 0 B. 1 C. x D. 编译错误
8、以下if语句写法正确的是( )
A. if (a > b) then printf("ok"); B. if a > b { printf("ok"); }
C. if (a > b) printf("ok"); D. if (a > b); printf("ok");
9、执行以下代码片段,输出结果是( )
int a = 5;
if (a > 3)
printf("A");
else
printf("B");
A. A B. B C. AB D. 无输出
9、以下嵌套if语句中,else匹配的是( )
if (a > b)
if (c > d)
printf("1");
else
printf("2");
A. 外层if B. 内层if C. 两者都匹配 D. 编译错误
10、switch语句中,case标签后的常量表达式必须是( )
A. 变量 B. 浮点数 C. 整型或字符型常量 D. 字符串
11、以下switch语句中,缺少break会导致( )
A. 编译错误 B. 运行错误
C. 穿透执行下一个case D. 自动跳出switch
12、以下代码输出结果为( )
int x = 2;
switch(x) {
case 1: printf("One");
case 2: printf("Two");
case 3: printf("Three");
}
A. Two B. TwoThree C. OneTwoThree D. 无输出
13、用于实现多分支选择的语句是( )
A. For B. while C. if-else D. switch
14、以下表达式中,值为真的是( )
A. 0 && 1 B. 1 || 0 C. !1 D. 5 == 6
15、若 a = 10, b = 20,则 (a < b) ? a : b 的值是( )
A. 10 B. 20 C. 0 D. 1
16、以下哪个表达式等价于 !(a && b)( )
A. !a && !b B. !a || !b C. a || b D. a && b
18、以下代码中,当x=0时输出:( )
if (x)
printf("Yes");
else
printf("No");
A. Yes B. No C. 编译错误 D. 运行时错误
19、以下switch语句中,default的作用是( )
A. 必须存在
B. 可选,用于处理未匹配任何case的情况
C. 只能放在最后
D. 可以省略break
20、以下表达式中,优先级最高的是( )
A. == B. && C. ! D. ||
21、以下代码输出结果为( )
int a = 5, b = 10;
if (a > b || b > a)
printf("OK");
A. OK B. 无输出 C. 编译错误 D. 运行错误
22、以下哪个不能用作switch的表达式是( )
A. char c = 'A'; switch(c)... B. int i = 5; switch(i)...
C. float f = 3.14; switch(f)... D. enum {RED, GREEN}; switch(GREEN)...
23、以下代码中,if语句的条件判断依据是( )
if (a = 5)
printf("Assigned");
A. a是否等于5 B. 赋值表达式的值(5)
C. a的原始值 D. 编译错误
24、以下表达式中,结果为0的是( )
A. 5 != 5 B. 3 >= 3 C. 1 || 0 D. !0
25、以下代码片段中,最终y的值是( )
int x = 3, y;
if (x > 2)
y = 10;
else
y = 20;
A. 10 B. 20 C. 3 D. 未定义
二、多选题(本题共5小题,每题4分,共20分)
1、以下属于关系运算符的是( )
A. > B. <= C. == D. !=
【答案】ABCD
【解析】全部为标准关系运算符。
2、以下逻辑表达式中,结果为真的有( )
A. 1 && 1 B. 0 || 1 C. !0 D. 5 > 3 && 2 < 1
3、关于if语句,正确的说法是( )
A. 可以没有else部分 B. else必须紧跟if
C. if后可以跟复合语句 D. 条件表达式可以是任意类型
4、switch语句中,以下说法正确的是( )
A. case标签必须是常量 B. default可以省略
C. break可防止穿透 D. 支持浮点数作为case值
5、以下表达式中,等价于 a > b && a > c 的有( )
A. a > b && a > c B. !(a <= b || a <= c)
C. a > max(b, c) (假设max函数存在) D. a > b || a > c
三、判断题(本题共10小题,每题2分,共20分)
1、关系运算符的结果只能是0或1。( )
2、逻辑运算符的操作数必须是布尔类型。( )
3、if语句的条件表达式可以是赋值表达式。( )
4、switch语句中每个case都必须有break。( )
5、else总是与它上面最近的if配对。( )
6、逻辑与运算符 && 具有短路特性。( )
7、表达式 5 > 3 > 1 的值是1。( )
8、switch语句的表达式可以是变量。( )
9、三元运算符 ?: 可以完全替代if-else语句。( )
10、在switch中,default分支必须放在最后。( )
四、填空题(本题共5小题,每题2分,共10分)
1、在C语言中,表示“不等于”的关系运算符是 ______。
2、逻辑非运算符是 ______,它的优先级高于关系运算符。
3、在if语句中,如果条件表达式为______,则执行if后面的语句块。
4、switch语句中,为了避免“穿透”现象,应在每个case后添加 ______ 语句。
5、表达式 (a > b) ? a : b 的功能是求a和b中的 ______ 值。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
《编程语言基础——C语言》高等教育出版社(第5版)
第二章 分支结构程序设计 章节过关卷(一)(解析版)
考试时间:90分钟 满分:100分
姓名 班级 学号
一、单项选择题(本题共25小题,每题2分,共50分)
1、下列哪个运算符是关系运算符( )
A. && B. || C. == D. !
【答案】C
【解析】== 是相等比较的关系运算符;&&、||、! 是逻辑运算符。
2、表达式 5 > 3 && 2 < 4 的值是( )
A. 0 B. 1 C. 2 D. 不确定
【答案】B
【解析】两个子表达式均为真(非0),逻辑与结果为1(真)。
3、若 a = 3, b = 4,则表达式 a == b 的值是( )
A. 0 B. 1 C. 3 D. 4
【答案】A
【解析】3不等于4,关系表达式结果为假(0)。
4、以下哪项不是合法的逻辑运算符( )
A. & B. && C. || D. !
【答案】A
【解析】& 是按位与运算符,不属于逻辑运算符范畴。
5、在C语言中,表示“等于”的关系运算符是( )
A. = B. == C. != D. >=
【答案】B
【解析】= 是赋值运算符,== 才是比较相等的关系运算符。
6、表达式 !(5 > 3) 的值是( )
A.0 B. 1 C. 5 D. 3
【答案】A
【解析】5 > 3 为真(1),取反后为0。
7、若有定义 int x = 0;,则表达式 x || 1 的值是( )
A. 0 B. 1 C. x D. 编译错误
【答案】B
【解析】逻辑或运算中,只要有一个操作数为真,结果即为1。
8、以下if语句写法正确的是( )
A. if (a > b) then printf("ok"); B. if a > b { printf("ok"); }
C. if (a > b) printf("ok"); D. if (a > b); printf("ok");
【答案】C
【解析】C语言if语句语法为 if(条件) 语句;,无需then,单条语句时可以不加花括号{}。
9、执行以下代码片段,输出结果是( )
int a = 5;
if (a > 3)
printf("A");
else
printf("B");
A. A B. B C. AB D. 无输出
【答案】A
【解析】5>3成立,执行if分支,输出“A”。
9、以下嵌套if语句中,else匹配的是( )
if (a > b)
if (c > d)
printf("1");
else
printf("2");
A. 外层if B. 内层if C. 两者都匹配 D. 编译错误
【答案】B
【解析】C语言中else默认与最近的未匹配的if配对。
10、switch语句中,case标签后的常量表达式必须是( )
A. 变量 B. 浮点数 C. 整型或字符型常量 D. 字符串
【答案】C
【解析】switch-case要求case后为整型或字符型常量表达式。
11、以下switch语句中,缺少break会导致( )
A. 编译错误 B. 运行错误
C. 穿透执行下一个case D. 自动跳出switch
【答案】C
【解析】switch中若无break,会从匹配case开始顺序执行后续所有case直到遇到break或结束。
12、以下代码输出结果为( )
int x = 2;
switch(x) {
case 1: printf("One");
case 2: printf("Two");
case 3: printf("Three");
}
A. Two B. TwoThree C. OneTwoThree D. 无输出
【答案】B
【解析】x=2匹配case 2,因无break,继续执行case 3,输出“TwoThree”。
13、用于实现多分支选择的语句是( )
A. For B. while C. if-else D. switch
【答案】D
【解析】switch专为多分支设计,比多个if-else更高效清晰。
14、以下表达式中,值为真的是( )
A. 0 && 1 B. 1 || 0 C. !1 D. 5 == 6
【答案】B
【解析】逻辑或只要一个为真即结果为真。
15、若 a = 10, b = 20,则 (a < b) ? a : b 的值是( )
A. 10 B. 20 C. 0 D. 1
【答案】A
【解析】三元运算符,条件为真返回a,否则返回b。
16、以下哪个表达式等价于 !(a && b)( )
A. !a && !b B. !a || !b C. a || b D. a && b
【答案】B
【解析】德摩根定律:!(A && B) = !A || !B
18、以下代码中,当x=0时输出:( )
if (x)
printf("Yes");
else
printf("No");
A. Yes B. No C. 编译错误 D. 运行时错误
【答案】B
【解析】0视为假,执行else分支。
19、以下switch语句中,default的作用是( )
A. 必须存在
B. 可选,用于处理未匹配任何case的情况
C. 只能放在最后
D. 可以省略break
【答案】B
【解析】default是可选的,用于处理switch语句中未匹配的情况。
20、以下表达式中,优先级最高的是( )
A. == B. && C. ! D. ||
【答案】C
【解析】逻辑非 ! 优先级高于关系运算符和逻辑与/或。
21、以下代码输出结果为( )
int a = 5, b = 10;
if (a > b || b > a)
printf("OK");
A. OK B. 无输出 C. 编译错误 D. 运行错误
【答案】A
【解析】b > a 为真,整个逻辑或表达式为真。
22、以下哪个不能用作switch的表达式是( )
A. char c = 'A'; switch(c)... B. int i = 5; switch(i)...
C. float f = 3.14; switch(f)... D. enum {RED, GREEN}; switch(GREEN)...
【答案】C
【解析】switch不支持浮点类型表达式。
23、以下代码中,if语句的条件判断依据是( )
if (a = 5)
printf("Assigned");
A. a是否等于5 B. 赋值表达式的值(5)
C. a的原始值 D. 编译错误
【答案】B
【解析】a = 5 是赋值表达式,其值为5(非0),故条件为真。
24、以下表达式中,结果为0的是( )
A. 5 != 5 B. 3 >= 3 C. 1 || 0 D. !0
【答案】A
【解析】5不等于5为假,结果为0。
25、以下代码片段中,最终y的值是( )
int x = 3, y;
if (x > 2)
y = 10;
else
y = 20;
A. 10 B. 20 C. 3 D. 未定义
【答案】A
【解析】3>2成立,y被赋值为10。
二、多选题(本题共5小题,每题4分,共20分)
1、以下属于关系运算符的是( )
A. > B. <= C. == D. !=
【答案】ABCD
【解析】全部为标准关系运算符。
2、以下逻辑表达式中,结果为真的有( )
A. 1 && 1 B. 0 || 1 C. !0 D. 5 > 3 && 2 < 1
【答案】ABC
【解析】D中 2<1 为假,整体为假。
3、关于if语句,正确的说法是( )
A. 可以没有else部分 B. else必须紧跟if
C. if后可以跟复合语句 D. 条件表达式可以是任意类型
【答案】AC
【解析】B错,else可与if间隔其他语句(但通常紧接);D错,条件需为标量类型(数值/指针),且0为假,非0为真。
4、switch语句中,以下说法正确的是( )
A. case标签必须是常量 B. default可以省略
C. break可防止穿透 D. 支持浮点数作为case值
【答案】ABC
【解析】D错误,switch不支持浮点类型。
5、以下表达式中,等价于 a > b && a > c 的有( )
A. a > b && a > c B. !(a <= b || a <= c)
C. a > max(b, c) (假设max函数存在) D. a > b || a > c
【答案】ABC
【解析】B是德摩根变换;C语义等价;D是“或”,不等价。
三、判断题(本题共10小题,每题2分,共20分)
1、关系运算符的结果只能是0或1。( )
【答案】√
【解析】C标准规定关系运算结果为int类型,0或1。
2、逻辑运算符的操作数必须是布尔类型。( )
【答案】×
【解析】C语言无内置bool类型,操作数可为任意标量类型,0为假,非0为真。
3、if语句的条件表达式可以是赋值表达式。( )
【答案】√
【解析】如 if (a = 5) 合法。
4、switch语句中每个case都必须有break。( )
【答案】×
【解析】break可选,用于控制流程,避免穿透。
5、else总是与它上面最近的if配对。( )
【答案】×
【解析】else总是与它上面离它最近的未匹配的if配对。
6、逻辑与运算符 && 具有短路特性。( )
【答案】√
【解析】若左操作数为假,右操作数不再计算。
7、表达式 5 > 3 > 1 的值是1。( )
【答案】×
【解析】从左到右结合,(5>3)=1,再 1>1=0,结果为0。
8、switch语句的表达式可以是变量。( )
【答案】√
【解析】只要是整型或字符型变量即可。
9、三元运算符 ?: 可以完全替代if-else语句。( )
【答案】×
【解析】仅适用于简单赋值或返回值场景,复杂语句仍需if-else。
10、在switch中,default分支必须放在最后。( )
【答案】×
【解析】default位置灵活,但习惯放末尾。
四、填空题(本题共5小题,每题2分,共10分)
1、在C语言中,表示“不等于”的关系运算符是 ______。
【答案】!=
2、逻辑非运算符是 ______,它的优先级高于关系运算符。
【答案】!
3、在if语句中,如果条件表达式为______,则执行if后面的语句块。
【答案】非零值(或“真”)
4、switch语句中,为了避免“穿透”现象,应在每个case后添加 ______ 语句。
【答案】break
5、表达式 (a > b) ? a : b 的功能是求a和b中的 ______ 值。
【答案】较大(或最大值)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$