内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第8练,内容是3.1 关系运算符与逻辑运算符。
《C语言》(第五版)一课一练 第8练
3.1 关系运算符与逻辑运算符
一、单选题
1. 以下关于C语言关系运算符的叙述,正确的是( )
A. 关系表达式的值是一个整数,为1表示真,为0表示假
B. 关系运算符的优先级高于算术运算符
C. 关系运算符中<=的优先级低于<
D. C语言中可以用<>表示不等于
2. 设 int a=3, b=2; 则表达式 a < b 的值为( )
A. true
B. 1
C. -1
D. 0
3. 设 int a=5, b=3, c=1; 则表达式 a > b && b > c 的值为( )
A. 0
B. 1
C. 不确定
D. 3
4. 设 int a=1, b=0; 执行表达式 a++ || b++ 后,a和b的值分别为( )
A. 2和0
B. 2和1
C. 1和1
D. 1和0
5. 设 int x=2, y=3; 则表达式 x > 1 && y < 4 || x == 0 的值为( )
A. 0
B. 2
C. 1
D. 3
6. 设 int a=3, b=4, c=5; 则表达式 a + b > c && b == c || a < c 的值为( )
A. 0
B. 不确定
C. 3
D. 1
7. 设 int a=1, b=2; 执行表达式 !a && ++b 后,b 的值为( )
A. 3
B. 1
C. 2
D. 0
二、简答题
8. 以下程序的运行结果是【 】。
#include <stdio.h>
int main()
{
int a = 3, b = 4, c = 5;
int x, y;
x = a + b > c && b != c;
y = a < b || c < b;
printf("%d %d
", x, y);
return 0;
}
三、案例分析题
9. 以下程序的功能是:输入一个整数,判断它是否同时满足大于0同时小于100。请填空。
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
if (【1】)
printf("%d在0到100之间
", n);
else
printf("%d不在0到100之间
", n);
return 0;
}
四、综合应用题
10. 编写一个C程序:从键盘输入一个年份,判断该年份是否为闰年。闰年的判断条件为:能被4整除但不能被100整除的年份是闰年,能被400整除的年份也是闰年。输出判断结果。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第8练,内容是3.1 关系运算符与逻辑运算符。
《C语言》(第五版)一课一练 第8练
3.1 关系运算符与逻辑运算符
一、单选题
1. 以下关于C语言关系运算符的叙述,正确的是( )
A. 关系表达式的值是一个整数,为1表示真,为0表示假
B. 关系运算符的优先级高于算术运算符
C. 关系运算符中<=的优先级低于<
D. C语言中可以用<>表示不等于
【答案】A
【解析】C语言中关系表达式的值是整型,真为1假为0。关系运算符的优先级低于算术运算符,所以B选项错误。<=与<同属一个优先级层次,C选项错误。不等于运算符是!=,D选项错误。
2. 设 int a=3, b=2; 则表达式 a < b 的值为( )
A. true
B. 1
C. -1
D. 0
【答案】D
【解析】a的值为3,b的值为2,3<2不成立,因此关系表达式的值为0。C语言中没有true和false关键字(C99之前),关系表达式的值是0和1,不会是-1。因此正确答案是D。
3. 设 int a=5, b=3, c=1; 则表达式 a > b && b > c 的值为( )
A. 0
B. 1
C. 不确定
D. 3
【答案】B
【解析】逻辑与运算符&&要求两边的条件都为真时结果才为1。a>b即5>3成立值为1,b>c即3>1成立值为1,1&&1的结果为1。逻辑表达式的结果不会是3,也不会是不确定。因此答案为C。
4. 设 int a=1, b=0; 执行表达式 a++ || b++ 后,a和b的值分别为( )
A. 2和0
B. 2和1
C. 1和1
D. 1和0
【答案】A
【解析】||运算存在短路特性:当左边表达式的值为非0时,右边不再计算。a++先取a的原值1参与运算,结果为真,因此b++不会被执行。运算后a自增为2,b保持0不变。所以a为2、b为0。
5. 设 int x=2, y=3; 则表达式 x > 1 && y < 4 || x == 0 的值为( )
A. 0
B. 2
C. 1
D. 3
【答案】C
【解析】逻辑与&&优先级高于||,先计算x>1&&y<4。x>1即2>1成立,y<4即3<4成立,两者逻辑与结果为1。1||0的结果为1。逻辑运算结果为0和1,不会是2和3。因此答案为A。
6. 设 int a=3, b=4, c=5; 则表达式 a + b > c && b == c || a < c 的值为( )
A. 0
B. 不确定
C. 3
D. 1
【答案】D
【解析】先算算术运算a+b得7,再比较7>5得1。b==c即4==5得0。1&&0得0。最后0||a<c,a<c即3<5得1,0||1得1。整个表达式的值为1。注意运算顺序是先算术再关系再逻辑与最后逻辑与。
7. 设 int a=1, b=2; 执行表达式 !a && ++b 后,b 的值为( )
A. 3
B. 1
C. 2
D. 0
【答案】C
【解析】!a即对a取非,a为1时!a为0。逻辑与&&具有短路特性,当左边为0时右边不再计算。0与任何值做逻辑与都为0,因此++b不会被执行,b的值保持2不变。
二、简答题
8. 以下程序的运行结果是【 】。
#include <stdio.h>
int main()
{
int a = 3, b = 4, c = 5;
int x, y;
x = a + b > c && b != c;
y = a < b || c < b;
printf("%d %d
", x, y);
return 0;
}
【答案】1 1
【解析】先计算x:a+b得7,7>c即7>5为1;b!=c即4!=5为1;1&&1得1,所以x=1。再计算y:a<b即3<4为1,||左边为1则整体为1,c<b不再计算,所以y=1。输出1 1。
三、案例分析题
9. 以下程序的功能是:输入一个整数,判断它是否同时满足大于0同时小于100。请填空。
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
if (【1】)
printf("%d在0到100之间
", n);
else
printf("%d不在0到100之间
", n);
return 0;
}
【答案】【1】n > 0 && n < 100
【解析】题目要求判断n同时大于0同时小于100,需要用逻辑与运算符&&连接两个关系表达式。n>0为第一个条件,n<100为第二个条件,两者用&&连接表示同时满足。填写n>0&&n<100即可。
四、综合应用题
10. 编写一个C程序:从键盘输入一个年份,判断该年份是否为闰年。闰年的判断条件为:能被4整除但不能被100整除的年份是闰年,能被400整除的年份也是闰年。输出判断结果。
【答案】#include <stdio.h>
int main()
{
int year;
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
printf("%d是闰年
", year);
else
printf("%d不是闰年
", year);
return 0;
}
【解析】闰年有两个条件:能被4整除同时不能被100整除,亦能被400整除。前者用year%4==0&&year%100!=0表示,后者用year%400==0表示。两个条件之间用||连接,因为满足其中任一条件即为闰年。注意每个条件需要用括号明确优先级。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$