内容正文:
河北省(计算机类)对口招生《算法与程序设计-C#》
复习讲义
模块 2 C#语言基础
考点四 运算符与表达式
【考纲要求】
1.掌握运算符:算术运算符、赋值运算符、关系运算符、逻辑运算符;各种运算符的优先级;
2.掌握表达式组成规则及各类表达式;
【知识网络】
【知识和技能要点】
一、算术运算符
算术运算符用于数值之间的四则运算,操作数仅限数值类型。包含:+(加)、-(减)、*(乘)、/(除)、%(取模 / 求余数)。
说明
1. / 除法:区分整数、小数:两个整数相除,结果自动舍弃小数,只保留整数;若任意一方为浮点数,则输出小数结果。
2. % 取模运算:计算两数相除后的余数,常用来判断数字奇偶、循环周期。
二、自增、自减运算符
专门用于快速对变量实现 + 1、-1 操作,分为前置与后置两种写法,运算规则不同。
1. 后置 i++ / i--:先使用变量当前值参与运算,运算结束后变量自身再自增 / 自减;
2. 前置 ++i / --i:变量先完成自增 / 自减,再使用新值参与后续运算。
三、字符串运算符
仅有+一个运算符,具备双重功能:(1)两边均为数字:作为算术加法;(2)任意一侧为字符串:执行字符串拼接,自动把另一侧数据转为字符串,合并生成新字符串。
四、赋值运算符
赋值运算符“=”用于将右侧表达式的值赋给左侧变量,格式为:变量名=表达式;执行时先计算右侧值,再存入左侧变量内存地址。
五、关系运算符(比较运算符)
用于对比两个数据的大小、相等关系,运算结果固定为布尔值 true /false,常搭配 if 判断、循环使用。
符号
意义
符号
意义
<
小于
<=
小于等于
>
大于
>=
大于等于
==
等于
!=
不等于
六、逻辑运算符
操作数与运算结果均为布尔类型,用于组合多个比较条件,实现多条件判断。
符号
意义
!
逻辑非
&&
逻辑与
||
逻辑或
1. 逻辑非 !
属于单目运算符,仅作用于一个布尔表达式,功能是对布尔值取反:
原始值为 true,运算结果变为 false;原始值为 false,运算结果变为 true。
2. 短路逻辑与 &&
属于双目运算符,需要左右两个布尔操作数参与运算。只有左右两边表达式结果全部为 true 时,整个逻辑表达式最终结果才是 true;只要任意一侧值为 false,整体结果就是 false。
3. 短路逻辑或 ||
属于双目运算符,需要左右两个布尔操作数参与运算。仅当左右两边表达式结果全部为 false 时,整体结果才是 false;只要任意一侧值为 true,整体结果就为 true。
七、条件运算符
C# 中唯一的三目运算符,需要 1 个条件、2 个分支表达式,格式固定:
条件表达式 ? 条件成立执行表达式 : 条件不成立执行表达式;
执行逻辑:判断条件表达式,结果为 true 执行?后语句;结果为 false 执行:后语句。
8、 运算符的优先级与结合性
多条运算符写在同一表达式时,按照优先级从高到低计算;优先级相同则遵循结合性。
1. 运算符的优先级
运算符类别
运算符
数目
优先级
单目运算符
++、--、!
单目
高
低
算术运算符
*、/、%、+、-
双目
移位运算符
<<、>>
双目
关系运算符
>、>=、<、<=、==、!=
双目
逻辑运算符
&&、||
双目
条件运算符
?:
三目
赋值运算符
=、+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=
双目
2.运算符的结合性
(1)算术、关系、逻辑运算符:左结合性,同优先级从左向右依次计算;
(2)赋值、三目运算符:右结合性;
(3)小括号()可以强行提升优先级,括号内优先运算。
【练习题】
1、 填空题
1.取余运算中,余数的符号与______的符号相同。
2.表达式-7%3的结果是______。
3.若int a=5; int b=a++; 则b的值为______,a的值为______。
4.左移运算符<<执行时,右边空出的位置补______,左移一位相当于______。
5.算术运算符的结合性是______,赋值运算符的结合性是______。
6.设int型变量x的值为9,那么表达式x--+x--+x--的值为______。
7.设x=10;则表达式x<10?x=0:x++的值为______。
8.设有代码 int a = 10, b = 20, c = 30; bool flag = a > b && ++c > 25;,执行后变量 c 的值是______。
9.表达式 int x = 5; x += x -= x * 2; 执行后,变量 x 的最终值是______。
10.表达式 int a = 8, b = 3; double result = a / b * 2.0; 执行后,变量 result 的值是 ______。
二、选择题
1.在C#中,表达式7 / 2的计算结果是( )。
A. 3.5
B. 3
C. 4
D. 3.0
2.设有代码 int a = 10; int b = --a;,执行后变量 a 和 b 的值分别是( )。
A. a=9, b=9
B. a=9, b=10
C. a=10, b=9
D. a=10, b=10
3.表达式 5 << 2 的计算结果是( )。
A. 10
B. 20
C. 2.5
D. 7
4.在C#中,表达式"Result:" + true的结果是( )。
A. "Result:true"
B. "Result:True"
C. "Result1"
D. "trueResult"
5.执行以下代码后,变量d的值是( )。
int d = 6;
bool res = d > 8 && ++d > 5;
A. 6 B. 7 C. 5 D. 8
6.执行以下代码后,变量a的值是( )。
int a, b, c;
a = b = c = 5;
A. 5
B. 0
C. 报错
D. 不确定
7.逻辑与运算符 && 的特点是( )。
A. 两个操作数都为 false 时,结果才为 true
B. 两个操作数都为 true 时,结果才为 true
C. 只要有一个操作数为 true,结果就为 true
D. 只要有一个操作数为 false,结果就为 true
8.在C#运算符优先级中,优先级最高的是( )。
A. 算术运算符
B. 关系运算符
C. 单目运算符
D. 赋值运算符
9.赋值运算符 = 的结合性是( )。
A. 从左到右
B. 从右到左
C. 无结合性
D. 不确定
10.下列关系运算符中,表示“不等于”的是( )。
A. <>
B. !=
C. ==
D. !==
三、判断题
1.当自增运算符不与其他运算符混合使用时,x++和++x的效果完全相同。( )
2.逻辑或运算符||只要左侧表达式为true,右侧表达式就不会执行。( )
3.取余运算%的结果符号与除数(第二个操作数)的符号相同。( )
4.字符串连接符+只能用于连接两个字符串。( )
5.左移运算符<<的效果相当于将操作数乘以2的移动位数次方。( )
6.按位与&和逻辑与&&的运算结果都是true或false。( )
7.逻辑与 && 具有短路特性,如果第一个表达式为 false,则不再计算第二个表达式。( )
8.赋值运算符 = 的优先级高于关系运算符 ==。( )
【答案】
一、填空题
1.被除数 2.-1 3.5,6 4. 0、乘2 5. 左结合性、右结合性
6. 24 7.10 8.30 9. 0 10 4
二、选择题
1. B 2.A 3.B 4.A 5.A 6.A 7.B 8.C 9.B 10. B
三、判断题
1.√ 2.√ 3.× 4.× 5. √ 6.× 7.√ 8.×
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$