(完整版)《C语言程序设计》基本知识点_第1页
(完整版)《C语言程序设计》基本知识点_第2页
(完整版)《C语言程序设计》基本知识点_第3页
(完整版)《C语言程序设计》基本知识点_第4页
(完整版)《C语言程序设计》基本知识点_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、C 语言程序设计教学基本知识点第一章 C 语言基本知识1.C 源程序的框架尽管各个 C 源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数 n() 等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为 main。2.C 语言源程序的书写规则:(1) C 源程序是由一个主函数和若干个其它函数组成的。(2) 函数名后必须有小括号,函数体放在大括号内。(3) C 程序必须用小写字母书写。(4) 每句的末尾加分号。(5) 可以一行多句。(6) 可以一句多行。(7) 可以在程序的任何位置加注释。3.语句种类语句是程序的基本成分,程序的执行就是通过一条条语句的

2、执行而得以实现的,根据表现形式及 功能的不同,C 语言的基本语句可以分为五大类。(1)流程控制语句流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循 环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语 句实现。(2)表达式语句表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不 可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动 作。最常见的表达式语句是赋值语句。(3)函数调用语句函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后

3、面加上一个分号。 (4)空语句空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。(5)复合语句复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句 存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号 后面没有分号。4.运算符用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同 的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也 是固定的。根据参加操作的数据个数多少,可以将 C 语言的运算符分为单目运算符,双目运算符和三目运算 符(三目

4、运算符只有条件运算符一个)。根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。5.表达式表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或 一个函数都可以看成是一个表达式。表达式的种类有:算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号1表达式(顺序表达式)、条件表达式、指针表达式。6.数据的输入/输出C 语言本身没有输人/输出语句,数据的输入/输出是通过调用库函数来实现的。第二章 数据类型知识点划分数据类型的意义是编译系统对每个不同类型的数据在内存中分配的字节数不同,不同类型的 数据可以按规定参加

5、不同类型的运算。1.C 语言的数据类型数据类型有:整型、字符型、实型单精度型、双精度型、构造类型数组类型、结构体类型、共用 体类型、枚举类型、指针类型、空类型,其中整型、实型、字符型是 C 语言中的基本类型。2.各种类型数据的定义方法定义形式:数据类型 变量名 1,变量名 2,变量名 n;3.常量与变量(1) 常量在程序执行期间其值不变的量。它不能被赋值。(2) 变量在程序运行期间其值可以改变的量。4.各种类型数据的混合运算各类数据运算前会自动转换成同一类型。规律如右图示:从右向左的箭头表示必定的转换,如 float 型数据运算前化成 double 型,以提高运算精度,结果也为 double

6、型,short 或 char 型数据运算前化成 int 型,结果也为 int 型;从下向上的箭头表示转换方向是向级别高的靠拢。5.强制类型变换当我们需要对数据进行类型变换,而机器又不能自动完成时,就要用强制类型变换,形式为:(数 据类型符)(被转换对象)。第三章 选择知识点C 语言中实现选择结构的控制语句有两种:条件分支语句 if 和开关分支语句 switch。1.if 语句的三种形式:(1) if(表达式)语句;(2) if(表达式)语句 1;else 语句 2;(3) if(表达式 1)语句 1;else if(表达式 2)语句 2;else if(表达式 3)语句 3;else if(表

7、达式 n)语句 n;2.开关分支语句 switch(1)形式switch(表达式) case e1:语句 1;break;case e2:语句 2;break;case e3:语句 3;break;case en:语句 n;break;default :语句 n+1;(2)功能当表达式的值等于 e1 时,执行语句 1;当表达式的值等于 e2 时,执行语句 2;2当表达式的值等于 en 时,执行语句 n;当表达式的值与常量 e1、e2en 谁都不等时,就执行 default 后的语句第四章 循环知识点循环就是在程序执行过程中,反复多次的执行同一段程序。C 语言中有三种循环语句。1.while 循

8、环语句形式为:while(表达式)循环体;执行过程是:先计算表达式的值,当表达式的值非 0 时就执行循环体,之后再判断表达式的值, 且重复以上过程;当表达式的值为 0 时就结束循环。2.do- while 循环语句形式为:do循环体 while(表达式);执行过程是:先执行循环体一次,再判断表达式的值,当表达式的值非 0 时就再执行循环体,之 后再判断表达式的值,且重复以上过程;当表达式的值为 0 时就结束循环。3.for 循环语句形式为:for(表达式 1;表达式 2;表达式 3) 循环体 4.三种循环语句的比较三种循环语句可以完成同一件事,可任选其一。使用 while 和 do- whil

