内容正文:
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编写专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第59卷,为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.运算符:算术运算符、赋值运算符、关系运算符、逻辑运算符;各种运算符的优先级;2.表达式组成规则及各类表达式;
2027版河北省《计算机类考纲百套卷》 第59卷
《算法与程序设计-C#》
运算符与表达式 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.关于C#中的除法运算符/,以下说法正确的是( )
A. 当两个整数进行除法运算时,如果结果有小数部分,会自动进行四舍五入
B. 当两个整数进行除法运算时,结果的小数部分会被截断,只保留整数部分
C. 除法运算符只能用于整数类型,不能用于浮点数类型
D. 整数除法时,如果除数为0,会返回0
【答案】B
【解析】在C#中,当两个整数进行除法运算时,执行的是整数除法,结果的小数部分会被直接截断(向零取整),而不是四舍五入。
2. 关于自增运算符++,以下代码的输出是( )
int x = 5;
int y = ++x + x++;
Console.WriteLine("x={0}, y={1}", x, y);
A. x=7, y=12 B. x=7, y=11 C. x=6, y=12 D. x=7, y=13
【答案】A
【解析】表达式求值顺序和副作用生效时机是关键。++x是前缀自增,x++是后缀自增。
3.在C#中,%=运算符的作用是( )
A. 将左边操作数除以右边操作数的余数赋给左边操作数
B. 将左边操作数对右边操作数取模的结果与左边操作数相加
C. 比较左边操作数和右边操作数是否相等,并返回布尔结果
D. 将左边操作数和右边操作数进行位与运算后赋值
【答案】A
【解析】%=是复合赋值运算符,x %= y等价于 x = x % y。
4.关于关系运算符,以下说法错误的是( )
A. 关系运算符(如<, >, ==)的运算结果都是布尔类型
B. 对于引用类型,==运算符默认比较的是引用是否相等,但string类型重载了==,使其比较字符串内容
C. 可以使用!=运算符来判断两个浮点数(double)是否不相等,这比用==判断相等更安全。
D. 关系运算符的优先级高于逻辑运算符&&和||
【答案】C
【解析】由于浮点数的精度问题,直接使用==或!=比较两个浮点数是否相等或不相等可能不可靠,因为计算误差可能导致两个理论上相等的数在二进制表示上略有不同。
5.关于条件运算符?:,以下说法错误的是( )
A. 它是C#中唯一的三元运算符
B. 它的语法是条件 ? 表达式1 : 表达式2,如果条件为真,则计算表达式1的值作为结果,否则计算表达式2
C. 表达式1和表达式2的类型必须完全相同,否则编译错误
D. 条件运算符可以嵌套使用,但可读性会变差
【答案】C
【解析】条件运算符要求表达式1和表达式2的类型可以不同,但它们之间必须存在隐式转换,或者它们可以隐式转换为一个共同的类型。
6.在C#中,&和|运算符当用于bool类型操作数时( )
A. 它们与&&和||完全相同,可以互换使用
B. 它们不会短路,总是计算左右两个操作数
C. 它们只能用于整数类型,不能用于bool类型
D. 它们的优先级低于&&和||
【答案】B
【解析】&和|是按位运算符,但当操作数为bool类型时,它们执行逻辑与和逻辑或运算,但不短路,即无论左边操作数结果如何,都会计算右边操作数。而&&和||具有短路特性。
7.关于运算符重载,以下说法正确的是( )
A. 在C#中,可以重载所有的运算符,包括赋值运算符=
B. 重载的运算符必须是静态方法,并且至少有一个参数的类型是包含该运算符声明的类或结构体
C. 可以创建新的运算符符号
D. 条件运算符?:可以被重载
【答案】B
【解析】运算符重载必须是在类或结构体内部声明的静态方法。重载一元运算符时有一个参数,二元运算符有两个参数,且至少有一个参数的类型是当前类或结构体类型。
8. 以下代码的输出是( )
int i = 5;
Console.WriteLine(i++ + ++i);
A. 10 B. 11 C. 12 D. 13
【答案】C
【解析】表达式i++ + ++i,从左到右求值操作数。
9.设有代码 int a = 5, b = 2; double c = 2.5;,则表达式 a + b / 2 + c 的计算结果是( )
A. 8.5 B. 8.0 C. 7.5 D. 7.0
【答案】A
【解析】先算整除:b / 2 = 2 / 2 = 1(整数相除,结果为整数)再依次计算:5 + 1 + 2.5 = 8.5。
10.下列关于C#运算符优先级的描述,从高到低排列正确的是( )
A. 算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
B. 逻辑运算符 > 算术运算符 > 关系运算符 > 赋值运算符
C. 关系运算符 > 算术运算符 > 赋值运算符 > 逻辑运算符
D. 赋值运算符 > 逻辑运算符 > 关系运算符 > 算术运算符
【答案】A
【解析】这是必须熟记的口诀:“算术 > 关系 > 逻辑 > 赋值”。
11.在C#中,逻辑运算符 &&(短路与)和 &(逻辑与)的主要区别在于( )
A. && 只能用于整数,& 只能用于布尔值
B. 当左侧操作数为 false 时,&& 不再计算右侧,而 & 会继续计算右侧
C. 当左侧操作数为 true 时,&& 不再计算右侧,而 & 不会继续计算右侧
D. 两者运算结果永远不同
【答案】B
【解析】& 逻辑与(bool 场景)永不短路,无论左边是 true/false,左右两边都一定执行。
12. 以下代码,关于输出结果的说法正确的是( )
int a = -7;
int b = 3;
Console.WriteLine(a % b);
Console.WriteLine(7 % -3);
Console.WriteLine(-7 % -3);
A. 依次输出-1、1、-1 B. 依次输出-1、1、1
C. 依次输出-1、-1、-1 D. 依次输出1、1、-1
【答案】A
【解析】在C#中,取余运算结果的符号取决于左操作数(被除数)的符号,与右操作数无关。符号同被除数相同。
13. 以下代码,执行后a、b、c的值分别是( )
int a = 5;
int b = 10;
int c = a++ + ++b + a;
A. a=6, b=12, c=23 B. a=6, b=12, c=22
C. a=6, b=11, c=22 D. a=5, b=12, c=22
【答案】C
【解析】a++:先用原值 5参与运算,运算后 a 自增为 6; ++b:先自增,b=10+1=11,用新值 11 参与运算.
14.以下代码的输出结果是( )。
int a = 10;
int b = 20;
bool c = a == b ? true : false;
Console.WriteLine(c);
A. True B. false C. null D. 编译错误
【答案】B
【解析】a == b ? true : false 是条件运算符。因为 a 不等于 b,所以返回 false
15.下列关于 C# 各类运算符优先级和运算规则的说法,正确的是( )
A. 赋值运算符优先级最高,算术运算符优先级最低
B. 逻辑与&&优先级高于逻辑或||,关系运算符优先级高于&&
C. &和|用于 bool 逻辑运算时,优先级低于&&和||
D. 所有关系运算符的运算结果可以是整型也可以是布尔型
【答案】B
【解析】优先级顺序:算术 → 关系 → ! → && → || → 赋值;
16.设有定义 int a=3, b=5, c=2;,表达式 a + b * c > a - b && !(c < a) || b % c == 1 按照运算符优先级和结合性运算后,最终结果为( )
A. true B. false C. 编译报错 D. 无法确定
【答案】A
【解析】按优先级:算术 → 关系 → ! → && → ||。
17.关于 C# 中 &&、|| 短路逻辑与 &、| 非短路逻辑,下列叙述错误的是( )
A. 布尔运算中,&& 左侧为 false 时直接短路,不执行右侧表达式
B. || 左侧为 true 时直接短路,不再执行右侧表达式
C. &、| 作用于 bool 时,无论左侧真假,都会完整计算左右两个操作数
D. && 和 & 运算结果一定永远相同,|| 和 | 结果也永远相同
【答案】D
【解析】结果逻辑值可能一样,但执行流程不同;如果右侧有自增、方法调用等副作用,最终变量值会不一样,不能说 “一定永远相同”。
18.下列关于自增自减运算符++ --结合表达式混合运算的说法,正确的是( )
A. 后置自增x++是先自增再参与表达式运算
B. 前置自增++x是先用原值运算,运算结束再自增
C. 自增运算符优先级低于算术乘除
D. 表达式中++的结合性为从右向左
【答案】D
【解析】单目运算符包括++ 都是右结合。
19.设有 int x=4; 执行语句 int y = x-- + ++x * 3 - x++; 则最终 x 和 y 的值依次为( )
A. 4,12 B. 5,12 C. 4,15 D. 5,14
【答案】B
【解析】++x先自增,x++先用表达式的值,再进行自增。
20. 关于逻辑运算符的短路特性,以下代码的输出是( )
int x = 5, y = 10;
bool result = (x++ > 5) && (y++ > 5);
Console.WriteLine("x={0}, y={1}, result={2}", x, y, result);
A. x=6, y=11, result=True B. x=6, y=10, result=False
C. x=6, y=10, result=True D. x=6, y=11, result=False
【答案】B
【解析】逻辑与&&具有短路特性:如果左边操作数为false,则不再计算右边操作数。
2、 判断题(本大题共10小题,每题2分,共20分)
21.在C#中,整数除法5/2的结果是2,而浮点数除法5.0/2的结果是2.5。( )
【答案】对
【解析】 C#的除法运算规则取决于操作数类型。
22.取余运算符%的结果符号总是与右操作数(除数)的符号保持一致。( )
【答案】错
【解析】在C#中,取余运算符%的结果符号与**左操作数(被除数)**的符号保持一致,而不是右操作数。
23.逻辑与运算符&&和逻辑或运算符||都具有短路特性。( )
【答案】对
【解析】&&和||是短路逻辑运算符。对于&&,如果左边为false,则右边不计算;对于||,如果左边为true,则右边不计算。
24.在C#中,+=运算符只能用于数值类型,不能用于字符串。( )
【答案】错
【解析】+=运算符可以用于字符串,表示字符串连接。
25.在C#中,^运算符用于布尔类型时,表示逻辑异或,即两个操作数相同为真,不同为假。( )
【答案】错
【解析】逻辑异或^的定义是:相同为假,不同为真。所以两个操作数相同时结果为假,不同时结果为真。
26.表达式 int a = 5; int b = a++ + a;执行后,b的值为11。( )
【答案】对
【解析】表达式a++ + a:先求a++的值(5),然后a自增为6,再求第二个操作数a(当前值为6),所以5+6=11。b为11。
27.在C#中,% 运算符只能用于整数类型,不能用于浮点类型。( )
【答案】错
【解析】C# 的 % 运算符既可用于整数,也可用于浮点数
28.表达式 a = b = c = 5; 是合法的,执行后 a、b、c 的值都为 5。( )
【答案】对
【解析】赋值运算符具有右结合性,从右向左依次赋值。
29.表达式 (int)3.9 的结果是 4,因为进行了四舍五入。( )
【答案】错
【解析】强制类型转换 (int) 是直接截断小数部分,而不是四舍五入。结果是 3。
30.表达式 5 / 2 == 2.5 的结果是True。( )
【答案】错
【解析】左边 5 / 2 是整数除法,结果为 2。右边是 2.5。2 == 2.5 结果为 false。
三、填空题(本大题共10个题,每题2分,共20分)
31.在C#中,复合赋值运算符 a += b * c 等价于_______。
【答案】a = a + b * c
【解析】复合赋值运算符的优先级很低,且右侧被视为一个整体。a += b * c 等价于 a = a + (b * c)。
32.表达式 (int)3.8 + 3.8 的结果类型和值分别是_______。
【答案】double;6.8
【解析】(int)3.8 强制转换为整数 3。然后执行 3 + 3.8,整数 3 隐式转换为 double,结果为 6.8,类型为 double。
33.表达式 12 % 5 / 2 * 3 的计算结果是_______。
【答案】3
【解析】%、/、* 属于同一优先级的算术运算符,结合性为从左到右。
34. 以下代码的输出结果为________。
bool a = true, b = false, c = true;
bool result = a || b && c;
Console.WriteLine(result);
【答案】True
【解析】考查运算符优先级。逻辑与&&的优先级高于逻辑或||。
35.若定义 int x = 5;,执行语句 int y = x++ + ++x * 2; 后,变量 y 的值是 ________,变量 x 的值是 ________。
【答案】19;7
【解析】后置 ++ 先用后加,前置 ++ 先加后用。
36.在C#中,表达式 5 + 3 * 2 > 10 && 4 < 5 || !(2 == 2)的结果是________。
【答案】True
【解析】算术 > 关系 > 逻辑非!> 逻辑与 && > 逻辑或 ||
37.在C#中,运算符的优先级相同时,运算顺序由 ______ 决定。
【答案】结合性
【解析】
38.表达式10 % -3的运算结果是____。
【答案】1
【解析】结果符号与左操作数一致。10除以-3等于-3余1,所以10 % -3 = 1
39.在C#中,若定义 int a = 5, b = 3;,则表达式 a + b << 1 的计算结果是 ________。
【答案】16
【解析】在C#中,算术运算符(+)的优先级高于位移运算符(<<)。
40.用条件运算符判断 a 和 b 的大小,将较大值赋给 max 的代码是:int max = ____;
【答案】a > b? a : b
【解析】条件运算符格式:条件?表达式 1 : 表达式 2
四、程序读程题(本大题共3题,41、42题7分,43题6分,共20分)
41.以下代码的输出结果为__________
int a = 0;
bool b = false;
bool result = b & (a++ > 0);
Console.WriteLine("a={0}, result={1}", a, result);
【答案】
a=1, result=False
【解析】运算符&用于bool类型时,是非短路逻辑与。它总是计算两边操作数。
42.以下代码的输出结果为__________
int x = 10, y = 20;
x ^= y ^= x ^= y;
Console.WriteLine("x={0}, y={1}", x, y);
【答案】
x=0, y=10
【解析】^=是复合赋值,从右向左结合。
43.下列代码输出结果是_________。
int a = 8;
a >>= 1;
Console.WriteLine(a);
【答案】4
【解析】>> 是右移位运算符。8 的二进制是 1000,右移一位变成 0100,即十进制的 4。右移一位相当于除以2。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
编写说明:河北省对口招生《计算机类考纲百套卷》,依据《河北省2028年中等职业学校对口升学考试计算机类专业考试大纲》编写。本专辑涵盖四门课程,且每门课程均采用三阶递进式训练体系:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编写专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第59卷,为考点训练卷,按《算法与程序设计-C#》范围和要求编写。具体内容为:1.运算符:算术运算符、赋值运算符、关系运算符、逻辑运算符;各种运算符的优先级;2.表达式组成规则及各类表达式;
2027版河北省《计算机类考纲百套卷》 第59卷
《算法与程序设计-C#》
运算符与表达式 知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题2分,共40分)
1.关于C#中的除法运算符/,以下说法正确的是( )
A. 当两个整数进行除法运算时,如果结果有小数部分,会自动进行四舍五入
B. 当两个整数进行除法运算时,结果的小数部分会被截断,只保留整数部分
C. 除法运算符只能用于整数类型,不能用于浮点数类型
D. 整数除法时,如果除数为0,会返回0
2. 关于自增运算符++,以下代码的输出是( )
int x = 5;
int y = ++x + x++;
Console.WriteLine("x={0}, y={1}", x, y);
A. x=7, y=12 B. x=7, y=11 C. x=6, y=12 D. x=7, y=13
3.在C#中,%=运算符的作用是( )
A. 将左边操作数除以右边操作数的余数赋给左边操作数
B. 将左边操作数对右边操作数取模的结果与左边操作数相加
C. 比较左边操作数和右边操作数是否相等,并返回布尔结果
D. 将左边操作数和右边操作数进行位与运算后赋值
4.关于关系运算符,以下说法错误的是( )
A. 关系运算符(如<, >, ==)的运算结果都是布尔类型
B. 对于引用类型,==运算符默认比较的是引用是否相等,但string类型重载了==,使其比较字符串内容
C. 可以使用!=运算符来判断两个浮点数(double)是否不相等,这比用==判断相等更安全。
D. 关系运算符的优先级高于逻辑运算符&&和||
5.关于条件运算符?:,以下说法错误的是( )
A. 它是C#中唯一的三元运算符
B. 它的语法是条件 ? 表达式1 : 表达式2,如果条件为真,则计算表达式1的值作为结果,否则计算表达式2
C. 表达式1和表达式2的类型必须完全相同,否则编译错误
D. 条件运算符可以嵌套使用,但可读性会变差
6.在C#中,&和|运算符当用于bool类型操作数时( )
A. 它们与&&和||完全相同,可以互换使用
B. 它们不会短路,总是计算左右两个操作数
C. 它们只能用于整数类型,不能用于bool类型
D. 它们的优先级低于&&和||
7.关于运算符重载,以下说法正确的是( )
A. 在C#中,可以重载所有的运算符,包括赋值运算符=
B. 重载的运算符必须是静态方法,并且至少有一个参数的类型是包含该运算符声明的类或结构体
C. 可以创建新的运算符符号
D. 条件运算符?:可以被重载
8. 以下代码的输出是( )
int i = 5;
Console.WriteLine(i++ + ++i);
A. 10 B. 11 C. 12 D. 13
9.设有代码 int a = 5, b = 2; double c = 2.5;,则表达式 a + b / 2 + c 的计算结果是( )
A. 8.5 B. 8.0 C. 7.5 D. 7.0
10.下列关于C#运算符优先级的描述,从高到低排列正确的是( )
A. 算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
B. 逻辑运算符 > 算术运算符 > 关系运算符 > 赋值运算符
C. 关系运算符 > 算术运算符 > 赋值运算符 > 逻辑运算符
D. 赋值运算符 > 逻辑运算符 > 关系运算符 > 算术运算符
11.在C#中,逻辑运算符 &&(短路与)和 &(逻辑与)的主要区别在于( )
A. && 只能用于整数,& 只能用于布尔值
B. 当左侧操作数为 false 时,&& 不再计算右侧,而 & 会继续计算右侧
C. 当左侧操作数为 true 时,&& 不再计算右侧,而 & 不会继续计算右侧
D. 两者运算结果永远不同
12. 以下代码,关于输出结果的说法正确的是( )
int a = -7;
int b = 3;
Console.WriteLine(a % b);
Console.WriteLine(7 % -3);
Console.WriteLine(-7 % -3);
A. 依次输出-1、1、-1 B. 依次输出-1、1、1
C. 依次输出-1、-1、-1 D. 依次输出1、1、-1
13. 以下代码,执行后a、b、c的值分别是( )
int a = 5;
int b = 10;
int c = a++ + ++b + a;
A. a=6, b=12, c=23 B. a=6, b=12, c=22
C. a=6, b=11, c=22 D. a=5, b=12, c=22
14.以下代码的输出结果是( )。
int a = 10;
int b = 20;
bool c = a == b ? true : false;
Console.WriteLine(c);
A. True B. false C. null D. 编译错误
15.下列关于 C# 各类运算符优先级和运算规则的说法,正确的是( )
A. 赋值运算符优先级最高,算术运算符优先级最低
B. 逻辑与&&优先级高于逻辑或||,关系运算符优先级高于&&
C. &和|用于 bool 逻辑运算时,优先级低于&&和||
D. 所有关系运算符的运算结果可以是整型也可以是布尔型
16.设有定义 int a=3, b=5, c=2;,表达式 a + b * c > a - b && !(c < a) || b % c == 1 按照运算符优先级和结合性运算后,最终结果为( )
A. true B. false C. 编译报错 D. 无法确定
17.关于 C# 中 &&、|| 短路逻辑与 &、| 非短路逻辑,下列叙述错误的是( )
A. 布尔运算中,&& 左侧为 false 时直接短路,不执行右侧表达式
B. || 左侧为 true 时直接短路,不再执行右侧表达式
C. &、| 作用于 bool 时,无论左侧真假,都会完整计算左右两个操作数
D. && 和 & 运算结果一定永远相同,|| 和 | 结果也永远相同
18.下列关于自增自减运算符++ --结合表达式混合运算的说法,正确的是( )
A. 后置自增x++是先自增再参与表达式运算
B. 前置自增++x是先用原值运算,运算结束再自增
C. 自增运算符优先级低于算术乘除
D. 表达式中++的结合性为从右向左
19.设有 int x=4; 执行语句 int y = x-- + ++x * 3 - x++; 则最终 x 和 y 的值依次为( )
A. 4,12 B. 5,12 C. 4,15 D. 5,14
20. 关于逻辑运算符的短路特性,以下代码的输出是( )
int x = 5, y = 10;
bool result = (x++ > 5) && (y++ > 5);
Console.WriteLine("x={0}, y={1}, result={2}", x, y, result);
A. x=6, y=11, result=True B. x=6, y=10, result=False
C. x=6, y=10, result=True D. x=6, y=11, result=False
二、判断题(本大题共10小题,每题2分,共20分)
21.在C#中,整数除法5/2的结果是2,而浮点数除法5.0/2的结果是2.5。( )
22.取余运算符%的结果符号总是与右操作数(除数)的符号保持一致。( )
23.逻辑与运算符&&和逻辑或运算符||都具有短路特性。( )
24.在C#中,+=运算符只能用于数值类型,不能用于字符串。( )
25.在C#中,^运算符用于布尔类型时,表示逻辑异或,即两个操作数相同为真,不同为假。( )
26.表达式 int a = 5; int b = a++ + a;执行后,b的值为11。( )
27.在C#中,% 运算符只能用于整数类型,不能用于浮点类型。( )
28.表达式 a = b = c = 5; 是合法的,执行后 a、b、c 的值都为 5。( )
29.表达式 (int)3.9 的结果是 4,因为进行了四舍五入。( )
30.表达式 5 / 2 == 2.5 的结果是True。( )
三、填空题(本大题共10个题,每题2分,共20分)
31.在C#中,复合赋值运算符 a += b * c 等价于_______。
32.表达式 (int)3.8 + 3.8 的结果类型和值分别是_______。
33.表达式 12 % 5 / 2 * 3 的计算结果是_______。
34. 以下代码的输出结果为________。
bool a = true, b = false, c = true;
bool result = a || b && c;
Console.WriteLine(result);
35.若定义 int x = 5;,执行语句 int y = x++ + ++x * 2; 后,变量 y 的值是 ________,变量 x 的值是 ________。
36.在C#中,表达式 5 + 3 * 2 > 10 && 4 < 5 || !(2 == 2)的结果是________。
37.在C#中,运算符的优先级相同时,运算顺序由 ______ 决定。
38.表达式10 % -3的运算结果是____。
39.在C#中,若定义 int a = 5, b = 3;,则表达式 a + b << 1 的计算结果是 ________。
40.用条件运算符判断 a 和 b 的大小,将较大值赋给 max 的代码是:int max = ____;
四、程序读程题(本大题共3题,41、42题7分,43题6分,共20分)
41.以下代码的输出结果为__________
int a = 0;
bool b = false;
bool result = b & (a++ > 0);
Console.WriteLine("a={0}, result={1}", a, result);
42.以下代码的输出结果为__________
int x = 10, y = 20;
x ^= y ^= x ^= y;
Console.WriteLine("x={0}, y={1}", x, y);
43.下列代码输出结果是_________。
int a = 8;
a >>= 1;
Console.WriteLine(a);
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$