收藏 分享(赏)

C语言程序设计谭浩强重点笔记.doc

上传人:weiwoduzun 文档编号:4219283 上传时间:2018-12-16 格式:DOC 页数:29 大小:377KB
下载 相关 举报
C语言程序设计谭浩强重点笔记.doc_第1页
第1页 / 共29页
C语言程序设计谭浩强重点笔记.doc_第2页
第2页 / 共29页
C语言程序设计谭浩强重点笔记.doc_第3页
第3页 / 共29页
C语言程序设计谭浩强重点笔记.doc_第4页
第4页 / 共29页
C语言程序设计谭浩强重点笔记.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、1C语言设计学习笔记早晨: 06:40 起床07:2008:20 英语 1 小时 新概念英语(单词、语法、听读背)大学英语(单词、语法、听读背)上午: 08:3010:30 计算机基础 2 小时10:5011:30 计算机科学技术导论计算机组成原理微机原理及接口技术Intel 微处理器结构编程与接口深入理解计算机系统80x86 汇编语言程序设计8086-8088 宏汇编语言程序设计教程BIOS 研发技术剖析自己动手写操作系统操作系统原理Windows 操作系统原理Windows 内部原理系列Windows 程序内部运行原理计算机网络第五版中午: 12:0002:00 午休下午: 02:3004

2、:30 计算机应用及编程Windows 用户管理指南、AD 配置指南、网络专业指南、Windows 即学即会教程Windows 下 32 位汇编语言程序设计、C#编程晚上: 05:3008:00 锻炼、晚餐08:0009:00 辅导09:0011:00 专业基础 2 小时大学数学、大学物理、电机及拖动、电力电子技术、通信技术11:30 休息2目 录第一章 C 语言概述 .- 1 -1.1 C 程序结构特点 16 - 1 -1.2 C 程序上机步骤 17 .- 1 -第二章 程序的灵魂 算法 23 - 2 -2.1 算法 24- 2 -2.2 算法的三种基本结构 .- 2 -2.3 结构化程序设

3、计方法 42- 2 -第三章 数据类型 运算符与表达式 48 - 2 -3.1 C 语言的基本元素 48 .- 2 -3.2 C 的数据类型 48 .- 2 -3.3 常量与变量 48- 3 -3.4 基本类型 .- 3 -3.5 变量 63- 4 -3.6 不同类型数据间的混合运算 .- 5 -3.7 函数的调用过程(补充) .- 5 -第四章 最简单的 C 程序设计 顺序程序设计 77 .- 5 -4.1 字符数据的输入输出 .- 5 -第五章 选择结构的程序设计 97 - 6 -第六章 循环结构程序设计 .- 6 -6.1 语句标号 .- 6 -6.2 break 语句和 continu

4、e 语句 - 6 -第七章 数组 132 - 6 -7.1 构造类型 .- 6 -7.2 数组 133- 6 -7.3 二维数组 .- 6 -7.4 字符串 字符数组 .- 7 -7.5 字符串处理函数 #include .- 7 -第八章 函数 153 - 8 -8.1 c 程序的结构 154 - 8 -8.2 函数调用参数传递 .- 8 -8.3 函数变量的作用范围 .- 8 -8.4 变量的存储类别 .- 8 -第九章 预处理命令 197 - 9 -9.1 预编译命令作用 .- 9 -第十章 指针 211 - 10 -10.1 变量的访问方式 .- 10 -10.2 指针变量 .- 10

5、 -第十一章 结构体 270 - 11 -11.1 结构体 270- 11 -311.2 声明结构体类型变量的方法 271- 11 -11.3 结构体变量引用 273- 11 -11.4 结构体变量初始化 .- 12 -11.5 结构体数组 275- 12 -11.6 结构体类型指针 .- 12 -11.7 链表 283- 12 -11.8 共用体 297.- 13 -11.9 枚举类型 301- 13 -11.10 用 typedef 定义的类型 304- 14 -第十二章 位运算 308 - 14 -12.1 位段 315.- 14 -第十三章 文件 319 - 14 -13.1 文件 3

6、19- 14 -13.2 文件的分类 319- 15 -13.3 C 语言对文件的处理方法 319 .- 15 -13.4 文件结构体类型 321- 15 -13.5 文件结构体数组和指针 321- 16 -13.6 文件的操作 321- 16 -13.7 文件的定位 333- 17 -13.8 出错检测 335- 18 -13.9 小结 336- 18 -第十四章 C+对 C 的扩充 338.- 19 -14.1 C+的特点 338- 19 -14.2 C+的输入输出 339.- 19 -14.3 C+的输出 cout.- 19 -14.4 C+的输入 cin 341.- 21 -14.4

