C语言基础知识点总结_第1页
C语言基础知识点总结_第2页
C语言基础知识点总结_第3页
C语言基础知识点总结_第4页
C语言基础知识点总结_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重庆市二级C语言基础知识点总结第一部分C语言基础知识C程序的基本结构()一个C程序由一个或者多个函数构成,有且仅有一个主函数。(2)一个函数由函数的首部和函数体组成。()函数是从主函数()开始执行,回到主函数结束;(与函数在程序中定义的位置无关)(4)一个程序的编译是从第一个函数(语句)开始,到最后一个函数(语句)结束;(5)算法的特性:有穷性,确定性,有一个或者0个输入,有一个或者多个输出;有效性(6)算法(程序)的几个结构:选择结构,顺序结构,循环结构用户标识符,由数字,字母,下划线构成,第一个不能是数字(一般会出选择题让你判断哪个标识符定义正确),字母要区分大小写。不能与32个关键字相同

2、。例:第题、,模拟题第一题注释符:/注/释一行;/和*注/释多行,注释不可以嵌套书写。注释没有任何语法功能。C语言的基本数据类型1.数据类型:分为:基本类型(整型,实型,字符型,枚举型),指针类型,构造类型(结构体类型,数组类型,共用体类型),空类型(空类型合法哦,不要忘记了这个特殊哦)。基本数据类型16位编译器3、位编译器:个字节:个字节即指针变量个字节(即指针变量)个字节(位的寻址空间是即个,也就是个字节。):个字节个字节:个字节:个字节:个字节个字节:个字节个字节个字节个字节个字节个字节个字节个字节个字节个字节一般只需要记类型是个字节,是个字节,是个字节注意的最大表示范围是一一7当超过这

3、个范围的时候,即以输出+3、7时6结8果为-3、768长整型()表示方法是在数字后面加,如果一个变量,那么表示的是一个整型的,如果是,那么就是长整型的;当分别以,(进制,长整型,进制)输出的时候,结果没有前面的,和后面的例:0t,“,”结果为(,第、题等转义字符:”(位八进制所代表的字符)(位十六进制所代表的字符)这个书上习题特别多,第题,第题,第题第题第题等和:测试字符串的存储长度;测试字符串长度,只计算遇到的第一个0前面的字符个数。例:“”“”注意这个例题:“”运算符和表达式:记忆书上附录里的运算符优先级(一定要记住常用的)(1)算术运算符和算术表达式:注意自增+,自减-,-自反-,+,-

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

5、,运算顺序还是从开始,即做完这个运算后,可以依次判断出后边的运算式子没有必要计算了,所以,b=,1c=1(,)赋值运算符:简单赋值运算符“,”其左边必须是变量。一般形式:变量名,表达式复合赋值运算符:、。注意当等号后面接的是表达式的时候要把表达式看成一个整体即等价于,是一个整体(,)条件运算符:由两个符号“?”和“:”构成,一般形式:表达式1?表达式2:表达式3先计算表达式1的值,如果值为真(非0),则将表达式2的值作为条件表达式的值,否则将表达式3的值作为条件表达式的值。(6)逗号运算符和逗号表达式一般形式:表达式1,表达式2,表达式n求值时从左至右依次计算,最后计算表达式的值,并将表达式的

6、值作为逗号表达式的值。例:该程序的输出结果为,变量的值为,注意此处考察了逗号表达式、逗号和赋值符号的优先级。=优先级高于,的优先级。(7)位运算符和位表达式(参考教材P17)-18位运算符有或)即只要有一个就是,与)要全部为才为异或)要不相同才为;注意的是当向左移动位就是乘以的次方;向右移动位就是除以的次方。(8)强制类型转换运算符强制类型转换的一般形式:(类型名)表达式表达式(),是将的值转换为类型后得到的值,变量和表达式都保持原来的数据类型。C程序的输出函数的一般形式为:格式控制字符串输出表列格式控制包括两种信息:()格式说明:由和格式字符组成。如、等。作用是将输出的数据转换为指定的格式输

