本书从程序设计的基本思想出发,以语法、程序设计和计算机思维的培养为重点,由浅入深、循序渐进地讲述C语言的基本概念和程序设计方法。本书列举大量的实例详细讲述解决问题的基本步骤,同时配有大量的习题,帮助读者进一步掌握相关的知识。
本书的主要内容包括程序设计的基础知识;数据类型及相关的类型转换规则,表达式的构造、计算规则,指针、结构体、文件的应用;程序的流程控制语句及结构化的程序设计方法,归纳了选择、循环程序设计的思路:函数的设计方法、参数的传递:中断的基本概念及使用方法;图形的基本概念及应用等。
本书通俗易懂、图文并茂,可作为高等学校的教材,也可供自学者参考阅读。
第1章 计算机基础知识
1. 1 计算机硬件系统的构成及工作原理
1. 1. 1 计算机硬件系统的构成
1. 1. 2 计算机工作原理
1. 2 计算机软件系统的组成
1. 3 数进制及数据的存储
1. 3. 1 数进制
1. 3. 2 计算机中数据的表示
1. 3. 3 进制转换
1. 3. 4 数据在内存中的存储
1. 4 机器语言和高级语言
习题
第2章 程序设计基础知识
2. 1 利用计算机解决实际问题的基本步骤
2. 2 算法的概念
2. 2. 1 算法的特性
2. 2. 2 算法的基本结构
2. 2. 3 算法的表示
2. 3 结构化程序设计
习题
第3章 C语言概述
3. 1 C语言发展过程及特点
3. 2 C语言的基本词汇
3. 3 C程序结构
3. 4 C语言程序上机调试过程
习题
第4章 数据类型及表达式
4. 1 数据结构
4. 2 C语言程序中数据的表示方法
4. 2. 1 常量
4. 2. 2 变量
4. 3 运算符及其表达式
4. 3. 1 C运算符概述
4. 3. 2 算术运算符及算术表达式
4. 3. 3 自增自减运算符及含自增自减表达式
4. 3. 4 赋值运算符和赋值表达式
4. 3. 5 逗号运算符和逗号表达式
4. 3. 6 表达式小结
4. 4 C语言中的类型转换
4. 4. 1 类型的自动转换
4. 4. 2 强制的类型转换
习题
第5章 顺序结构程序设计
5. 1 语句
5. 1. 1 语句的概念
5. 1. 2 C语句的分类
5. 1. 3 语句和表达式的区别
5. 2 库函数的使用
5. 2. 1 库函数的使用
5. 2. 2 常用的输出函数
5. 2. 3 常用的输入函数
5. 2. 4 数学函数
5. 3 顺序结构程序设计
习题
第6章 选择结构程序设计
6. 1 逻辑量的表示方法
6. 1. 1 关系表达式
6. 1. 2 逻辑运算和逻辑表达式
6. 1. 3 实际问题中逻辑量的描述
6. 2 if语句
6. 2. 1 if语句的格式
6. 2. 2 if语句的嵌套及多条件结构的实现
6. 2. 3 条件表达式
6. 3 switch语句
6. 4 选择结构程序设计举例
习题
第7章 循环结构程序设计
7. 1 循环的概念
7. 2 实现循环的语句
7. 2. 1 while语句
7. 2. 2 do-while语句
7. 2. 3 for语句
7. 2. 4 if和goto构成的循环
7. 3 break和continue语句
7. 3. 1 break语句
7. 3. 2 continue语句
7. 4 循环的嵌套
7. 5 循环结构程序设计举例
习题
第8章 函数
8. 1 概述
8. 1. 1 模块化程序设计思想
8. 1. 2 C语言程序结构
8. 1. 3 使用函数的必要性
8. 1. 4 函数的分类
8. 2 函数的定义
8. 2. 1 函数的定义形式
8. 2. 2 函数的返回值
8. 2. 3 形参和返回值的设定
8. 3 函数的调用
8. 3. 1 对被调用函数的声明
8. 3. 2 函数调用的一般形式
8. 3. 3 函数调用的具体形式
8. 4 函数的嵌套及递归调用
8. 4. 1 函数的嵌套调用
8. 4. 2 函数的递归调用
8. 5 局部变量和全局变量
8. 5. 1 局部变量
8. 5. 2 全局变量
8. 6 变量的存储类别
8. 6. 1 自动存储类型
8. 6. 2 寄存器存储类型
8. 6. 3 外部存储类型
8. 6. 4 静态存储类型
8. 7 函数举例
习题
第9章 数组
9. 1 数组的概念
9. 2 一维数组
9. 2. 1 一维数组的定义
9. 2. 2 一维数组元素的初始化
9. 2. 3 一维数组元素的引用
9. 2. 4 一维数组举例
9. 3 多维数组的定义和使用
9. 3. 1 多维数组的定义
9. 3. 2 二维数组元素的初始化
9. 3. 3 多维数组元素的使用
9. 3. 4 二维数组举例
9. 4 字符数组及字符串
9. 4. 1 字符数组的定义. 引用及初始化
9. 4. 2 字符串及字符串处理函数
9. 4. 3 字符数组举例
9. 5 数组作函数参数
9. 5. 1 数组元素作函数的参数
9. 5. 2 数组名作函数的参数
9. 5. 3 多维数组名作函数参数
习题
第10章 指针
10. 1 指针的基本概念
10. 1. 1 变量的直接访问和间接访问
10. 1. 2 指针与指针变量
10. 2 指针变量
10. 2. 1 指针变量的类型和指针变量指向变量的关系
10. 2. 2 指针变量的引用
10. 2. 3 指针的运算
10. 2. 4 指针变量作为函数参数
10. 3 数组的指针
10. 3. 1 一维数组的指针
10. 3. 2 数组名作为函数参数和指针变量作为函数参数的一致性
10. 3. 3 多维数组的指针
10. 3. 4 字符串的指针
10. 4 函数的指针和返回指针值的函数
10. 4. 1 函数的指针
10. 4. 2 指向函数的指针变量
10. 4. 3 指向函数的指针变量作函数参数
10. 4. 4 返回指针值的函数
10. 5 指针数组与指向指针的指针
10. 5. 1 指针数组
10. 5. 2 指向指针的指针
10. 5. 3 命令行参数
习题
第11章 结构体. 联合体与枚举类型
11. 1 结构体的概念
11. 1. 1 结构体类型的定义
11. 1. 2 结构体变量的定义. 引用. 初始化
11. 1. 3 结构体的嵌套
11. 2 结构体数组
11. 2. 1 结构体数组的定义
11. 2. 2 结构体数组的引用
11. 2. 3 结构体数组的初始化
11. 3 结构体指针
11. 3. 1 指向结构体变量的指针
11. 3. 2 指向结构体数组的指针
11. 3. 3 结构体指针作函数参数
11. 4 链表
11. 4. 1 链表的概念
11. 4. 2 内存的动态存储. 分配与释放函数
11. 4. 3 链表的操作
11. 5 联合体数据类型
11. 5. 1 联合体的定义
11. 5. 2 联合体变量的引用
11. 6 枚单数据类型
11. 6. 1 枚举类型的定义
11. 6. 2 枚举变量的定义和引用
11. 7 自定义类型
习题
第12章 文件
12. 1 文件概述
12. 1. 1 文件的概念
12. 1. 2 缓冲文件系统
12. 2 文件的使用
12. 2. 1 文件类型指针
12. 2. 2 文件的打开
12. 2. 3 文件的关闭
12. 2. 4 文件的读写
12. 2. 5 文件的定位
12. 2. 6 文件的检测
12. 3 文件程序设计举例
习题
第13章 中断和位运算
13. 1 中断
13. 1. 1 中断的概念
13. 1. 2 BIOS中断
13. 1. 3 DOS中断
13. 2 位运算
13. 2. 1 位运算符
13. 2. 2 位运算举例
13. 3 位段
13. 3. 1 位字段结构体的定义
13. 3. 2 位字段结构体变量成员的引用
习题
第14章 C语言图形设计
14. 1 显示器的显示属性
14. 1. 1 图形的初始化及关闭
14. 1. 2 图形状态下的色彩选择及设置
14. 2 常用的图形处理函数
习题
第15章 编译预处理
15. 1 概述
15. 2 宏定义
15. 2. 1 不带参数的宏定义
15. 2. 2 带参数的宏定义
15. 3 文件包含
15. 4 条件编译
习题
附录A 常用字符ASCII码表
附录B C的运算符. 优先级和结合性
附录C TurboC常用库函数
参考文献
随着计算机在各个领域应用的日益普及, 必然要求各个专业的学生都应具备-定的计算机基础知识. 熟练的操作技能和较强的程序设计能力, 因此大学生必须掌握-种或几种程序设计语言以适应各专业的需求. 高级语言程序设计是一门重要的必修课. 各高等学校对非计算机专业的本科生均开设了"C语言程序基础"课程. 在教学过程中, 我们针对非讨算机专业学生的特点, 对程序设计基础的教学模式进行探讨:语法. 解决问题的思维及编写请试程序的能力在程序设计基础中是同等重要的概念, 不能只注重语法, 也不能只注重程序的编写;学生在编写程序时往往脱离不了数学模式的约束, 常常用习惯的逻辑思维代替计算机解决问题的方式, 这就要求在教学过程中强调语法的重要性, 强调观念的转变, 辨析数学模式和计算机模式的相同与不同, 学生在编写选择结构及循环结构程序时, 感觉无从下手, 这就要求在教学过程中培养学生解决问题的能力, 给出共性的思维模式, 引导学生建立计算机思维, 编写程序和调试程序能力的培养是学生程序设计能力的综合体现, 教学中应调动学生的积极性, 强调理论是基础, 实践是关键, 培养学生的程序设计能力.
C语言是一种高效的程序设计语言, 广泛应用于多种应用软件的开发, 是计算机软件开发的技术基础, 也是面向对象程序设计的不可缺少的组成部分. 为了让读者较好地掌握C语言, 掌握程序设计的能力, 本书从语法. 程序设计角度出发, 以应用为主线, 较为详细地介绍C语言的语法规则. 语句执行的流程及编写程序的方法, 还简要讲述计算机领域中重要的中断和位的概念. 简单的图形设计方法.
本教材的编写充分体现了如下特点.
(1)通俗易懂. 本书的使用对象是非计算机专业的学生, 因此避免枯燥的概念及理论的讲解, 尽量做到以解释去讲述, 使学生易于学习和掌握.
(2)流程控制和程序设计并进. 本书在讲述算法流程时, 配有大量的例题, 详细阐述解决问题的方法. 步骤及利用算法实现语句编写程序的方法. 程序和算法的关系.
(3)由浅入深, 循序渐进. 本书内容的安排充分考虑初学和非计算机专业的特点, 按照基本概念. 结构化. 模块化. 应用的顺序由浅入深地编排, 使学生学习本书时不会感到有太多困难.
(4)图文并茂. 为了帮助读者更好地掌握算法和程序的关系, 在书中有大量的实例程序, 部分程序配有对应的N-S结构化流程图, 便于初学者养成良好的编写程序的习惯.
本书可作为各高等学校程序设计基础课的教材, 也可以供自学者参考阅读. 本书由赵山林. 高媛. 杨喜旺和刘变莲编写, 同时感谢韩燮老师的指导, 感谢刘红敏老师提出的宝贵意见.
由于编者水平有限, 编写时间仓促, 书中难免存在缺点和错误, 恳请读者批评指正!
编 者
2004年8月