本书以程序设计为主线,以程序设计的需要带动语言知识的学习,系统介绍了C语言及其程序设计技术。全书共10章,包括C程序设计的初步知识、数据类型、数据运算、程序流程控制、数组和字符串、指针、函数、复合数据类型、文件和编译预处理及分割编译,并通过丰富的程序设计实例,详尽介绍了相应的算法知识。各章都编排了大量的练习题,以帮助读者在初步掌握语言的基础上,着重培养程序设计的能力。
第1章 C程序设计的初步知识
1.1 C程序的基本结构
1.2 C程序的书写风格
1.3 简单的C程序设计
1.3.1 赋值语句的简单使用
1.3.2 格式输入输出函数的简单使用
1.3.3 库函数和标题文件
1.3.4 简单程序设计举例
1.4 C 程序的开发过程
1.5 Turbo C2.0集成环境的使用
习题
第2章 基本数据类型
2.1 基本数据类型
2.2 常量及其类型
2.3 变量及其类型
2.4 符号常数
2.5 不同类型数据的输入输出
2.5.1 printf()函数
2.5.2 xanf()函数
2.5.3 单字符输入输出函数(getchar().putchar())
2.5.4 单字符输入函数(getche()和getch())
习题
第3章 数据运算
3.1 算术运算
3.2 赋值运算
3.3 逗号运算(顺序运算)
3.4 关系运算和逻辑运算
3.5 测试数据长度运算符sizeof
3.6 位操作
3.7 数学函数
习题
第4章 程序流程控制
4.1 结构化程序设计的概念
4.2 选择结构
4.2.1 用if-else语句构成二分支选择结构
4.2.2 用if-else语句构成多分支选择结构
4.2.3 用条件表达式实现的选择结构
4.2.4 用switch语句构成多分支选择结构
4.2.5 用switch和break联合构成多分支选择结构
4.3 循环结构
4.3.1 for循环
4.3.2 while循环
4.3.3 do-whle循环
4.3.4 循环的嵌套
4.4 转移控制语句
4.4.1 break语句
4.4.2 condnue语句在循环结构中的作用
4.4.3 Soto语句和标号
习题
第5章 数组和字符串
5.1 数组的定义和初始化
5.1.1 数组的定义
5.1.2 数组的初始化
5.1.3 通过初始化定义隐含尺寸数组
5.2 数组的基本操作
5.3 数值数组的应用
5.4 字符串处理函数和字符串的应用
习题
第6章 指针
6.1 地址.指针和指针变量的概念
6.2 指针的定义和用指针访问变量
6.3 指针的运算
6.4 用指针访问一维数组
6.5 用指针访问二维数组
6.6 用指针处理字符串
6.7 二级指针
6.8 用指针进行内存动态分配
习题
第7章 程序的模块结构和C函数
7.1 C程序的模块结构
7.2 C函数的定义和调用
7.3 调用函数和被调用函数之间的数据传递
7.3.1 虚实结合方式
7.3.2 函数返回值方式
7.3.3全局变量方式
7.4 存储类型对函数调用的影响
7.5 函数的递归调用
7.6 main()函数的参数和返回值
习题
第8章 复合数据类型
8.1 结构类型
8.1.1 结构类型的定义和存储模式
8.1.2 访问结构变量和结构数组的成员
8.1.3 结构变量.结构数组和结构指针的初始化和赋值
8.1.4 结构类型的数据在函数间的传递
8.1.5 用递归结构处理链表
8.2 联合类型
8.3 位段结构类型
8.4 枚举类型
8.5 类型定义(typedef)
习题
第9章 文件
9.1 文件概述
9.2 文件的打开与关闭
9.3 文件的读写操作
9.3.1 文本文件读写函数
9.3.2 二进制文件读写函数
9.4 文件检测函数
9.5 文件的顺序存取和随机存取
习题
第10章 编译预处理和分割编译
10.1 宏定义
10.2 文件包含
10.3 条件编译
10.4 分割编译
习题
附录
附录A C语言运算符集
附录B ASCII代码表
附录C Turbo C2.0常用库函数及其标题文件
附录D Turbo C2.0编译错误信息
附录E 习题参考答案
参考文献
C语言是计算机程序设计语言中的小字辈, 但其卓越的性能使它风靡世界, 成为最受欢迎的语言之一. 当今流行的面向对象的语言C++及Internet上的通用语言Java就来源于C语言.
在计算机日益普及. 计算机技术日新月异. 新软件大量涌现的今天, 程序设计仍然是当代大学生的基本功, 是计算机素质教育的重要环节. 尤其对那些希望用计算机解决本专业领域实际问题的有识之士, 更需要加强程序设计能力的培养和训练.
程序设计课程包含两个任务:一个是学会一种语言, 另一个是具有一定的设计程序能力. 相对来说, 学习语言比较容易, 因为它是一种工具, 是一种技能, 通过边学边用达到熟能生巧并不困难. 而程序设计能力的培养需要花费较大的力气, 因为它需要较强的逻辑思维能力, 要理解和掌握一批常用的算法, 这对初学者来说比较陌生和抽象. 算法的严密性需要周密思考, 稍有不慎就会出错, 如果对算法不能了如指掌, 查错也很困难, 算法的多样性和多变性则使人眼花缭乱, 如果对它望而生畏. 望而却步, 就不能达到锻炼自己. 提高自己的目的. 由于程序就是算法的一种描述形式, 因此要把学习的重点放在算法上. 从读懂已有的程序来理解算法, 从自行编制程序来掌握算法. 如果能掌握一批基本的程序设计模块, 那么, 你就具备了一定的程序设计能力.
本书以程序设计为主线, 以程序设计的需要带动语言知识的学习. 书中内容按两条线索安排:一条是数据类型, 从基本数据类型(第2章. 第3章. 第5章)到指针类型(第6章), 再到复合数据类型(第8章), 另一条是程序控制结构, 从最简单的顺序结构(第1章)到选择结构. 循环结构(第4章), 再到模块化结构(第7章), 而简单的常用算法则以例题的形式贯穿其中, 由易渐难, 逐步推进. 每章都明确指出本章的知识点. 重点和难点, 章末附有大量的练习题, 其中, 选择题和填空题主要用来帮助读者学习和掌握语言知识, 编程题则用来指导读者能自行编制程序, 达到掌握基本算法的目的.
参与本书编写工作的有:王瑞文(1~3章), 高福成(4~6章), 李军(7~8章), 尚丽娜(9~10章).
由于作者水平有限, 疏漏和错误之处难以避免, 恳请使用本书的老师和同学提出宝贵意见.