C语言基础知识点总结(共12页).doc

上传人:飞****2 文档编号:14967450 上传时间:2022-05-09 格式:DOC 页数:12 大小:115.50KB
返回 下载 相关 举报
C语言基础知识点总结(共12页).doc_第1页
第1页 / 共12页
C语言基础知识点总结(共12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《C语言基础知识点总结(共12页).doc》由会员分享,可在线阅读,更多相关《C语言基础知识点总结(共12页).doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上重庆市二级C语言基础知识点总结第一部分 C语言基础知识 C程序的基本结构1. (1)一个C程序由一个或者多个函数构成,有且仅有一个主函数main()。(2)一个函数由函数的首部和函数体组成。(3)函数是从主函数(main())开始执行,回到主函数(main()结束;(与main()函数在程序中定义的位置无关)(4)一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束;(5)算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性(6)算法(程序)的几个结构:选择结构,顺序结构,循环结构2. 用户标识符,由数字,字母,下划线构成,第一个

2、不能是数字(一般会出选择题让你判断哪个标识符定义正确),字母要区分大小写。不能与32个关键字相同。例:P24 第2题P122、2,模拟题第一题3. 注释符:/注释一行;/*和*/注释多行,注释不可以嵌套书写。注释没有任何语法功能。C语言的基本数据类型1. 数据类型:分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型 (空类型合法哦,不要忘记了这个特殊哦)。基本数据类型专心-专注-专业16位编译器32位编译器char :1个字节char :1个字节char*(即指针变量): 2个字节char*(即指针变量): 4个字节(32位的寻址空间是

3、232, 即32个bit,也就是4个字节。)short int:2个字节short int : 2个字节int: 2个字节int: 4个字节unsigned int :2个字节unsigned int : 4个字节float:4个字节float: 4个字节double: 8个字节double: 8个字节long: 4个字节long: 4个字节long long: 8个字节long long: 8个字节unsigned long: 4个字节unsigned long: 4个字节一般只需要记int类型是2个字节,float是4个字节,double是8个字节注意int的最大表示范围是-32768+3

4、2767,当超过这个范围的时候,即以%d输出+32768时结果为-32768长整型(long)表示方法是在数字后面加L,如果一个变量a=3,那么表示的是一个整型的3,如果是a=3L,那么就是长整型的3;当分别以%o,%ld,%x (8进制,长整型,16进制)输出的时候,结果没有前面的0,0X,和后面的L 例:int a=075,b=ox14;long int c=5L; printf(“%o,%x,%ld”,a b c); 结果为(75,14,5)P22第5、11、9题等2. 转义字符:n t ” ddd(1-3位八进制所代表的字符) xhh(1-2位十六进制所代表的字符) 这个书上习题特别多

5、,P25 第19题,P120第3题,P138第16题P147第14题P152第2题等3. sizeof()和strlen():sizeof()测试字符串的存储长度;strlen()测试字符串长度,只计算遇到的第一个0前面的字符个数。例:strlen(“abc089”)=3 strlen(“abc012”)=4 注意这个例题:char a30=“abc0b”; sizeof(a)=30 ; sizeof(“abc0b”)=6;strlen(a)=3 strlen(“abc0b”)=3 ;4. 运算符和表达式:记忆书上附录里的运算符优先级(一定要记住常用的)(1)算术运算符和算术表达式:注意自增+

6、,自减-,自反-,+,-,当+,-,在变量后面的时候表示在本次运算的时候不会改变,在下次引用或者参与运算的时候才会自变;当+,-,在变量的前面的时候则是在本次运算就会发生自变(顺便掌握+,-结合性是右结合,若i+j等价于(i+)+j;(2)关系运算符:,=,= =,!= ,=和!=优先级最低。注意=与=的区别:=是赋值的意思,表达式的值是对变量赋的值,=是关系运算符,关系运算表达式的值为0或者1(关系运算的结果本应是逻辑值,但C语言中没有逻辑数据类型,因此用整型数据来表示关系运算的结果)。(3)逻辑运算符:& ,|,!在这几个中优先级!大于 & 大于 |,优先级是体现在结合性上而不是运算的先后

7、性上。例如a=b=c=1;d=+a|+b&+c在这个里面&最高那就是加粗部分先看成一个整体,运算顺序还是从+a开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以d=1,a=2,b=1,c=1(4)赋值运算符:简单赋值运算符“=”其左边必须是变量。一般形式:变量名=表达式复合赋值运算符:+=、-=、*=、/=、%=、=、&=、=、|=。注意当等号后面接的是表达式的时候要把表达式看成一个整体即x *=y+8等价于x=x*(y+8),y+8是一个整体(5)条件运算符:由两个符号“?”和“:”构成,一般形式:表达式1?表达式2:表达式3先计算表达式1的值,如果值为真(非0),则将

8、表达式2的值作为条件表达式的值,否则将表达式3的值作为条件表达式的值。(6)逗号运算符和逗号表达式一般形式:表达式1,表达式2,表达式n求值时从左至右依次计算,最后计算表达式n的值,并将表达式n的值作为逗号表达式的值。例:#includevoid main()int a;printf(“%dn”,(a=3*8,a*4,a+5);该程序的输出结果为29,变量a的值为24,注意此处考察了逗号表达式、逗号和赋值符号的优先级。=优先级高于,的优先级。(7)位运算符和位表达式(参考教材P17-18)位运算符有 | (或)即只要有一个1就是1, &(与)要全部为1才为1 (异或)要不相同才为1 ;注意的是

9、当向左移动n位就是乘以2的n次方;向右移动n位就是除以2的n次方。(8)强制类型转换运算符强制类型转换的一般形式:(类型名)表达式表达式(double)(x+y),是将x+y的值转换为double类型后得到的值,变量x,y和表达式x+y都保持原来的数据类型。C程序的输出printf()函数的一般形式为:printf(“格式控制字符串”,输出表列);格式控制包括两种信息:(1)格式说明:由%和格式字符组成。如%d、%f等。作用是将输出的数据转换为指定的格式输出。格式说明总是由%字符开始。(2)普通字符:即需要原样输出的字符。如逗号、空格和换行符。所以在写程序输出结果时,这种字符要原样写出来。pu

10、tchar()函数的作用是向终端输出一个字符。一般形式:putchar(c),输出字符变量c的值,c可以是字符型变量或整型变量。%d,%md,%m.nd, %e,以及相应的几种格式是什么意思C程序的输入scanf()函数的一般形式为:scanf(“格式控制字符串”,变量地址表);这里的格式控制与printf()中的一样。变量地址表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。getchar()函数的作用是从终端输入一个字符。gechar函数没有参数,一般形式:getchar()常用数学类标准库函数的简单应用:abs()、fabs()、fmod()、sin()、cos()、tan

11、()、exp()、pow()、log()、log10()、sqrt()。参考教材第二部分 C程序的基本控制结构分支结构1. if语句与程序的单分支结构形式:if(表达式) 语句功能:若表达式的值为真,则执行语句。注意,当函数作为if里面的表达式的时候即if(printf(“*”)的时候,则是以函数的返回值判断if的真假,printf输出以1个字符则返回为1,所以这个if是真的;2. ifelse语句与程序的双分支结构形式:if(表达式) 语句1else语句2功能:若表达式的值为真,则执行语句1,否则执行语句23. 复合语句及其在程序中的使用复合语句是用一对花括号“”将若干条C语句括起来形成的语

12、句序列。复合语句的基本形式如下所示: 语句1; 语句i; 语句n;注意:C语言的复合语句右括号“”后不需要用分号“;”结尾,如果在程序中有如下形式的语句格式出现,则应认为是复合语句后面跟了一个空语句: 语句序列;/* 最后的分号是空语句 */4. if语句的嵌套与程序的多分支结构C语法规定else 必须与最近的if相匹配。5. switch语句与程序的多分支结构形式:switch(表达式)case 常量表达式1:语句组1;case 常量表达式2:语句组2;case 常量表达式n:语句组n;default:语句组n+1;a) 常量表达式必须为整型、字符型或者枚举型,且值必须互不相同b) case

13、后可包含多个可执行语句,且不必加 c) 多个case可共用一组执行语句d) 当表达式的值和某个case后面的语句相匹配时,则执行相应case后面的语句,并继续执行之后的语句。若不希望继续执行之后的语句,则使用break语句跳出switch语句。参考P40,11题循环结构(执行过程参考课件)1. while型循环形式: while(表达式)语句注意在while()后面没有;号,当函数或者赋值表达式放在while的()中时与if的判断方法一样,判断函数的返回值或表达式值的逻辑值;若表达式的值为真(非0),则执行语句(循环体),否则结束循环;2. do.while型循环形式:do语句while(表达

14、式)先执行语句(循环体)一次,再判断表达式的值是否为真(非0),若为真,则继续循环否则终止循环。同while()型循环相比,while()是先判断条件后执行语句,而dowhile则是先执行语句后判断条件,无论如何都会先执行一次。3. for型循环形式:for(表达式1;表达式2;表达式3)例:for(i=1;i100;i+) s=s+i;(注意for括号的后面没有;号) 当有两个for语句即嵌套的for循环的时候 例:for(i=1;i4;i+) for(j=0;j5;j+) s=s+i ; 这个时候是先做i=1;然后判断i;然后做加粗的部分,即是把加粗部分看成一个整体做完之后才会回到i+;所

