1.掌握各种数据类型的表示范围,清楚表示范围的求法(最高位为符号位)
数据溢出的处理: 数据大于最大表示范围,减去数据表示范围总数量
数据小于最小表示范围,加上数据表示范围总数量
char(1字节=8位) 2^8=256 -128~127(-2^7~2^7-1) unsigned char 0~255(0~2^7-1)
short(2字节=16位) 2^16=65536 -32768~32767(-2^15~2^15-1) unsigned short 0~65535(0~2^16-1)
运算符优先级: 单目>算术>左移、右移>关系>按位与、按位异或、按位或>逻辑(&&,||)>条件运算符>赋值>逗号
取反公式及原理: ~n=-(n+1) 先取补码,补码取反再取补码 即为原码
右移公式: 正数右移m位 运算结果为 n/2^m;
负数右移m位 没有余数运算结果为 n/2^m 有余数运算结果为 n/2^m+1
2.掌握整型提升:bool、char、unsigned char、short、unsigned short、int、unsigned int运算时,
自动提升为int型或者unsigned int型
3.了解自增自减运算符前后置的区别: 效率(前置高于后置) 优先级(后置高于前置)
4.了解运算符的类型并区分:
算术运算符 + - * / %
逻辑运算符 && || ! (&&和||的区别)
关系运算符 > >= < <= == !=
位运算运算符 & | ~ ^ >> << (二进制补码才能进行位运算)
赋值运算符 = (右结合性 从右往左运算) “复合赋值运算符”
自增自减运算符 ++ --(前置、后置)
条件运算符 a ? b : c
逗号运算符 a,b,c (从左往右依次运算,c是整个表达式的值)
求字节运算符 sizeof()
5.了解自增自减运算符前后置的区别: 前置先自增/自减,再运算 后置先运算,再自增/自减
6.数据溢出、条件运算符、关系运算符、自增自减运算符的综合
条件运算符 a ? b : c 表达式a为真执行表达式b,反之
逻辑运算符 a&&b 若表达式a为真,继续执行表达式b,b表达式为真,输出1,反之
若表达式a为假,不执行表达式b,直接结束输出0
a||b 若表达式a为假,继续执行表达式b,b表达式为假,输出0,反之
若表达式a为真,不执行表达式b,直接结束输出1
7.运算符优先级:
单目>算术>左移、右移>关系>按位与、按位异或、按位或>逻辑(&&,||)>条件运算符>赋值>逗号
此题没有打括号,位运算符左移优先级“<<”比关系运算符“==”高 不能输出理想的结果 运算报错
8.算术运算符 “/” 和 “%” 的区别:
除法 “/” 截断取整 运算结果符号和运算法则相同 1/2=0 2/-1=-2
求余 “%” 运算结果符号与被除数有关 -1%2=-2 1%-2=1
9.位运算的一些特殊用处:
右移“>>” 二进制数最高位为符号位 x>>31?"负数":"正数"(不用关系运算符判断一个整数是正数还是负数)
10.定义两个整型变量,不使用第三个变量,交换两个变量的值:
(1)x=x+y
y=x-y
x=x-y
(2)x=x-y
y=y+x
x=y-x
(3)x=x^y
y=x^y
x=x^y
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复