内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第9练,内容是3.1 关系表达式和逻辑表达式。
《编程语言基础——C语言》(第5版)一课一练 第9练
3.1 关系表达式和逻辑表达式
一、单选题
1. C语言中,以下全部属于关系运算符的一组是( )
A. &&、||、!
B. <、>=、==
C. +、-、*
D. =、+=、-=
2. 在C语言中,关系表达式5>3的值是( )
A. 5
B. 3
C. 1
D. 0
3. C语言中三个逻辑运算符!、&&、||的优先级从高到低排列正确的是( )
A. ! > && > ||
B. || > && > !
C. && > || > !
D. ! > || > &&
4. 设a=2, b=3, c=5,表达式a+b==c || b<a的值是( )
A. 语法错误
B. 0
C. 不确定
D. 1
5. 在C语言的逻辑运算中,以下说法正确的是( )
A. 在逻辑运算中,非0的值被视为真,0被视为假
B. !运算符的优先级低于算术运算符
C. 逻辑运算符!的优先级低于关系运算符
D. 逻辑运算符不可以连接整型表达式
6. 表达式a!=b || x==y的等价形式是( )
A. (a!=b || x)==y
B. (a!=b) || (x==y)
C. a!=(b || x)==y
D. a!= (b || x==y)
7. 设int a=3, b=0, c=-1; 则表达式a && b || c的值为( )
A. 3
B. 0
C. 1
D. -1
二、试题
8. 以下程序的运行结果是【··】。
#include <stdio.h>
int main()
{
int a = 5, b = 3, c = 8, d = 2;
int r1, r2, r3;
r1 = (a > b) && (c > d);
r2 = (a < b) || (c < d);
r3 = !(a == b);
printf("%d,%d,%d
", r1, r2, r3);
return 0;
}
三、试题
9. 以下程序的功能是输入一个整数,判断它是否在1到100之间(含边界),若是输出"YES",否则输出"NO"。请填空。
#include <stdio.h>
int main()
{
int x;
printf("请输入一个整数:");
scanf("%d", &x);
if(【1】)
printf("YES
");
else
printf("NO
");
return 0;
}
四、试题
10. 阅读以下程序,该程序的功能是输入一个年份,判断该年份是否为闰年。闰年的条件是能被4整除同时不能被100整除,也能被400整除。程序中有两处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。
L1 #include <stdio.h>
L2 int main()
L3 {
L4 int year;
L5 printf("请输入年份:");
L6 scanf("%d", &year);
L7 if(year%4=0 && year%100!=0 || year%400=0)
L8 printf("%d是闰年
", year);
L9 else
L10 printf("%d不是闰年
", year);
L11 return 0;
L12 }
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第9练,内容是3.1 关系表达式和逻辑表达式。
《编程语言基础——C语言》(第5版)一课一练 第9练
3.1 关系表达式和逻辑表达式
一、单选题
1. C语言中,以下全部属于关系运算符的一组是( )
A. &&、||、!
B. <、>=、==
C. +、-、*
D. =、+=、-=
【答案】B
【解析】C语言的关系运算符有6种:<、<=、>、>=、==、!=。B选项全部是关系运算符。A选项是逻辑运算符,C是算术运算符,D是赋值运算符。
2. 在C语言中,关系表达式5>3的值是( )
A. 5
B. 3
C. 1
D. 0
【答案】C
【解析】C语言中关系表达式的值:如果条件成立(真),值为1;如果条件不成立(假),值为0。5>3成立,因此值为1。
3. C语言中三个逻辑运算符!、&&、||的优先级从高到低排列正确的是( )
A. ! > && > ||
B. || > && > !
C. && > || > !
D. ! > || > &&
【答案】A
【解析】逻辑运算符优先级:! 最高,&& 次之,|| 最低。
4. 设a=2, b=3, c=5,表达式a+b==c || b<a的值是( )
A. 语法错误
B. 0
C. 不确定
D. 1
【答案】D
【解析】先计算算术:a+b=5。表达式变为 5==c || b<a → 5==5 || 3<2 → 1 || 0 = 1。算术运算符优先级高于关系运算符,关系运算符优先级高于逻辑运算符。
5. 在C语言的逻辑运算中,以下说法正确的是( )
A. 在逻辑运算中,非0的值被视为真,0被视为假
B. !运算符的优先级低于算术运算符
C. 逻辑运算符!的优先级低于关系运算符
D. 逻辑运算符不可以连接整型表达式
【答案】A
【解析】C语言规定逻辑运算中以非0为真、0为假。B错误,!的优先级高于算术运算符;C错误,!的优先级高于关系运算符;D错误,逻辑运算符可以连接任何类型的表达式。
6. 表达式a!=b || x==y的等价形式是( )
A. (a!=b || x)==y
B. (a!=b) || (x==y)
C. a!=(b || x)==y
D. a!= (b || x==y)
【答案】B
【解析】关系运算符优先级高于 || 运算符,所以!=和==先计算,||最后计算。原表达式等价于(a!=b) || (x==y)。
7. 设int a=3, b=0, c=-1; 则表达式a && b || c的值为( )
A. 3
B. 0
C. 1
D. -1
【答案】C
【解析】a=3(非0,真),b=0(假),c=-1(非0,真)。先算a && b → 3 && 0 = 0(假);再算0 || c → 0 || -1 = 1(真)。逻辑表达式的结果为0与1两种,非原操作数的值。
二、试题
8. 以下程序的运行结果是【··】。
#include <stdio.h>
int main()
{
int a = 5, b = 3, c = 8, d = 2;
int r1, r2, r3;
r1 = (a > b) && (c > d);
r2 = (a < b) || (c < d);
r3 = !(a == b);
printf("%d,%d,%d
", r1, r2, r3);
return 0;
}
【答案】1,0,1
【解析】r1: (5>3)为1, (8>2)为1, 1&&1=1。r2: (5<3)为0, (8<2)为0, 0||0=0。r3: (5==3)为0, !0=1。输出"1,0,1"。
三、试题
9. 以下程序的功能是输入一个整数,判断它是否在1到100之间(含边界),若是输出"YES",否则输出"NO"。请填空。
#include <stdio.h>
int main()
{
int x;
printf("请输入一个整数:");
scanf("%d", &x);
if(【1】)
printf("YES
");
else
printf("NO
");
return 0;
}
【答案】【1】x>=1 && x<=100
【解析】判断x是否在[1,100]范围内,需要用&&连接两个关系表达式:x>=1(大于等于1)同时x<=100(小于等于100),填x>=1 && x<=100。
四、试题
10. 阅读以下程序,该程序的功能是输入一个年份,判断该年份是否为闰年。闰年的条件是能被4整除同时不能被100整除,也能被400整除。程序中有两处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。
L1 #include <stdio.h>
L2 int main()
L3 {
L4 int year;
L5 printf("请输入年份:");
L6 scanf("%d", &year);
L7 if(year%4=0 && year%100!=0 || year%400=0)
L8 printf("%d是闰年
", year);
L9 else
L10 printf("%d不是闰年
", year);
L11 return 0;
L12 }
【答案】【1】L7: year%4=0 → 修改为 year%4==0
【2】L7: year%400=0 → 修改为 year%400==0
【解析】两处错误均为将关系运算符==误写为赋值运算符=。第一处 year%4=0 本意是判断year%4是否等于0,应使用==而非=;第二处 year%400=0 同理。赋值运算符=在if条件中会被视为赋值表达式的值(0),导致逻辑判断错误。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$