




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计谭浩强重点笔记C 语言设计学习笔记早晨:06:40起床07:20 08:20英语 1 小时新 概 念英语(单词 、 语法、听读背)大 学 英语 ( 单词 、 语法、听读背)上午:08:30 10:30计 算 机基础 2 小时10:50 11:30计算机科学技术导论计 算 机组 成 原2理微 机 原理 及 接口技术Intel微处 理 器结 构 编程 与 接口深 入 理解 计 算机系统80x86 汇编 语 言程 序 设计8086-8088 宏汇编 语 言程 序 设计教程BIOS 研3发 技 术剖析自 己 动手 写 操作系统操 作 系统原理Windows操 作 系统原理Windows内
2、 部 原理系列Windows程 序 内部 运 行原理计 算 机网 络 第五版中午:12:00 02:00午休4下午:02:30 04:30计 算 机应用及编程Windows用 户 管理指南、AD 配置指南、网络 专 业指 南 、Windows即 学 即会教程Windows下 32 位汇 编 语言 程 序设计、C#编程晚上:05:30 08:00锻炼、晚餐508:00 09:00辅导09:00 11:00专业基础 2 小时大 学 数学、大学物理、电机 及 拖动、电力电 子 技术、通信技术11:30休息6目 录第一章 C 语言概述 .- 1 -1.1C 程序结构特点 16 .- 1 -1.2C 程
3、序上机步骤 17 .- 2 -第二章 程序的灵魂 算法 23 .- 3 -2.1算法 24 .- 3 -2.2算法的三种基本结构.- 4 -2.3结构化程序设计方法42 .- 4 -第三章 数据类型 运算符与表达式48 .- 5 -3.1C 语言的基本元素 48.- 5 -3.2C 的数据类型 48 .- 5 -3.3常量与变量 48 .- 6 -3.4基本类型 .- 7 -3.5变量 63 .- 9 -3.6不同类型数据间的混合运算 .- 12 -3.7函数的调用过程(补充) .- 13 -第四章 最简单的 C 程序设计顺序程序设计 77 .- 14 -4.1字符数据的输入输出.- 14 -
4、第五章 选择结构的程序设计 97 .- 15 -第六章 循环结构程序设计 .- 15 -6.1语句标号 .- 15 -6.2 break 语句和 continue 语句 .- 15 -第七章 数组 132.- 16 -7.1构造类型 .- 16 -7.2数组 133 .- 16 -7.3二维数组 .- 17 -7.4字符串字符数组.- 17 -7.5字符串处理函数 #include .- 18 -第八章 函数 153.- 20 -8.1 c 程序的结构 154 .- 20 -8.2函数调用参数传递 .- 21 -8.3函数变量的作用范围.- 21 -8.4变量的存储类别 .- 22 -第九章
5、预处理命令 197.- 24 -9.1预编译命令作用 .- 24 -第十章 指针 211.- 27 -10.1变量的访问方式 .- 27 -10.2指针变量 .- 27 -第十一章 结构体 270.- 29 -711.1结构体 270 .- 29 -11.2声明结构体类型变量的方法 271.- 30 -11.3结构体变量引用 273 .- 31 -11.4结构体变量初始化 .- 31 -11.5结构体数组 275 .- 32 -11.6结构体类型指针 .- 32 -11.7链表 283 .- 33 -11.8共用体 297 .- 34 -11.9枚举类型 301 .- 35 -11.10 用
6、typedef 定义的类型 304 .- 36 -第十二章位运算 308.- 36 -12.1位段 315 .- 36 -第十三章文件 319.- 37 -13.1文件 319 .- 37 -13.2文件的分类 319 .- 38 -13.3C 语言对文件的处理方法319 .- 38 -13.4文件结构体类型 321 .- 39 -13.5文件结构体数组和指针321 .- 41 -13.6文件的操作 321 .- 41 -13.7文件的定位 333 .- 45 -13.8出错检测 335 .- 47 -13.9小结 336 .- 48 -第十四章C+ 对 C 的扩充 338.- 50 -14.
7、1C+ 的特点 338.- 50 -14.2C+ 的输入输出 339.- 51 -14.3C+ 的输出 cout .- 52 -14.4C+ 的输入 cin 341 .- 55 -14.4函数的重载 342 .- 56 -14.5带缺省参数的函数 344 .- 56 -14.6变量的引用类型 345 .- 58 -14.7内置函数 348 .- 61 -14.8作用域运算符 349 .- 63 -8第一章C 语言概述1.1C 程序结构特点 161、C 程序的基本构件 函数。2、一个函数由函数首部 和函数体两部分构成。? 函数首部 一般包括 函数类型、函数名、函数参数 等。? 函数体 一般包括
8、声明部分 和执行部分。其中:在 声明部分 中定义所用到的变量;执行部分 则由若干个 语句组成。3、C 程序只有一个main 函数,且总是从 main 函数开始执行。4、C 语言语句必须以 “;”结束。5、用 /*/ 作为注释 。6、C 编译器一般 自顶向下 顺序编译 C 源程序,如果 被调函数 定义在 主调函数 之后位- 1 -置 ,要在主 函数前, 出 被 函数的 原型 明 。以便 器在 被 函数 的 用 句 , 用 句 行参数 。如果不 行原型 明, 无法通 编译检查。原型 明: 型 明 函数名(参数 型 ,参数 型 ,)7、 文件 文件包含了 C 言的 准函数 的原型 明 。C 言通 使
9、用 #include 理命令,将 函数的原型 明插入到源文件中 。1.2 C 程序上机步骤 171、 源文件.c;2、 成目 文- 2 -件 .obj ;3、连接将 目标程序 和库函数及其他目标程序 连接起来,生产可执行文件,文件扩展名为 .exe;4、执行。第二章程序的灵魂算法232.1 算法 241、算法指为求解某一问题而采用的具体方法和步骤。2、两类算法 数值运算算法 和非数值运算算法3、算法的特性 有穷性、确定性、有- 3 -效性等4、算法描述 文字描述法 (如伪代码描述算法)、图形描述法 (如流程图和NS 流程图描述算法)。2.2 算法的三种基本结构顺序、选择、循环2.3 结构化程序
10、设计方法421、自顶向下首先对问题进行分析,确定算法思路。2、逐步细化根据算法思路,制定原始算法流程,并不断细化流程。3、模块设计分解算法流程,将功能相对独立的部分划分为一个模块。4、结构化编码利用高级语言正确实现 3 种基本结构。- 4 -第三章数据类型运算符与表达式483.1 C 语言的基本元素481、符号集 C 语言使用的基本符号。2、标识符 用来标记常量、变量、函数及文件名字的字符序列。3、关键字 C 程序规定的,具有特定含义、专门用作语言特定成分的一类标识符。ANSI 推荐的 C 语言关键字是32 个。关键字全部应该小写。3.2 C 的数据类型 48数据是操作的对象,数据类型是指 数
11、据的内在表现形式 。如(数据代码、存储、运算)。1、基本类型 :整型、字符型、实型。2、构造类型 :在基本类型的基础上,按- 5 -照某种 构成规则 构造而成 的类型。 数组、结构体、共用体、枚举型。3、指针类型 :用于存储地址的一类数据类型。4、空类型:编译器根据变量的数据类型,给变量分配存储单元 。3.3 常量与变量 481、符号常量符号常量在其作用域内不能改变,也不能被赋值。#define 符号常量(大写)常量2、变量变量由变量名 和变量值 标识。数据类型变量;?变量名实际上是一个符号地址 ,编- 6 -译连接程序时给每个变量名 分配一个 内存地址 ,当程序访问变量值时,实际上是通过变量
12、名找到相应的内存地址,从其存储单元中读取数据。3.4 基本类型1、整形数据 在内存中的存放,是以 补码形式存放的。2、实型数据 :单精度双精度。? 在内存中以指数形势存放。? 若数据超过有效位,则超过 C 语言规定有效位的数据将被舍去,故产生误差。3、字符型数据 :用一个字节存储单元存储。即将字符的 ASCII 码存储到内存单元中。? 用单引号括起来的一个字符。- 7 -? 转义字符 特殊字符常量 或者控制字符常量 ,它们都以“ ”开头。? Char 、 unsigned char 区别: char用 7 位数表示,最大表示编码为127 的字符; unsigned char 用 8 位数表示,
13、最大表示编码为 255 的字符。? 字符数据与整型数据可以相互赋值。? 字符数据可以以字符数据输出,也可以以整型数据形式输出。4、字符串常量 :C 语言中,必须是用 字符数组 来保存字符串常量。在内存中顺序存储。? 用一对双引号括起来的字符序列。? 每个字符串常量结尾以一个 字符 0作为结束标记 。(一般由系统自动加上) 。- 8 -3.5 变量 631、自动变量 在函数体内或复合语句中定义的非静态变量称为自动变量 。? C 语言编译时,不对自动变量赋初值。? 当程序执行到 自动变量的作用域时,程序才为自动变量分配空间。当定义自动变量的函数或复合语句执行结束后,程序释放自动变量的存储空间。?
14、自动变量保存在程序的 动态存储空间。2、静态局部变量 在函数体内或复合语句中用 static 定义的变量称为 静态局部变量。? C 语言编译时,对静态局部变量赋- 9 -初值。? 静态局部变量 存储在程序的 静态存储空间。? 静态局部变量 在程序的 整个运行期间均占用程序的 静态存储空间 ,直到程序退出后才释放存储空间。3、寄存器变量 用 register 声明的变量。4、外部变量(全局变量) 在函数的外部定义的变量。它的作用域是从定义处开始,到本程序文件的末尾结束,在此作用域内,全局变量可以为程序的各个函数引用。? C 语言编译时,对全局变量赋初值。? 全局变量 存储在程序的 静态存储空间。
15、? 全局变量 在程序的 整个运行期间 均- 10 -占用程序的 静态存储空间 ,直到程序退出后才释放存储空间。注意:( 1)当引用本源文件后面定义的全局变量或引用在其他源文件中定义的全局变量是,应在引用位置前,利用 extern 声明该全局变量,以告诉编译器编译时,引用的是一个外部变量 ,在编译器连接时,将引用的 外部变量的作用域 扩展到本文件 extern 声明处。( 2)用 static 声明的全局变量,不能被其他文件引用。注意:( 1)变量声明 分为定义性声明 和引用性声明。( 2)一般把建立存储空间的声明称为 变- 11 -量定义 ,把不需要建立存储空间的声明成为变量声明。3.6 不同
16、类型数据间的混合运算? 不同类型数据进行 混合运算时 ,不同类型的数据要 先转换成 同一类型 ,按照类型级别由低到高( char ,short int unsigned long double ; float double)的顺序进行转换。? 强制类型转换 (类型名) 表达式。强制类型转换也就是将存储数据的内存单元 强制转换为另一种数据类型的单元大小。即强制将存放数据的 内存单元改变。? 赋值时进行类型转换: 将数据复制给变量时,将会将数据强制转换为要赋- 12 -值变量的类型。 一般短类型转换为长类型时,进行 符号扩展 ;长类型转换为短类型时,仅 赋值低位 ,难以保证数据的正确性。3.7 函
17、数的调用过程(补充)? C 函数其实就是一个程序模块。? C 函数在编译时,单独编译成一个指令模块, 在函数模块开始处定义保护现场指令 ,将用到的 CPU 寄存器压入堆栈。在返回时定义了恢复现场指令 ,将堆栈数据恢复到 CPU 寄存器。? 在调用函数时,一般利用 堆栈传递输入参数 ;利用 EAX 传递输出参数 ,注意在函数调用完成后, 要维持堆栈平衡 ,且函数返回输出参数在 EAX 中,在使用- 13 -输出参数前,不要改变EAX 的值。第四章最简单的 C 程序设计顺序程序设计774.1 字符数据的输入输出1、C 语言没有输入输出语句,IO 操作通过调用系统函数实现。2 、 在 程 序 的 开
18、 头 , 要有 : #include“stdio.h ”或 #include ,预定义语句,用来引用头文件,在编译时将头文件中的函数原型声明 添加到源文件中。stdio.h 输入输出语句string.h字符串操作函数math.h定义数字函数ctype.h字符函数库intrins.h内部函数stdlib.h标准函数库- 14 -absacc.h 绝对地址访问reg.h专用寄存器文件默认输出设备显示屏,默认输入设备键盘。第五章选择结构的程序设计第六章循环结构程序设计6.1 语句标号语句标号 用于定义程序中的某个位置,用标识符表示 ,不能只用数字。6.2 break语句和 continue语句1、b
19、reak 语句结束循环语句和switch 语句。2、continue 结束本次循环, 即忽略循环体中剩余的语句。- 15 -第七章数组 1327.1 构造类型构造类型 是 由基本类型 按照一定规则构造而成的 。(如数组、结构体、共同体、枚举型)构造类型的每个分量(元素) ,是一个变量,它可以是一个简单类型或者构造类型。构造类型的分量占用 相邻的存储空间 。7.2 数组 1331、数组是 有序数据 的集合,数据 元素类型相同 ,顺序存储,占用相邻的存储空间。2、数组数组必须 先定义后引用 。静态数组变量定义时编译器自动初始化数据元素为 0,动态数组变量在程序执行时分配存储空间,在未被赋值初始化之
20、前其值随机。- 16 -3、C 语言只能 逐个引用数组元素 ,不能一次引用整个数组。4、数组引用是“数组名+下标”引用,数组下标均为整数。如a2。7.3 二维数组1、数组元素为数组。2、在内存中, C 语言的二维数组中数组元素的存放顺序是 按行存放 的。3、二维数组引用是“数组名 + 下标 +下标”。如 a12 。7.4 字符串字符数组1、一般用 0 来标识字符串结尾。 0 占用一个字符变量空间。2、用字符串赋值 字符数组时, C 编译器在字符串后自动加 0 赋给字符数字。- 17 -3、字符数组可以一次引用整个字符串数组。如整个字符串(数组)的输入输出,用 %s格式,且在输入字符数组时,用数
21、组名代表数组的首地址 ,对于二维数组,仅仅写行下标不写列下标,也可以代表给行数组的首地址。在用 %s 输入输出字符串数组时,遇到0结束。7.5 字符串处理函数#include 1、gets(字符数组名)从键盘输入一个字符串(以回车结束 ),并返回字符 数组的起始地址 。如 get(str )。2、puts (字符数组名 /字符串)将数组中的字符串 (0 结尾的字符序列)- 18 -输出到终端上, 输完换行 。如 puts(str ),puts(“ok”)。3、strcpy (目的字符数组1 名,源字符串/字符数组 2 名)拷贝时,将“ 0”一起拷贝过去。4、strcat (字符数组1 名,字符
22、串 /字符数组 2 名)将字符串 /字符数组 2 连接到字符数组1中。连接时,编译器去掉 字符数组 1 的“0”。5、strcmp(字符串 /字符数组 1 名,字符串/字符数组 2 名)比较字符串 /字符数组1 名 和字符串 /字符数组 2 名的大小。字符串 /字符数组 1字符串 /字符数组 2,返回正数- 19 -字符串 /字符数组 1=字符串 /字符数组 2,返回 0字符串 /字符数组 1字符串 /字符数组 2,返回负数。第八章函数 1538.1 c 程序的结构 1541、一个 C 程序可以分为若干个函数。2、每个程序只能有一个主函数,C 程序的执行从 main 函数开始,从 main 函
23、数结束。3、函数间可以互相调用,但主函数不能被调用。4、从用户角度看,函数可分为标准函数(库函数 )和自定义函数 。其中,编译器仅编译自定义函数,在连接时才将标准库函数的目标代码连接到程序。- 20 -5、一个C 源程序由一个或多个文件构成,一个源程序文件是一个编译单位。8.2 函数调用参数传递1、值传递 如 数值形参 。此时,将 实参值复制压栈 ,被调函数对复制到栈中的数值进行操作,不改变原来实参值。2、地址传递 如 数组形参(指针形参),此时,将实参数组的首地址压栈,被调函数引用实参数组的首地址,找到实参数组,对实参数组进行操作,改变实参数组值。即形参数组和实参数组共享同一单元。8.3 函
24、数变量的作用范围1、局部变量 在定义局部变量的范围内有效。当局部变量重名时,有效范围小的优先。- 21 -? 在函数内部定义局部变量? 函数的形式参数? 在某个复合语句中定义的变量。2、全局变量 在函数之外定义的变量。有效范围是从定义变量的位置开始到源文件结束 。8.4 变量的存储类别变量的存储类别,即生存期 。内存中供用户使用的存储空间包括:程序区 、静态存储区、动态存储区 。1、静态存储区 在编译时分配空间,在程序运行完后才释放存储空间。存储静态局部变量和全局变量 。? 局部静态变量在编译时赋初值,在执行时可改变该值,但该存储空间一直- 22 -保存到程序结束。? 定义局部静态变量,如果没有赋初值,编译时会自动赋默认初值。? 局部静态变量只能在定义它的函数中使用。? 全局变量都是静态的。? 利用 extern 外部变量 方式表示变量的定义在别的文件中,提示 编译器 遇到此变量时,在其他模块中寻找其定义。而函数则是利用函数原型来声明。? 用 static 关键字说明一个不能在其他源文件中引用的全局变量。即静态全局变量在声明它的整个文件都是可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (标准)玉石转让合同协议书
- 品牌社交媒体内容创意库创新创业项目商业计划书
- 云上数据迁移与同步服务创新创业项目商业计划书
- (标准)汕头养殖转让合同协议书
- (标准)徒弟转让合同协议书模板
- (标准)装修设计合同转让协议书
- (标准)医疗科室转让合同协议书
- (标准)中介合同转让协议书
- 腰椎滑脱的康复治疗
- 2025至2030中国叉式挡光板行业产业运行态势及投资规划深度研究报告
- 2025工商银行房贷借款合同
- 高校辅导员考试基础知识试题题库238题(附答案)
- 小学五年级数学奥数数的整除(附练习及详解)
- 甲肝健康知识课件
- 2025至2030中国防辐射服行业发展趋势分析与未来投资战略咨询研究报告
- 社区干部考试试题及答案
- 2025年乡村文化旅游与乡村旅游融合的市场需求分析报告
- 2025-2030年中国芳烃行业市场深度调研及投资前景与投资策略研究报告
- 2025年广西专业技术人员继续教育公需科目(一)答案
- 中年人心理健康课件
- 中国电力金具行业市场发展前景及趋势预测与投资分析研究报告(2025-2030版)
评论
0/150
提交评论