15、以s=s+i ;这个语句做了20次。不论是笔试的编程还是上机题,都会考到循环。所以一定要认真复习控制结构这一部分内容。如下面的一段程序,输出结果是什么?我们学习一定要把每一个知识点牢固掌握。书上的练习特别多,大家要学会举一反三。#includevoid main()int a5=1,2,3,4,5;int i,j;for(i=0;i5;i+)for(j=i;j5;j+)printf(%d ,aj);if(j=5)for(j=0;ji;j+)printf(%d ,aj);printf(n);4. 空语句及其在程序中的使用所谓的空语句就是说没有执行代码,只有一个语句结束的标志:分号例如模拟题选择第

16、15题5. 循环的嵌套(只要求到3层)这类题,书上有很多的习题,主要是掌握程序的执行过程。参考课件,书上的习题多做练习6. 总结if,for,whlie,后面如果没有的时候,即是只有一个简单的语句的时候,if,for,whlie的作用效力范围是到与之最近的分号结束;当有 的时候即是把 看成一个整体,控制范围是整个 里面的所有语句。其他简单控制结构(重点)1. break(参考课件)功能:在循环语句和switch语句中,终止并跳出循环体或开关体break只能终止并跳出最近一层的结构break不能用于循环语句和switch语句之外的任何其它语句之中2. continue(参考课件)功能:结束本次循

