《C语言程序设计》主要讲述C语言的基本知识 和程序设计的初步方法。全书共11 章,其中第1章至第6章主要介绍C语言程序设计的基本概念、基本结构及 函数等;第7章至第11章主要介绍数组、指针、结构体与共用体等复杂数据 结构。为便于读者掌握书中的知识和操作,本书配有《C语言程序设计辅导 及实验指导书》,其中包含大量的操作实例和习题。
《C语言程序设计》结构合理,详略得当,语言精练,通俗易懂,可作 为高等院校各专业 C语言程序设计课程教材,也可供相关领域的工程技术人员参考。
前言
第1章 C语言概述
1.1 C语言简介
1.1.1 程序和程序设计语言
1.1.2 C语言的发展历史
1.1.3 C语言的特点
1.2 简单的C程序介绍
1.3 运行C程序的步骤
本章小结
第2章 基本数据类型及运算
2.1 数据类型
2.2 常量与变量
2.2.1 标识符
2.2.2 常量
2.2.3 变量 前言
第1章 C语言概述
1.1 C语言简介
1.1.1 程序和程序设计语言
1.1.2 C语言的发展历史
1.1.3 C语言的特点
1.2 简单的C程序介绍
1.3 运行C程序的步骤
本章小结
第2章 基本数据类型及运算
2.1 数据类型
2.2 常量与变量
2.2.1 标识符
2.2.2 常量
2.2.3 变量
2.3 格式化输人与输出函数
2.3.1 格式输出函数printf()
2.3.2 格式输入函数scanf()
2.4 整型数据
2.4.1 整型变量
2.4.2 整型常量
2.5 实型数据
2.5.1 实型常量
2.5.2 实型变量
2.6 字符型数据
2.6.1 字符常量
2.6.2 字符变量
2.7 变量赋初值
2.8 各类数值型数据间的混合运算
2.8.1 隐式类型转换
2.8.2 强制类型转换
2.9 算术运算符和算术表达式
2.9.1 C语言运算符简介
2.9.2 算术运算符和算术表达式
2.10 赋值运算符和赋值表达式
2.10.1 赋值运算符
2.10.2 赋值表达式
2.11 逗号运算符和逗号表达式
本章小结
第3章 顺序结构程序设计
3.1 结构化程序设计方法
3.1.1 结构化程序设计方法的产生
3.1.2 三种基本控制结构
3.2 C语句概述
3.2.1 表达式语句
3.2.2 控制语句
3.2.3 函数调用语句
3.2.4 空语句
3.2.5 复合语句
3.3 字符数据的输入与输出
3.3.1 字符格式控制符
3.3.2 字符输入输出函数
3.3.3 程序举例
本章小结
第4章 选择结构程序设计
4.1 关系运算符和关系表达式
4.2 逻辑运算符和逻辑表达式
4.3 if语句
4.3.1 if语句的基本形式
4.3.2 if语句的嵌套形式
4.3.3 条件运算符
4.4 switch语句
本章小结
第5章 循环结构程序设计
5.1 概述
5.2 while语句
5.3 do-while语句
5.4 for语句
5.5 循环的嵌套
5.6 13reak语句和continue语句
5.6.1 break语句
5.6.2 continue语句
本章小结
第6章 函数
6.1 概述
6.1.1 模块化程序设计思想
6.1.2 函数的基本概念
6.1.3 库函数与用户自定义函数
6.2 函数定义的一般形式
6.2.1 函数的定义
6.2.2 自定义函数在程序代码中的位置
6.3 函数的参数和函数的返回值
6.3.1 函数的参数
6.3.2 函数的返回值
6.4 函数的调用
6.4.1 语句调用
6.4.2 表达式调用
6.4.3 嵌套调用
6.5 局部变量和全局变量
6.5.1 局部变量
6.5.2 全局变量
6.6 函数的高级应用
6.6.1 函数的递归调用
6.6.2 变量的存储类别
6.6.3 内部函数和外部函数
本章小结
第7章 数组
7.1 一维数组的定义和引用
7.1.1 一维数组的定义
7.1.2 一维数组元素的引用
7.1.3 一维数组元素的初始化
7.1.4 一维数组程序举例
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.3.5 字符数组应用举例
7.4 数组作为函数参数
7.4.1 数组元素作函数实际参数
7.4.2 数组名作函数参数
7.5 数组综合实例
本章小结
第8章 编译预处理
8.1 宏定义
8.1.1 不带参数的宏
8.1.2 带参数的宏
8.2 文件包含
8.2.1 库函数与头文件包含
8.2.2 文件包含处理
8.3 条件编译
本章小结
第9章 指针
9.1 内存地址与指针
9.1.1 内存地址和内存分配
9.1.2 指针和指针变量
9.2 指向变量的指针变量
9.2.1 指向变量的指针变量的定义
9.2.2 指向变量的指针变量的赋值和初始化
9.2.3 指向变量的指针变量的引用
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.4.4 字符串的数组实现和指针实现的联系
9.5 函数与指针
9.5.1 指针作为函数的参数
9.5.2 返回值为指针的函数
9.5.3 函数的指针与通过指针调用函数
本章小结
第10章 结构体和共用体
10.1 概述
10.2 定义结构体类型变量的方法
10.2.1 结构体类型声明
10.2.2 结构体类型变量的定义
10.3 结构体变量的引用
10.4 结构体变量的初始化
10.5 结构体数组
10.5.1 结构体数组的定义
10.5.2 结构体数组的初始化
10.6 共用体
10.6.1 共用体类型声明
10.6.2 共用体变量的定义及引用
10.7 枚举类型
10.7.1 枚举类型声明
10.7.2 枚举变量的定义及其赋值
10.8 用typedef定义类型
本章小结
第11章 文件
11.1 文件概述
11.1.1 文件的基本概念
11.1.2 文本文件和二进制文件
11.1.3 缓冲文件系统
11.2 文件类型指针
11.3 文件的打开和关闭
11.3.1 文件的打开
11.3.2 文件的关闭
11.4 文件的读写
11.4.1 以字符方式读写文件
11.4.2 以字符串方式读写文件
11.4.3 格式化方式读写文件
11.4.4 数据块方式读写文件
11.4.5 文件结束判断
11.5 文件的定位函数
11.5.1 指向文件的首地址
11.5.2 改变文件指针位置
11.5.3 获取当前文件指针位置
11.6 出错检测
11.6.1 ferror()函数
11.6.2 clearerr()函数
本章小结
参考文献
第1章 C语言概述
1.1 C语言简介
1.1.1 程序和程序设计语言
在人类发展的历史中,人们为了传达信息、表达思想、交流情感,逐渐发明了各种语言,如汉语、英语等。人类进行交流所用的语言称为自然语言。自从世界上第一台电子计算机ENIAC诞生以来,计算机的发展已历经半个多世纪。在这一过程中,为了能够更好、更有效地与计算机进行通信,指挥其为人类工作,人们发明、设计出许多专门与计算机进行交流的语言,这些语言称为程序设计语言。程序设计语言相对自然语言来说,使用的词汇不多、语法简单、语义清晰,便于人们使用其去控制计算机。
计算机是能够自动进行数据处理的电子设备。那么,计算机为什么能够自动、有条不紊地工作呢?原因就在于计算机是在程序的控制下进行工作的。什么是程序呢?程序实际上就是用户用于指挥计算机进行各种动作,使计算机完成指定任务的指令序列。编写程序的过程称为程序设计。程序设计过程中所使用的语言就是程序设计语言。
计算机的一切工作都是通过执行程序完成的,而计算机可以直接识别并执行的程序是用二进制串表示的机器语言程序。对于人类来说,直接用机器语言书写程序是一件十分痛苦的工作。为此,人们发明了汇编语言,采用便于记忆的符号代替二进制串,但实际上汇编语言仅是机器语言的一种助记符,没有本质的区别,使用仍然不便。在这种情况下,各种高级程序设计语言便随之产生了。高级程序设计语言之所以高级就在于它接近人类的自然语言,更加符合人类的思维方式。
因为高级程序设计语言更接近人所习惯的描述形式,所以更容易被接受,这也使得更多的人能够参与程序设计活动。因为开发效率高,所以人们使用高级程序设计语言设计出了更多的应用系统,这反过来又大大推动了计算机应用的发展。应用的发展又推动了计算机工业的发展。可以说,高级程序设计语言的诞生和发展,对于计算机发展到今天起了极其重要的作用。
1.1.2 C语言的发展历史
C语言是国际上最流行的、应用最广泛的高级程序设计语言之一,深受广大程序员的欢迎。C语言的发展过程大致分为以下几个阶段。
1.C语言的出现
C语言是在贝尔实验室由KenThompson和DennisRitchie在开发UNIX操作系统的过程中开发出来的一种程序设计语言。UNIX系统最初是用汇编语言编写的,当时,Thompson