7、出。格式说明总是由%字符开始。(2)普通字符:即需要原样输出的字符。如逗号、空格和换行符。所以在写程序输出结果时,这种字符要原样写出来。函数的作用是向终端输出一个字符。一般形式:输出字符变量的值,可以是字符型变量或整型变量。,以及相应的几种格式是什么意思C程序的输入函数的一般形式为:格式控制字符串变量地址表这里的格式控制与中的一样。变量地址表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。函数的作用是从终端输入一个字符。函数没有参数,一般形式:常用数学类标准库函数的简单应用:、o参考教材第二部分C程序的基本控制结构分支结构语句与程序的单分支结构形式:表达式语句功能:若表达式的值为

8、真,则执行语句。注意,当函数作为里面的表达式的时候即的时候,则是以函数的返回值判断的真假,输出以个字符则返回为1所以这个是真的;语句与程序的双分支结构形式:表达式语句1语句功能:若表达式的值为真,则执行语句1,否则执行语句2复合语句及其在程序中的使用复合语句是用一对花括号“”将若干条语句括起来形成的语句序列。复合语句的基本形式如下所示:语句1;语句语句语言的复合语句右括号“”后不需要用分号“;”结尾,如果在程序中有如下形式的语句格式出现,则应认为是复合语句后面跟了一个空语句:语句序列;/*最后的分号是空语句*/语句的嵌套与程序的多分支结构语法规定必须与最近的相匹配。语句与程序的多分支结构形式:

9、表达式常量表达式:语句组1常量表达式:语句组;常量表达式:语句组;:语句组常)量表达式必须为整型、字符型或者枚举型,且值必须互不相同后可包含多个可执行语句,且不必加多个可共用一组执行语句后面的语句,并继当表达式的值和某个后面的语句相匹配时,则执行相应后面的语句,并继续执行之后的语句。若不希望继续执行之后的语句,则使用语句跳出语句。参考题循环结构(执行过程参考课件型循环形式:表达式语句注意在后面没有;号,当函数或者赋值表达式放在的中时与的判断方法一样,判断函数的返回值或表达式值的逻辑值;若表达式的值为真(非0),则执行语句(循环体),否则结束循环;型循环形式:语句表达式先执行语句(循环体)一次,

10、再判断表达式的值是否为真(非0),若为真,则继续循环否则终止循环。同型循环相比,是先判断条件后执行语句,而则是先执行语句后判断条件,无论如何都会先执行一次。型循环形式:表达式表达式表达式例:(注意括号的后面没有;号)当有两个语句即嵌套的循环的时候例:这个时候是先做然后判断然后做加粗的部分,即是把加粗部分看成一个整体做完之后才会回到所以这个语句做了次。不论是笔试的编程还是上机题,都会考到循环。所以一定要认真复习控制结构这一部分内容。如下面的一段程序,输出结果是什么?我们学习一定要把每一个知识点牢固掌握。书上的练习特别多,大家要学会举一反三。空语句及其在程序中的使用所谓的空语句就是说没有执行代码,

11、只有一个语句结束的标志:分号例如模拟题选择第15题循环的嵌套(只要求到3层)这类题,书上有很多的习题,主要是掌握程序的执行过程。参考课件,书上的习题多做练习总结,后面如果没有的时候,即是只有一个简单的语句的时候,o的作用效力范围是到与之最近的分号结束;当有的时候即是把看成一个整体,控制范围是整个里面的所有语句。其他简单控制结构(重点)参考课件)功能:在循环语句和i语句中终止并跳出循环体或开关体只能终止并跳出最近一层的结构不能用于循环语句和i语句之外的任何其它语句之中oi参考课件)功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断仅用于循环语句中控制结构应用举例(重点

12、)累加、累乘、最大公约数、最小公倍数、阶乘、素数等简单问题求解方法参考书上P36-38穷举思想及程序实现迭代思想及程序实现(其中包括:一元高阶方程求根的二分迭代解法)。第三部分函数与程序结构函数的定义与调用(1)定义:(看课件、C语言教材)void无参函数的定义:类型标识符或voidvoid无参函数的定义:类型标识符或void函数名()说明语句;执行语句;有参函数定义:类型标识符或void函数名(类型形参1,类型说明语句;执行语句;当主函数里面带参数的形式,i(i,这个数组储存的是具体的参数个数。例,v)形参2,)中v)是表示参数的个数,(ainr,hihiv)若输入为若输入为ijfinlgi

