C语言 第2章 用C语言编写程序 刷题笔记

1、八进制、十六进制的表示:
(1)八进制:以0开头的数字
(2)十六进制:以0x或0X开头的数字,十六进制的字母部分可以用A ~ F或a ~ f表示。
2、常量的后缀:
(1)整形后加l或L则为long int型。
(2)整形常量后加u或U,则为unsigned型。
(3)浮点型后加F或f则为float型。
3、指数形式的常量:
指数部分只能是整数,尾数不限,指数或位数均不能省略。e可以大写,可以小写。
如:1e3=1X10^3
-.1E-3=-0.1X10^-3
1e、E.5、E-3非法
4、常量的默认类型:
(1)整形:默认为int
(2)浮点型:默认为double
5、字符串常量所占的长度为:字符串长度+1
6、变量在定义时,系统就为其分配了存储单元。
7、“%”运算符的细节:
(1)如果有小数参与取模运算,编译器会报错。如:11.2%5(X),11%5.2(X),甚至11%5.0(X)报错信息:error: invalid operands to binary % (have ‘int’ and ‘double’)
(2)当式子中有负号时,结果的正负与前一个数(被除数)的负号保持一致,如:-11%5=-1而11%-5=1,-11%-5=-1
8、当两个int进行/运算时,结果也为int(不四舍五入,直接去除小数部分);一个int与一个float运算,结果为float。
9、++与–:
(1)++ 和 – 的运算对象只能是变量, 不能是常量。 例如: 5++、(a+2)++ 不合法。
(2)具有右结合性,结合方向为从右到左。
例如: –a++ 等价于 -(a++)
(3)如果有多个运算符连续出现时,C系统尽可能多的从左到右将字符组合成一个运算符
例如: i +++ j 等价于 ( i++)+j
-i++±j 等价于 -(i++)+(-j)
10、赋值号左边必须是变量,右边可以是C语言任意合法的表达式
例如:n= t +2<s 合法
a+ b = 15 不合法
11、整形和浮点型的相互赋值:
(1)实型 赋给 整型变量
整数部分赋给整型变量,舍去小数部分
int x; x = 6.89; 后 x=6
(2)整型 赋给 实型
例如:float x; x=6; 后 x = 6.0
12、浮点数可进行大于或小于比较,但通常不进行 == 或 != 的关系运算,需要比较时,用一下方法进行比较:
float x,y; x=y=1.25; fabs(x-y)<1e-5
13、运算按照从左至右的顺序进行,一旦能够确定逻辑表达式的值,就立即结束运算
——逻辑运算的短路性质
14、条件运算符:
表达式1 ? 表达式2 : 表达式3
表达式1成立,则结果为表达式2,反之为表达式3.
条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
例如:w<x ? x+w : x<y ? x : y
与 w<x ? x+w : ( x<y ? x : y) 等价
与 (w<x ? x+w : x<y) ? x : y 不等价
15、逗号表达式:
每一个被逗号分割开的表达式都会被运行,但如果被逗号分隔开的不是赋值运算,则变量值不会改变。逗号表达式整体的最终结果为最右侧的表达式则值。
16、取地址运算符&只能对变量取地址,不能对常量取。
17、长度运算符sizeof运算对象只能是变量名如a、b或数据类型标识符如int、float,不能是常量。
18、数据类型的自动转换:
自动将精度低、表示范围小的运算对象类型向精度高、表示范围大的运算对象类型转换
如:赋值运算中:
(1)<实型变量> = <整型表达式>
小数部分自动补0
(2)<整型变量> = <实型表达式>
自动舍去实型表达式的小数部分(非四舍五入)
(3)<字符变量> = <整型表达式>
自动截取表达式值的低字节赋值,舍去高字节

猜你喜欢

转载自blog.csdn.net/q111211/article/details/106833952