内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元4的第13练,内容涵盖单元4“身高体型判定系统”的决策判定4.2.3 逻辑运算符与逻辑表达式。
《C语言程序设计》(高教版第2版)一课一练 第13练
单元4 “身高体型判定系统”的决策判定
4.2.3 逻辑运算符与逻辑表达式
1、 单项选择题(本题共5小题)
1、在 C 语言中,代表逻辑 “与” 运算的运算符是( )
A. &
B. &&
C. and
D. |
【答案】B
【解析】&&是 C 语言的逻辑与运算符,用于表示 “两者同时满足” 的复合条件;&是按位与运算符,and不是 C 语言合法运算符,|是按位或运算符,选项 B 正确。
2、执行下列代码后,输出结果是( )
int a=0, b=1;
a++ && b++;
printf("a=%d, b=%d
", a, b);
A. a=1, b=2
B. a=0, b=1
C. a=1, b=1
D. a=0, b=2
【答案】C
【解析】逻辑与&&存在短路现象:左端表达式a初始值为 0(假),此时直接判定整个表达式为假,不再执行右端的b++;a++会先取值再自增,因此a最终值为 1,b保持初始值 1,选项 C 正确。
3、下列表达式的运算顺序,符合 C 语言运算符优先级规则的是( )
A. !5 + 3 > 2 && 4 < 6 → !5 → +3 → >2 → <6 → &&
B. 5>3 && 8<4 - !10 → && → 5>3 → !10 → - → 8<4
C. 3+5 || 2>7 → || → 3+5 → 2>7
D. !a && b → && → !a → b
【答案】A
【解析】C 语言运算符优先级为:!(非)> 算术运算符 > 关系运算符 >&&(与)>||(或)。选项 A 严格遵循该顺序,其他选项均颠倒了优先级,选项 A 正确。
4、已知int a=3, b=0,则逻辑表达式a || b的结果是( )
A. 0
B. 1
C. 3
D. 不确定
【答案】B
【解析】逻辑或||的规则是 “只要一个操作数为真(非 0),结果就为真”。a=3是非 0 值,判定为真,因此整个表达式结果为 1(C 语言用 1 表示真),选项 B 正确。
5、逻辑或表达式(||)的短路现象是指( )
A. 左端表达式为假时,不计算右端表达式
B. 左端表达式为真时,不计算右端表达式
C. 右端表达式为假时,不计算左端表达式
D. 右端表达式为真时,不计算左端表达式
【答案】B
【解析】逻辑或||的短路规则:当左端表达式为真时,无论右端表达式真假,整个结果都为真,因此无需计算右端表达式,选项 B 正确。
2、 判断题(本题共4题)
1、C 语言中逻辑表达式的运算结果只能是 0 或 1,其中 0 代表假,1 代表真。( )
【答案】√
【解析】根据知识点,C 语言用数值 0 表示假,1 表示真,所有逻辑表达式的最终结果均为这两个值之一。
2、逻辑运算符的优先级顺序为:!(非)>||(或)>&&(与)。( )
【答案】×
【解析】正确的优先级顺序是!(非)>&&(与)>||(或),逻辑与的优先级高于逻辑或。
3、执行表达式5>3 || 8<4时,因为左端5>3为真,右端8<4会被跳过不执行。( )
【答案】√
【解析】逻辑或存在短路现象,左端为真时直接判定整个表达式为真,不再计算右端表达式,符合短路规则。
4、在 C 语言中,只有当变量值为 1 时,才会被判定为 “真”,其他数值都代表 “假”。( )
【答案】×
【解析】C 语言判断真假的规则是 “非 0 即真”,任何非 0 数值(包括负数、大于 1 的正数)都代表真,只有 0 代表假。
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于判断用户输入的日期是否符合藕塘幼儿园入园条件:出生日期在 2013-09-01 至 2014-08-31 之间(用整数表示为 20130901~20140831),且是本辖区儿童(输入 1 表示是,0 表示否),请补充缺失代码;
#include <stdio.h>
int main() {
int birth_date, is_local;
printf("请输入出生日期(格式:YYYYMMDD,如20130901)、是否为本辖区儿童(1是/0否)");
scanf("%d %d", (1) , &is_local);
// 判断日期是否在范围内且是本辖区
if((2) && is_local == 1){
printf("符合入园条件
");
} else {
// 判断日期不在范围内的情况
if((3) ){
printf("出生日期不符合要求
");
} else {
printf("非本辖区儿童,不符合入园条件
");
}
}
return 0;
}
【答案】
(1)&birth_date
(2)birth_date >= 20130901 && birth_date <= 20140831
(3)birth_date < 20130901 || birth_date > 20140831;
【解析】
(1)scanf输入整数时需要传入变量的内存地址,&birth_date获取出生日期变量的地址,确保输入值正确存入变量;
(2)用逻辑与&&连接两个条件,既要求出生日期在指定区间内,又要求是本辖区儿童,符合入园的核心条件;
(3)用逻辑或||表示 “日期早于 20130901” 或 “日期晚于 20140831”,覆盖所有出生日期不符合要求的情况,逻辑清晰。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(高教版第2版)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(高教版第2版)一课一练的单元4的第13练,内容涵盖单元4“身高体型判定系统”的决策判定4.2.3 逻辑运算符与逻辑表达式。
《C语言程序设计》(高教版第2版)一课一练 第13练
单元4 “身高体型判定系统”的决策判定
4.2.3 逻辑运算符与逻辑表达式
1、 单项选择题(本题共5小题)
1、在 C 语言中,代表逻辑 “与” 运算的运算符是( )
A. &
B. &&
C. and
D. |
2、执行下列代码后,输出结果是( )
int a=0, b=1;
a++ && b++;
printf("a=%d, b=%d
", a, b);
A. a=1, b=2
B. a=0, b=1
C. a=1, b=1
D. a=0, b=2
3、下列表达式的运算顺序,符合 C 语言运算符优先级规则的是( )
A. !5 + 3 > 2 && 4 < 6 → !5 → +3 → >2 → <6 → &&
B. 5>3 && 8<4 - !10 → && → 5>3 → !10 → - → 8<4
C. 3+5 || 2>7 → || → 3+5 → 2>7
D. !a && b → && → !a → b
4、已知int a=3, b=0,则逻辑表达式a || b的结果是( )
A. 0
B. 1
C. 3
D. 不确定
5、逻辑或表达式(||)的短路现象是指( )
A. 左端表达式为假时,不计算右端表达式
B. 左端表达式为真时,不计算右端表达式
C. 右端表达式为假时,不计算左端表达式
D. 右端表达式为真时,不计算左端表达式
2、 判断题(本题共4题)
1、C 语言中逻辑表达式的运算结果只能是 0 或 1,其中 0 代表假,1 代表真。( )
2、逻辑运算符的优先级顺序为:!(非)>||(或)>&&(与)。( )
3、执行表达式5>3 || 8<4时,因为左端5>3为真,右端8<4会被跳过不执行。( )
4、在 C 语言中,只有当变量值为 1 时,才会被判定为 “真”,其他数值都代表 “假”。( )
3、 程序填空题(本题共1题)
1、题目描述:以下程序用于判断用户输入的日期是否符合藕塘幼儿园入园条件:出生日期在 2013-09-01 至 2014-08-31 之间(用整数表示为 20130901~20140831),且是本辖区儿童(输入 1 表示是,0 表示否),请补充缺失代码;
#include <stdio.h>
int main() {
int birth_date, is_local;
printf("请输入出生日期(格式:YYYYMMDD,如20130901)、是否为本辖区儿童(1是/0否)");
scanf("%d %d", (1) , &is_local);
// 判断日期是否在范围内且是本辖区
if((2) && is_local == 1){
printf("符合入园条件
");
} else {
// 判断日期不在范围内的情况
if((3) ){
printf("出生日期不符合要求
");
} else {
printf("非本辖区儿童,不符合入园条件
");
}
}
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$