13、e则结果为:2)声明经常考填空题,无论是上机还是笔试(3)调用常考题,容易考填空和写输出结果题,注意在调用的时候,函数名(实参列表)括号里面一定是实参,要特别注意哦,参考书上的习题认真练习。(4)返回值(包括基本类型、空类型)参考课件及相关教材函数调用时的值参数传递,一定要注意,做这种题,要先弄清楚形参和实参。(1)分清形参和实参的区别:形参是在定义或声明中,实参是在引用当中;当函数名前有int,oatca等类型名时是定义或者声明,但是要排除省略类型名的情况;一般引用出现在主函数中,形参是不确定的值,因此不能为常量,实参是确定的值所以可以为常量。(2)当实参是一个变量的时候,实参向形参传递值,

14、只是个简单的值传递,不会改变实参的值;当是实参是地址传递的时候就要改变例:(1)intsub(intx,inyt)intc=x;x=y;y=c;voidmain()inta=3,b=2(;as,u;b)printf(“%d,%结果是3b)22)intsub(int*x,in*t)yinct=*x;*x=*y;*y=c;voidmain()inat=3,b=2(;&saub,&;b)printf(结果是2b)3书上这类题特别多,认真练习!注意形参和实参必须赋值兼容,也就是说形参和实参维数必须一样;注意区别oi和return(参考教材和课件)嵌套调用常考阅读程序题,理解书上P75的图递归调用理解概

15、念,会做模拟题选择第18题类似题目简单问题的递归函数设计(例:阶乘、Fibonacci数列、整型数据的数字拆分处理等)书上有很多关于数字拆分、阶乘的题目,一定要掌握。变量的作用域和生存期作用域(全局变量的定义和使用、局部变量的定义和使用)要严格区分全局变量和局部变量,分清楚各自的作用范围生存期(存储类别符extern和static对全局变量的作用;存储类别符auto和static对局部变量的作用)特别注意static和extern编译预处理宏定义预处理命令的概念和简单应用(包括带参和不带参宏定义);1)宏替换的时候只是简单的字符替换,不要加任何东西,宏名中不能包含空格;例:#einemm)*m

16、inti=5;i=i+xx(4+5);结果为i=5+4+5*4+5=34;(2)宏替换是在预编译的时候进行,所以不占用程序运行时间;宏名是无类型的;文件包含预处理命令的使用方法;文件包含命令的一般形式为:in文件名或者in文件名注意这两种表示形式是有区别的。第四部分指针与函数指针变量的定义和引用指针变量的定义、初始化、赋值和引用;基本概念参考书上,注意指针变量的初始化和赋值。例inta,*p=&a,这是定义了一个指针变量并进行了初始化,特别注意这个时候的初始化用的是*p=&a,这里面的*代表的是指针类型,而不是取值。例inta,*p;p=&a,定义完变量之后再引用的话就不要加*了。我们的*有两

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

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

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

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

