内容简介
第1章 进入程序设计世界(教学视频:20分钟)
1.1计算机程序设计
1.1.1计算机语言
1.1.2机器语言
1.1.3汇编语言
1.1.4高级语言
1.2什么是C语言?
1.2.1 C语言的发展
1.2.2 C语言的特点
1.3环境搭建,初识Visual C++
1.3.1安装Visual C++
1.3.2认识Visual C++
1.4编制第一个C语言程序
1.4.1简单的Hello World程序
1.4.2程序开发步骤
1.4.3 C语言的代码
1.5本章小结
1.6本章习题
第2章 C语言数据类型、运算符和表达式(教学视频:62分钟)
2.1基本数据类型
2.1.1简单学习存储原理
2.1.2整数类型
2.1.3浮点数类型
2.1.4字符类型
2.1.5常用基本数据类型
2.2标识符与关键字
2.2.1标识符
2.2.2关键字
2.3常量与变量
2.3.1常量
2.3.2变量
2.3.3字符串常量
2.4运算符和表达式
2.4.1 C语言的运算符以及表达式
2.4.2算术运算符和算术表达式
2.4.3关系运算符和关系表达式
2.4.4逻辑运算符和逻辑表达式
2.4.5位运算符和位表达式
2.4.6自增、自减运算符和表达式
2.4.7赋值运算符和赋值表达式
2.4.8逗号运算符和逗号表达式
2.4.9 sizeof()运算符
2.4.10条件运算符和条件表达式
2.5数据类型之间的转换
2.5.1自动类型转换
2.5.2强制类型转换
2.6本章小结
2.7本章习题
第3章 输入与输出(教学视频:28分钟)
3.1输入输出——让人与机器交流的窗口
3.2格式化的输入输出
3.2.1格式化输出函数printf()
3.2.2格式化输入函数scanf()
3.3常用字符输入输出函数
3.3.1 putchar()函数
3.3.2 getchar()函数
3.4本章小结
3.5本章习题
第4章 程序控制结构(教学视频:60分钟)
4.1复合语句
4.2条件控制语句
4.2.1 if语句的简单形式
4.2.2 if-else条件判断形式
4.2.3 else-if多条件判断形式
4.2.4 switch多条件判断语句
4.2.5条件运算符
4.2.6条件控制语句的嵌套使用
4.3循环控制语句
4.3.1 while语句
4.3.2 do-while语句
4.3.3 for语句
4.3.4循环语句的嵌套使用
4.4其他控制语句
4.4.1 goto语句
4.4.2 break语句
4.4.3 continue语句
4.5控制语句的应用举例
4.5.1穷举——著名的爱因斯坦阶梯问题
4.5.2迭代
4.5.3死循环
4.6本章小结
4.7本章习题
第5章 数组(教学视频:60分钟)
5.1一维数组
5.1.1一维数组的定义
5.1.2数组的存储原理
5.2数组的赋值
5.2.1初始化赋值
5.2.2初始化部分元素
5.2.3不定长度数组赋值
5.2.4静态数组赋值
5.2.5遍历数组
5.3一维数组的应用
5.3.1冒泡排序
5.3.2简单选择排序
5.4多维数组
5.4.1多维数组的定义
5.4.2多维数组的存储原理
5.5多维数组的赋值
5.5.1顺序初始化
5.5.2部分数组元素初始化
5.6字符数组和字符串
5.6.1字符数组与字符串
5.6.2字符串的初始化
5.6.3字符串的输入输出
5.7常用的字符串函数
5.7.1字符串输入函数gets()
5.7.2字符串输出函数puts()
5.7.3字符串连接函数strcat()
5.7.4字符串拷贝函数strcpy()
5.7.5字符串比较函数strcmp()
5.7.6求字符串长度函数strlen()
5.8中文字符的处理
5.9本章小结
5.10本章习题
第6章 指针(教学视频:41分钟)
6.1神奇的指针
6.1.1指针的概念
6.1.2指针变量的定义
6.1.3指针的赋值和取值
6.1.4指向指针的指针
6.1.5指针的用处
6.2指针数组
6.2.1指向一维数组的指针
6.2.2指向多维数组的指针
6.2.3指针与字符串
6.3易混淆的指针概念
6.3.1指针常量
6.3.2常量指针
6.4本章小结
6.5本章习题
第7章 函数(教学视频:50分钟)
7.1函数的概念
7.1.1 C语言程序结构
7.1.2函数的分类
7.2函数
7.2.1函数的定义
7.2.2函数的参数
7.2.3函数的声明
7.2.4函数的返回
7.3函数的调用
7.3.1传值调用
7.3.2传址调用
7.3.3嵌套调用
7.3.4递归调用
7.4变量的存储属性
7.4.1存储位置、作用域和生存期
7.4.2存储类别
7.4.3动态变量
7.4.4静态变量
7.5指针与函数
7.5.1指针作为函数的参数
7.5.2实参和形参均为数组名
7.5.3实参和形参均为指针
7.5.4实参和形参混合使用数组名与指针
7.5.5指向函数的指针
7.5.6返回指针的函数
7.6其他函数
7.6.1 main()函数
7.6.2库函数
7.7本章小结
7.8本章习题
第8章 其他数据类型与预编译(教学视频:41分钟)
8.1结构体类型变量
8.1.1定义结构体类型
8.1.2定义结构体变量
8.1.3结构体变量的访问
8.1.4结构体变量的赋值
8.1.5结构体数组
8.1.6结构体指针
8.2共用体
8.2.1定义共用体
8.2.2使用共用体的注意事项
8.3枚举类型
8.3.1枚举类型的定义
8.3.2枚举类型变量的使用
8.4自定义数据类型
8.5 void类型
8.6预编译
8.6.1文件包含
8.6.2条件编译
8.7宏
8.7.1不带参数的宏
8.7.2带参数的宏
8.8本章小结
8.9本章习题
第9章 文件操作(教学视频:45分钟)
9.1文件的概念和分类
9.1.1文件分类
9.1.2文件标识
9.1.3流
9.2文件的读写过程
9.2.1文件的工作原理
9.2.2文件类型指针
9.2.3打开和关闭文件
9.3对文件的操作
9.3.1面向字符的I/O
9.3.2面向行的I/O
9.3.3格式化的I/O
9.3.4面向记录的I/O
9.4文件定位与随机读写
9.4.1文件读写位置的定位
9.4.2文件的随机读写
9.5文件出错检测
9.6本章小结
9.7本章习题
第10章 C语言高级应用(教学视频:41分钟)
10.1内存分配策略
10.2 C语言动态内存分配函数
10.2.1申请内存
10.2.2释放内存
10.3线性表
10.3.1线性表的定义
10.3.2线性表的表示
10.3.3线性表的接口
10.3.4新建线性表
10.3.5插入结点
10.3.6删除结点
10.3.7删除某个线性表
10.4栈和队列
10.4.1栈
10.4.2队列
10.5栈的应用实例
10.5.1进制转换
10.5.2括号匹配检测
10.6本章小结
10.7本章习题
第11章 Visual C++ 6.0测试与调试(教学视频:20分钟)
11.1 Visual C++ 6.0的调试技巧
11.1.1程序测试
11.1.2断点设置
11.1.3跟踪调试
11.1.4调试实践
11.2常见的程序错误
11.2.1编译时常见错误
11.2.2连接时常见错误
11.2.3运行时常见错误
11.3本章小结
11.4本章习题
第12章 编程风格(教学视频:24分钟)
12.1编写风格良好的代码
12.1.1为什么编写风格良好的代码?
12.1.2编写风格良好代码的原则
12.2命名规则
12.2.1标识符命名规则
12.2.2函数命名规则
12.2.3类型的命名
12.2.4宏与常量的命名
12.3注释规则
12.3.1注释的原则
12.3.2注释的写法
12.4表达式和语句
12.4.1表达式的书写
12.4.2代码的排版
12.4.3语句的书写
12.5本章小结
12.6本章习题
第13章 Linux基础知识(教学视频:16分钟)
13.1Linux操作系统
13.1.1操作系统与UNIX
13.1.2 Linux的发展历史
13.1.3开源的概念
13.1.4 Linux内核版本
13.1.5 Linux的特色
13.2 Linux的安装
13.2.1安装前准备
13.2.2虚拟机VMware安装与配置
13.2.3 Linux系统的安装
13.2.4 Ubuntu系统界面
13.3如何学习Linux
13.3.1文件系统
13.3.2常用Shell指令
13.3.3在线求助
13.3.4权限控制
13.4 Linux环境的C语言开发
13.4.1在终端中开发
13.4.2在IDE中开发
13.5本章小结
13.6本章习题
第14章 算法初步入门(教学视频:37分钟)
14.1算法的基本概念
14.1.1大数A+B问题
14.1.2算法的基本性质
14.1.3算法的基本要求
14.2算法的复杂度分析
14.2.1事后统计法
14.2.2事前估算法
14.3分治法
14.3.1分治法的设计步骤
14.3.2二分法查找
14.3.3快速排序
14.4贪心法
14.4.1贪心算法的基本要素
14.4.2背包问题
14.4.3活动表问题
14.5动态规划
14.5.1动态规划的原理
14.5.2 0-1背包问题
14.6回溯法
14.6.1回溯法的原理
14.6.2 N皇后问题
14.7常见数学问题的算法实现
14.7.1水仙花数
14.7.2回文数
14.7.3最大公约数
14.7.4素数
14.8本章小结
14.9本章习题
第15章 案例开发——学生成绩管理系统(教学视频:32分钟)
15.1需求分析
15.2总体设计
15.3详细设计
15.3.1文件结构
15.3.2主函数
15.3.3显示
15.3.4菜单
15.4数据处理
15.4.1学生信息的表示
15.4.2学生信息的输入
15.4.3学生信息的查询
15.4.4学生信息的删除
15.4.5学生信息的排序
15.4.6学生信息的修改
15.4.7学生信息的保存
15.4.8学生信息的显示
15.5维护与改进
15.5.1增加错误检测
15.5.2完善数据处理功能
15.5.3进一步分离数据处理和程序显示
15.6本章小结
15.7本章习题
附录A ASCII详解
附录B C语言标准库函数
B.1标准库函数及其头文件
B.2数学函数
B.2.1求正弦值的sin()函数
B.2.2求反正弦值的asin()函数
B.2.3求余弦值的cos()函数
B.2.4求反余弦值的acos()函数
B.2.5求正切值的tan()函数
B.2.6求反正切值的atan()函数
B.2.7求幂值的exp ()函数
B.2.8取2为底对数的log ()函数
B.2.9取10为底对数的log10 ()函数
B.2.10求绝对值的fabs ()函数
B.2.11求小数上限的floor()函数
B.2.12求小数下限的ceil ()函数
B.2.13取余操作的fmod()函数
B.2.14求任意幂次的PoW()函数
B.2.15求平方根的sqrt()函数
B.3字符测试类函数
B.3.1判断字符是否为控制字符的iscntrl()函数
B.3.2判断字符是否为字母或数字的isalnum()函数
B.3.3判断字符是否为字母的isalpha()函数
B.3.4判断字符是否为ASCII字符的isascii ()函数
B.3.5判断字符是否为数字的isdigit()函数
B.3.6判断字符是否为制表符或空格符的isgraph()函数
B.3.7判断字母是否小写的islower()函数
B.3.8判断字母是否大写的isupper()函数
B.3.9将字母转换为小写的tolower ()函数
B.3.10将字母转换为大写的toupper()函数
B.4字符串函数
B.4.1求字符串长度的strlen()函数
B.4.2字符串拷贝的strcpy()函数
B.4.3连接两个字符串的strcat()函数
B.4.4比较字符串大小的strcmp()函数
B.4.5在字符串中查找字符的strchr()函数
B.4.6比较字符串大小(不区分大小写)的stricmp ()函数
B.4.7字符串中查找字符的strcspn()函数
B.4.8字符串中查找字符的stmcat()函数
B.4.9比较字符串大小的strcmp()函数
B.4.10字符串中查找字符的strstr()函数
B.4.11分割字符串的strtok()函数
B.4.12内存移动的memmove()函数
B.4.13字符串赋值的memcpy()函数
B.4.14字符串连接的memcmp()函数
B.4.15 字符串查找的memchr()函数
B.4.16字符串重置的memset()函数
B.5实用函数
B.5.1将字符串转换为小数的atof()函数
B.5.2将字符串转换为整数的atoi()函数
B.5.3将字符串转换为整数的atol()函数
B.5.4将字符串的前缀转换为小数的strtod()函数
B.5.5将字符串前缀转换为整数的strtol()函数
B.5.6生成随机数的rand()函数
B.5.7设置随机数种子的srand()函数
B.5.8动态内存分配的malloc()函数
B.5.9重新分配内存的realloc()函数
B.5.10释放内存的free()函数
B.5.11终止程序执行的abort()函数
B.5.12程序退出时会执行atexit()函数
B.5.13可以调用系统命令的system()函数
B.6时间函数
B.6.1返回处理机时间的clock()函数
B.6.2返回日历时间的time()函数
B.6.3转换时间格式为字符串的asctime ()函数
B.6.4将日历时间转换为标准格式的gmtime()函数
B.6.5将日历时间转换为本地时间的localtime ()函数
B.6.6将日历时间转换为字符串的ctime()函数
B.6.7指定时间格式的strftime()函数