9、e 循环时,要提前给循环变量赋初值。而 for 循环是在表达式 1 中赋初值的。 while 循环和 for 循环都是先判断条件后执行循环体,有可能一次也不执行循环体,do- while 循环是先 执行循环体,后判断条件,即循环体至少也得执行一次。for 循环不限于计数循环,其循环条件可以是 逻辑表达式和字符表达式等。5.循环嵌套三种循环控制语句可以互相嵌套,即在一个循环体内部又可以出现另一循环,这种嵌套在理论上 来说可以是无限的。注意必须是一个循环完整的套住另一个循环。6.break 语句break 语句只能出现在三种循环语句和 switch 多分支语句中,其作用是用来中断这四种语句的执行。

10、 当程序执行到 break 语句时,会跳出 break 语句所在的循环或 switch 分支,而直接执行紧跟在它们后面 的语句。7.continue 语句continue 语句只能出现在三种循环语句中,当程序执行到 continue 语句时,其作用是提前结束本次 循环,自动跳过循环体中后半部剩余的语句的执行,而直接回到循环条件判断。根据判断的结果决定 是否继续执行下次循环。8. goto 语句goto 语句是一种非结构化语句,其作用是使程序的执行无条件的转移到某一处。使用格式为: goto 标号;利用 goto 语句与 if 条件语句配合,也可以实现条件循环。C 语句允许在任何语句前添加标号,

11、 作为跳转目标,标号的构成是标识符后面加一个":"。第五章数组知识点数组就是同类型的一批数据的集合,用一个变量名存放,区分各元素的办法是用下标。31.一维数组类型说明符数组名数组长度;(1) 数组命名要符合标识符的命名规则。(2) 数组名后的括号必须是方括号,不能是圆括号。(3) 数组长度必须是正整数,可以是个表达式,但不能有变量,C 语言不支持动态数组。(4) 数组长度表示数组中元素的个数(5) 数组元素的下标从 0 开始数,所以最大下标是数组的长度减 1。2多维数组(以二维为例)类型说明符数组名第一维长度第二维长度;(1) 数组命名要符合标识符的命名规则。(2) 数组名

12、后的括号必须是两个方括号,定义时不能写成 inta3,4;。(3) 数组长度必须是整型常量表达式。(4) 第一维长度表示数组行数,第二维长度表示数组列数。(5) 每个数组元素都有两个下标,第一维表示该元素所在的行,第二维表示该元素所在的列,每一维 的下标都从 0 开始数。二维数组的初始化:C 语言规定只有静态数组和外部数组才允许在定义时赋初值,赋初值形式如下: static 类型说明符数组名第一维长度第二维长度=初值表;二维数组的引用:二维数组不能整体引用,要引用数组的单个元素,形式为:数组名下标下标 和普通变量的使用无任何区别。3字符数组C 语言中没有字符串变量,字符串是靠字符数组实现的,所

13、谓字符数组就是元素的数据类型为字 符型的数组。(1)字符数组的定义形式:char 数组名数组长度;因为 C 语言中的整型数据和字符型数据是相通的,所以也可以这样定义:int 数组名数组长度; (2)字符数组的初始化:给字符数组的初始化有两种方式,一种是用字符常量,另一种是用字符串。形 式如下:staticchar 数组名数组长度=字符常量表;staticchar 数组名数组长度=字符串常量;4.数组与函数数组经常作为函数的参数,数组做函数的参数有两种形式,一是数组元素做函数的参数,一是数 组名做函数的参数,当用数组名做函数的实参时传送的是首地址。5.常用的字符串处理函数C 语言提供了一些处理字

14、符串的标准函数,用以完成一些常见的操作。对以下几个函数要掌握其 功能和调用形式。(1) gets(字符数组名)此函数功能是从键盘输入一串字符,回车后送到字符数组中,注意定义数组时数组 长度要足够大。(2) puts(字符数组名)此函数功能是将字符数组的内容输出到屏幕上。(3) strcat(字符数组名 1,字符数组名 2)此函数功能是将字符数组 1 中的0去掉后将字符数组 2 的内 容连接到字符数组 1 的末尾。(4) strcpy(字符数组名 1,字符数组名 2)函数功能是将字符数组 2 的内容(包括0)拷贝到字符数组 1 中,字符数组 2 处也可以是字符串常量。strcpy 函数可以实现拷

