本书系统地介绍了基础Visual C++的C语言开发环境、数据类型与表达式、基本输入/输出语句、流程控制、模块化程序设计方法和文件系统的基本操作。
适读人群 :非计算机类本科
1.知识点精炼,适合短学时教学
2.通过精彩案例融合知识点
3.以提高读者分析问题和独立思考问题的能力为目标
C语言是目前国际上广泛流行的一种结构化的程序设计语言,它同时具有高级语言和低级语言的功能,提供类型丰富、使用灵活的基本运算和数据类型,具有较高的可移植性。C语言不仅适合于开发系统软件,而且是开发应用软件和进行大规模科学计算的常用程序设计语言。
本书由浅入深、循序渐进地介绍了C语言程序设计的思路和方法。全书共10章,系统地介绍了基于VisualC++的C语言开发环境、数据类型与表达式、基本输入/输出语句、流程控制、模块化程序设计方法和文件系统的基本操作。
本书主要特点如下。
1知识点精炼,适合短学时教学现在,很多高校都在对课程进行学时压缩,而C语言程序设计课程的知识点又很繁多,为了让读者在短时间内可以掌握C语言程序设计的精髓,作者对各个章节中的知识点进行了提炼,对一些不常用甚至几乎从来不用的知识点进行了删减。因此,本教材能够满足短学时教学的需要。
2案例新颖,趣味性强教材中的每个案例都由作者精心设计,趣味性较强,通过这些案例,不仅可以提高读者的学习兴趣,而且可以使读者对所学知识点举一反三,从而使读者更深刻地理解所学习的知识点。
3通过精彩案例融合知识点很多C语言教材都是以介绍C语言的单个知识点为主,这样就会造成读者无法将C语言的知识点融为一个整体。为了解决这个问题,本书不仅为各个知识点都设计了案例,而且每一章还有精彩案例分析。这些精彩案例将本章的知识点以及前面各章的知识点综合起来,使读者能够直观地将这些知识点融为一体。
4以提高读者分析问题和独立思考问题的能力为目标读者在学习的过程中,经常会遇到这样的问题:教材的例子能看懂,教师讲的内容也能听明白,就是遇到问题时无从下手。为了解决这个问题,本书先对案例进行分析,以提高读者分析问题的能力;然后写代码,并在代码中给出大量的注释;最后,在案例的后面会提出一些思考题,以提高读者独立思考问题的能力。
5内容安排循序渐进、由易到难本书内容安排循序渐进、由易到难,共10章。第1章介绍了C语言的基本知识和开发环境的使用;第2章介绍了C语言基本数据类型与表达式;第3章介绍了C语言的输入/输出语句;第4、5章介绍了C语言的控制结构;第6章介绍了函数和模块化程序设计的思想;第7、8章介绍了数组和指针的应用;第9章介绍了结构体和共用体类型;第10章介绍了C语言文件操作。
本书由李俊主编并进行总体设计。刘玉玲编写第1章和第2章;武戎编写第3章;郭字周编写第4章和第5章;尹胜彬编写第6章;张小莉编写第7章;李俊编写第8~10章。
由于作者的水平有限,书中疏漏之处在所难免,敬请读者批评指正。
出版说明
前言
第1章 C语言程序设计概述
1.1 C语言的发展及特点
1.1.1 C语言的发展
1.1.2 C语言的特点
1.2 C语言程序的基本结构
1.3 C语言字符集、标识符与关键字
1.3.1 C语言字符集
1.3.2 C语言标识符与关键字
1.4 C语言程序的开发环境
1.4.1 C语言开发过程
1.4.2 Microsoft Visual C++ 6.0集成开发环境
本章小结
习题
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型
2.1.1 数据类型概述
2.1.2 整数类型
2.1.3 实数类型
2.1.4 字符类型
2.2 常量与变量
2.2.1 常量
2.2.2 变量
2.3 运算符和表达式
2.3.1 算术运算符和算术表达式
2.3.2 赋值运算符和赋值表达式
2.3.3 关系运算符和关系表达式
2.3.4 逻辑运算符与逻辑表达式
2.3.5 条件运算符、逗号运算符和求字节运算符
2.4 运算符的优先级
2.5 数据类型转换
2.5.1 自动类型转换
2.5.2 强制类型转换
本章小结
习题
第3章 顺序结构
3.1 算法
3.1.1 算法的概念
3.1.2 算法的组成要素
3.1.3 算法的描述
3.2 C语言基本语句
3.3 数据的输入/输出
3.3.1 字符数据的输入/输出
3.3.2 格式化输出函数printf
3.3.3 格式化输入函数scanf
3.4 精彩案例
3.4.1 温度转换
3.4.2 进制转换
3.4.3 大小写字符转换
3.4.4 计算圆的周长和面积
本章小结
习题
第4章 选择结构
4.1 if语句
4.1.1 单分支if语句
4.1.2 双分支if语句
4.1.3 多分支if语句
4.1.4 if语句的嵌套
4.2 条件运算符
4.3 switch语句
4.4 精彩案例
4.4.1 计算个人所得税
4.4.2 体质指数(BMI)计算
4.4.3 判断闰年
4.4.4 模拟计算器
本章小结
习题
第5章 循环结构
5.1 循环结构算法
5.2 while语句
5.3 do-while语句
5.4 for语句
5.5 break语句和continue语句
5.5.1 break语句
5.5.2 continue语句
5.6 循环结构的嵌套
5.7 精彩案例
5.7.1 猴子吃桃
5.7.2 整数质因子分解
5.7.3 电文加密
5.7.4 打印菱形
本章小结
习题
第6章 函数与宏替换
6.1 模块化设计
6.2 函数的定义与调用
6.2.1 函数的定义
6.2.2 函数的调用
6.2.3 参数的传递
6.3 函数的递归调用
6.4 变量的作用域和存储类型
6.4.1 变量的作用域
6.4.2 变量的存储类型
6.5 宏替换和文件包含
6.5.1 宏替换
6.5.2 文件包含
6.6 精彩案例
6.6.1 判断回文数
6.6.2 判断完数
6.6.3 斐波那契数列
本章小结
习题
第7章 数组
7.1 概述
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.4.5 字符数组应用
7.5 数组作为函数参数
7.6 精彩案例
7.6.1 身份证号的奥秘
7.6.2 字符串连接
7.6.3 删除字符
7.6.4 统计单词个数
本章小结
习题
第8章 指针
8.1 指针与指针变量
8.1.1 指针的概念
8.1.2 指针变量的定义与初始化
8.1.3 指针运算
8.2 指针与数组
8.2.1 一维数组的指针表示法
8.2.2 二维数组的指针表示法
8.3 指针与字符串
8.3.1 字符串的指针表示方法
8.3.2 字符串数组与指针数组
8.4 指针与函数
8.4.1 指针作为函数的形参
8.4.2 指针型函数
8.5 指向指针的指针变量
8.6 精彩案例
8.6.1 数字查找
8.6.2 字符串截取
8.6.3 字符串查找
本章小结
习题
第9章 结构体与共用体
9.1 结构体类型的定义
9.2 结构体变量
9.2.1 结构体变量的定义
9.2.2 结构体变量的使用
9.2.3 结构体变量的初始化
9.3 结构体数组
9.3.1 结构体数组的定义
9.3.2 结构体数组的初始化
9.3.3 结构体数组的使用
9.4 结构体类型指针
9.4.1 指向结构体变量的指针
9.4.2 指向结构体数组的指针
9.5 结构体与函数
9.5.1 结构体变量作为函数参数
9.5.2 结构体指针变量作为函数参数
9.5.3 函数的返回值为结构体类型
9.6 链表
9.6.1 链表概述
9.6.2 内存动态管理函数
9.6.3 链表的基本操作
9.7 共用体类型
9.7.1 共用体类型与共用体变量
9.7.2 共用体变量的使用
9.8 精彩案例
9.8.1 链表存储职工信息
9.8.2 链表翻转
本章小结
习题
第10章 文件
10.1 文件概述
10.2 文件的打开与关闭
10.2.1 文件指针
10.2.2 文件的打开
10.2.3 文件的关闭
10.3 文件读写函数
10.3.1 读写文件字符函数
10.3.2 读写文件字符串函数
10.3.3 格式化读写
10.3.4 块读写
10.4 文件定位与随机读写
10.5 文件检测函数
10.6 精彩案例
10.6.1 文件加密
10.6.2 成绩信息管理
本章小结
习题
附录
附录A ASCII码表
附录B C语言运算符优先级和结合方向
附录C C语言常见的出错信息
附录D C语言常用算法
附录E C语言常用库函数