实用C语言程序设计教程

-
【作 者】陈建铎 主编
【I S B N 】978-7-5084-3487-0
【责任编辑】郭东青
【适用读者群】本科
【出版时间】2006-12-01
【开 本】16开本
【装帧信息】平装(光膜)
【版 次】第1版
【页 数】
【千字数】
【印 张】
【定 价】¥26
【丛 书】21世纪高等院校规划教材
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书以目前微型机上流行的ANSI C为版本,兼顾集成化环境Turbo C编译程序,全面系统地介绍C语言基本语法和程序设计方法。内容包括:程序设计及C语言概述、C语言中的表达式、结构化程序设计、数组、函数、指针、结构体与共用体、输入输出与数据文件、C语言预处理程序、图形处理、综合实例,并突出了在工程中的应用。附录中介绍了C语言的字符集、保留字、库函数等。每章安排有适量练习题,以便学生练习与实践。
本书注重实用性和操作性,内容循序渐进,语言通俗易懂;例题丰富实用,易于边学边上机实践。本书可作为理工科大学本科教材,亦可供大专和高职类院校的学生使用。
随着计算机体系结构与程序设计语言的发展,各种高级语言层出不穷,尤其是面向对象和可视化程序设计的发展,为不同层次用户的程序设计提供了方便和支持。但是,程序设计的基本训练却被削弱了。众多学者认为,目前程序设计仍然是理工科院校学生的一项基本功。只要学生掌握好一门程序设计语言及其程序设计的方法,就可以举一反三学习其他语言。而C语言是长期以来一直被公认的一种优秀语言,可用于不同领域和不同学科的科学研究与工程设计之中。
本书以目前微型机上流行的ANSI C为版本,兼顾集成化环境Turbo C编译程序,全面系统地介绍了C语言基本语法和程序设计的方法。内容包括:程序设计及C语言概述、C语言表达式、基本结构的程序设计、数组、函数、指针、结构体与共用体、输入输出与数据文件、C语言预处理程序、图形处理及综合实例等。
本书是为高等院校理工科学生编写的高级语言程序设计教材。除第1章“综合实例”专门介绍一些应用实例以外,其他各章也列举了涉及本章内容的例子。尤其是从第3章起,每一部分都以简单实例开始,从分析到编程,以此引出相应的语法和程序设计。考虑到理工科各专业实际应用中输出图形的重要性,和一般C语言教科书相比,本书增加了图形处理等内容,而且突出了在工程中的应用。
本书在编写过程中注重实用性和操作性,内容循序渐进,语言通俗易懂,例题丰富,便于学生边学边上机实践;各章留有足够的习题,以便学生课后训练。在书后的附录中列出了C语言的字符集、保留字和库函数。
本书由陈建铎教授主编。第1、2、12章及附录由王忠义编写,第3、4章由邓强编写,第5、6、7章由张卫国编写,第8、9章由陈明晰编写,第10章由刘楚雄编写,第11章由邓强和王忠义编写;陈建铎和刘楚雄共同统稿。由于我们水平有限,书中难免有谬误之处,诚请同行专家和广大读者批评指正。
编 者
2006年1月
前言
第1章 程序设计及C语言概述 1
1.1 算法与程序设计 1
1.1.1 算法 1
1.1.2 程序 3
1.1.3 程序设计语言 3
1.1.4 程序设计的一般过程 4
1.2 C语言的特点 5
1.3 C语言程序的结构 7
1.3.1 C语言程序的一般形式 7
1.3.2 C程序中的主要成分 8
1.4 Turbo C 上机操作 10
1.4.1 安装Turbo C 10
1.4.2 启动 、退出Turbo C 10
1.4.3 编辑、编译、连接、运行的基本操作 11
1.5 流程图及N-S盒图 14
1.5.1 用流程图表示算法 14
1.5.2 用N-S盒图表示算法 15
1.6 结构化程序设计概要 16
1.6.1 结构化程序 16
1.6.2 结构化程序设计方法遵循的原则 17
1.6.3 结构化程序设计举例 18
习题一 21
第2章 C语言中的表达式 22
2.1 C语言的数据类型 22
2.2 常量和变量 23
2.2.1 常量和符号常量 23
2.2.2 标识符与变量 23
2.3 整型数据 25
2.3.1 整型常量 25
2.3.2 整型变量 26
2.4 实型数据 28
2.4.1 实型常量的表示方法 28
2.4.2 实型变量 28
2.4.3 双精度型数据 29
2.5 字符型数据 30
2.5.1 字符常量 30
2.5.2 字符变量 31
2.5.3 字符串常量 32
2.6 系统函数 33
2.6.1 简例 33
2.6.2 常用数学函数 34
2.7 C运算符概述 35
2.8 算术运算符 35
2.8.1 基本的算术运算符 35
2.8.2 算术表达式和运算符的优先级与结合性 36
2.8.3 自加、自减运算符 36
2.8.4 类型转换运算符及类型转换 37
2.9 关系运算符和逻辑运算符 39
2.9.1 关系运算符 39
2.9.2 逻辑运算符 39
2.9.3 条件运算符 41
2.10 位运算符与长度运算符 41
2.10.1 原码、反码和补码 41
2.10.2 移位运算符 42
2.10.3 位逻辑运算符 43
2.10.4 求长度运算符sizeof 44
2.11 赋值运算符和赋值表达式 45
2.11.1 赋值运算符和赋值表达式 45
2.11.2 类型转换问题 45
2.11.3 算术自反赋值运算符 46
2.11.4 位自反赋值运算符 46
2.11.5 赋值运算符的优先级与结合性 46
2.12 逗号运算符和逗号表达式 47
2.13 运算符的优先级与表达式的分类 48
2.13.1 运算符的优先级 48
2.13.2 C表达式的分类 48
习题二 49
第3章 三种基本结构程序设计 52
3.1 顺序结构程序设计 52
3.1.1 程序设计简例 52
3.1.2 格式输入输出的一般形式 55
3.1.3 字符输入、输出函数 63
3.2 选择结构程序设计 63
3.2.1 程序设计简例 64
3.2.2 分支与双分支结构 67
3.2.3 多分支结构 68
3.3 循环结构 73
3.3.1 程序设计简例 74
3.3.2 当型循环与直到型循环 77
3.3.3 各种循环语句的比较 79
3.3.4 break语句与continue语句 80
3.3.5 多重循环的实现 82
习题三 84
第4章 数组 87
4.1 一维数组 87
4.1.1 数列的排序程序实例 87
4.1.2 一维数组的定义和初始化 89
4.1.3 一维数组元素的引用 91
4.2 二维数组及多维数组 92
4.2.1 二维数组程序设计简例 92
4.2.2 二维数组的定义和初始化 94
4.2.3 二维数组元素的引用 96
4.2.4 多维数组简介 97
4.3 字符数组与字符串 98
4.3.1 字符数组程序设计简例 98
4.3.2 字符数组与字符串 99
4.3.3 字符串处理函数 104
习题四 108
第5章 函数 111
5.1 函数的概念与定义 111
5.1.1 C程序的结构 111
5.1.2 函数调用程序的例子 112
5.1.3 函数使用的说明和函数的分类 112
5.1.4 函数定义的一般形式 113
5.2 函数的调用 114
5.2.1 函数调用的一般形式 114
5.2.2 函数调用的三种方式 115
5.2.3 对被调函数的声明 116
5.2.4 形参与实参的数值传递 117
5.2.5 数组名作为函数参数 118
5.3 变量的作用域和存储类别 120
5.3.1 变量的作用域 120
5.3.2 变量的存储类别 124
5.4 嵌套调用与递归函数 127
5.4.1 函数的嵌套调用 127
5.4.2 递归函数 128
5.5 内部函数和外部函数 132
5.5.1 内部函数和外部函数 132
5.5.2 多文件程序的运行 133
习题五 135
第6章 指针 140
6.1 内存数据的指针与指针变量 140
6.2 指针变量的定义及指针运算 141
6.2.1 指针变量的定义 141
6.2.2 指针变量的运算 142
6.2.3 指针变量作为函数的参数 143
6.3 数组元素的指针与数组的指针 146
6.3.1 数组元素的指针 147
6.3.2 数组的指针 148
6.3.3 多维数组的指针 149
6.3.4 指向由m个元素组成的一维数组的指针变量 151
6.4 函数的指针和返回指针的函数 153
6.4.1 指向函数的指针变量 153
6.4.2 返回指针的函数 154
6.5 字符指针 156
6.5.1 字符串的指针 156
6.5.2 字符数组和字符指针变量的区别 157
6.6 指针数组与指向指针的指针 157
6.6.1 指针数组 157
6.6.2 指向指针的指针 159
6.6.3 命令行参数 160
6.7 小结与说明 161
6.7.1 指针类型小结 161
6.7.2 与指针相关的运算 161
6.7.3 使用指针的利与弊 162
习题六 162
第7章 结构体与共用体 167
7.1 结构体类型和结构体类型变量 167
7.1.1 结构体类型及其定义 167
7.1.2 结构体类型变量的定义 168
7.1.3 结构体类型变量及其成员的引用 170
7.1.4 结构体变量的初始化 170
7.2 结构体数组 172
7.2.1 结构体数组的定义 172
7.2.2 结构体数组的初始化 172
7.2.3 结构体数组的应用 172
7.3 指向结构体类型数据的指针 174
7.3.1 指向结构体变量的指针 175
7.3.2 指向结构体数组的指针 175
7.3.3 用结构体变量(或数组)作为函数参数 176
7.4 内存的动态分配与单链表 179
7.4.1 数据的存储结构 179
7.4.2 内存分配函数 180
7.4.3 链表的概念 181
7.4.4 链表的操作/运算 181
7.5 共用体 188
7.5.1 共用体的概念 188
7.5.2 共用体类型及共用体类型变量的定义 189
7.5.3 共用体变量的引用 189
7.5.4 使用共用体应注意的问题 190
7.6 位段 191
7.6.1 位段的概念 191
7.6.2 使用位段应注意的问题 192
7.7 枚举类型 192
7.7.1 枚举类型与枚举类型变量的定义 192
7.7.2 枚举类型变量在使用中的几点说明 193
7.8 typedef语句 193
7.8.1 typedef语句的一般形式及使用方法 193
7.8.2 使用typedef语句应注意的问题 194
习题七 195
第8章 文件 199
8.1 C文件概述 199
8.2 文件类型指针 200
8.3 文件的打开与关闭 201
8.3.1 文件的打开(fopen函数) 201
8.3.2 文件的关闭(fclose 函数) 203
8.4 文件的读写 203
8.4.1 文件的字符读写函数 203
8.4.2 文件的字符串读写函数 204
8.4.3 文件的数据块读写函数 206
8.4.4 文件的格式化读写函数 208
8.4.5 文件的其他读写函数 209
8.5 文件的定位 210
8.5.1 rewind函数 210
8.5.2 ftell函数 210
8.5.3 fseek函数 210
8.6 文件操作中的错误检测 214
8.6.1 ferror函数 214
8.6.2 clearerr函数 214
8.6.3 feof函数 214
8.6.4 常用文件操作函数表 215
习题八 215
第9章 编译预处理 220
9.1 宏定义 220
9.1.1 不带参数的宏定义 220
9.1.2 带参数的宏定义 221
9.1.3 解除宏定义 224
9.2 文件包含 225
9.3 条件编译 227
习题九 229
第10章 图形处理 232
10.1 图形输出初始化和显示模式设置 232
10.1.1 图形输出初始化 232
10.1.2 显示模式的设置 233
10.1.3 退出图形方式 234
10.2 绘图函数 234
10.2.1 绝对移动函数moveto和相对移动函数 235
10.2.2 获取当前点的函数getx和gety 235
10.2.3 设置颜色的函数setbkcolor和setcolor 235
10.2.4 获取颜色的函数getbkcolor和getcolor 235
10.2.5 清除屏幕函数cleardevice 236
10.2.6 获取像素和画像素的函数getpixel和putpixel 236
10.2.7 画线段的函数line、lineto和linerel 236
10.2.8 设置画线类型的函数setlinestyle 237
10.2.9 画矩形的函数rectangle和画实心矩形的函数bar 237
10.2.10 画圆、圆弧、椭圆弧、椭圆扇区的函数circle、arc、
ellipse和sector 237
10.2.11 画多边形的函数drawpoly 238
10.2.12 设置封闭区域填充式样和颜色的函数setfillstyle 238
10.2.13 封闭区域填充的函数floodfill 239
10.2.14 设置字体、方向及大小的函数settextstyle 240
10.2.15 输出字符串的函数outtext和outtextxy 240
10.2.16 设置窗口的函数setviewport和清除窗口的函数clearviewport 241
10.2.17 将屏幕图像存入缓冲区的函数getimage 242
10.2.18 将缓冲区的图形送往显示器的函数putimage 242
10.2.19 测定缓冲区大小的函数imagesize 242
10.3 图形处理应用实例 242
习题十 245
第11章 综合实例 247
11.1 利用最小二乘法拟合线性方程 247
11.2 利用最小二乘法拟合曲线 247
11.3 其他举例 250
第12章 C语言上机实验 264
12.1 C语言环境概述 264
12.1.1 在SUN工作站UNIX操作系统下运行C语言程序 264
12.1.2 在DOS操作系统下Microsoft C编译系统的使用 265
12.1.3 Turbo C简介及启动 265
12.2 利用Turbo C运行C语言程序 266
12.2.1 编辑源文件 266
12.2.2 编译与连接 266
12.2.3 运行 267
12.2.4 退出Turbo C系统 268
12.2.5 C语言上机操作举例 268
12.3 上机实验内容 268
实验一 数据类型、输入与输出 268
实验二 选择结构程序设计 269
实验三 循环控制 270
实验四 数组 270
实验五 函数 271
实验六 指针 271
实验七 结构体与共用体 272
实验八 位运算 272
实验九 编译预处理 273
实验十 文件 273
附录1 C语言的字符集 274
附录2 C语言的关键字 275
附录3 C语言的库函数 276
参考文献 282
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- 程序思维与C语言实现 [张祎 王俊海 吕波]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- C语言程序设计 [姜雪]
- C语言程序设计项目化教程(活页式) [主编 张利华 潘晓利]
- C语言同步案例习题精解 [主编 肖朝晖]
- C语言程序设计(微课版) [主编 夏启寿]
- C语言程序设计实践教程 [夏启寿]
- 单片机应用技术项目教程(C语言版)(第三版) [主编 郭志勇]
- 数据结构——C语言(微课版) [主编 梁海英]
- C程序设计简明教程 [黄能耿 黄致远 编著]
- C语言程序设计实验指导与实训 [主编 倪燃]
- 单片机原理及应用技术(C语言版) [周国运 鲁庆宾 赵天翔 编著]
- C#程序设计教程 [主编 李祥琴]
- C#数据库编程技术 [主编 顾家铭]
- 基于C#的可视化编程基础 [主编 张蕾蕾 黄健]
- C语言程序设计 [主编 杨娟 万青]
- 物联网编程与应用(C#) [主编 王浩 王伟旗]
- C语言程序设计 [主编 王婧 刘政宇]
- Visual Basic程序设计教程 [主编 郭秀娟 于全通]
- C语言程序设计项目化教程 [主编 彭琦伟 周威]
- C语言程序设计案例教程 [主 编 刘素芬 张建军 王宏斌]
- Visual Basic.NET程序设计上机实践教程 [主编 何振林 罗奕]
- Visual Basic.NET程序设计 [主编 何振林 罗奕]
- C语言程序设计(第二版) [主编 丁红 王辉]