内容正文:
4.1、4.2节:关系运算符及其表达式、逻辑运算符及其表达式
一、单项选择题
1.下列选项中,不属于 C 语言关系运算符的是( )
A. > B. >= C. == D. &&
【答案】D
【解析】 && 是逻辑与运算符,其余选项均为关系运算符(>、>=、==)。
2.C 语言中,关系表达式的结果类型是( )
A. 整数型 B. 浮点型 C. 字符型 D. 无类型
【答案】A
【解析】关系表达式的值为 “真”(1)或 “假”(0),均为 int 类型。
3.已知 int a=3, b=5;,则表达式 a > b 的值是( )
A. 1 B. 0 C. 3 D. 5
【答案】B
【解析】3 > 5 不成立,关系表达式结果为 “假”,用 0 表示。
4.下列关系表达式中,值为 “真” 的是( )
A. 5 < 3 B. 5 == 3 C. 5 != 3 D. 5 <= 3
【答案】C
【解析】5 != 3 成立,结果为 1(真);其余选项均不成立,结果为 0(假)。
5.已知 int a=2, b=3;,则表达式 a + b > b * a 的值是( )
A. 1 B. 0 C. 5 D. 6
【答案】B
【解析】 先算算术运算:a+b=5,b*a=6;再算关系运算 5 > 6,结果为 0。
6.下列运算符中,优先级最高的是( )
A. > B. == C. && D. ||
【答案】A
【解析】优先级顺序:关系运算符(>、>=、<、<=)> 关系运算符(==、!=)> 逻辑与(&&)> 逻辑或(||)。
7.已知 int a=1, b=2, c=3;,则表达式 a == b < c 的值是( )
A. 1 B. 0 C. 2 D. 3
【答案】A
【解析】关系运算符左结合,先算 b < c = 2 < 3 = 1,再算 a == 1,结果为 1。
8.已知 int a=3, b=4;,执行表达式 (a > b) && (b++) 后,b 的值是( )
A. 3 B. 4 C. 5 D. 不确定
【答案】B
【解析】a > b = 3 > 4 = 0,逻辑与短路,b++ 不执行,b 保持初始值 4。
9.已知 int a=1, b=2;,执行表达式 (a=3) || (b=4) 后,b 的值是( )
A. 2 B. 3 C. 4 D. 不确定
【答案】A
【解析】a=3 为非 0(真),逻辑或短路,b=4 不执行,b 保持初始值 2。
10.已知 int a=2, b=3;,则表达式 !(a + b) && (a - b) 的值是( )
A. 1 B. 0 C. 5 D. -1
【答案】B
【解析】先算 a + b = 5,!5 = 0;逻辑与短路,右边 a - b 不执行,结果为 0。
二、填空题。
1.C 语言中,关系运算符共有______个,其中表示 “不等于” 的运算符是______。
【答案】6;!=
【解析】关系运算符包括 >、>=、<、<=、==、!=,共 6 个。
2.C 语言中,关系表达式的值为 “真” 时用______表示,为 “假” 时用______表示。
【答案】1;0
【解析】 C 语言无逻辑型数据,用整数 1 表示真,0 表示假。
3.已知 int a=5, b=3;,则表达式 a >= b 的值是______,a != b 的值是______。
【答案】1;1
【解析】5 >= 3 和 5 != 3 均成立,结果为 1。
4.已知 int a=2, b=4;,则表达式 a * 2 == b 的值是______,a / 2 > b 的值是______。
【答案】1 0
【解析】a*2 == b:2×2=4,等于 b=4,表达式为真,值是1。
a/2 > b:2÷2=1,1 不大于 4,表达式为假,值是0。
5.C 语言中,逻辑与运算(&&)的短路特性是指:当____时,不再计算右边的操作数,整个表达式的值为____。
【答案】左边操作数为 0(假);0(假)
【解析】逻辑与中,若左边为假,结果必为假,故短路,不计算右边。
6.若有定义int a=3,b=0;,执行表达式a||(b=5);后,b的值为___________。
【答案】0
【解析】a=3为真,逻辑或短路,右边的(b=5)不执行,故b保持为 0。
7.若有定义int a=0,b=5;,执行表达式a&&(b=10);后,b的值为___________。
【答案】5
【解析】a=0为假,逻辑与短路,右边的(b=10)不执行,故b保持为 5。
8.若有定义int a=2,b=3,c=4;,则表达式a+b>c&&b<c的值为___________。
【答案】1
【解析】a+b=5>4(真,1),b=3<4(真,1),1&&1=1。
9.若有定义int a=0,b=1,c=2;,则表达式a||b&&c的值为___________。
【答案】1
【解析】逻辑与优先级高,先算b&&c=1&&2=1,再算a||1=0||1=1。
10.若有定义int a=5,b=3;,则表达式a+b>10&&a-b<3的值为___________。
【答案】0
【解析】先算a+b=8>10(结果为 0),a-b=2<3(结果为 1),再算0&&1=0。
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=3,b=5;
printf("%d",a>b);
}
【答案】0
2.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0;
printf("%d",!a);
}
【答案】1
3.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=2,b=3;
printf("%d",a+b>4);
}
【答案】1
4.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=3,b=4;
printf("%d",!(a<b));
}
【答案】0
5.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=1,b=2,c=3;
printf("%d",a<b&&b<c);
}
【答案】1
6.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0,b=5;
a&&(b=10);
printf("%d",b);
}
【答案】5
7.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0,b=1,c=2;
printf("%d",a||b&&!c);
}
【答案】0
8.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=4,b=4;
printf("%d",!(a>b||a<b));
}
【答案】1
9.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0,b=0;
printf("%d",!a&&!b);
}
【答案】1
10.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=3,b=0,c=5;
printf("%d",(a>b)&&(b<c)||(a==c));
}
【答案】1
四、程序填空题(根据题意,将空缺的语句补上)
1.程序功能:判断两个数是否相等,输出结果。
#include "stdio.h"
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a ____ b);
}
【答案】==
2.程序功能:判断一个数是否为正数(大于 0),输出结果。
#include "stdio.h"
main()
{
int a;
scanf("%d",&a);
printf("%d",____________);
}
【答案】a > 0
3.程序功能:判断两个数是否都为正数,输出结果。
#include "stdio.h"
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",________________);
}
【答案】a>0 && b>0
4.程序功能:判断两个数中至少有一个为正数,输出结果。
#include "stdio.h"
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",______________);
}
【答案】a>0 || b>0
5.程序功能:判断一个数是否不在 0 到 100 之间,输出结果。
#include "stdio.h"
main()
{
int a;
scanf("%d",&a);
printf("%d",______________);
}
【答案】!(a>=0 && a<=100)
五、编程题。
1. 编写程序,输入一个字符,判断该字符是否为大写字母(ASCII 码在'A'到'Z'之间),若是则输出 1,否则输出 0。
【参考代码】
#include "stdio.h"
main()
{
char ch;
scanf("%c",&ch);
printf("%d",ch>='A'&&ch<='Z');
}
2.编写程序,输入三个整数,判断它们能否构成三角形(任意两边之和大于第三边),若是则输出 1,否则输出 0。
【参考代码】
#include "stdio.h"
main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d",a+b>c&&a+c>b&&b+c>a);
}
3.编写程序,输入一个年份,判断该年份是否为闰年(能被 4 整除但不能被 100 整除,或能被 400 整除),若是则输出 1,否则输出 0。
【参考代码】
#include "stdio.h"
main()
{
int year;
scanf("%d",&year);
printf("%d",(year%4==0&&year%100!=0)||(year%400==0));
}
4.编写程序:判断一个数是否在区间 (-10, 10) 之外(不含端点)
【参考代码】
#include "stdio.h"
main()
{
int a;
scanf("%d", &a);
printf("%d", a >= 10 || a <= -10);
}
5.编写程序:判断一个整数是否为 “非零偶数”
【参考代码】
#include "stdio.h"
main()
{
int a;
scanf("%d", &a);
printf("%d", (a % 2 == 0) && (a != 0));
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
4.1、4.2节:关系运算符及其表达式、逻辑运算符及其表达式
一、单项选择题
1.下列选项中,不属于 C 语言关系运算符的是( )
A. > B. >= C. == D. &&
2.C 语言中,关系表达式的结果类型是()
A. 整数型 B. 浮点型 C. 字符型 D. 无类型
3.已知 int a=3, b=5;,则表达式 a > b 的值是()
A. 1 B. 0 C. 3 D. 5
4.下列关系表达式中,值为 “真” 的是()
A. 5 < 3 B. 5 == 3 C. 5 != 3 D. 5 <= 3
5.已知 int a=2, b=3;,则表达式 a + b > b * a 的值是()
A. 1 B. 0 C. 5 D. 6
6.下列运算符中,优先级最高的是()
A. > B. == C. && D. ||
7.已知 int a=1, b=2, c=3;,则表达式 a == b < c 的值是()
A. 1 B. 0 C. 2 D. 3
8.已知 int a=3, b=4;,执行表达式 (a > b) && (b++) 后,b 的值是()
A. 3 B. 4 C. 5 D. 不确定
9.已知 int a=1, b=2;,执行表达式 (a=3) || (b=4) 后,b 的值是()
A. 2 B. 3 C. 4 D. 不确定
10.已知 int a=2, b=3;,则表达式 !(a + b) && (a - b) 的值是()
A. 1 B. 0 C. 5 D. -1
二、填空题。
1.C 语言中,关系运算符共有______个,其中表示 “不等于” 的运算符是______。
2.C 语言中,关系表达式的值为 “真” 时用______表示,为 “假” 时用______表示。
3.已知 int a=5, b=3;,则表达式 a >= b 的值是______,a != b 的值是______。
4.已知 int a=2, b=4;,则表达式 a * 2 == b 的值是______,a / 2 > b 的值是______。
5.C 语言中,逻辑与运算(&&)的短路特性是指:当____时,不再计算右边的操作数,整个表达式的值为____。
6.若有定义int a=3,b=0;,执行表达式a||(b=5);后,b的值为___________。
7.若有定义int a=0,b=5;,执行表达式a&&(b=10);后,b的值为___________。
8.若有定义int a=2,b=3,c=4;,则表达式a+b>c&&b<c的值为___________。
9.若有定义int a=0,b=1,c=2;,则表达式a||b&&c的值为___________。
10.若有定义int a=5,b=3;,则表达式a+b>10&&a-b<3的值为___________。
三、阅读程序题。
1.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=3,b=5;
printf("%d",a>b);
}
2.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0;
printf("%d",!a);
}
3.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=2,b=3;
printf("%d",a+b>4);
}
4.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=3,b=4;
printf("%d",!(a<b));
}
5.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=1,b=2,c=3;
printf("%d",a<b&&b<c);
}
6.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0,b=5;
a&&(b=10);
printf("%d",b);
}
7.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0,b=1,c=2;
printf("%d",a||b&&!c);
}
8.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=4,b=4;
printf("%d",!(a>b||a<b));
}
9.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=0,b=0;
printf("%d",!a&&!b);
}
10.写出下列程序段的输出结果:________________。
#include "stdio.h"
main()
{
int a=3,b=0,c=5;
printf("%d",(a>b)&&(b<c)||(a==c));
}
四、程序填空题(根据题意,将空缺的语句补上)
1.程序功能:判断两个数是否相等,输出结果。
#include "stdio.h"
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a ____ b);
}
2.程序功能:判断一个数是否为正数(大于 0),输出结果。
#include "stdio.h"
main()
{
int a;
scanf("%d",&a);
printf("%d",____________);
}
3.程序功能:判断两个数是否都为正数,输出结果。
#include "stdio.h"
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",________________);
}
4.程序功能:判断两个数中至少有一个为正数,输出结果。
#include "stdio.h"
main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",______________);
}
5.程序功能:判断一个数是否不在 0 到 100 之间,输出结果。
#include "stdio.h"
main()
{
int a;
scanf("%d",&a);
printf("%d",______________);
}
五、编程题。
1. 编写程序,输入一个字符,判断该字符是否为大写字母(ASCII 码在'A'到'Z'之间),若是则输出 1,否则输出 0。
2.编写程序,输入三个整数,判断它们能否构成三角形(任意两边之和大于第三边),若是则输出 1,否则输出 0。
3.编写程序,输入一个年份,判断该年份是否为闰年(能被 4 整除但不能被 100 整除,或能被 400 整除),若是则输出 1,否则输出 0。
4.编写程序:判断一个数是否在区间 (-10, 10) 之外(不含端点)
5.编写程序:判断一个整数是否为 “非零偶数”
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$