7、函数的重载 342- 21 -14.5 带缺省参数的函数 344- 21 -14.6 变量的引用类型 345- 22 -14.7 内置函数 348.- 23 -14.8 作用域运算符 349- 24 - 1 -第一章 C 语言概述1.1 C 程序结构特点 161、C 程序的基本构件函数。2、一个函数由函数首部和函数体两部分构成。 函数首部一般包括函数类型、函数名、函数参数等。 函数体一般包括声明部分和执行部分。其中:在声明部分中定义所用到的变量;执行部分则由若干个语句组成。3、C 程序只有一个 main 函数,且总是从 main 函数开始执行。4、C 语言语句必须以“;” 结束。5、用/* *

8、/作为注释。6、C 编译器一般自顶向下顺序编译 C 源程序,如果被调函数 定义在主调函数之后位置时,要在主调函数前,给出被调函数的原型说明。以便编译器在编译被调函数的调用语句时,对调用语句进行参数检查。如果不进行原型说明,则无法通过编译检查。原型说明:类型说明 函数名(参数类型,参数类型,)7、头文件头文件包含了 C 语言的标准函数库的原型说明。C 语言通过使用#include 字符串/字符数组 2,返回正数字符串/字符数组 1=字符串/字符数组 2,返回 0字符串/字符数组 1 编译预处理时,将包含文件的全部内容复制到源文件中。在编译时作为一个源程序来编译。3、条件编译在预编译处理时,确定编

9、译时要编译的部分。如:- 11 - # ifdef 标识符程序段 1# else程序段 2# endif # if 表达式程序段 1# else程序段 2# endif第十章 指针 21110.1 变量的访问方式1、直接访问如:int a = 10;2、间接访问定义一个指针变量 p,存放变量 a 的首地址,通过 p 访问变量a。则称指针变量 p 指向变量 a。如:int a=10;int *p1; p= 或*p1=100;等价于 a=100;10.2 指针变量1、指针变量的类型是指该变量指向的内存数据的数据类型。2、必须用引用变量的地址给指针变量赋值。3、可以给指针变量赋值空值 null,防止

10、指针变量存储随机值导致系统错误。4、数组名代表数据的首地址。数组指针或数组名+1,指向下一个数组元素的存储地址。声明格式:数据类型 *p ;赋值格式:p=a;或 p= unsigned int f2 :1; unsigned int f3 :1; unsigned int type :4;unsigned int index :9;3、位段结构类型变量声明方法:同结构体。4、同一位段必须存储在同一个存储单元中,不能跨两个单元。第十三章 文件 31913.1 文件 3191、文件指存储在外部介质上的数据集合(数据文件) ,操作系统以文件为单位对数据进行管理。- 16 -13.2 文件的分类 31

11、91、从用户的观点看: 特殊文件指标准输入输出文件或标准设备文件。 普通文件指磁盘文件。2、从操作系统的角度看:每一个与主机相关联的输入输出设备都可看作一个文件。(1)根据文件的组织形式分为:顺序存取文件 和 随机存取文件。(2)根据文件的存储形式分为:ASCII 文件 和 二进制文件。13.3 C 语言对文件的处理方法 319C 语言中对文件的存取是以字符(字节)为单位的,一个输入输出流就是一个字节流或二进制流。文件的存储方式分为缓冲文件系统和非缓冲文件系统。区别是缓冲文件系统是系统自动开辟缓冲区,非缓冲文件系统是由程序为每个文件设定缓冲区。ANSI C 标准只采用 缓冲文件系统 来处理文件

12、。13.4 文件结构体类型 321缓冲文件系统中,每个被使用的文件都在内存中开辟一个 FILE 结构体类型的区,用来存放文件的有关信息(文件名字、文件状态、当前位置、缓冲区等有关信息) ,FILE 结构体类型原型: typedef structshort level; *缓冲区“满”或“ 空”的程度*unsigned flags; *文件状态标志*char fd; *文件描述符*unsigned char hold; *如无缓冲区不读取字符*short bsize; *缓冲区的大小*unsigned char *buffer; / *数据缓冲区的位置*/unsigned char *curp;

13、 /*指针,当前的指向*/unsigned istemp; /*临时文件,指示器 */short token;/*用于有效性 检查*/FILE; - 17 -13.5 文件结构体数组和指针 321FILE *fp声明了一个指向 FILE 类型结构体的指针变量。FILE f5声明了一个文件结构体数组 f,它有 5 个元素,存放 5 个文件的信息。FILE 变量声明了一个文件结构体变量。13.6 文件的操作 321C 语言要求,在文件读写之前要“打开”文件,在使用结束后要“关闭”文件。1、打开文件: FILE *fp; fpfopen(“文件名” , “使用文件方式” ) ;指针变量指向被打开的文

