张光妲等编著的《C语言程序设计教程》是根据教育部高等学校计算机科学与技术教学指导委员会非计算机专业计算机基础课程教学指导分委员会提出的《非计算机专业计算机基础课程教学基本要求》和《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)》中提出的要求,按照以计算思维为导向的分类、分层次组织教学的思路,由多年从事一线任课教师根据教学改革经验和课程特点编写而成。本书的多名作者常年担任高级语言类课程的理论和实验教学任务,出版过多部相关教材,而且本书还是在教研项目“基于计算思维的计算机基础教学改革与探讨”的研究基础上进行编写的。
《C语言程序设计教程》共分10章,主要包括C语言概述,数据类型、运算符与表达式,顺序程序设计,选择结构程序,循环控制,数组,函数,结构体与共用体,指针与链表以及文件。
张光妲等编著的《C语言程序设计教程》是根据教育部高等学校计算机科学与技术教学指导委员会非计算机专业计算机基础课程教学指导分委员会提出的《非计算机专业计算机基础课程教学基本要求》和《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求(试行)》中提出的要求,按照以计算思维为导向的分类、分层次组织教学的思路,并根据C语言的特点和初学者的认知规律,结合高等学校计算机语言课程改革的要求而编写的。本书在内容组织上通过例题来介绍C语言的一些基本概念,让读者在做中学,在编程中体会,避免枯燥基础知识的简单介绍过程。通过合理布局,适当地对内容进行了删减。全书共分10章,每章均配有教学课件和精心设计的习题。
《C语言程序设计教程》可作为高等院校C语言程序设计课程的教材,也可供广大计算机爱好者学习参考。
第1章 C语言概述1
1.1 程序与程序设计1
1.2 C语言简介2
1.2.1 C语言的发展2
1.2.2 C语言的特点3
1.3 简单的C程序3
1.4 算法5
1.4.1 算法概述5
1.4.2 算法图示表示法6
小结8
习题18
第2章 数据类型、运算符与表达式9
2.1 C语言的数据类型9
2.2 常量与变量10
2.2.1 直接常量10
2.2.2 符号常量10
2.2.3 变量的定义11
2.2.4 变量的赋值与初始化12
2.3 基本数据类型13
2.3.1 整型数据13
2.3.2 实型数据15
2.3.3 字符型数据16
2.3.4 枚举类型数据19
2.3.5 自定义类型名typedef21
2.4 各种类型数据之间的混合运算21
2.5 运算符与表达式22
2.5.1 运算符与表达式简介232.5.2 算术运算符与算术表达式24
2.5.3 赋值运算符与赋值表达式26
2.5.4 逗号运算符与逗号表达式28
2.5.5 位运算符29
小结32
习题232
第3章 顺序程序设计35
3.1 C语句概述35
3.2 赋值语句38
3.3 数据输入输出的概念及在C语言中的实现39
3.4 字符数据的输入输出40
3.4.1 字符输出函数putchar函数40
3.4.2 字符输入函数getchar函数41
3.5 格式输入与输出42
3.5.1 格式输出函数printf42
3.5.2 格式输入函数scanf48
3.6 编译预处理51
3.6.1 宏定义51
3.6.2 “文件包含”处理52
3.6.3 “条件编译”处理54
3.7 顺序结构程序设计举例55
小结57
习题357
第4章 选择结构程序设计62
4.1 关系运算符和关系表达式62
4.2 逻辑运算符和逻辑表达式63
4.3 if语句68
4.3.1 if语句的三种形式68
4.3.2 if语句的嵌套77
4.3.3 条件运算符和条件表达式81
4.4 switch语句84
小结89
习题489
第5章 循环控制94
5.1 goto语句以及用goto语句构成循环94
5.2 while语句96
5.3 dowhile语句99
5.4 for语句102
5.5 循环的嵌套105
5.6 几种循环的比较108
5.7 break和continue语句112
5.7.1 break语句112
5.7.2 continue语句116
小结118
习题5118
第6章 数组126
6.1 一维数组126
6.1.1 一维数组的定义与引用126
6.1.2 一维数组的初始化129
6.1.3 一维数组程序举例130
6.2 二维数组134
6.2.1 二维数组的定义与引用134
6.2.2 二维数组的初始化136
6.2.3 二维数组程序举例137
6.3 字符数组与字符串142
6.3.1 字符数组的定义与引用142
6.3.2 字符数组的初始化144
6.3.3 字符串处理函数145
6.3.4 字符数组举例149
小结152
习题6152
第7章 函数160
7.1 函数概述160
7.2 函数的定义与调用161
7.2.1 函数的定义161
7.2.2 函数的返回值162
7.2.3 函数声明163
7.2.4 函数的调用165
7.2.5 参数传递167
7.3 函数的嵌套调用和递归调用170
7.3.1 函数的嵌套调用170
7.3.2 函数的递归调用171
7.4 变量的作用域与存储类别173
7.4.1 变量的作用域173
7.4.2 变量的存储类别176
7.5 函数的作用范围179
小结181
习题7181
第8章 结构体与共用体185
8.1 结构体185
8.1.1 结构体概述及定义185
8.1.2 结构体变量定义及使用186
8.2 共用体192
8.2.1 共用体定义193
8.2.2 共用体变量定义及使用193
8.3 结构体与共用体区别194
小结195
习题8196
第9章 指针与链表201
9.1 指针概述201
9.2 指针变量及定义201
9.3 使用指针变量202
9.3.1 指针运算符202
9.3.2 二级指针与多级指针205
9.4 指针与数组207
9.4.1 一维数组与指针207
9.4.2 二维数组与指针212
9.4.3 字符串与指针216
9.4.4 指针数组220
9.4.5 带参数的主函数223
9.5 指针与函数225
9.5.1 指针做函数参数225
9.5.2 返回指针的函数230
9.5.3 指向函数的指针231
9.6 指针与结构体233
9.6.1 指向结构体变量的指针233
9.6.2 指向结构体数组的指针235
9.6.3 结构体指针变量做函数参数236
9.7 链表237
9.7.1 链表概述237
9.7.2 动态存储分配238
9.7.3 单向链表的基本操作241
小结252
习题9253
第10章 文件261
10.1 文件概述261
10.2 文件的打开与关闭262
10.2.1 文件的打开函数fopen262
10.2.2 文件的关闭函数fclose263
10.3 文件的读写264
10.3.1 字符方式文件读写函数fgetc()和fputc()264
10.3.2 字符串方式文件读写函数fputs()和fgets()266
10.3.3 格式化方式文件读写函数fscanf()和fprintf()268
10.3.4 数据块方式文件读写函数fread()和fwrite()269
10.4 文件的定位271
10.4.1 rewind()函数272
10.4.2 fseek()函数272
10.4.3 ftell()函数272
小结272
习题10273
附录A ASCII码表276
附录B C语言关键字277
附录C C语言运算符278
附录D C语言常用库函数279
参考文献284