C语言是一门基础性的程序设计语言,学习C语言有助于计算机专业的学生更好地学习其他程序设计语言。本书的主要内容包括:C语言程序设计基础、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体、文件、位运算等内容。书中每章都提供了丰富的案例和精心挑选的课后练习题,重点章节还提供了相关实训项目。本书体系结构完整,内容介绍深入浅出,注重理论与实践相结合,每个案例都经过精心调试并配有源代码和运行结果,方便读者学习。 本书既可作为高等院校“C语言程序设计”课程的教材,又可作为广大计算机程序设计人员和计算机程序设计爱好者的参考书,同时可供参加相关考试的读者参考。
张仁忠,男,教授、博士生导师。中国系统仿真学会会员、中国自动化学会高级会员、曾任中国造船学会电子信息技术委员会委员、黑龙江省系统工程学会理事长。哈尔滨工程大学本科教学主讲教师,研究生教学优秀教师,并多次被评为研究生优秀指导教师,主编、副主编、主审教材各一部;主持完成包括国防科工委基金、预研、型号,横向联合以及为地方服务等科研项目二十多项,累计项目经费二千多万元,获省部级科技进步奖二等奖一次、三等奖一次;发表文章五十多篇,其中核心期刊三十多篇、EI检索九篇。现任广东创新科技职业学院软件技术专业带头人,学校教学指导委员会委员。
目 录
第1章 C语言程序设计基础 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.2 算法及其描述 3
1.2.1 算法的概念 3
1.2.2 算法的描述 4
1.2.3 常用算法举例 6
1.3 C语言的发展及其特点 6
1.3.1 C语言的发展历史 6
1.3.2 C语言的特点 7
1.4 C语言的基本结构 8
1.4.1 结构化程序设计 8
1.4.2 一个C语言程序的结构 8
1.5 C语言程序的开发环境 9
1.5.1 在Visual C++ 6.0平台上开发C语言程序 9
1.5.2 使用Dev C++编译系统开发C语言程序 12
1.6 C语言程序举例 13
本章小结 15
习题一 16
第2章 顺序结构程序设计 18
2.1 最简单的C程序——顺序结构程序举例 18
2.2 数据的表现形式 19
2.2.1 常量和变量 19
2.2.2 C语言的数据类型 20
2.2.3 整型数据 20
2.2.4 实型数据 22
2.2.5 字符型数据 23
2.2.6 字符串型数据 24
2.3 运算符和表达式 24
2.3.1 C运算符 24
2.3.2 算术运算符和算术表达式 25
2.3.3 关系运算符和关系表达式 26
2.3.4 逻辑运算符和逻辑表达式 27
2.4 C语句 29
2.4.1 C语句的分类及作用 29
2.4.2 最基本的C语句——赋值语句 30
2.5 数据的输入/输出 31
2.5.1 printf函数输出数据 31
2.5.2 scanf函数输入数据 33
2.5.3 字符数据的输入/输出 34
本章小结 36
习题二 36
第3章 选择结构程序设计 39
3.1 选择结构程序举例 39
3.2 选择结构和条件判断 41
3.3 if语句实现选择结构 42
3.3.1 if语句实现选择结构举例 42
3.3.2 简单的if语句结构 44
3.3.3 if-else语句结构 45
3.3.4 if-else-if语句结构 46
3.4 选择结构的嵌套 48
3.4.1 if语句的3种应用与程序流程图 48
3.4.2 嵌套if语句与程序流程图 49
3.4.3 if语句的嵌套应用 50
3.5 switch语句实现多分支选择结构 51
3.5.1 多分支结构的一般形式 52
3.5.2 多分支语句的实际应用 52
本章小结 55
习题三 55
第4章 循环结构程序设计 58
4.1 循环结构程序举例 58
4.2 while语句实现循环结构 59
4.3 do-while语句实现循环结构 61
4.4 for语句实现循环结构 63
4.5 几种循环结构的比较 65
4.6 循环结构的嵌套 65
4.7 改变循环执行的状态 66
4.7.1 break语句提前终止循环 66
4.7.2 continue语句提前结束本次循环 67
4.7.3 break语句和continue语句的区别 68
本章小结 69
习题四 69
第5章 数组 72
5.1 一维数组的定义和引用 72
5.1.1 一维数组的定义 72
5.1.2 一维数组的引用 73
5.1.3 一维数组的初始化 74
5.1.4 一维数组程序举例 75
5.2 二维数组的定义和引用 78
5.2.1 二维数组的定义 78
5.2.2 二维数组的引用 79
5.2.3 二维数组的初始化 80
5.2.4 二维数组程序举例 81
5.3 字符数组 83
5.3.1 字符数组的定义 83
5.3.2 字符数组的初始化 83
5.3.3 字符数组的引用 84
5.3.4 字符串处理函数 86
5.3.5 字符数组程序举例 90
本章小结 91
习题五 92
第6章 函数 96
6.1 概述 96
6.2 函数的定义 97
6.2.1 无参函数的定义 97
6.2.2 有参函数的定义 97
6.2.3 空函数的定义 98
6.3 函数的参数和函数的返回值 98
6.3.1 形式参数和实际参数 98
6.3.2 函数的返回值 100
6.4 函数的调用 102
6.4.1 函数调用的一般形式 102
6.4.2 函数调用的方式 103
6.4.3 函数的声明 104
6.5 函数的嵌套调用 106
6.6 函数的递归调用 108
6.7 数组作为函数的参数 112
6.8 函数中变量的作用域 115
6.8.1 局部变量 115
6.8.2 全局变量 116
本章小结 118
习题六 118
第7章 指针 121
7.1 变量的地址和指针 121
7.2 指针变量的定义和指针变量的基类型 122
7.3 为指针变量赋值 124
7.3.1 为指针变量赋地址值 124
7.3.2 为指针变量赋其他值 126
7.4 对指针变量的操作 127
7.4.1 指针的赋值运算 127
7.4.2 指针的算术运算 129
7.4.3 指针的关系运算 129
7.5 函数之间地址值的传递 131
7.5.1 指针作为函数参数 131
7.5.2 函数返回地址值 132
本章小结 134
习题七 134
第8章 结构体 138
8.1 结构体类型的定义 138
8.2 结构体变量 140
8.2.1 结构体变量的定义 140
8.2.2 结构体变量的引用 142
8.2.3 结构体变量的初始化 143
8.3 结构体数组 143
8.3.1 定义结构体数组 143
8.3.2 结构体数组初始化 144
8.3.2 结构体数组应用举例 145
本章小结 146
习题八 146
第9章 文件 149
9.1 文件的相关概念 149
9.1.1 文件的分类 149
9.1.2 文件指针 149
9.2 文件的打开与关闭 150
9.2.1 文件打开函数 150
9.2.2 文件的关闭 150
9.3 文件的顺序读写 151
9.3.1 fputc函数和fgetc函数 151
9.3.2 fputs函数和fgets函数 153
9.3.3 fprintf函数和fscanf函数 153
9.4 文件的随机读写 155
9.5 文件操作的出错检测 156
本章小结 157
习题九 157
*第10章 位运算 159
10.1 位运算符和位运算 159
10.1.1 按位与运算符(&) 159
10.1.2 按位或运算符(|) 160
10.1.3 异或运算符(^) 161
10.1.4 取反运算符(~) 162
10.1.5 左移运算符(<<) 163
10.1.6 右移运算符(>>) 163
10.1.7 位运算符与赋值运算符组合 164
10.1.8 不同长度的数据进行位运算 164
10.2 位运算程序举例 164
10.3 位段 165
本章小结 168
习题十 168
实训一 顺序结构程序设计 170
实训二 选择结构程序设计 171
实训三 循环结构程序设计 172
实训四 数组的应用 176
实训五 函数的应用 181
实训六 学生成绩管理系统 184
附录A ASCII码表 199
附录B 运算符与结合性 200
参考文献 202