14、件。例如:fp = fopen(“a1 ”, “r”) 。2、关闭文件:fclose(文件指针) ;返回值:关闭成功返回值为;否则返回 EOF(-1) 。使文件指针变量不指向该文件,也就是文件指针变量与文件“脱钩”,此后不能再通过该指针对原来与其相联系的文件进行读写操作。3、将字符写到文件中:fputc ( ch,fp ) ;返回值:如果输出成功,则返回值就是输出的字符;如果输出失败,则返回一个 EOF(-1) 。将字符(ch 的值)输出到文件指针 fp 所指向的文件中去。该文件必须是以 写或读写方式打开的。4、将字符从文件中读出:chfgetc(fp) ;返回值:读取成功一个字符,赋给 c。

15、如果遇到文件结束符,返回一个文件结束标志 EOF(-1 ) 。从指定的文件读入一个字符,该文件必须是以读或读写方式打开的。 注意:ANSI C 提供一个 feof()函数来判断文件是否真的结束。如果是文件结束,函数 feof(fp)的值为(真) ;否则为(假) 。以上也适用于文本文件的读取。- 18 -5、数据块读写: fread (buffer,size,count,fp); fwrite(buffer,size,count,fp); buffer:是一个指针。对 fread 来说,它是读入数据的存放地址。对 fwrite 来说,是要输出数据的地址(均指起始地址) 。size: 要读写的字节

16、数。count: 要进行读写多少个 size 字节的数据项。fp: 文件型指针。6、格式化读写函数: fprintf ( 文件指针,格式字符串,输出表列) ; fscanf ( 文件指针,格式字符串,输入表列) ; 注意:用 fprintf 和 fscanf 函数对磁盘文件读写,使用方便,容易理解,但由于在输入时要将 ASCII 码转换为二进制形式,在输出时又要将二进制形式转换成字符,花费时间比较多。因此,在内存与磁盘频繁交换数据的情况下,最好不用 fprintf 和fscanf 函数,而用 fread 和 fwrite 函数。7、以“字”或者整数为单位读写函数: putw(int i,FIL

17、E * fp); int i = getw(FILE * fp); 8、以“字符串”为单位读写文件的函数: fgets(str,n,fp); 从 fp 指向的文件读出 n-1 个字符,在最后加一个0。返回值:str 的首地址。如果遇到 EOF 则读入结束。 fputs(“china”,fp); 把字符串写入到 fp 指向的文件。第一个参数可以是字符串常量、字符数组名或字符型指针。字符串末尾的不输出。 13.7 文件的定位 3331、将文件当前的位置指针重新返回到文件的开头位置:无返回值。 rewind (fp) ;执行后,将文件的位置指针重新定位到文件的开头。2、随机读写:改变文件的位置指针,

18、一般用于二进制文件。- 19 - fseek(文件类型指针,位移量,起始点) ;无返回值。起始点:文件开头 SEEK_SET 0文件当前位置 SEEK_CUR 1文件末尾 SEEK_END 2位移量:以起始点为基点,向后(前,末尾时)移动的字节数。一般要求为long 型。3、获取流式文件当前的位置指针:返回当前位置用相对于文件开头的位移量来表示。 ,出错时返回 EOF。 i = ftell(fp); 13.8 出错检测 3351、ferror(fp ) ;返回 0,表示未出错;返回非 0,表示出错。注意:在调用一个输入输出函数后立即检查 ferror 函数的值,否则信息会丢失。在执行 fope

19、n 函数时,ferror 函数的初始值自动置为。 2、clearerr(fp); 使文件错误标志和文件结束标志置为 0。只要出现错误标志,就一直保留,直到对同一文件调用 clearerr 函数或 rewind 函数,或任何其他一个输入输出函数。调用后 feeror(fp)的值变为 0,且文件结束标志置为 0。13.9 小结 336分类 函数名 功能 打开文件 fopen() 打开文件 关闭文件 fclose() 关闭文件文件定位 fseek() 改变文件位置指针的位置Rewind() 使文件位置指针重新至于文件开头Ftell() 返回文件位置指针的当前值文件状态 feof() 若到文件末尾,函

20、数值为真Ferror() 若对文件操作出错,函数值为真Clearerr() 使 ferror 和 feof()函数值置零文件读写 fgetc(),getc()从指- 20 -定文件取得一个字符 fputc(),putc()把字符输出到指定文件fgets()从指定文件读取字符串fputs()把字符串输出到指定文件getw()从指定文件读取一个字(int 型)putw()把一个字输出到指定文件fread()从指定文件中读取数据项fwrite()把数据项写到指定文件中fscanf()从指定文件按格式输入数据fprintf()按指定格式将数据写到指定文件中第十四章 C+对 C 的扩充 33814.1

