描述
开 本: 32开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302456636丛书名: 软件开发视频大讲堂
“软件开发视频大讲堂”系列作为清华社“视频大讲堂”大系的子系列之一,继承和创新了清华社“视频大讲堂”大系的编写模式、写作风格和优良品质。本书突出了以下内容:总长总时长16.7小时同步视频演示讲解,可反复观摩,让学习更为快捷、高效355个典型实例,通过实例学习更深入,更有趣,更有动力371道面试真题,了解工作实例及面试问题,更好适应企业需求616项能力测试题目,检测是否过关,了解学习之不足。
“软件开发视频大讲堂”系列作为清华社“视频大讲堂”大系的子系列之一,执着于专业,精细于品质。集基础知识、核心技能、高级应用、项目案例于一体好学、好用、高效
《C语言从入门到精通(实例版)(第2版)》不仅适合作为软件开发入门者的自学用书,也适合作为高等院校相关专业的教学参考书,还可供开发人员查阅、参考。
第1篇 基
础 知 识
第1章 初识C语言
视频讲解:35分钟
1.1
C语言简介
1.1.1
编程语言的发展
1.1.2
什么是C语言
1.1.3
C语言的特点
1.2 认识C程序
1.2.1
简单的C程序
1.2.2
C程序的开发环境
1.2.3
编程原则
1.2.4
编译出错提示
范例1 输出一个正方形
范例2 用TC 2.0打开文本文件
1.3 经典范例
1.3.1
经典范例1 十进制转换为十六进制
1.3.2
经典范例2 3个数由小到大排序
1.4 小结
1.5 实践与练习
第2章 C语言基础
视频讲解:117分钟
2.1 数据类型
2.2 常量
2.2.1
整型常量
2.2.2
实型常量
2.2.3
字符型常量
2.2.4
符号常量
范例1 计算学生平均身高
范例2 求圆的周长
2.3 变量
2.3.1
整型变量
2.3.2
实型变量
2.3.3
字符型变量
范例3 实型数据的存储
范例4 字符型数据进行算术运算
2.4 运算符与表达式
2.4.1
赋值运算符与表达式
2.4.2
算术运算符与表达式
2.4.3
关系运算符与表达式
2.4.4
逻辑运算符与表达式
2.4.5
逗号运算符与表达式
2.4.6
三目运算符与表达式
范例5 判断闰年
范例6 判断整数倍
2.5 经典范例
2.5.1
经典范例1 混合运算
2.5.2
经典范例2 检查字符类型
2.5.3
经典范例3 判断三角形的类型
2.6 小结
2.7 实践与练习
第3章 顺序与选择结构程序设计
视频讲解:129分钟
3.1
C语句及赋值语句
3.1.1
C语句的概述
3.1.2
赋值语句
范例1 判断回文数
范例2 阶梯问题
3.2 字符数据输入/输出
3.2.1
字符数据输出
3.2.2
字符数据输入
范例3 将输入的小写字母转换为大写字母
范例4 使用字符函数输入/输出字符
3.3 格式输入/输出函数
3.3.1
格式输出函数
3.3.2
格式输入函数
范例5 求一元二次方程的根
范例6 求直角三角形的斜边
3.4
if语句
3.4.1
if语句的基本形式
3.4.2
if语句的其他形式
3.4.3
if语句的嵌套形式
范例7 判断偶数
范例8 平方和值判断
3.5
switch语句
范例9 评定成绩等级
范例10 加油站加油
3.6 经典范例
3.6.1
经典范例1 计算运输公司的计费
3.6.2
经典范例2 一年的日期情况
3.6.3
经典范例3 模拟自动售货机
3.7 小结
3.8 实践与练习
第4章 循环控制
视频讲解:69分钟
4.1
while及do while语句
4.1.1
while语句
4.1.2
do while语句
范例1 从键盘中输入一个数n,求n!
范例2 买苹果问题
4.2
for语句
4.2.1
for循环的变体
4.2.2
循环嵌套
范例3 统计不及格人数
范例4 一元钱兑换方案
4.3 转移语句
4.3.1
goto语句
4.3.2
break语句
4.3.3
continue语句
范例5 求出给定数值内的所有正整数的和
范例6 偶数拆分
4.4 经典范例
4.4.1
经典范例1 灯塔数量
4.4.2
经典范例2 平方和运算
4.4.3
经典范例3 打印乘法口诀表
4.5 小结
4.6 实践与练习
第2篇 核
心 技 术
第5章 数组
视频讲解:67分钟
5.1 一维数组
5.1.1
一维数组的定义和引用
5.1.2
一维数组的初始化
范例1 判断一个数是否存储在数组中
范例2 选票统计
5.2 二维数组
5.2.1
二维数组的定义和引用
5.2.2
二维数组的初始化
范例3 求二维数组对角线之和
范例4 打印杨辉三角形
5.3 字符数组
5.3.1
字符数组的定义和引用
5.3.2
字符数组的初始化
5.3.3
字符数组的结束标志
5.3.4
字符数组的输入/输出
5.3.5
字符串处理函数
范例5 统计各种字符的个数
范例6 字符升序排列
5.4 多维数组
5.5 经典范例
5.5.1
经典范例1 模拟比赛打分
5.5.2
经典范例2 打印5阶幻方
5.5.3
经典范例3 找出排在后面的国家名
5.6 小结
5.7 实践与练习
第6章 函数
视频讲解:134分钟
6.1 函数的简介
6.1.1
概述
6.1.2
函数的定义与声明
范例1 计算任意两个整数的积
范例2 求公约数与小公倍数
6.2 返回语句
6.2.1
函数返回
6.2.2
返回值
范例3 求任意两个数的平均数
范例4 判断素数
6.3 函数参数
6.3.1
形式参数和实际参数
6.3.2
数组作函数参数
范例5 求字符串中字符个数
范例6 求学生的平均身高
6.4 函数的调用
6.4.1
函数的调用方式
6.4.2
嵌套调用
6.4.3
递归调用
范例7 分数计算器
范例8 递归解分鱼问题
6.5 局部变量和全局变量
6.5.1
局部变量
6.5.2
全局变量
6.6 变量的存储类别
6.6.1
静态存储与动态存储
6.6.2
auto变量
6.6.3
static变量
6.6.4
register变量
6.6.5
extern变量
6.7 内部函数和外部函数
6.7.1
内部函数
6.7.2
外部函数
范例9 值与小值对调
范例10 使用register定义局部变量
6.8 库函数
6.8.1
数学函数
6.8.2
字符和字符串函数
范例11 小数分离
范例12 求任意数n次幂
6.9 经典范例
6.9.1
经典范例1 某日是该年的第几天
6.9.2
经典范例2 递归解决年龄问题
6.9.3
经典范例3 一数三平方
6.10
小结
6.11
实践与练习
第7章 指针
视频讲解:84分钟
7.1 指针相关概念
7.1.1
地址与指针
7.1.2
指针变量
7.1.3
“&”和“*”运算符
7.1.4
指针的算术运算
范例1 转向的指针
范例2 数值的运算
7.2 一维数组与指针
7.2.1
指向数组元素的指针
7.2.2
使用指针访问数组
范例3 查找数列中的值
范例4 逆序存放数组元素
7.3 二维数组与指针
范例5 输出二维数组有关值
范例6 输出二维数组的任一行、任一列
7.4 字符串与指针
7.4.1
字符型指针
7.4.2
字符串数组
范例7 字符串的匹配
范例8 将若干字符串按照字母顺序输出
7.5 指针作函数参数
7.5.1
指针变量作函数的参数
7.5.2
数组指针作函数的参数
7.6 指向指针的指针
范例9 使用指针的指针输出字符串
范例10 输入月份号输出英文月份名
7.7 函数型指针
7.8
main函数的参数
范例11 用函数指针实现求两个数据的和与差
范例12 用指向函数的指针比较大小
7.9 经典范例
7.9.1
经典范例1 字符串插入
7.9.2
经典范例2 删除数组中的连续元素
7.9.3
经典范例3 输出销售额
7.10
小结
7.11
实践与练习
第8章 结构体与共用体
视频讲解:64分钟
8.1 结构体
8.1.1
结构体类型的概念
8.1.2
结构体变量的定义和引用
8.1.3
结构体变量的初始化
8.2 结构体数组
8.2.1
定义结构体数组
8.2.2
初始化结构体数组
范例1 比较计数
范例2 找出分
范例3 信息查询
8.3 结构体指针
8.3.1
结构体指针变量的声明
8.3.2
结构体指针的引用
8.3.3
结构体数组指针
8.3.4
结构体作函数的参数
范例4 统计分钟数
范例5 指向数组元素的结构体指针运算
8.4 包含结构的结构
8.5 链表
8.5.1
链表概述
8.5.2
单链表的建立
8.5.3
链表的输出
8.5.4
链表相关操作
范例6 合并两个链表
范例7 创建循环链表
范例8 创建双向链表
8.6 共用体
8.6.1
共用体的概念
8.6.2
共用体变量的定义和引用
8.6.3
共用体变量的初始化
范例9 取出整型数据的高字节数据
范例10 共用体处理任意类型数据
8.7 枚举类型
范例11 选择颜色
范例12 输出星期几
8.8 用typedef定义类型
8.9 经典范例
8.9.1
经典范例1 候选人选票程序
8.9.2
经典范例2 使用共用体存放学生和老师信息
8.9.3
经典范例3 约瑟夫环
8.10
小结
8.11
实践与练习
第9章 算法
视频讲解:70分钟
9.1 算法基础
9.1.1
算法的概念
9.1.2
流程图
9.1.3
三种基本结构
9.1.4
N-S流程图
范例1 判断偶数
范例2 求整数和
9.2 排序算法
9.2.1
选择排序
9.2.2
冒泡排序
9.2.3
插入排序
9.2.4
希尔排序
9.2.5
快速排序
9.3 查找算法
9.3.1
顺序查找
9.3.2
折半查找
9.3.3
分块查找
9.3.4
哈希查找
9.4 经典范例
9.4.1
经典范例1 百钱百鸡问题
9.4.2
经典范例2 斐波那契数列
9.4.3
经典范例3 尼科彻斯定理
9.5 小结
9.6 实践与练习
第3篇 高
级 应 用
第10章 位运算
视频讲解:46分钟
10.1
位运算操作符
10.1.1
“或”运算符
10.1.2
“与”运算符
10.1.3
“取反”运算符
10.1.4
“异或”运算符
10.1.5
“左移”运算符
10.1.6
“右移”运算符
范例1 取一个整数的后4位
范例2 取出给定16位二进制数的奇数位
10.2
循环移位
10.3
位段
10.3.1
位段的概念与定义
10.3.2
位段相关说明
范例3 输出各个位段的值
范例4 位段变量的内存分配
10.4
经典范例
10.4.1
经典范例1 求一个数的补码
10.4.2
经典范例2 使二进制数特定位翻转
10.4.3
经典范例3 RSA加密算法的实现
10.5
小结
10.6
实践与练习
第11章 预处理
视频讲解:42分钟
11.1
宏定义
11.1.1
不带参数的宏定义
11.1.2
带参数的宏定义
范例1 不带参数的宏定义的简单应用
范例2 利用宏定义求偶数和
11.2
“文件包含”处理
11.3
条件编译
11.3.1
#if相关命令
11.3.2
#ifdef及#ifndef命令
11.3.3
#undef命令
11.3.4
#line及#pragma命令
范例3 编写头文件包含圆面积的计算公式
范例4 使用条件编译将字符转换为大写
11.4
经典范例
11.4.1
经典范例1 找小数
11.4.2
经典范例2 利用文件包含设计输出模式
11.4.3
经典范例3 使用条件编译隐藏密码
11.5
小结
11.6
实践与练习
第12章 文件
视频讲解:83分钟
12.1
文件概述
12.2
文件基本操作
12.2.1
文件的打开
12.2.2
文件的关闭
范例1 关闭打开的所有文件
范例2 同时显示两个文件的内容
12.3
文件的读写
12.3.1
字符形式读写文件
12.3.2
字符串形式读写文件
12.3.3
成块读写文件
12.3.4
格式化读写函数
范例3 以行为单位读写文件
范例4 重命名文件
12.4
文件的定位
12.4.1
fseek函数
12.4.2
rewind函数
12.4.3
ftell函数
12.5
经典范例
12.5.1
经典范例1 合并两个文件信息
12.5.2
经典范例2 文件替换时的错误处理
12.5.3
经典范例3 文件分割
12.6
小结
12.7
实践与练习
第13章 图形图像
视频讲解:38分钟
13.1
字符屏幕
13.1.1
定义文本窗口
13.1.2
颜色设置
13.1.3
文本的输入和输出
13.1.4
屏幕操作函数
13.2
图形显示
13.2.1
图形模式初始化
13.2.2
屏幕颜色设置
13.2.3
基本图形函数
13.2.4
封闭图形的填充
范例1 颜色变换
范例2 彩色扇形
13.3
图形屏幕
13.4
图形模式下文本输出
13.4.1
文本输出函数
13.4.2
文本属性设置
范例3 跳动的小球
范例4 变化的同心圆
13.5
经典范例
13.5.1
经典范例1 绘制正弦曲线
13.5.2
经典范例2 绘制彩带
13.5.3
经典范例3 绘制五角星
13.6
小结
13.7
实践与练习
第4篇 项
目 实 战
第14章 商品信息管理系统
视频讲解:28分钟
14.1
需求分析
14.2
预处理技术
14.3
结构体的使用
14.4
函数声明技术
14.5
功能选择界面
14.6
录入商品信息
14.7
查询商品信息
14.8
删除商品信息
14.9
修改商品信息
14.10
插入商品信息
14.11
统计商品数
14.12
小结
指针是C语言的一个精髓所在,学习指针可以在C语言编程中起到事半功倍的效果。指针一方面可以提高程序的编译效率和执行速度,还可以通过指针实现动态的存储分配;另一方面使用指针可使程序更灵活,便于表示各种数据结构,编写高质量的程序。同时,其概念抽象,学习过程中要多看多练,使用时应多注意,否则操作不当会导致整个程序受到破坏。
通过阅读本章,您可以:
: 了解指针及地址的概念
: 掌握指针变量的定义和使用
: 掌握指针与数组的关系
: 掌握指针作函数参数
: 了解指向指针的指针
: 了解main函数参数的相关知识
7.1 指针相关概念
视频讲解:光盘TMlx7指针相关概念.exe
指针是C语言显著的优点之一,指针使用起来十分灵活而且能提高某些程序的效率,同时如果使用不当,会很容易造成系统错误。许多程序“挂死”的大部分原因都是错误地使用指针所造成的。下面通过实例让读者对指针相关的知识有一个理解和掌握。
7.1.1 地址与指针
系统的内存就像是带有编号的小房间,如果想使用内存就需要得到房间编号。如图7.1所示,定义一个整型变量i,整型变量需要4个字节,所以编译器为变量i分配编号从1000~1003。
什么是地址?地址就是内存区中对每个字节的编号,例如,图7.1中的1000、1001、1002、1003就是地址,为进一步说明可观察图7.2。
图7.1 变量在内存中的存储 图7.2 变量存放
图7.2中的1000、1004等就是内存单元的地址,而0、1是内存单元的内容,即基本整型变量i在内存中的地址是从1000开始,由于基本整型占4个字节,所以变量j在内存中的起始地址从1004开始,变量i的内容是0。
那么指针又是什么呢?这里仅将指针看作是内存中的一个地址,多数情况下,这个地址是内存中另一个变量的位置,如图7.3所示。
在图7.3中定义了一个变量,在进行编译时就会给这个变量在内存中分配一个地址,通过访问这个地址可以找到所需的变量,该变量的地址称为该变量的“指针”。图7.3中的地址1000是变量i的指针。
图7.3 内存中另一个变量的位置(指针)
7.1.2 指针变量
1.变量与指针
变量的地址是变量和指针两者之间连接的纽带,如果一个变量包含了另一个变量的地址,那么,个变量可以说是指向第二个变量。所谓“指向”就是通过地址来体现的,在程序中用“*”符号表示“指向”。因为指针变量是指向一个变量的地址,所以将一个变量的地址值赋给这个指针变量后,这个指针变量就“指向”了该变量。例如,将变量i的地址存放到指针变量p中,p就指向i,其关系如图7.4所示。
在程序代码中是通过变量名来对内存单元进行存取操作的,但是代码经过编辑后已经将变量名转换为该变量在内存的存放地址,对变量值的存取都是通过地址进行的。例如,对图7.2中变量i和变量j进行如下操作:
i j;
其含义根据变量名与地址的对应关系,找到变量i的地址1000,然后从1000开始读取4个字节数据放到CPU寄存器中,再找到变量j的地址1004,从1004开始读取4个字节的数据放到CPU另一个寄存器中,通过CPU计算出结果。
在低级语言的汇编语言中都是直接通过地址来访问内存单元,而在高级语言中是使用变量名访问内存单元,但C语言作为高级语言却提供了通过地址来访问内存单元的方法。
2.使用指针变量
由于通过地址能访问指定的内存存储单元,可以说是地址“指向”该内存单元。地址可以形象地称之为指针,意思是通过指针能找到内存单元。一个变量的地址称为该变量的指针。如果有一个变量专门用来存放另一个变量的地址,它就是指针变量。在C语言中有专门用来存放内存单元地址的变量类型,就是指针类型。下面针对如何定义一个指针变量、如何为一个指针变量赋值及如何引用指针变量这3方面内容具体讲述。
(1)指针变量的一般形式
如果有一个变量专门用来存放另一个变量的地址,则称它为“指针变量”。图7.4中的p就是一个指针变量。如果一个变量包含有指针(指针等同于一个变量的地址),则必须对它作说明。定义指针变量的一般形式为:
类型说明 * 变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明表示本指针变量所指向的变量的数据类型。
(2)指针变量的赋值
指针变量同普通变量一样,使用之前不仅要定义,而且必须赋予具体的值。未经赋值的指针变量不能使用。给指针变量所赋的值与给其他变量所赋的值不同,给指针变量的赋值只能赋予地址,而不能赋予任何其他数据,否则将引起错误。C语言中提供了地址运算符“&”来表示变量的地址。其一般形式如下:
评论
还没有评论。