c语言笔试知识点c语言笔试知识点
C语言知识点总结
常量
数字常量
普通数字:1,35,2.7
指数形式:2.45e-2等价于2.45*10-2 注意e大小写皆可,e前面的数字不能省,就算是1也不能省,后面的数字一定要是整数
长整型,单精度浮点型:3235L,32.5F 分别表示3235是长整型数据,32.5是单精度浮点型左,若不写上L,F则表示3235是整型,32.5是双精度浮点型,L,F大小写皆可
字符常量
普通字符常量:用单引号把一个字符括起来,如’A’,’@’
转义字符常量:一对单引号括起来并以“\”开头的字符序列,如’\n’(回车)、’\123’(8进制123对应的字符), ’\x23’(16进制23对应的字符)
字符串常量
用一对双引号把一个字符序列括起来,如“ABCef”, 系统存放字符串常量,每个字符分配一个字节,各字符所占字节紧邻,并且字符串末尾会给再开一个字节里面放一个’\0’做为结束标志。
符号常量
定义格式 #define 符号常量名 符号常量值,如#define N 20则定义了符号常量N,其值为20,注意符号常量名和符号常量值之间是用空格隔开,而不是写上=号,#define和符号常量名之间也有空格的。
题目:P7—1,5,6,7,9,10
标识符
命名规则
以数字,字母,下划线这三类字符组成,但只能以字母或下划线开头,而不能也数字开头,另外不能将关键字做为标识符。32个关键字表在P365附录B
变量名,函数名,符号常量名全都是标识符
题目:P7—2,3,4
变量
变量的定义格式
类型名 变量名;
如 int a;定义了一个整型常量a。变量名是由人类随便定义的,符合命名规则的前提下,爱写啥就写啥。所以什么flag,cc,y1或者函数名fun,find等全部是自定的用来做为名字而已,没有更特别的意义。
类型名
int 整型,long 长整型: 用于存放整数,只是数值范围不同
float 单精度浮点型 double 双精度浮点型:用于存放实数,数值范围,精度不同
char字符型:用于存放字符
变量赋值,初始化
int a=3;定义的同时初始化
a=6*9;定义后在程序中进行赋值
变量的值
只有在赋值操作时才会被改变,即将其放在等号左边时才会改变它的值,或自增自减操作:a=5,a++,a--,像a+3并未改变a的值,只是使用了a的值而已.
自增自减运算
变量++,++变量,变量--,--变量 使变量的值自增1或自减1
等价于 变量=变量+1 变量=变量-1
++,--放于变量前后效果的区别:
当自增自减运算做为表达式的一部分时,++,--放在变量前面是先自增自减再使用变量的值,放在变量后面则是先使用变量的值,再自增自减。
如x=3; printf(“%d”,++x);则相当于执行了++x; printf(“%d”,x);这样的操作所以打印出4
再如x=3; printf(“%d”,x++);则相当于执行了printf(“%d”,x); x++;这样的操作,则打印出3,当然最后x的值还是4。
表达式
运算符和运算对象
一个运算符都有若干个运算对象,如 + 必然要跟两个运算对象才能进行加法运算:3+5。C语言里称需要跟n个运算对象的运算符为n元运算符。
一元运算符有:!,(类型名)
二元运算符有:+,-,*,/,%(求余), =,+=,-=,*=,/=,%=,< , > , <=, >=, = =(等于), !=(不等于),&&(且) , ||(或)
多元运算符有: ,
运算符的优先级和结合性
优先级:同一个运算对象左右两边若同时有两个运算符,则这两个运算符优先级高的先进行运算。
结合性:若同一个运算对象左右两边的两个运算符优先级相同,则根据结合性判断先进行哪个运算,自左自右结合性的先算左边的运算符,自右自左的先算右边的运算符。
各运算符的优先级和结合性见P365附录C
强制类型转换
格式: (类型名) 表达式 。将后跟的表达式的值的数据类型转换为与圆括号内的类型名一致的类型。注意类型名一定要用() 括起来。
算术表达式
算术运算符:+,-,*,/,%(求余)
由算术运算符加上运算对象构成算术表达式,如3+3*6-9/2
值:跟我们小学时学的一样,就是表达式的计算结果
整数除以整数结果取整数部分,故1/3得到的值是0
5%3 结果为2,想想小学除法,求余得到的是余数不是商。
赋值表达式
赋值运算符:=,+=,-=,*=,/=,%=
赋值表达式:变量=表达式,如x=3+6,x+=6-9,x+=x*=3+4 注意等号左边只能是变量
复合赋值运算符的运算:以/=为例:x/=表达式 等价于 x=x/(表达式)
值:=号左边的变量最终的值
关系表达式
关系运算符:< , > , <=, >=, = =(等于), !=(不等于)
由关系运算符加上