17、环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中控制结构应用举例(重点)1. 累加、累乘、最大公约数、最小公倍数、阶乘、素数等简单问题求解方法参考书上P36-382. 穷举思想及程序实现3. 迭代思想及程序实现(其中包括:一元高阶方程求根的二分迭代解法)。第三部分 函数与程序结构函数的定义与调用1. (1)定义:(看课件、C语言教材)无参函数的定义:类型标识符或void 函数名()说明语句;执行语句;有参函数定义:类型标识符或void 函数名(类型 形参1,类型 形参2,)说明语句;执行语句;当主函数里面带参数的形式,main(int argc,char *arg

18、v)中argc是表示参数的个数,argv这个数组储存的是具体的参数个数。例,void main(int argc,char *argv) char *p ;while(-argc) *p=argvargc;puts(*p); 若输入为 china Beijing flie 则结果为:flie Beijing ;(2)声明 经常考填空题,无论是上机还是笔试(3)调用 常考题,容易考填空和写输出结果题,注意在调用的时候,函数名(实参列表)括号里面一定是实参,要特别注意哦,参考书上的习题认真练习。(4)返回值(包括基本类型、空类型)参考课件及相关教材2. 函数调用时的值参数传递,一定要注意,做这种题

19、,要先弄清楚形参和实参。(1)分清形参和实参的区别: 形参是在定义或声明中,实参是在引用当中;当函数名前有int ,float, char等类型名时是定义或者声明,但是要排除省略类型名的情况;一般引用出现在主函数中, 形参是不确定的值,因此不能为常量,实参是确定的值所以可以为常量。 (2)当实参是一个变量的时候,实参向形参传递值,只是个简单的值传递,不会改变实参的值;当是实参是地址传递的时候就要改变 例:(1) int sub(int x,int y) int c=x;x=y;y=c; void main() int a=3,b=2;sub(a,b);printf(“%d,%d”,a,b);

20、结果是 3,2(2) int sub(int* x,int *y)int c=*x;*x=*y;*y=c; void main()int a=3,b=2;sub(&a,&b);printf(“%d,%d”,a,b); 结果是 2,3书上这类题特别多,认真练习!注意形参和实参必须赋值兼容,也就是说形参和实参维数必须一样;注意区别void和return;(参考教材和课件)3. 嵌套调用常考阅读程序题,理解书上P75的图4. 递归调用 理解概念,会做模拟题选择第18题类似题目5. 简单问题的递归函数设计(例:阶乘、Fibonacci数列、整型数据的数字拆分处理等)书上有很多关于数字拆分、阶乘的题目,

