第2讲 C语言的基本知识
- 格式:ppt
- 大小:255.00 KB
- 文档页数:19
第一章数据结构与算法1.1 算法1.1.1算法:是指解题方案的准确而完整的描述。
规定了解决某类问题所需的操作语句以及执行顺序使其能通过有限的指令语句,在一定时间内解决问题算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
1.算法特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限的步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
2.算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构通常,计算机可以以执行的基本操作是以指令的形式描述的。
一个计算机系统能执行的所有指令的集合,称为计算机系统的指令系统。
(1)计算机系统中的基本运算和操作包括:算术运算+ - * /逻辑运算not and or关系运算< > ! =数据传输赋值输入与输出(2)算法的控制结构:顺序结构、选择结构、循环结构。
3.算法基本设计方法:列举法(列举所有解决方案)归纳法(特殊→一般)递推(已知→未知)递归(逐层分解)减半递推“减半”是指将问题的规模减半,而问题的性质不为,所谓“递推”是指重复“减半”的过程回溯法找出一个解决问题的线索,然后沿着这个线索逐步多次“探、试”1.1.2算法复杂度算法时间复杂度和算法空间复杂度(一个算法所要付出的代价)是衡理算法好坏的。
1.算法时间复杂度算法时间复杂度是指执行算法所需要的计算工作量。
(既算法的运算次数)含义:算法执行过程中所需要的基本运算次数影响计算工作量的主要因素:一、基本运算次数二、问题与规模2.算法空间复杂度是指执行这个算法所需要的内存空间。
一个算法所用的内存空间包括:1、算法程序所占的空间2、输入的初始数据所占的存储空间3、算法执行过程中的额外空间1.2 数据结构的基本基本概念数据:在计算机科学中指所有能输入到计算机中的并被计算机程序处理的符号的总称数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
1. 第一章:设计语言的讲解2. 第一章:程序的算法与结构设计。
3. 第二章:C程序的设计初步了解。
4. 第二章:C程序的格式的讲解。
5. 第二章:C程序格式的几个考点讲解。
6. 2.2标识符、常量、变量一7. 2.2标识符、常量、变量二8. 2.2标识符、常量、变量三9. 2.2标识符、常量、变量考点讲解10. 2.3整型常量11. 2.3整型变量12. 2.3整型数据的分类13. 2.4实型常量14. 2.4实型变量15. 2.5算术表达式、运算符优先级及强制类型转换16. 2.6赋值表达式17. 2.7复合表达式与赋值中的强制类型转换18. 2.7 ++和——的讲解19. 2.7 逗号表达式与实例讲解20. 课后习题的讲解21. 课后习题的讲解22. 课后习题的讲解23. 第二章的总体回顾24. 3.2输出语句的讲解一25. 3.2输出语句的讲解二26. 3.2输出语句的讲解三27. 3.2输出语句考点例题讲解。
28. 3.3输入语句的讲解一29. 3.3输入语句的讲解二30. 3.3输入语句考点例题讲解。
31. 3.4复合语句与空语句32. 3.5程序设计33. 课后习题讲解34. 课后习题讲解35. 课后习题讲解36. 第三章总体回顾37. 4.1关系运算38. 4.1逻辑运算39. 4.2 IF语句40. 4.2 IF语句41. 4.2 IF语句的嵌套42. 4.2 IF语句的嵌套43. 4.2 IF语句的几个考试例题44. 4.3条件表达式45. 4.4 switch语句46. 4.4 switch语句与BREAK47. 4.4switch语句的几个考试例题48. 课后习题49. 课后习题50. 课后习题51. 第四章的总体回顾52. 5.1while语句53. 5.1while的几个习题54. 5.2do while55. 5.3 FOR语句56. 5.3 FOR语句57. 5.4 for的嵌套58. 5.4FOR的嵌套59. 5.4素数的判定60. FOR语句的实例61. FOR语句的实例62. FOR语句的实例63. 5.5 break与continue64. 5.5 break与continue65. 5.6程序的举例66. 例年考题讲解67. 例年考题讲解(上机题)68. 例年考题讲解(上机题)69. 课后习题70. 课后习题71. 课后习题72. 6.1字符常量73. 6.1字符串常量与字符变量74. 6.3字符的输入与输出75. 6.3字符与其它数据类型混合的输入与输出76. 6.4程序举例77. 课后习题讲解78. 课后习题讲解79. 课后习题讲解80. 课后习题讲解81. 第六章的总体回顾82. 7.1库函数83. 7.2函数的应用与说明84. 7.2函数的定义与使用85. 7.2return的应用86. 7.3函数的调用87. 7.3函数的调用88. 7.4函数的说明与调用函数的数据传递90. 7.6程序举例91. 例年考题讲解92. 例年考题讲解(上机)93. 例年考题讲解(上机)94. 课后习题95. 课后习题96. 课后习题97. 第七章总体回顾98. 8.1变量的地址与指针99. 8.2指针变量的定义100. 8.2指针变量的定义101. 8.3给指针变量赋值102. 8.3给指针变量赋值103. 8.4指针变量的操作104. 8.4指针变量的操作105. 8.4指针变量的表示106. 8.4指针变量所指向的数据的增减107. 8.4指针的移动108. 8.4指针的移动109. 8.5指针在函数调用中的应用110. 8.5指针在函数调用中的应用111. 例年考题讲解112. 例年考题讲解113. 例年考题讲解(上机)114. 例年考题讲解(上机)115. 课后习题分析116. 课后习题分析117. 课后习题分析118. 第八章总体回顾119. 第八章总体回顾120. 9.1数组的初步了解121. 9.1一维数组的定义122. 9.1一维数组的引用与始化123. 9.1一维数组的使用124. 一维数组的实例125. 9.2一维数组和指针126. 9.2一维数组和指针127. 9.2通过指针引用一维数组\ 128. 9.3一维数组在函数调用中的应用129. 9.3一维数组在函数调用中的应用130. 9.3一维数组在函数调用中的应用131. 9.4应用举例132. 9.4应用举例134. 9.5二维数组的定义135. 9.5二维数组的引用136. 9.5二维数组的初始化137. 9.5二维数组通过FOR语句初始化138. 9.6二维数组元素的地址表示139. 9.6二维数组元素的地址表示140. 9.6通过指针来引用数组元素141. 9.6指针数组与数组指针142. 9.7二维数组在函数调用中的应用143. 9.7二维数组在函数调用中的应用144. 9.7二维数组在函数调用中的应用145. 9.8应用举例146. 9.8应用举例147. 9.8应用举例148. 例年考题讲解149. 例年考题讲解150. 例年考题讲解(上机)151. 例年考题讲解(上机)152. 例年考题讲解(上机)153. 例年考题讲解(上机)154. 课后习题155. 课后习题156. 课后习题157. 第九章总体回顾158. 第九章总体回顾159. 10.1字符与一维数组160. 10.1字符串与一维数组161. 10.2指针指向一个字符串162. 10.3字符串的输入和输出163. 10.4字符串数组164. 10.5几个用于字符处理的函数与程序举例165. 例年考题讲解166. 例年考题讲解(上机)167. 课后习题168. 课后习题169. 课后习题170. 第十章总体回顾171. 11.1对函数的进一步讨论172. 课后习题的讲解173. 课后习题的讲解174. 12.1局部变量与全局变量175. 12.2静态变量176. 课后习题177. 课后习题178. 13.1宏179. 例年考题180. 14.1.结构的初步认识181. 14.2结构体的定义182. 14.2结构体的初始183. 14.2结构体成员的引用184. 14.3共用体与结构体的区分185. 例年考题讲解186. 15章位运算187. 16章文章188. 上机题思路分析189. 上机题思路分析190. 上机题思路分析第一章程序设计基本概念1.1程序和程序设计程序:连续执行的一条条指令的集合称为“程序”。
第一章部分 C 程序设计的初步知识一、C 语言的构成(1)源程序由函数构成,每个函数完成相对独立的功能。
(2)每个源程序中必须有且只能有一个主函数,可以放在任何位置,但程序总是从主函数开始执行。
(3)函数体:在函数后面用一对花括号括起来的部分。
(4)每个语句以分号结束,但预处理命令、函数头之后不能加分号。
(5)注释:括在“/* ”与“ */”之间,没有空格,允许出现在程序的任何位置。
(6)预处理命令:以“#”开头的语句。
二、C程序的生成过程(1)C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。
(2)源程序的扩展名为.c,目标程序的扩展名为.obj ,可执行程序的扩展名为.exe 。
试题程序#include <stdlib.h> #include <stdio.h>/* ***found*** */ int fun(int n);{/* ***found*** */ int i/* ***found*** */ sum=0;for(i=1;i<=n;i++) {sum=sum+i; }return sum; }一、标识符在C语言中,变量名、函数名、数组名等按照一定规则命名的符号称为标识符。
1. 标识符的命名规则2.标识符的分类C语言的标识符可以分为3类。
(1)关键字:C语言规定的专用的标识符,它们有着固定的含义,不能更改(见课本附录)。
例如int表示变量类型,不能另作它用。
(2)预定义标识符:和“关键字”一样也有特定的含义。
包括: 库函数的名字,如printf 预处理命令,如define这类标识符与关键字的区别是:C 语言语法允许用户更改预定义标识符的作用,但将失去系统规定的含义。
建议用户不要更改。
(3)用户标识符:由用户根据需要定义的标识符。
一般给变量、函数、数组和文件命名。
【例1】以下选项中不合法的标识符是( )。
A) &aB) FORC) printD) 00注意FOR (大小写不同,for 为关键字)二、常量定义:在程序运行中,其值不能被改变的量。
第二讲主要内容运算符表达式一.运算符1.算术运算符和算术表达式C语言的运算符具有不同的优先级,而且还有一个特点,就是它的结合性。
在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。
这种结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。
C运算符简介C语言的运算符可分为以下几类:1.算术运算符:用于各类数值运算。
包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符:用于比较运算。
包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符:用于逻辑运算。
包括与(&&)、或(||)、非(!)三种。
4.赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
5.逗号运算符:用于把若干表达式组合成一个表达式(,)。
6.指针运算符:用于取内容(*)和取地址(&)二种运算。
7.求字节数运算符:用于计算数据类型所占的字节数(sizeof)。
8.特殊运算符:有括号(),下标[],成员(→,.)等几种。
9.条件运算符:这是一个三目运算符,用于条件求值(?:)。
10.位操作运算符:参与运算的量,按二进制位进行运算。
包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
1.1算术运算符和算术表达式1.基本的算术运算符●加法运算符“+”:加法运算符为双目运算符,即应有两个量参与加法运算。
如a+b,4+8等。
具有左结合性。
●减法运算符“-”:减法运算符为双目运算符。
大一c语言课本电子版目录:第1篇基础知识第1章C语言概述视频讲解:29分钟1.1 C语言的发展史1.1.1 程序语言简述1.1.2 C语言的历史1.2 C语言的特点1.3 一个简单的C程序1.4 一个完整的C程序1.5 C语言程序的格式1.6 开发环境1.6.1 Turbo C2.01.6.2 Visual C 6.01.7 小结第2章算法视频讲解:22分钟2.1 算法的基本概念2.1.1 算法的特性2.1.2 算法的优劣2.2 算法的描述2.2.1 自然语言2.2.2 流程图2.2.3 N-S流程图2.3 小结第3章数据类型视频讲解:39分钟3.1 编程规范3.2 关键字3.3 标识符3.4 数据类型3.5 常量3.5.1 整型常量3.5.2 实型常量3.5.3 字符型常量3.5.4 转义字符3.5.5 符号常量3.6 变量3.6.1 整型变量3.6.2 实型变量3.6.3 字符型变量3.7 变量的存储类别3.7.1 静态存储与动态存储3.7.2 auto变量3.7.3 static变量3.7.4 register变量3.7.5 extern变量3.8 混合运算3.9 小结3.10 实践与练习第4章运算符与表达式视频讲解:29分钟4.1 表达式4.2 赋值运算符与赋值表达式4.2.1 变量赋初值4.2.2 自动类型转换4.2.3 强制类型转换4.3 算术运算符与算术表达式4.3.1 算术运算符4.3.2 算术表达式4.3.3 优先级与结合性4.3.4 自增/自减运算符4.4 关系运算符与关系表达式4.4.1 关系运算符4.4.2 关系表达式4.4.3 优先级与结合性4.5 逻辑运算符与逻辑表达式4.5.1 逻辑运算符4.5.2 逻辑表达式4.5.3 优先级与结合性4.6 位逻辑运算符与位逻辑表达式4.6.1 位逻辑运算符4.6.2 位逻辑表达式4.7 逗号运算符与逗号表达式4.8 复合赋值运算符4.9 小结4.10 实践与练习第5章常用的数据输入/输出函数视频讲解:40分钟5.1 语句5.2 字符数据输入/输出5.2.1 字符数据输出5.2.2 字符数据输入5.3 字符串输入/输出5.3.1 字符串输出函数5.3.2 字符串输入函数5.4 格式输出函数5.5 格式输入函数5.6 顺序程序设计应用5.7 小结5.8 实践与练习第6章选择结构程序设计视频讲解:44分钟6.1 if语句6.2 if语句的基本形式6.2.1 if语句形式6.2.2 if…else语句形式6.2.3 else if语句形式6.3 if的嵌套形式6.4 条件运算符6.5 switch语句6.5.1 switch语句的基本形式6.5.2 多路开关模式的switch语句6.6 if…else语句和switch语句的区别6.7 选择结构程序应用6.8 小结6.9 实践与练习第7章循环控制视频讲解:41分钟7.1 循环语句7.2 while语句7.3 do…while语句7.4 for语句7.4.1 for语句使用7.4.2 for循环的变体7.4.3 for语句中的逗号应用7.5 3种循环语句的比较7.6 循环嵌套7.6.1 循环嵌套的结构7.6.2 循环嵌套实例7.7 转移语句7.7.1 goto语句7.7.2 break语句7.7.3 continue语句7.8 小结7.9 实践与练习第2篇核心技术第8章数组视频讲解:1小时7分钟8.1 一维数组8.1.1 一维数组的定义和引用8.1.2 一维数组初始化8.1.3 一维数组应用8.2 二维数组8.2.1 二维数组的定义和引用8.2.2 二维数组初始化8.2.3 二维数组的应用8.3 字符数组8.3.1 字符数组的定义和引用8.3.2 字符数组初始化8.3.3 字符数组的结束标志8.3.4 字符数组的输入和输出8.3.5 字符数组的应用8.4 多维数组8.5 数组的排序算法8.5.1 选择法排序8.5.2 冒泡法排序8.5.3 交换法排序8.5.4 插入法排序8.5.5 折半法排序8.5.6 排序算法的比较8.6 字符串处理函数8.6.1 字符串复制8.6.2 字符串连接8.6.3 字符串比较8.6.4 字符串大小写转换8.6.5 获得字符串长度8.7 数组应用8.7.1 反转输出字符串8.7.2 输出系统日期和时间8.7.3 字符串的加密和解密8.8 小结8.9 实践与练习第9章函数视频讲解:55分钟9.1 函数概述9.2 函数的定义9.2.1 函数定义的形式9.2.2 定义与声明9.3 返回语句9.3.1 从函数返回9.3.2 返回值9.4 函数参数9.4.1 形式参数与实际参数9.4.2 数组作函数参数9.4.3 main函数的参数9.5 函数的调用9.5.1 函数的调用方式9.5.2 嵌套调用9.5.3 递归调用9.6 内部函数和外部函数9.6.1 内部函数9.6.2 外部函数9.7 局部变量和全局变量9.7.1 局部变量9.7.2 全局变量9.8 函数应用9.9 小结9.10 实践与练习第10章指针视频讲解:1小时2分钟10.1 指针相关概念10.1.1 地址与指针10.1.2 变量与指针10.1.3 指针变量10.1.4 指针自加自减运算10.2 数组与指针10.2.1 一维数组与指针10.2.2 二维数组与指针10.2.3 字符串与指针10.2.4 字符串数组10.3 指向指针的指针10.4 指针变量作函数参数10.5 返回指针值的函数10.6 指针数组作main函数的参数10.7 小结10.8 实践与练习第3篇高级应用第11章结构体和共用体视频讲解:40分钟11.1 结构体11.1.1 结构体类型的概念11.1.2 结构体变量的定义11.1.3 结构体变量的引用11.1.4 结构体类型的初始化11.2 结构体数组11.2.1 定义结构体数组11.2.2 初始化结构体数组11.3 结构体指针11.3.1 指向结构体变量的指针11.3.2 指向结构体数组的指针11.3.3 结构体作为函数参数11.4 包含结构的结构11.5 链表11.5.1 链表概述11.5.2 创建动态链表11.5.3 输出链表11.6 链表相关操作11.6.1 链表的插入操作11.6.2 链表的删除操作11.7 共用体11.7.1 共用体的概念11.7.2 共用体变量的引用11.7.3 共用体变量的初始化11.7.4 共用体类型的数据特点11.8 枚举类型11.9 小结11.10 实践与练习第12章位运算视频讲解:35分钟12.1 位与字节12.2 位运算操作符12.2.1 “与”运算符12.2.2 “或”运算符12.2.3 “取反”运算符12.2.4 “异或”运算符12.2.5 “左移”运算符12.2.6 “右移”运算符12.3 循环移位12.4 位段12.4.1 位段的概念与定义12.4.2 位段相关说明12.5 小结12.6 实践与练习第13章预处理视频讲解:39分钟13.1 宏定义13.1.1 不带参数的宏定义13.1.2 带参数的宏定义13.2 #include指令13.3 条件编译13.3.1 #if命令13.3.2 #ifdef及#ifndef命令13.3.3 #undef命令13.3.4 #line命令13.3.5 #pragma命令13.4 小结13.5 实践与练习第14章文件视频讲解:55分钟14.1 文件概述14.2 文件基本操作14.2.1 文件指针14.2.2 文件的打开14.2.3 文件的关闭14.3 文件的读写14.3.1 fputc函数14.3.2 fgetc函数14.3.3 fputs函数14.3.4 fgets函数14.3.5 fprintf函数14.3.6 fscanf函数14.3.7 fread和fwrite函数14.4 文件的定位14.4.1 fseek函数14.4.2 rewind函数14.4.3 ftell函数14.5 小结14.6 实践与练习第15章存储管理视频讲解:22分钟15.1 内存组织方式15.1.1 内存的组织方式15.1.2 堆与栈15.2 动态管理15.2.1 malloc函数15.2.2 calloc函数15.2.3 realloc函数15.2.4 free函数15.3 内存丢失15.4 小结15.5 实践与练习第16章网络套接字编程视频讲解:39分钟16.1 计算机网络基础16.1.1 IP地址16.1.2 OSI七层参考模型16.1.3 地址解析16.1.4 域名系统16.1.5 TCP/IP协议16.1.6 端口16.1.7 套接字的引入16.1.8 网络字节顺序16.2 套接字基础16.2.1 套接字概述16.2.2 TCP的套接字的socket编程16.2.3 UDP的套接字的socket编程16.3 套接字函数16.3.1 套接字函数介绍16.3.2 基于TCP的网络聊天程序16.4 小结16.5 实践与练习第4篇项目实战第17章学生成绩管理系统视频讲解:40分钟17.1 需求分析17.2 系统设计17.3 功能设计17.3.1 功能选择界面17.3.2 录入学生成绩信息17.3.3 查询学生成绩信息17.3.4 删除学生成绩信息17.3.5 修改学生成绩信息17.3.6 插入学生成绩信息17.3.7 统计学生人数17.4 小结附录ASCII表。