21、的输入输出,当数组是int整型的时候)一个有n个元素的一维数组:输入:for(i=0;in;i+)scanf(“,%&da”i);输出:for(i=0;in;i+)pint(“ai注意;int类型要以的格式一个有n行列的二维数组:输入:(i=0ni+)(这里i控制行,控制列)for(j=0;jm;j+)scanf(“&%adi,j);i+)i+)输出:fr(iini)for(jj=;mj+printf(“+)da(注意在输入的时候才有符号,输出的时候没有)种方式:(1)for(i=aichaar10wh;i;in;i+)(都是指从ae种方式:(1)for(i=aichaar10wh;i;in;

22、i+)(都是指从ae和i)e(a(2)for(i=0;ai!=0访问到an-1)ai;i都是表示当a数组不结束的情况下继续循环,i+)i+)i+)i+)般就是指访问整个数组intfun(char*s)cha*rp;p=swhlie(*p)p+;intfun(char*s)cha*rp;p=swhlie(*p)p+;retrun(p-s)intfun(char*a)intk;whlie(ak)retrun(k-1);.维数的判断,当前面有int,carf等常见的类型名的时候表示是在定义,一个或者表示升一维,当表达式前面没有int,carf的时候则是在引用(或称为使用)一个*或者表示降一维;数组的

23、简单应用(本部分内容参考书上程序)数组元素值的随机生成法(标准库函数srand.rand.和time的使用方法);常用排序方法(冒泡排序法和选择排序法);常用查找法(直接查找法和二分查找法);第六部分字符数据、字符串(字符数组)数据及其简单应用语言字符串表示方法字符串(字符数组)的定义和初始化方法;字符串数据的输入方法(scanf函数和gets函数的使用);一个字符数组即caa1;对这个的输入有两种方式(1)for(i=0;in;i+)scanf(“%c”,&ai);(2)gets(a)scanf(,sa)(注意这两种方式的括号里面的只能是一个数组名)字符串数据的输出方法(printf函数和p

24、uts函数的使用);输出也对应有两种方式:(1)for(i=;cinci+)printf(“,,c”ai)c(2)puts(a)printf(a)s(注意这两种方式的括号里面的只能是一个数组名);字符串的常用处理方法(本部分内容参考书上程序)字符类别的判断方法和大小写字母的转换方法;字符串中有效数字字符的统计方法;字符串的复制方法;字符串的连接方法;字符串中字符的查找、插入和删除方法;字符串中子字符串的查找、插入和删除方法;特别注意字符串的反转、一个字符串在另一个字符串中出现的次数等问题常用字符和字符串处理标准库函数包括:、第七部分指针与数组一维数组与指针的关系及简单应用1.2.用指向一维数组

25、的指针变量表示数组元素地址和数组元素值的方法;(1)指针变量可指向数组起始位置,即指向,也可指向任意数组元素1或11.2.用指向一维数组的指针变量表示数组元素地址和数组元素值的方法;(1)指针变量可指向数组起始位置,即指向,也可指向任意数组元素1或11或3若、指向数组元素的起始位置,则即ai(2)*(、等与等*)(等等作、用)不同。若的初值为则(等价于指向的元素值加1。若当前指向数组中的第个元素,则(相当于相当于-一维数组简单应用的指针变量表示和处理方法(常用的排序和查找方法)参考书上例题和习题初始化方式)(初始化方式)(等价于即的地址;(+等、价)于和(等价于(;1(*、)表等示等、所相;当

26、*于(二维数组与指针的关系及简单应用用指向二维数组的指针变量表示数组元素地址和数组元素值的方法;注意:3,3贝=等价于表示的是这个2维数组的第一行或者说是这个2维数组的首元素的地址;等价与(都表示是数组的第行或者是第行的首元素的地址;所以要引用这个数组的元素应该用或者指向若干元素构成数组的指针变量定义方法和简单使用;指针数组与命令行参数指针数组的定义、初始化和简单应用命令行参数的概念和简单应用;第八部分构造类型和文件结构体数据类型的基本概念结构体变量的长度是各个成员长度的和;当结构体指针和数组的时候注意分清.和的区别;结构体数据类型的简单应用用于存储分配的标准库函数(包括:malloc、realloc、free);单链表的概念和创建;单链表的遍历(结点值的依次输出)方法;单链表中节点的插

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论