C语言最重要的知识点
总体上必须清楚的
-
程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。
-
读程序都要从 main() 入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
-
计算机的数据在电脑中保存是以二进制的形式,数据存放的位置就是它的地址。
-
bit是binary digit的缩写,表示信息的最小单位,状态:0和1;一般来说,n比特的信息量可以表现出 2 n 2^n 2n 种选择。
-
byte指字节,`1byte=8bit(1个字节=8个位)。
概念常考到的
-
预编译处理不是C语言的一部分,不占运行时间,不要加分号;C语言编译的程序称为源程序,它以ASCII数值存放在文本中。
-
define PI 3.1415926; 这个写法是 错误 的,一定不能出现分号。
-
每个C语言程序中的main函数是有且只有一个。
-
在函数中不可以再定义函数。
-
算法:可以没有输入,但是一定要有输出。
-
break可用于循环结构和switch语句。
-
逗号(
,
)运算符的级别最低,赋值运算符(=
)的级别倒数第二
第一章 C语言的基础知识
第一节、对C语言的基础认识
-
C语言编写的程序称为源程序,又称为编译单位。
-
C语言的书写格式是自由的,每行可以写多个语句,可以写多行。
-
一个C语言程序有且只有一个main函数,是程序运行的起点。
第二节、熟悉VC++
-
VC++是用来编写C语言程序的软件。
-
每个C语言程序写完之后,都是先 编译、后 链接、最后 运行(.c—>.obj—>.exe)。这个过程注意 .c和 .obj文件是无法运行的,只有 .exe文件才可以运行 。(常考!!!!)
第三节、标识符
标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。
-
标识符(必考内容):
合法的要求是由
字母、数字、下划线组成,不可出现其他元素首字符不能是数字,但可以是字母或者下划线
-
标识符分为关键字、预定义标识符、用户标识符。
-
关键字:不可以作为用户标识符
main、define、scanf、printf都不是关键字。
迷惑你的地方:If是可以作为用户标识符的,因为If中的第一个字母"I"大写了,所以不是关键字。 -
预定义标识符:背诵define、scanf、printf、include
预定义标识符可以作为用户标识符。
-
用户标识符:用户根据需要自己定义的标识符
一般用来给变量、函数、数组等命名
-
第四节、进制转换
熟练掌握:
十进制转二进制、八进制、十六进制。
二进制、八进制、十六进制转成十进制。
第五节、整数与实数
-
C语言中只有八、十、十六进制,没有二进制,但是程序运行时,所有的进制都要转换成二进制来处理。
-
C语言中的八进制规定要以0开头,由0~7组成,逢8进1,如:0126、05000。
-
C语言中的十六进制规定要以0x开头,由 0~9,A~F或a~f组成,如:如,0x12A、0x5a000。
-
-
小数的合法写法:C语言中小数点两边有一个是零的话,可以不用写
1.0在C语言中可以写成1.
0.1在C语言中可以写成.1 -
实型数据的合法形式
2.333e-1属于合法,且数据是 2.333 × 1 0 1 2.333 \times 10^1 2.333×101
2.333e3.6属于非法,合法写法为2.333e3,数据为 2.333 × 1 0 3 2.333 \times 10^3 2.333×103
口诀:e前e后必有数,e后必为整数 -
数据的表示
整型一般是4个字节、字符型是1个字节,双精度一般是8个字节
log int x; 表示x是长整型 unsigned int x; 表示x是无符号整型
第六、七节:算数表达式和赋值表达式
核心:表达式一定有数值!!!
-
算术表达式:+、-、*、/、%
“
/
” 两边都是整型的话,结果就是一个整数,3/2
的结果就是"1.
"
“/
” 有一边是小数,结果就是一个小数,3/2.0
的结果就是"1.5
"
“%
” 请一定注意是余数,%符号两边要求是整数,不是整数不合适。注意!!! -
赋值表达式:
- 计算赋值运算符右侧表达式的值(
=
为赋值运算符) - 将赋值运算符右侧表达式的值赋给左侧的变量
- 将赋值运算符左侧的变量的值作为表达式的值
- 表达式最终数值结果是最左边的数值
- a=b=5 该表达式为5
- 常量不可以赋值
赋值的左边只能是一个变量
int x=y=10; 错误:定义时,不可以连续赋值 int x,y; x=y=10; 正确:定义完成后,可以连续赋值 int x=7.7; 正确:x=7 float x=7; 正确:x=7.0
- 计算赋值运算符右侧表达式的值(
-
复合的赋值表达式:
int a=2; a*=2+3; 运行完成后,a=10(a=(2+3)*a--->a=5*2) 一定要注意:首先要将2+3变成(2+3)再运算
-
自加表达式:++
-
自加、自减表达式:
假设a=5,++a=6,a++=5
-
运行机理
++a是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。
进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。
口诀:++再前先加后用,++在后先用后加
-
-
逗号表达式:,
它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值,优先级别最低
如: ( 3 + 5 , 6 + 8 ) (3+5,6+8) (3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式,整个表达式值是表达式2的值; ( 3 + 5 , 6 + 8 ) (3+5,6+8) (3+5,6+8)的值是14
a = ( a = 3 ∗ 5 , a ∗ 4 ) a=(a=3*5,a*4) a=(a=3∗5,a∗4)的值是60,a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60
( 2 , 3 , 4 ) (2,3,4) (2,3,4)的表达式的数值是4
z = ( 2 , 3 , 4 ) z= (2,3,4) z=(2,3,4)(整个是赋值表达式)这个时候z
的值为4
z = 2 , 3 , 4 z= 2,3,4 z=2,3,4(整个是逗号表达式)这个时候z
的值为2
补充
-
空语句不可以随意执行,会导致逻辑错误
-
注释不是C语言,不占运行时间,没有分号,不可以嵌套!
-
强制类型转换:
一定是 (int) a 不是 int (a),注意类型上一定有括号 注意(int) (a+b) 和 (int) a+b的区别,前者是把a+b转型,后者是把a转型再加b
-
三种取整丢小数的情况:
1、int a=1.6; 2、(int) a; 3、1/2; 3/2;
第八节、字符
-
字符数据的合法形式
'1’是字符占一个字节,“1” 是字符串占两个字节(含有一个结束符号)。
'0'
的ASCII数值表示为48,'a'
的ASCII数值表示为97,'A'
的ASCII数值表示为65。
一般考试表示单个字符错误的形式: ‘65’ “1”
字符是可以进行算术运算的,记住: '0-0=48
大写字母和小写字母转换的方法: ‘A’+32-‘a’ 相互之间一般是相差32 -
转义字符
转义字符分为一般转义字符、八进制转义字符、十六进制转义字符
- 一般转义字符:背诵
\0
、\n
、\'
、\"
、\\
转义字符 意义 \0 空字符(NUL) \n 换行(LF) ,将当前位置移到下一行开头 \’ 代表一个单引号(撇号)字符 \" 代表一个双引号字符 \\ 代表一个反斜线字符 \ -
八进制转义字符:’\141’是合法的,前导的0是不能写的
-
十六进制转义字符:’\x6d’是合法的 ,前导的0不能写且x为小写
- 一般转义字符:背诵
-
字符型和整数型是近亲,两个具有很大的相似之处
char a=65; printf("%c",a);得到的输出结果:a printf("%d",a);得到的输出结果:65
第九节、位运算
-
位运算总的处理方法
总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。
- 例1:
char a = 6,b; b=a<<2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。
- 例2:
一定要记住,异或的位运算符号"^",0^1=1,0^0=0
-例3:
》在没有舍去数据的时候,< <左移一位表示乘以2; >>右移一位表示除以2。
左右移 二进制 十进制 << 0100 4 原始位 0010 2 >> 0001 1