内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第4章的第17练,内容涵盖第4章选择结构程序设计的4.3.2~4.3.3 if 语句的嵌套、条件运算符。
《C语言程序设计》(电子工业出版社)一课一练 第17练
第4章 选择结构程序设计
4.3.2~4.3.3 if 语句的嵌套、条件运算符
1、 单项选择题(本题共4小题)
1、对于代码片段if(a>0) if(b>1) printf("A"); else printf("B");,其中的 else 与哪个 if 配对( )
A. 第一个 if
B. 第二个 if
C. 与两个 if 都配对
D. 无配对关系
2、执行语句int a=5,b=3; int c = a>b ? a : b;,变量 c 的值是( )
A. 5
B. 3
C. 1
D. 0
3、条件运算符的结合方向是( )
A. 自左向右
B. 自右向左
C. 无固定结合方向
D. 取决于表达式的类型
4、执行以下代码后,输出结果是( )
int a=2;
if(a>0)
if(a>1) printf("Yes");
else printf("No");
A. Yes
B. No
C. 无输出
D. 编译错误
2、 判断题(本题共3题)
1、在 if 语句嵌套中,else 可以与任意位置的 if 配对,不受代码缩进的影响。( )
2、条件运算符 "?:" 是 C 语言中唯一的三目运算符,需要三个运算对象参与运算。( )
3、条件表达式的运算结果只能是整数类型,不能是字符或实型。( )
3、 填空题(本题共2题)
1、在 if 语句的嵌套结构中,else 的配对规则是____,即与前面最近的、未被配对的 if 语句绑定。
2、条件表达式的语法格式为:表达式 1 ? ____ : ____,当表达式 1 为真时取前者的值,为假时取后者的值。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int num = 75;
char grade;
if(num >= 90)
grade = 'A';
else if(num >= 80)
grade = 'B';
else if(num >= 60)
grade = 'C';
else
grade = 'D';
printf("成绩等级:%c", grade);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练的第4章的第17练,内容涵盖第4章选择结构程序设计的4.3.2~4.3.3 if 语句的嵌套、条件运算符。
《C语言程序设计》(电子工业出版社)一课一练 第17练
第4章 选择结构程序设计
4.3.2~4.3.3 if 语句的嵌套、条件运算符
1、 单项选择题(本题共4小题)
1、对于代码片段if(a>0) if(b>1) printf("A"); else printf("B");,其中的 else 与哪个 if 配对( )
A. 第一个 if
B. 第二个 if
C. 与两个 if 都配对
D. 无配对关系
【答案】B
【解析】if 语句嵌套中 else 遵循 "就近配对" 原则,会与前面最近的、未配对的 if 语句绑定,因此该 else 和第二个 if 配对。
2、执行语句int a=5,b=3; int c = a>b ? a : b;,变量 c 的值是( )
A. 5
B. 3
C. 1
D. 0
【答案】A
【解析】条件运算符?:的运算规则是:表达式 1 为真时取表达式 2 的值,为假时取表达式 3 的值。a>b结果为真,因此 c 取 a 的值 5。
3、条件运算符的结合方向是( )
A. 自左向右
B. 自右向左
C. 无固定结合方向
D. 取决于表达式的类型
【答案】B
【解析】C 语言规定条件运算符的结合方向为自右至左,例如表达式a>b?a:c>d?c:d等价于a>b?a:(c>d?c:d)。
4、执行以下代码后,输出结果是( )
int a=2;
if(a>0)
if(a>1) printf("Yes");
else printf("No");
A. Yes
B. No
C. 无输出
D. 编译错误
【答案】A
【解析】a=2 满足a>0,进入内层 if 判断,a>1也成立,因此执行内层 if 的分支语句,输出 "Yes"。
2、 判断题(本题共3题)
1、在 if 语句嵌套中,else 可以与任意位置的 if 配对,不受代码缩进的影响。( )
【答案】×
【解析】else 的配对由语法规则决定,遵循 "就近原则",与代码的缩进格式无关,缩进仅用于提升代码可读性,不影响语法逻辑。
2、条件运算符 "?:" 是 C 语言中唯一的三目运算符,需要三个运算对象参与运算。( )
【答案】√
【解析】三目运算符要求同时有三个运算对象,C 语言中仅提供?:这一个三目运算符,用于实现简单的二选一逻辑。
3、条件表达式的运算结果只能是整数类型,不能是字符或实型。( )
【答案】×
【解析】条件表达式的结果类型由表达式 2 和表达式 3 的类型决定,可以是字符、实型等任意合法的 C 语言数据类型,例如'a'<'b'?3.5:2.1的结果是实型 3.5。
3、 填空题(本题共2题)
1、在 if 语句的嵌套结构中,else 的配对规则是____,即与前面最近的、未被配对的 if 语句绑定。
【答案】就近原则
【解析】这一规则是 C 语言语法的固定要求,避免因代码缩进差异导致逻辑混淆。即使代码缩进让 else 看起来和外层 if 对齐,编译器仍会按就近原则处理。
2、条件表达式的语法格式为:表达式 1 ? ____ : ____,当表达式 1 为真时取前者的值,为假时取后者的值。
【答案】表达式 2;表达式 3
【解析】这是条件运算符的标准语法结构,其中表达式 1 是判断条件,表达式 2 和 3 是二选一的结果项。该结构可以替代简单的双分支 if…else 语句,让代码更简洁。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int num = 75;
char grade;
if(num >= 90)
grade = 'A';
else if(num >= 80)
grade = 'B';
else if(num >= 60)
grade = 'C';
else
grade = 'D';
printf("成绩等级:%c", grade);
return 0;
}
【答案】
程序运行结果:
成绩等级:C
【解析】
程序通过 if 嵌套的多分支结构判断成绩等级:num=75 不满足 >=90 和 >=80 的条件,但满足 >=60 的条件,因此将 grade 赋值为 'C'。最后通过 printf 语句输出该等级,得到对应结果。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$