21、一定要掌握。变量的作用域和生存期1. 作用域(全局变量的定义和使用、局部变量的定义和使用)要严格区分全局变量和局部变量,分清楚各自的作用范围2. 生存期(存储类别符extern和static对全局变量的作用;存储类别符auto和static对局部变量的作用)特别注意static和extern编译预处理1. 宏定义预处理命令的概念和简单应用(包括带参和不带参宏定义);(1)宏替换的时候只是简单的字符替换,不要加任何东西,宏名中不能包含空格;例:define xx(m) m*m int i=5;i=i+xx(4+5); 结果为 i=5+4+5*4+5=34;(2)宏替换是在预编译的时候进行,所以不

22、占用程序运行时间;宏名是无类型的;2. 文件包含预处理命令的使用方法;文件包含命令的一般形式为:#include “文件名” 或者#include ,注意这两种表示形式是有区别的。第四部分 指针与函数指针变量的定义和引用1. 指针变量的定义、初始化、赋值和引用;基本概念参考书上,注意指针变量的初始化和赋值。例int a,*p=&a,这是定义了一个指针变量并进行了初始化,特别注意这个时候的初始化用的是*p=&a,这里面的*代表的是指针类型,而不是取值。例 int a,*p;p=&a,定义完变量之后再引用的话就不要加*了。我们的*有两种含义,一种是定义变量的时候,是我们的指针标志,除了定义之外,我

23、们的*代表取指针变量所指地址中的内容,与&为互逆运算。2. C语言中的地址运算;&: 取变量的地址。单目运算符、优先级为2、右结合性。例:i=5; pi=&i;*:取指针变量所指地址中的内容,与&为互逆运算。单目运算符、优先级为 2、右结合性指针变量作函数的参数1. 函数调用时的地址参数传递;P91第13、14、15、16等,这类例题特别多,要特别注意2. 指针变量与指针指向变量的区别;(1)存放变量地址(指针)的变量称为指针变量。例:int *i_pointer;则变量i_pointer就是指针变量,它的值是某个整型变量的地址,即i_pointer可指向一个整型变量。到底指向哪一个整型变量,

24、应由i_pointer中赋予的变量地址来决定。(2)若一个指针或指针变量指向某个变量,可通过该指针访问这个变量,这种访问称为间接访问。如将i的地址(指针)赋给i_pointer,即 i_pointer=&i,则i_pointer所指向的变量就是i,用* i_pointer表示,此时与i(直接访问)等价。函数的指针1. 指向函数的指针变量的定义;用于存储函数指针的变量称为指向函数的指针变量,定义方法为:类型说明符 (*指针变量名)(形式参数列表)例:int (*p)(int,int); 表示定义了一个指针变量p,能够指向的函数特征是由两个整型形式参数,返回值是整型数据2. 用指向函数的指针变量来

25、调用函数;调用方法(*p)(实参表)3. 指向函数的指针变量作函数参数;P90,第11题4. 返回指针值的函数;P94 第1题区别函数指针和指针函数的技巧:1. 函数指针和指针函数都是偏正短语。函数指针的中心词是指针,保存函数的地址。而指针函数的中心词是函数,是一个返回值是指针的函数。在判断时,按照优先级的结合性来判断:2. 如:int *p()因为()的优先级高,先与p结合,所以p()是一个函数,函数作为中心词,又因为前有*,所以是一个返回值是指针的函数。3. int (*p)()因为*先与p结合,所以整体是一个指针,指针是中心词,又因为后面有(),所以是一个函数指针,保存函数的地址。如执行

26、语句p=&a;1. &*p的含义是什么?&和*两个运算符的优先级别相同,但按自右而左方向结合,因此先进行*p的运算,它就是变量a,再执行&运算。因此,&*p与&a相同,即变量a的地址。2. *&a的含义是什么?先进行&a运算,得a的地址,再进行*运算,即&a所指向的变量,也就是变量a。*&a和*p的作用是一样的,他们都等价于变量a,即*&a与a等价。3. (*p)+相当于a+。注意括号是必要的,如果没有括号,就成为了*p+,而+和*为同一优先级别,而结合方向为自右而左,因此它相当于*(p+)。由于+在p的右侧,是“后加”,因此先对p的原值进行*运算,得到a的值,然后使p的值改变,这样p不再指向

