1、c语言中的整数表达式:
a)C语言中没有二级制表达式
b)C语言中最常用给的两种常数表达式是:10进制和16进制(0x开头)表达式
c)C语言中还有一种不常用的常数表达式:8进制表达式(0开头)
d)C语言中还有一种特殊的整数表达式:字符常量(0-127)之间
2、C语言中的浮点数有两种表达式:
a)单精度:带小数点,后缀是f float类型
b)双精度:带小数点,没有后缀 double类型
3、转义字符:表达ASCII表中一些不容易输入到代码中的字符。
常用的有下面几个:
'\n' 代表换行 编码为10
'\t' 制表符(TAB),以8的整数倍去对齐 ,编码是9
'\\' 两个反斜杠才能表示一个反斜杠,因为一个反斜杠倍认为是与其他转义字符连用的符号,编码为92
'\"' 如果直接使用"不加\的话,会导致多个字符串的额双引号发生混乱
单引号 同上双引号
4、C语言中的常量有整型常量(包括字符型常量),浮点型常量(float和double型),和字符串型常量,其中,字符串常量与
其它两种两种略有不同,整型常量和浮点型常量并不占用内存,而字符串常量中的字符依次存贮在内存中的一块连续的区域内,
并且把空字符‘\0’自动附加到字符串的尾部作为字符串结束的标志,故字符个数为n的字符串在内存中应该占用n+1个字节。
字符常量和字符串常量的比较:
a)字符常量是由一对单引号括起来的单个字符,而字符串常量是一堆双引号括起来的字符结合
b)字符常量本质上是一个数字,这个数字对应了一个字符,而字符串常量本质上是一个字符集合的内存地址,打印时从头遍历直到结尾符结束
c)不能讲字符串与字符常量混淆,字符常量可以赋值给字符变量,但不能把一个字符串常量赋值给一个字符变量,同时也不能对字符串常量赋值,比如: char b = 'a' 正确 char b ="a" 错误!!
5、单字节变量
a)unsigned char类型:范围从0到255
b)char类型:0 - 127与unsigned char没有区别,128以后是负数(-128 - -1)
c)char类型:从 -128 到 -1 0 到 127
2、双字节变量
A)unsigned short类型:范围从0 到65535(64k -1)
B)short类型:0 – 32767 与 unsignedshort没有区别,32768(32k)以后是负数,(-32768 - -1)
C)short类型:从-32768(-32)到-1 0 到32767
4、四字节变量
A)unsigned long类型:范围:从0到4G-1(近43亿)
B)long类型:从0到2G-1的范围与unsignedlong没有区别,2G以后是负数(-2G到 -1)
C)long类型:从-2G到-1 0 到2G-1
4.printf函数的调用
A)必须带入一个控制字符串,控制字符串内可以有0个到多个%开头的控制字符串组成。
B)每含有一个%开头的控制符,必须对应后面一个逗号后的一个常量或者变量
C)如果一个%控制符没有对应一个数值或者变量,将随机打印出一些随机的数值
D)如果一个%s控制符没有对应好一个有效的字符串地址,可能会造成程序崩溃
5、控制字符的种类:
%c:带入一个数字(0-127),打印出其ASCII码文本
%s:输入或者输出一个字符串
%d:十进制
%x:十六进制
%o:八进制
没有二进制打印
6、占位控制
A)对于整数在%后加一个数字就是用于打印时控制占位宽度,负号代表左对齐
B)对于字符串在%s后加一个数字就是用于打印时控制占位宽度,负号代表左对齐
C)对于浮点数%后面加一个数字就是用于打印时控制占位宽度,负号代表左对齐(控制符可以用小数点管理浮点数的小数位数,缺省是6位)
D)浮点数总的位数大于占位符的话,占位符就没有用了(例如:%0.2f只管理小数位数)
E)在有些右对齐时还可以使用填充符号,例如:%08d 意思就是用0填充空位
7、scanf的调用方法
A)除了%控制符号以外,在scanf的控制字符串内还可以使用空格或者是逗号作为间隔符号
B)注意在scanf中不要使用像printf那样的组合字符串
C)使用空格作为间隔符时,可以使用回车代替空格输入
8
8、其他一些输入输出函数
A)putchar :等价于printf(”%c”.xx),带入一个数字打印出AS8CII码的文本
getchar:等价于scanf(”%c”),在键盘上输入一个文本返回字符对应的ASCII编码(数字)
B)putch:(c语言扩充函数)无回显输入函数,输出和putchar没有区别
getch:输入之后不回显,不等待会车,只要一碰键盘上的任何键就会返回给程序输入的编码,可以用来编写输入密码的程序。
C)puts:输出一行单纯的文本时非常方便,等价于printf(“%s”,xx)
gets: 等价于scanf(“%s”);,获取一行文字
9、switch()case…分支语句:适用于无重叠的比较分支语句
A)switch语句只适合于小范围的独立(无重复)数值进行判断,不能对无限集合进行判断,对于大的集合也难于判断
B)每个case管辖的语句到break为止,使用switch最容易犯的错误是漏写break
C)if语句可以实现所有switch语句的功能,但是switch语句不能实现所有if语句能表达的功能
D)可以将两个条件合并为一个条件:
Case a:
Case b:
Puts(“您的成绩为优良!”)
10、while语句:
C语言中的循环语句,分为while语句和for语句两种分支语句;
A) 所有while语句能表达的功能for语句全部都能实现,反之亦然
While语句层次清晰,for语句更方便
B) 每个循环语句都可由三个部分组成:初始化区域,条件判断区域,递增区域
11、do..while循环语句:特点是先执行在判断,核心运算区无条件的执行一次
A)while语句如果第一次进入循环之前的判断不成立,将出现0次循环、
B)do..while语句至少会循环一次,不可能出现0次循环
11、在循环中找到与找不到的两种典型方法:
A)设置一个标志变量(是或者否),1代表是,0代表否
B)不使用标志量,而是在循环之后根据循环的递增量确定
12、getchar在使用时会有个问题:
第一次使用的时候是正常的,回车之后再次执行会出现将上次的回车符号获取的问题。
可以使用两次getchar来避免获取到‘\n’的问题。
或者可以使用fflush('stdin’)来清空缓存。
13、嵌套循环
也叫做多层次循环,一般需要先把内核部分(内层循环)编写好,在套上一层外壳。(外层循环)
14、for循环
A)for语句相当于将while语句的三个区域,用分号间隔全放在循环头部的小括号里
B)递增区是在每次循环结束时执行,第一次进入循环之前并不执行,在第二次循环以后,也可以说是在每次比较之前执行递增
C)当条件区为空时代表无条件循环:
例如:for(初始化区;;递增区) 等价于for(初始化区;1;递增区)
D)for的括号内三个区全都可以为空:
初始化区;
for(;;)
{
核心运算区;递增区
}
15、运算符
A)常量和变量的空间测量sizeof
不是运行时计算,而是编译时计算,sizeof得出的结果是常量,字符串常量得出的尺寸包括结尾符号‘\0’
C) 加减乘除和取模: + - */ %
D) 引用和地址运算符:&
E) 自增自减:++ --
前++ 或者—的优先级超级高,而后++或者—的优先级超级低
前++或者—可以和后面的语句和并为一个语句;
后++或者—可以和前面带有同样变量的语句合并为一个语句;
一般认为:前++或者—速度比后++或者—速度会更快
有些编译器可能已经做了一些优化,你写的是后++会自动作为前++来处理。
F) 自运算符号:+= -= *=/= %/ 共5个
16、符号的优先级
1级优先级:左结合
()圆括号 【】下标运算符 ->指向结构体成员运算符 .结构体成员运算符
2级优先级:右结合
!逻辑非运算符 ~按位取反运算符 ++自增运算符 –-自减运算符 –负号运算符 (类型)类型转换运算符 *指针运算符 &地址与运算符 sizeof长度运算符
3级优先级:左结合
*乘法运算符 /除法运算符 %取余运算符
4级优先级:左结合
+ 加法运算符 –减法运算符
5级优先级:左结合
<<左移运算符>>右移运算符
6级优先级:左结合
< <= >>= 关系运算符
7级优先级:左结合
==等于运算符 != 不等于运算符
8级优先级:左结合
&按位与运算符
9级优先级:左结合
^按位异或运算符
10级优先级:左结合
|按位或运算符
11级优先级:左结合
&&逻辑与运算符
12级优先级:左结合
||逻辑或运算符
13级优先级:右结合
? :条件运算符
14级优先级:右结合
+= -= *= /= %= =>= < <= &= ^= |= 全部都是赋值运算符
15级优先级:左结合
,逗号运算符
17、位运算
位运算符总共有6总类型:(其中左移和右移是最简单的两种位运算)
A)<<按位左移,相当于乘以2(变常量<<位数)
B)>>按位右移,相当于除以2(变常量>>位数)
C)有符号变量在最高位是1的时候(也就是当它是负数的时候),做右移运算,移动后的高位填充的是1;如果是无符号变量做右移,移动后的高位填充的是0
18、其他位运算
A)& 按位与:相同位的两个数字都为1,则为1,若有一个不为1,则为0.(两个数字按位与运算,当没有重叠时结果是0)
B)| 按位或:相同位的两个数字都是0,则为0;若有一个不是0,则为1
C) ~ 按位取反:单目运算符,将一个数字所有二进制位0变1,1变0;(无符号是相当于最大值减去自己,有符号相当于乘-1再减)
D)^按位异或:双目运算,当相同位的两个数字相同时为0,不同时为1.(两个跟同一个数字^运算结果,恢复原来之前的数值)