内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元4的第14练,内容涵盖单元4“身高体型判定系统”的决策判定的4.2.4~4.2.5 if语句的嵌套与条件运算符。
《C语言程序设计》(高教版第2版)一课一练 第14练
单元4 “身高体型判定系统”的决策判定
4.2.4~4.2.5 if语句的嵌套与条件运算符
1、 单项选择题(本题共5小题)
1、已知int a=3,b=5;,执行表达式c = a < b ? a+1 : b-1;后,变量c的值是( )
A. 3
B. 4
C. 5
D. 0
2、已知int x=1,y=2,z=3;,执行表达式x>y?x:y>z?y:z;后,结果是( )
A. 1
B. 2
C. 3
D. 0
3、执行语句int a=2,b=3; printf("%d", a = a>b?a:b);后,输出结果是( )
A. 2
B. 3
C. 0
D. 1
4、以下 if 嵌套代码中,else默认与( )if配对。
if(a>0)
if(b>0) printf("A");
else printf("B");
A. 第一个if
B. 第二个if
C. 所有if
D. 不与任何if配对
5、以下代码中,能实现 “若a大于b则c=a,否则c=b” 的条件表达式是( )
A. c = a>b?b:a
B. c = a>b?a:b
C. c = a<b?a:b
D. c = a>=b?b:a
2、 判断题(本题共4题)
1、条件运算符是 C 语言中的双目运算符,仅需要两个操作数即可使用。( )
2、在 if 语句的嵌套中,使用大括号{}可以改变else的默认配对规则。( )
3、执行条件表达式exp1?exp2:exp3时,无论exp1的真假,exp2和exp3都会被计算。( )
4、条件运算符的优先级高于逻辑运算符,低于赋值运算符。( )
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于输入两个整数,通过条件表达式求较大值,再用 if 嵌套判断两数的大小关系,最后用条件表达式输出结果,需补充缺失代码使程序正常运行。
#include <stdio.h>
int main() {
int a, b, max_num;
printf("请输入第一个整数:");
scanf("%d", &a);
printf("请输入第二个整数:");
scanf("%d", &b);
// 用条件表达式求两数中的较大值
max_num = (1)____;
printf("较大的数是:%d
", max_num);
// 用if嵌套判断两数的大小关系
if(a != b){
if(a > b){
printf("第一个数大于第二个数
");
} else {
printf("(2)____
");
}
} else {
printf("(3)____
");
}
// 用条件表达式直接输出两数的大小关系(右结合特性)
printf("大小关系总结:%s
", a > b ? "(4)____" : a < b ? "第二个数更大" : "两数相等");
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元4的第14练,内容涵盖单元4“身高体型判定系统”的决策判定的4.2.4~4.2.5 if语句的嵌套与条件运算符。
《C语言程序设计》(高教版第2版)一课一练 第14练
单元4 “身高体型判定系统”的决策判定
4.2.4~4.2.5 if语句的嵌套与条件运算符
1、 单项选择题(本题共5小题)
1、已知int a=3,b=5;,执行表达式c = a < b ? a+1 : b-1;后,变量c的值是( )
A. 3
B. 4
C. 5
D. 0
【答案】B
【解析】根据条件表达式运算规则,先判断a < b,该表达式为真(非 0),因此取a+1的值,即3+1=4,最终c的值为 4。
2、已知int x=1,y=2,z=3;,执行表达式x>y?x:y>z?y:z;后,结果是( )
A. 1
B. 2
C. 3
D. 0
【答案】C
【解析】条件运算符为右结合,先计算右侧嵌套的条件表达式y>z?y:z,y>z为假,取z=3;再计算x>y?x:3,x>y为假,最终取 3。
3、执行语句int a=2,b=3; printf("%d", a = a>b?a:b);后,输出结果是( )
A. 2
B. 3
C. 0
D. 1
【答案】B
【解析】条件运算符优先级高于赋值运算符,先计算a>b?a:b,a>b为假,取b=3;再将 3 赋值给a,因此输出a的值为 3。
4、以下 if 嵌套代码中,else默认与( )if配对。
if(a>0)
if(b>0) printf("A");
else printf("B");
A. 第一个if
B. 第二个if
C. 所有if
D. 不与任何if配对
【答案】B
【解析】C 语言中,无大括号限定范围时,else默认与最近的未配对if配对,此处最近的未配对if是判断b>0的内层if。
5、以下代码中,能实现 “若a大于b则c=a,否则c=b” 的条件表达式是( )
A. c = a>b?b:a
B. c = a>b?a:b
C. c = a<b?a:b
D. c = a>=b?b:a
【答案】B
【解析】条件表达式规则为:表达式 1 为真时取表达式 2 的值,为假时取表达式 3 的值。a>b为真时取a,为假时取b,正好符合需求。
2、 判断题(本题共4题)
1、条件运算符是 C 语言中的双目运算符,仅需要两个操作数即可使用。( )
【答案】×
【解析】条件运算符是 C 语言中唯一的三目运算符,必须同时使用?和:,需要三个表达式作为操作数,缺少任意一个都会导致语法错误。
2、在 if 语句的嵌套中,使用大括号{}可以改变else的默认配对规则。( )
【答案】√
【解析】大括号能将代码块视为一个整体,明确划分外层if和内嵌if的边界,从而指定else与外层if配对,覆盖默认的就近配对规则。
3、执行条件表达式exp1?exp2:exp3时,无论exp1的真假,exp2和exp3都会被计算。( )
【答案】×
【解析】若exp1为真,仅计算exp2并将其作为表达式结果;若exp1为假,仅计算exp3,不会同时计算两个表达式。
4、条件运算符的优先级高于逻辑运算符,低于赋值运算符。( )
【答案】×
【解析】根据 C 语言运算符优先级,条件运算符优先级高于赋值运算符,低于逻辑运算符,题目表述的优先级顺序错误。
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于输入两个整数,通过条件表达式求较大值,再用 if 嵌套判断两数的大小关系,最后用条件表达式输出结果,需补充缺失代码使程序正常运行。
#include <stdio.h>
int main() {
int a, b, max_num;
printf("请输入第一个整数:");
scanf("%d", &a);
printf("请输入第二个整数:");
scanf("%d", &b);
// 用条件表达式求两数中的较大值
max_num = (1)____;
printf("较大的数是:%d
", max_num);
// 用if嵌套判断两数的大小关系
if(a != b){
if(a > b){
printf("第一个数大于第二个数
");
} else {
printf("(2)____
");
}
} else {
printf("(3)____
");
}
// 用条件表达式直接输出两数的大小关系(右结合特性)
printf("大小关系总结:%s
", a > b ? "(4)____" : a < b ? "第二个数更大" : "两数相等");
return 0;
}
【答案】
(1) a > b ? a : b
(2) 第二个数大于第一个数
(3) 两个数相等
(4) 第一个数更大
【解析】
(1)此处使用条件表达式实现最大值计算,符合 “表达式 1 为真取表达式 2,为假取表达式 3” 的运算规则,紧扣条件运算符核心知识点。
(2)在 if 嵌套的 else 分支中,由于已排除a>b和a==b的情况,逻辑上必然是第二个数更大,补充后使程序输出完整。
(3)当a==b时,输出对应提示,匹配 if 嵌套的最外层 else 分支逻辑,确保判断无遗漏。
(4)条件运算符为右结合,此处对应a>b为真时的输出内容,补充后完整实现大小关系的判断输出,体现条件运算符的右结合特性。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$