27、a了。第五部分 数组及简单应用数组1. 一维数组的输入输出,当数组是int(整型的时候)一个有n个元素的一维数组:输入: for(i=0;in;i+) scanf(“%d”,&ai);输出: for(i=0;in;i+) printf(“%d”,ai);注意int类型要以%d的格式2. 一个有n行m列的二维数组:输入:for(i=0; in; i+)(这里i控制行,j控制列) for(j=0;jm;j+) scanf(“%d”,&aij);输出:for(i=0; in; i+) for(j=0; jm; j+) printf(“%d”,aij);(注意在输入的时候才有&符号,输出的时候没有)3

28、. 对一个有n个元素的数组的遍历(既是说从第一个成员访问到最后一个成员)有以下两种方式:(1) for(i=0;in;i+) (2)for(i=0;ai!=0;i+) ai; (都是指从a0访问到an-1) ai; 4. char a10; while(ai)和while(ai!=0)都是表示当a数组不结束的情况下继续循环,一般就是指访问整个数组5. 自编函数实现求字符串的长度: int fun(char *a) int fun(char *s) int k; char *p;p=s whlie(ak) whlie(*p) k+; p+; retrun(k-1); retrun(p-s); 6

29、. 维数的判断,当*,前面有int ,char,float等常见的类型名的时候表示是在定义,一个 * 或者表示升一维,当表达式前面没有int ,char,float的时候则是在引用(或称为使用)一个*或者 表示降一维;数组的简单应用(本部分内容参考书上程序)1. 数组元素值的随机生成法(标准库函数srand. rand. 和time 的使用方法);2. 常用排序方法(冒泡排序法和选择排序法);3. 常用查找法(直接查找法和二分查找法);第六部分 字符数据、字符串(字符数组)数据及其简单应用C语言字符串表示方法1. 字符串(字符数组)的定义和初始化方法;2. 字符串数据的输入方法(scanf函数

30、和gets函数的使用);一个字符数组即 char a10;对这个的输入有两种方式 (1)for(i=0;in;i+) scanf(“%c”,&ai);(2)gets(a); scanf(“%s”,a)(注意这两种方式的括号里面的只能是一个数组名)3. 字符串数据的输出方法(printf函数和puts函数的使用);输出也对应有两种方式:(1) for(i=0;i的区别;结构体数据类型的简单应用1. 用于存储分配的标准库函数(包括:malloc、realloc、free);2. 单链表的概念和创建;3. 单链表的遍历(结点值的依次输出)方法;4. 单链表中节点的插入方法;5. 单链表中节点的删除方

31、法;共用体数据类型共用体变量的长度是由成员中的最长的成员决定;注意书上P137第7题。一定要记住书上P105第8题的公式,如果x.c0=0x39;x.c1=0x38;也就是说把后面的赋值写成我们的十六进制形式,一定要把十六进制转换为十进制带入计算。则x.i=x.c1*256+x.c0=56*256+57=14393共用体类型与结构体类型的区别;枚举类型参考书上P102介绍,P105第9题文件1. C语言中可以认识两种文件存储类型(1)文本文件(2)二进制文件;2. 文件打开与关闭的概念和方法(fopen函数和fclose函数的使用方法);if(fp=fopen(“文件名”,”r”)=NULL)

32、;当等于NULL的时候就不能打开;注意文件打开之后必须关闭,即是fclose(fp);这两个必然是成对出现;3. 文件内部记录指针(读写指针)的概念和文件尾的判别方法(EOF和feof函数的使用);文件在什么情况下结束(1)fp=EOF的时候结束fp!=EOF的时候不结束。(2)当feof(fp)返回值为0时不结束,返回非零时就是结束;4. 文件中单个字符的读写操作(fgetc函数和fputc函数的使用);5. 文件中字符串读写操作(fgets函数和fputs函数的使用);6. 文件中的格式化读写操作(fscanf函数和fprintf函数的使用);7. 文件中数据块读写操作(fread函数和f

33、write函数的使用);8. 文件内部记录指针(读写指针)的移动和定位(fseek函数和ftell函数的使用);4-8了解各函数的功能即可w,r,a分别表示对文本文件的读,写,追加;fputs(ch,fp)指将ch变量输出到文件fp中;ch=fgets(fp)指的是从文件中得到一个字符赋给变量ch;fread或fwrite(buffer,size,num,fp)中,buffer指的是文件读出/写入的数据的地址,是一个数组名或者指针;size,指读出或者写入每个数的字节数;num指读出和写入多少个数;fp指文件指针。文件的简单应用1. 文件的随机读写(文件处理标准函数的综合应用);2. 文件内容按制定要求进行合并的方法;3. 文件内容拷贝的处理方法;4. 文件内容比较的处理方法;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com