15、子串。(5) strcmp(字符数组名 1,字符数组名 2)函数功能是两个字符串(ASCII 码)比大小。(6) strlen(字符数组名)此函数功能是求字符串的长度,注意不包括0。(7) strlwr(字符数组名)此函数功能是将字符串中的所有大写字母都变成小写。(8) strupr(字符数组名)此函数功能是将字符串中的所有小写字母都变成大写。4第六章函数知识点每个 C 源程序都是由函数组成的,一个主函数和若干个其它函数,C 语言程序设计的基础工作就是函 数的具体编写,C 语言中的函数就相当于其它高级语言中的子程序。1.函数的概念函数就是一个数据加工厂,从函数外部接收数据,在函数内部加工处理,

16、然后得到一个结果返回给 外部的调用者。所以函数就是对语言功能的扩充,对函数的调用就是对功能的调用。2.标准函数各种高级语言都定义了一些标准函数,C 语言中的标准函数称为库函数,是将一些基本的、常用 的功能编成了函数,供大家使用方便。使用库函数时必须把它的头文件用#include 命令包含进来,每个 库函数的功能及对应的头文件都会在手册中给出。3.自定义函数C 语言也允许用户自己编写函数以实现 C 库函数中没有提供的功能,称作自定义函数。4定义函数C 语言规定每个函数都要独立定义,函数定义不能嵌套。函数定义的形式:数据类型函数名(形参表)形参说明语句序列 说明语句序列可执行语句序列 5函数调用函

17、数调用的形式是: 函数名(实参表)。当实参表中有多个参数时,要用逗号隔开,若被调函数无 参数,调用时小括号也不能省。函数调用过程是:将实参的值传给形参,在函数体内进行加工处理,然 后由 return 语句将函数值返回调用处。5全局变量和局部变量局部变量:在函数内部定义的变量称为局部变量,只在本函数中有效。全局变量:在函数外部定义的变量称为全局变量,它的作用范围是从定义开始到本文件结束。 6动态存储与静态存储内存中的用户数据区分为动态存储区和静态存储区,动态存储区是指程序运行期间给变量临时分 配存储单元,变量用完后立即释放单元的区域,动态存储区放的是函数的形参、自动变量、函数调用 期间的现场保护

18、数据和返回地址。静态存储区是指程序运行期间给变量分配固定的存储单元,放的是全局变量和局部静态变量。 一个变量除了它的数据类型以外还有存储类型,定义一个变量时应该说明这两种类型。第七章 预处理知识点对高级语言编译连接就是把源程序转换成机器语言,C 语言在进行编译之前还要预先处理三件事: 宏定义命令、文件包含命令和条件编译命令,统称为预处理命令,其特点是:1. 所有的预处理命令都放在程序的头部,以#开头,且#号后面不留空格。2. 预处理命令不是 C 的语句,行尾不加分号。3. 预处理命令是在编译预处理阶段完成的,所以它们没有任何计算、操作等执行功能。4. 预处理命令有所变动后,必须对程序重新进行编

19、译和连接。1宏定义宏定义命令的作用是给一些常用的对象重新命名,在程序中可以用宏名来引用这些对象,预处理 时宏名会被代表的内容替换,此过程称为宏展开或宏替换。宏定义有两种形式:2文件包含使用文件包含命令可以将另个 C 源程序的全部内容包含进来,其形式为:#include 文件名或#include "文件名"通常可以把经常用到的,带公用性的一些函数或符号等集合在起形成一个源文件,然后用此命5令将这个源文件包含进来,这样可以避免在每个新程序中都要重新键入这些内容。3条件编译顾名思义满足条件时进行编译,为了解决程序移植问题,C 语言提供了条件编译命令,它能使源 程序在不同的编译环境

20、下生成不同的目标代码文件。条件编译命令有 3 种形式。第八章 指针知识点1.什么是指针和指针变量?指针就是内存地址,因为通过“地址”可以找到变量,所以内存“地址"形象的称为指针。 指针变量就是存地址的变量。在 C 语言中用一个变量存另一个变量的地址,那么就称这个变量为指针变量,指针变量的值就是地址。通常指针变量被简称为指针。指针变量是有类型的,即指针值增 1 表示指向下一个数据,如整型数据在内存中占两个字节,它 的指针变量增 1 是增两个字节。如实型数据在内存中占 4 个字节,它的指针变量增 1 是增 4 个字节。 2.怎样定义指针变量?定义形式为:数据类型*指针变量名 1,*指针变

