专题2:运算符与表达式(讲义)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)

2025-10-09
| 11页
| 151人阅读
| 1人下载
精品

内容正文:

专题2:运算符与表达式(讲义) 《编程语言基础—C语言》专题复习讲练测 [考纲要求] 1:掌握C语言中的各种运算符的功能及其使用要求。 2:掌握C语言各种运算符的优先级和结合律。 3:掌握C语言表达式的实际计算。 [课时安排] 2课时 [知识梳理] 1、算术运算符 (1)C语言程序由若干条语句组成,每条语句由变量、运算符、表达式、函数调用和控制语句等构成。 (2)C语句的运算符十分的丰富,所包含的内容广泛。表达式是由运算对象(包括常量、函数、变量)和运算符按照一定规则连接起来的有意义的式子。表达式中可以包括运算符、常量、变量、函数调用等。 (3)说明 ①模除运算是两个整数相除后取余数;要求 % 两边必须是整型数据。 ②若算术运算符的除号两边均为整数,则结果仍为整数。 例:7 / 3 = 2 1 / 2 = 0 ③若参加运算的两个数中有一个数为实数,则结果为double型。 ④每个运算符都有一个优先级。如乘除的优先级高于加减。 ⑤( )可改变运算次序。 ⑥若在一个运算符对象两侧的运算符的优先级相同,则按规定的“结合方向”处理。 2、赋值、逗号运算符 (1)赋值运算符 赋值运算符为“=”,右结合性。 (2)逗号运算符 ①逗号运算符将两个表达式连接起来。其优先级15,最低,自左至右,顺序求值。 ②格式:表达式1,表达式2,……,表达式n ③功能:先求解表达式1,再求解表达式2。整个逗号表达式的值为表达式n的值。 3、自增、自减运算符 (1)自增、自减运算符为“右结合性”,优先级为2。 (2)作用:自增(++)自减(- -)运算符的作用是使变量的值“加1”或“减1”。 (3)例如:int k=10; 执行语句“k=k+1;”后,变量k的值增1,即为11。也可用语句“k++;”代替,即“k++;”与“k=k+1;”等价。同样,“k- -;”与“k=k-1;”等价。 (4)注意 ①“++i,--i” “在使用i之前,先使i的值加(减)1 ” ②“i++,i--” “在使用i之后,使i的值加(减)1” 例:“a=++k”与“a=k++ ” (5)i+++j 如何理解? C编译系统在处理时尽可能多的(自左而右)将若干个字符组成一个运算符(C在处理标识符和关键字时也按同一原则处理),如i+++j,将解释为(i++)+j。 (6)自增自减只能用于变量,而不能用于常量/表达式。 如:5++;(a+b)++ 均为非法! 4、位运算 (1)概述 位运算符是指对操作数以二进制位(bit)为单位进行的数据处理,每一个二进制位只能存放一位二进制数“0”或者“1”,因此位运算对象是一个二进制数位的集合 (2)按位与运算符(&) 参与运算的两个数据,按二进制位进行“与”运算。即: (3)按位或运算符(|) 参与运算的两个数据,按二进制位进行“或”运算。即: (4)按位异或运算符(^) 异或运算符的规则是,若参加运算的两个二进制位同号,则结果为0(假),异号则为1(真)。即: (5)按位取反运算符(~) 取反运算符是一个单目(元)运算符,用来对一个二进制数按位取反。即:0变1,将1变0。 6)按位左移运算符(<<) ①作用:用来将一个数的各二进制位全部左移若干位。 ②例如:a=a<<2(将a的二进制数左移2位,右补0。设a=15,即:0000 1111 ,左移2位得:0011 1100,得到十进制数:60) (7)按位右移运算符(>>) ①a>>2表示将a的各二进制位右移2位,移到右端的低位被舍弃。对于无符号数,高位补0。 ②例如:a=017,对应的二进制数为0000 1111 a>>2为0000 0011(11) 此2位舍弃 ③正数右移:右移n位,低位去掉n个0,高位补个0。( Microsoft Visual C++编译器采用“逻辑右移”,所以高位补0) ④负数右移:采用该负数的补码进行右移,右移n位,低位去掉n位,高位补入n个1,但最后结果为负数的补码,应将其转换成原码(减一取反逆推),注意逆推时应保留其符号位不变。 5、关系与逻辑运算 (1)关系运算符 (2)关系表达式 ①用关系运算符将两个表达式(可以是算数表达式、关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称为关系表达式。 ②当相同级别的关系运算符同时出现时,从左至右进行运算。 ③关系表达式的值是一个逻辑值,即“真”和“假”,在C语言的逻辑运算中,以“1”代表“真”,以“0”代表“假”。 (3)逻辑运算符 “&&”和“||”是双目运算符,要有两个运算量(操作数),例:(a>b)||(x>y);“!”是单目运算符,只要求有一个运算量,如:!(a>b) (3)逻辑运算符 a&&b 当a,b均为真,则“a&&b”值为真,否则为假。 a||b 当a,b均为假,则“a||b”值为假,否则为真。 !a 当a为真,则“!a”值为假,否则为真。 (4)逻辑表达式 用逻辑运算符连接的若干个表达式组成的式子称为逻辑表达式。 6、强制类型转换运算符 (1)强制类型转换的运算符为(类型),优先级为2。 (2)格式: (类型)表达式 (3)功能:将表达式的结果类型强制转换为指定类型。 (4)举例: (int)3.14 //结果为整型3 (float)1 //结果为浮点型1.0 (float)1/2 //结果为浮点型0.5 1 /2 //结果为0 [真题练讲] 1.(2008年湖南高考真题)程序分析题。 main() {char a=55; a=~a&055; printf("%x,%o",a,a); getch();} 运行结果是__________ 。 【答案】8,10 2.(2011年湖南高考真题)单项选择题。已知i=3,执行j=i++后,i和j的值分别为( ) A.i=4 -2 B.i=4 j=3 C.i=3 j=3 D.i=3 j=2 【答案】B 3.(2012年高考真题)阅读程序,写出运行结果:____________ #include <conio.h> #include <stdio.h> main() { int a=3,b=4; a%=b+=a+=(a+b); printf("%d,%d",a,b); getch(); } 【答案】10,14 4.(2013年湖南高考真题)单项选择题。假设有:float a=5,b=a=5/2;则执行语句printf("%f",b)的输出结果为( ) A.7.500000 B.7 C.5.000000 D.7.000000 【答案】D 5.(2014年湖南高考真题)单项选择题。若变量a,i已正确定义,且i己正确赋值,合法的C语言语句是( ) A.a=int(i); B. a==0 C. ++i; D. a=a++=2; 【答案】C 6.(2015年高考真题)单项选择题。若有语句: int x=12,y=8,z;z=0.8+x/y;执行语句后z的值为( ) A.1.8 B.1 C.2 D.2.4 【答案】B 7.(2018年湖南高考真题)单项选择题。若“int a=12;”,执行“a/=a+8;”后,a的值是( ) A.1 B.8 C.9 D.0 【答案】D 8.(2018年湖南高考真题)单项选择题。若“int a=5,b;”,执行“b=a>>2;”后,b的值是( ) A.10 B.20 C.1 D.2 【答案】C [限时练习] 1.(2020年高考真题)单项选择题。 在C语言中,用( )表示逻辑值“真”。 A. T B. F C.非零整数 D. 0 【答案】C 2.(2020年湖南高考真题)单项选择题。 执行“inta=3;a+=a^2;”后,则a的值是( ) A.12 B.9 C.6 D.4 【答案】D 3.(2019年湖南高考真题)单项选择题。已知“int a=1,b=2,c=3,x;"与“x=(a^b)&c;",则x的值为( ) A.0 B.1 C.2 D.3 【答案】D 4.(2022年湖南高考真题)单项选择题。下列C语言表达式( )的值不等于1。 A.123/100 B.365%5 C.abs(-1) D.0||1 【答案】B 5.(2021年湖南高考真题)单项选择题。若“int a=-7,b=-1;”执行“a%=b-1;”,a 的值是( ) A.-7 B.-1 C.-2 D.-3 【答案】B 6.(2024年湖南高考真题)单项选择题。执行程序段"int x=061,y=016;int z=x|y;"后,z的值是( ) A.63 B.77 C.45 D.14 【答案】C 7.(2024年湖南高考真题)单项选择题。执行程序段"int a=37;a+=a%=9;"后,a的值是( ) A.4 B.8 C.2 D.18 【答案】C 8.(2017年湖南高考真题)单项选择题。若“int a; float b=12.2;”,则执行“a=(int)b%3;”后,a的值是( ) A.1 B.0 C.2.2 D.1.22 【答案】B 9.(2025年湖南一轮联考题)执行程序段“int x=073,y=066;int z=x|y;”后,z的值是( ) A. 61 B. 62 C. 64 D. 63 【答案】D 10.(2025年湖南一轮联考题)执行程序段“intx=6;x+=x%=x;”后,x的值是( ) A.36 B.1 C.0 D.12 【答案】C [内容小结] 一、算术运算符 • 用于实现加、减、乘、除、取余等基本算术运算,是数值计算的基础工具。 二、赋值、逗号运算符 • 赋值运算符:以=为核心,实现数据的赋值操作,还可结合算术运算形成复合赋值(如+=、-=等)。 • 逗号运算符:用,连接表达式,按从左到右顺序执行,最终结果为最右侧表达式的值。 三、自增、自减运算符 • 自增运算符(++):使变量值加1,分前缀(如++a,先加后用)和后缀(如a++,先用后加)形式。 • 自减运算符(--):使变量值减1,同样有前缀(--a)和后缀(a--)形式。 四、位运算 • 对数据的二进制位进行操作,包括按位与、或、异或、取反、左移、右移等运算,常用于底层硬件操作或性能优化场景。 五、关系与逻辑运算 • 关系运算符:包括>、<、>=、<=、==、!=,用于比较两个值的关系,结果为布尔值(真或假)。 • 逻辑运算符:包括&&(逻辑与)、||(逻辑或)、!(逻辑非),用于组合或取反布尔值,实现复杂逻辑判断。 六、强制类型转换运算符 • 通过(类型)的形式,将一个数据类型强制转换为另一种数据类型,例如(int)3.14可将浮点型转换为整型。 学科网(北京)股份有限公司 $

资源预览图

专题2:运算符与表达式(讲义)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
1
专题2:运算符与表达式(讲义)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
2
专题2:运算符与表达式(讲义)-《编程语言基础—C语言》(高等教育出版社第5版)高考备考讲练测(湖南省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。