21、C+的特点 3381、C+保留了 C 语言原有的所有优点,增加了面向对象的机制。2、C+源文件以.cpp 为后缀。3、除了可以用 /*/ 形式的注释行外,还允许使用以 / 开头的单行注释。4、除了可以用 printf 函数输出信息外,还可以用 cout 进行输出。cout 的作用是将 运算符从输入设备键盘取得数据送到输入流 cin 中,然后送到内存。在 C+中,这种输入操作称为“提取”(extracting) 或“得到”(getting) 。 常称为“提取运算符 ”。2、cin 要与 配合使用。例如:3、C+为流输入输出提供了格式控制,如:dec(用十进制形式) ,hex(用十六进制形式) ,

22、oct( 用八进制形式) , 还可以控制实数的输出精度等。14.5 函数的重载 3421、C+允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不同,而且函数类型也可不同,这就是函数的重载,即一个函数名多用。2、系统会根据参数的类型和个数找到与之匹配的函数,并调用不同的函数。14.6 带缺省参数的函数 344C+允许实参个数与形参个数不同。办法是在形参表列中对一个或几个形参指定缺省值( 或称默认值)。例如某一函数的首部可用如下形式:void fun(int a, int b, int c=100)在调用此函数时如写成 fun(2,4,6) ,则形参 a,b,c 的值分别为

23、 2,4,6(这是与过去一样的) 。如果写成 fun(2,4) ,即少写了最后一个参数,由于在函数定义时已指定了 c 的缺省值为 100,因此 a,b,c 的值分别为 2,4,100。请注意:赋予缺省值的参数必须放在形参表列中的最右端。例如:void f1(float a, int b, int c=0, char d=a) ( 正确)void f2(float a, int c=0, char d=a, int b) (不正确 )注意:不要同时使用重载函数和- 23 -缺省参数的函数,因为当调用函数时少写一个参数,系统无法判定是利用重载函数还是利用缺省参数的函数,会发生错误。14.7 变量的

24、引用类型 3451、 “引用”(reference) 是 C+的一种新的变量类型,是对 C 的一个重要扩充。它的作用是为一个变量起一个别名。2、假如有一个变量 a,想给它起一个别名 b,可以这样写:int a;int 这就声明了 b 是 a 的“ 引用” ,即 a 的别名。经过这样的声明后,使用 a 或 b 的作用相同,都代表同一变量。注意:在上述声明中,int int (企图使 b 变成 a2 的引用(别名)是不行的)5、C+之所以增加“引用” ,主要是把它作为函数参数 ,以扩充函数传递数据的功能。 C+提供了向函数传递数据的第三种方法,即传送变量的别名。例如:#include void s

25、wap(int temp=a;a=b;b=temp;void main( )int i=3,j=5;- 24 -swap(i, j);coutinline int max(int a, int b, int c) /这是一个内置函数,求 3 个整数中的最大者 if (ba) a=b;if (ca) a=c;return a; void main( )int i=7, j=10, k=25, m ;m=max(i, j, k);- 25 -cout“max=“mendl;14.9 作用域运算符 3491、作用域运算符 ,aa 表示全局作用域中的变量。2、不能用 访问函数中的局部变量。14.10

26、动态分配运算符 new3491、new 运算符使用的一般格式为: new 类型 初值 ;2、用 new 分配数组空间时不能指定初值。3、如果由于内存不足等原因而无法正常分配空间,则 new 会返回一个空指针NULL,用户可以根据该指针的值判断分配空间是否成功。例子:new int; (开辟一个存放整数的空间,返回一个指向整型数据的指针)new int(100); (开辟一个存放整数的空间,并指定该整数的初值为 100)new char10; (开辟一个存放字符数组的空间,该数组有 10 个元素,返回一个指向字符数据的指针)new int5 4 ; (开辟一个存放二维整型数组的空间,该数组大小为

27、 5*4)float *p=new float(3.14159) (开辟一个存放实数的空间,并指定该实数的初值为3.14159,将返回的指向实型数据的指针赋给指针变量 p)14.11 撤销内存运算符 delete2501、delete 运算符使用的一般格式为: delete 指针变量;例如:要撤销上面用 new 开辟的存放实数的空间( 上面第 5 个例子),应该用 delete p;前面用 new char10 开辟的空间,如果把返回的指针赋给了指针变量 pt,则应该用以下形式的 delete 运算符撤销: delete pt;(在指针变量前面加一对方括号,表示对数组空间的操作) 。- 26 -第十五章 C+的面向对象基础 35215.1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报