21、量名 2;3.指针的有关运算指针为内存地址是整数,可以进行一些算术运算、关系运算、赋值运算、特殊运算等,但要注意运算 代表的实际意义。4指向数组的指针变量(1)指向数组元素的指针变量定义形式为:inta10;int*p=a;(2)指向一维数组的指针变量定义形式为:inta34;int(*p)4;p=a;(3)指向字符串的指针变量定义形式为: char*p="字符序列";C 语言中的字符串是以隐含形式的字符数组存放的,定义了指针变量 p 并不是将整个字符串都存放在 p 中了,而 p 中存放的是字符串的首地址。5指向函数的指针变量一个函数在编译时被分配一个入口地址,这个地址就是

22、函数的指针,可以用一个指针变量指向它。指 向函数的指针变量定义形式为:数据类型(*指针变量名);6.指针变量做函数的参数(1) 指针作函数的参数可以传送地址,如数组的首地址,函数的入口地址等。(2) 指针作函数的参数也可以用地址方式传送数据。7返回值是指针的函数即函数的返回值是内存的地址,利用这种方法可以将一个以上的数据返回给函数的调用者。定义 形式如下:数据类型*函数名(形参表)8.指针数组定义形式为:数据类型*数组名数组长度;数组中的每个元素都是指针类型的数据,这种数组被称为指针数组。9.指向指针的指针定义形式为:数据类型*指针变量名;指向指针数据的指针变量称为指向指针的指针。10.mai

23、n 函数的形参6main 函数可以带两个形参,如:main(argc,argv)intargc;char *argv;11.指向结构体的指针变量结构体变量的指针就是该变量所占据的内存段的首地址。指向结构体的指针变量定义形式为:struct 结构体类型名*指针变量名;12.指向共用体的指针变量共用体变量的指针就是该变量所占据的内存段的首地址。指向共用体的指针变量定义形式为: union 共用体类型名*指针变量名;替换了的字符时(这里为正中间的字符"4"),原来的字符己不复存在。第九章 结构体与共用体知识点结构体类型是 C 语言的一种构造数据类型,它是多个相关的不同类型数据的集

24、合,相当于其它高 级语言中的记录。1.结构体类型定义结构体类型的形式为:struct 结构体类型名 数据类型成员名 1;.数据类型成员名 n;2.结构体变量的定义结构体变量有三种定义形式:(1) 先定义结构体类型,后定义结构体变量。(2) 定义结构体类型的同时定义结构体变量。(3) 不定义结构体类型名,直接定义结构体变量。3.结构体变量的引用(1) 结构体变量的初始化:许多 C 版本规定对外部或静态存储类型的结构体变量可以进行初始化,而对 局部的结构体变量则不可以,新标准 C 无此限制,允许在定义时对自动变量初始化。(2) 结构体成员的引用:由于 C 语言一般不允许对结构体变量的整体引用,所以

25、对结构体的引用只能是 对分量的引用,结构体变量中的任一分量可以表示为:结构体变量名·成员名4.结构体与数组C 语言中数组的成员可以是结构体变量,结构体变量的成员也可以是数组。结构体数组有三种定义形式:(1) 先定义结构体类型,后定义结构体数组。(2) 定义结构体类型的同时定义结构体数组。(3) 不定义结构体类型名,直接定义结构体变量。5.结构体与指针一方面结构体变量中的成员可以是指针变量,另一方面也可以定义指向结构体的指针变量,指向 结构体的指针变量的值是某一结构体变量在内存中的首地址。结构体指针的定义形式:struct 结构体类型名*结构体指针变量名。由结构体指针引用结构体成员的方法76.用指针处理链表结构体的成员可以是指针类型,并且这个指针类型就是本结构体类型的,这样可以构造出一种动 态数据结构成为链表。所谓动态数据就是指在编译时不能确定数据量的多少,而是在程序执行时才 确定的数据,动态数据可以比较方便的进行数据插人或删除等操作。7.结构体与函数结构体变量的成员可以作函数的参数、指向结构体变

温馨提示

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

最新文档

评论

0/150

提交评论