C语言程序设计能力教程(第二版)★计算机教指委优秀教材
书 号:9787113107666
丛 书 名:全国高等职业院校计算机教育规划教材
作 者:赵凤芝等
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:33元
-
内容简介
历史选题 -
前言
C语言是国内外广泛流行的程序设计语言,它以强大的功能,丰富的数据类型,使用灵活,兼具面向硬件编程的低级语言特性及通用性强、可移植性好等语言特性,成为软件开发中的主流。
C语言不仅适用于系统软件的设计,还适用于应用程序设计。在操作系统、工具软件、图形图像处理软件、数值计算、人工智能及数据库系统等多个方面都得到了广泛的应用。目前,许多的开发工具如微软的Visual C++和Visual C++.NET及Java等都还遵循着标准的C语言的基本语法。很多嵌入式系统,多数都采用C语言来开发。可以说C语言是程序开发人员必须掌握的程序设计语言,也是国内各高校广泛学习和普遍使用的一种重要的计算机语言。目前,全国计算机等级考试、全国计算机应用技术证书考试、全国计算机职业资格认证及专升本考试都将C语言列入考试范围。学习和使用C语言已经成为广大计算机应用人员和学生的迫切需求。
由于C语言语法规则多,使用灵活,容易出错,不少初学者感到困难,迫切希望有一本易于入门、易于学习、实用性强的书籍。鉴于此,我们在多年从事教学研究、实践应用和一线教学的基础上总结经验,与其他高校合作,并参考国内外有关资料编写了这本书。
本书于2006年8月发行第一版,受到广大读者的欢迎,先后多次重印。根据有关专家和读者的意见,结合编者本人的应用实践和体会,在第一版的基础上进行了重新修订。这次对原版内容进行了调整和补充,增加了大量例题和算法流程图,使内容更加充实,条理更加清楚,补充了书后的习题,增加了“技能训练”、“能力拓展”、“项目实训与评价”模块。
全书包括以下内容:第1章 进入C语言程序的世界;第2章 编制C程序的基础知识;第3章 顺序结构程序设计;第4章 选择结构程序设计;第5章 循环结构程序设计;第6章 应用数组设计程序;第7章 应用函数设计程序;第8章 应用指针编制程序;第9章 结构体、共同体和枚举类型的应用;第10章 文件;第11章 C语言程序设计应用实例,综合测试题以及附录等。每章包括“学习目标”、“例题分析与实现”、“技能训练”、“能力拓展”、“小结”、“项目实训及评价”等模块。“学习目标”部分明确学习任务,给出每一章应该掌握的内容及达到的目的,以便进行针对性学习;“例题”中给出分析与设计算法、准确的程序、经常出现的问题和解题技巧,以应用实例带动知识点学习;“技能训练”进一步针对所学知识强化其方法和要点的掌握;“能力拓展”部分主要介绍一些需灵活运用、加深理解和需扩展的内容;“小结”归纳要点和重点;“项目实训”给出有针对性、较综合的实践应用题目,配有考核要点和方法,可分阶段对所学知识进行实践与检验。“项目实训评价表”对目标和任务进行考察,同时考察学生的一些基本能力。
本书特色:
1.“案例与任务”驱动+项目实训模式
先明确每部分的目标与任务,针对性强,从实例入手,由浅入深地对C语言程序设计内容进行详细的讲述。在内容的讲解上,以每章的重点内容为主线,并配以经典例题。最后配有项目实训及考核标准,做到学以致用。
2.内容生动灵活,实例丰富,好学易懂
从问题分析到算法表示,从程序代码编写到运行结果分析,对整个程序设计过程做了详细地讲解,这样可以帮助初学者快速地提高C语言程序设计能力。书中介绍的实例由易到难,给出多种解题方法,对内容进行了扩展,以适合不同程度的读者。使读者开阔思路,培养创新精神,学习更加灵活,做到举一反三,为开发实际应用项目打好基础。
提供的大量的习题和典型例题以及综合测试题,为读者对知识的学习和巩固提供保障。
3.“递进式”的讲解思路,形式新颖,设计独特
采用由浅入深的递进式设计思路,力求每一章节讲解全面、翔实,注重程序设计方法的讲解,规范程序设计风格。读者既掌握了必备的理论知识,又能快速掌握专业的程序设计思想和逻辑思维方法,丰富的内容和实例可适应不同层次读者有选择地学习。
从基础学习到灵活运用再到综合应用,学习思路科学,目标明确,注重应用;利用项目评价表,使读者对自己的学习效果进行检测,对每一部分内容的学习做到心中有数。
本书中的内容通俗易懂,实例丰富,形式新颖,目标明确,针对性强,侧重应用,以能力培养为主线,使读者通过实例轻松愉快地学到相应的知识点,理论适度,深入浅出,实用性比较强。
本书采用“递进式”将程序设计的思想和方法娓娓道来;任务驱动,以实例带动知识点的学习。每章典型学习模式为:“简单实例讲解→基础知识点学习→技能训练→加深知识点学习,灵活运用→能力拓展→知识点拓宽→综合实训→能力应用”。首先讲解基础实例及必须掌握的知识点;然后通过“技能训练”加深难度,变换题型和解题思路,并就常见问题及应用技巧进行讲解,给出问题实现的结果,这样既提高了学生的兴趣,又能做到举一反三,触类旁通;在此基础上,有些难度比较大、比较复杂的题目放在了“能力拓展”部分,为一些基础好的读者选择性地学习,提供了一个更大的提升空间。最后给出了实训项目,它是每一部分内容的综合运用,和实践应用相结合,可达到学以致用的目的。每个项目后的“项目实训评价表”,可以检测实际应用能力,做到所学内容心中有数。
本书凝聚了作者多年的教学、科研的经验和体会,既适合作为大中专院校的程序设计课程的教材,也适合广大计算机爱好者及参加培训、考级、考试的人员作为自学和参考用书。书中全部案例程序在Visual C++ 6.0和Turbo C 2.0下运行通过,配有全部源程序、电子教案和书后参考答案等教学资源,读者可登录中国铁道出版社网站http://edu.tgbooks.net下载。
本书在编写过程中,得到了有关专家的指导,特别是教育部职业教育专家邓泽民教授的亲自指导与审定,使本书特色更加突出。参加本书编写的人员还有包锋、刘静、刘晓星、余宁、李旺彦等,全书由赵凤芝负责统稿和定稿。参加部分内容的编写和大纲讨论及文字图片整理的还有张连滨、李峰、吕晓昶、王海英、郭杰峰、彭双根、李振涛等。同时,对本书出版付出努力的中国铁道出版社的有关同志在此表示诚挚的感谢。
由于编者水平有限,书中疏漏和不足之处在所难免,敬请有关专家和广大读者不吝指正,编者的电子邮箱是qhdcomputer@163.com。 -
目录
第1章 进入C语言程序世界 1
1.1 了解C语言程序的结构 1
1.1.1 C语言程序的结构分析 1
1.1.2 C语言程序的结构特点 3
1.1.3 C语言程序的书写格式 3
1.2 设计简单的C语言程序 4
1.2.1 编程示例 4
1.2.2 算法及算法的表示 6
1.3 C程序的调试与运行 9
1.3.1 C语言程序的实现过程 9
1.3.2 在Turbo C编译系统环境中实现C程序 10
1.3.3 在Visual C++环境中实现C程序 11
1.4 计算机语言的发展过程 18
1.4.1 第一代语言——机器语言(低级语言) 18
1.4.2 第二代语言——汇编语言(低级语言) 19
1.4.3 第三代语言——算法语言(高级语言) 20
1.4.4 第四代语言——非过程化语言 21
技能训练 22
小结 22
习题 23
项目实训 23
第2章 编制C程序的基础知识 25
2.1 常量与变量 25
2.2 C语言的基本数据类型 26
2.2.1 整型数据 27
2.2.2 实型数据 29
2.2.3 字符型数据 31
2.3 C语言的常用运算符和表达式 35
2.3.1 算术运算符及其表达式 35
2.3.2 赋值运算符及其表达式 36
2.3.3 自增和自减运算符和强制类型运算符 38
2.3.4 关系运算符及其表达式 39
2.3.5 逻辑运算符及其表达式 40
2.3.6 逗号运算符及其表达式 41
2.3.7 各种类型数据之间的转换 42
2.3.8 应用实例 43
技能训练 45
小结 45
习题 45
项目实训 47
第3章 顺序结构程序设计 49
3.1 结构化程序设计的三种基本结构 49
3.2 数据的输入与输出 52
3.2.1 格式输出函数printf() 52
3.2.2 格式输入函数scanf() 55
3.2.3 单个字符输入/输出函数(getchar()/putchar()) 57
3.3 顺序结构程序设计举例 58
技能训练一 60
技能训练二 60
小结 61
习题 61
项目实训 63
第4章 选择结构程序设计 65
4.1 选择结构程序设计简介 65
4.2 if语句的典型应用形式 66
4.2.1 简单if形式 67
4.2.2 标准形式if…else 67
4.2.3 嵌套if语句形式 69
4.2.4 多分支if…else if语句形式 71
4.3 条件运算符和条件表达式 73
4.4 switch语句的应用——评定学生成绩 73
4.5 选择结构程序设计应用 76
4.5.1 计算银行存款利息 76
4.5.2 依据体重判断健康状况 77
4.5.3 设计简易计算器 78
技能训练 79
小结 80
习题 81
项目实训 83
第5章 循环结构程序设计 85
5.1 为什么使用循环 85
5.2 while语句与do…while语句 86
5.2.1 while语句(当型循环) 86
技能训练一 88
能力拓展 89
5.2.2 do...while语句(直到型循环) 89
5.3 for语句实现循环 90
技能训练二 91
技能训练三 92
5.4 几种循环的比较 93
5.5 多重循环(嵌套循环) 94
能力拓展 96
编程技巧总结 96
5.6 break和continue语句 97
5.6.1 break语句 97
5.6.2 continue语句 99
5.7 循环结构程序设计举例 100
5.7.1 找最大值及求和 100
5.7.2 求素数 103
5.7.3 求阶乘的和 104
能力拓展 105
综合技能训练 106
综合技能训练一:穷举类型的程序设计 106
综合技能训练二:递推类型的程序设计 111
小结 113
习题 113
项目实训 115
第6章 应用数组设计程序 117
6.1 数组的引入 117
6.2 一维数组 119
6.2.1 一维数组的定义(先定义后使用) 119
6.2.2 一维数组的初始化 120
6.2.3 一维数组的引用 120
6.3 二维数组 122
6.3.1 二维数组的定义 122
6.3.2 二维数组的初始化 123
6.3.3 二维数组元素的引用 123
6.3.4 多维数组 126
6.4 字符数组 126
6.4.1 字符数组的定义 126
6.4.2 字符数组的初始化 127
6.4.3 字符数组的输入与输出 128
6.4.4 字符串(字符数组)处理函数 128
6.5 数组的应用 131
6.5.1 利用数组求Fibonacci数列的前n项 131
6.5.2 利用数组实现数据排序 132
6.5.3 利用数组处理批量数据 135
6.5.4 利用数组实现矩阵的转置 136
6.5.4 字符数组的应用 137
技能训练一 142
技能训练二 144
小结 144
习题 145
项目实训 146
第7章 应用函数设计程序 148
7.1 函数的引入 148
7.2 函数的定义与调用 149
7.2.1 函数定义的一般形式 150
7.2.2 函数的参数和返回值 150
7.2.3 函数调用的一般方法 152
7.2.4 函数的声明 153
7.3 函数的嵌套调用和递归调用 154
7.3.1 函数嵌套调用——求最大公约数和最小公倍数 154
7.3.2 函数的递归调用 155
7.4 函数应用实例 157
7.4.1 利用函数完成特定功能求值 157
7.4.2 利用函数求阶乘的和 158
技能训练 158
7.4.3 利用数组作为函数参数 159
能力拓展 161
7.4.4 利用函数解决Hanoi(汉诺塔)问题 162
7.5 局部变量、全局变量及其存储 163
7.5.1 变量的作用域 163
7.5.2 变量的存储类别(生存期、生命期) 165
7.6 内部函数和外部函数 167
技能训练一:函数的定义 168
技能训练二:函数的调用与参数传递 169
技能训练三:函数的嵌套调用 171
技能训练四:函数的递归调用 173
小结 174
习题 174
项目实训 177
第8章 应用指针编制程序 179
8.1 指针概述 179
8.1.1 内存地址与指针 179
8.1.2 变量的直接访问与间接访问 180
8.2 指针变量 180
8.2.1 指针变量的定义及初始化 182
8.2.2 指针变量的引用 183
8.2.3 指针变量的运算 185
8.2.4 指针变量作函数的参数 186
8.3 指针与数组 190
8.3.1 用指向一维数组的指针变量处理数组元素 190
8.3.2 指针与二维数组 193
8.3.3 指向数组指针作函数的参数 194
8.3.4 字符指针与字符串 195
技能训练一 197
8.4 指针与函数 198
8.4.1 函数型指针的定义 198
8.4.2 函数型指针的赋值 199
8.4.3 指针型函数的定义与使用 199
8.5 指针数组 201
8.5.1 指针数组的定义 201
8.5.2 指针数组的初始化 201
8.6 指向指针的指针 202
能力拓展一 204
技能训练一:指针变量的定义与引用 205
技能训练二:指针对字符数组操作 206
能力拓展二:返回指针值的函数 207
小结 209
习题 210
项目实训 212
第 9章 结构体、共同体和枚举类型的应用 213
9.1 结构体类型与结构体变量的定义 213
9.1.1 结构体类型的定义 214
9.1.2 结构体类型变量的定义 215
9.2 结构体变量的引用 217
9.2.1 结构体类型成员的引用 217
9.2.2 结构体类型变量的赋值 217
9.2.3 结构体类型变量的存储 218
9.3 结构体数组 218
9.3.1 结构体类型数组的定义、赋值与引用 218
9.3.2 结构体类型数组的应用 220
9.4 结构体与指针 222
9.4.1 指向结构体变量的指针 222
9.4.2 指向结构体数组的指针 223
9.5 结构体与函数 224
9.6 结构体应用——链表 227
9.6.1 动态链表基本概念 228
9.6.2 建立链表 229
9.6.3 结点查找 230
9.6.4 结点插入 231
9.6.5 结点删除 233
9.7 共同体 234
9.7.1 共同体类型定义 235
9.7.2 共同体类型变量 235
9.7.3 共同体类型成员引用 236
9.7.4 共同体类型特点 236
9.7.5 共同体类型应用举例 236
9.8 枚举类型 237
9.9 用typedef定义类型 238
9.9.1 定义已有类型的别名 238
9.9.2 定义构造类型别名 239
9.9.3 typedef的应用 239
技能训练一:结构体类型及变量的应用 240
技能训练二:结构体数组的应用 241
技能训练三:结构体指针 242
能力拓展:结构体应用——链表综合实例 242
小结 247
习题 247
项目实训 248
第 10章 文件 250
10.1 文件概述 250
10.1.1 文件的概念 250
10.1.2 文件的指针 252
10.1.3 文件的一般操作过程 252
10.2 文件的常用操作 253
10.2.1 文件的打开/关闭函数 253
10.2.2 文件的基本读/写函数 254
10.2.3 文件的格式化读/写函数 255
10.2.4 文件的数据块读/写函数 255
10.2.5 文件的字符串读/写函数 257
10.2.6 文件的整型数据读/写函数 258
10.2.7 文件定位函数 258
10.2.8 文件的检错与处理函数 259
10.2.9 DOS文件调用与删除函数 260
10.3 文件的应用举例 260
技能训练一:缓冲型文件类型指针及文件打开与关闭 263
技能训练二:缓冲型文件的读/写 263
技能训练三:缓冲型文件的定位 264
小结 265
习题 265
项目实训 268
第11章 C语言程序设计应用实例 270
11.1 实现通讯录的管理程序 270
11.1.1 实例说明 270
11.1.2 实例解析 270
11.1.3 通讯录的管理程序 271
11.2 学生成绩管理程序 277
11.2.1 实例说明 277
11.2.2 实例解析 277
11.2.3 学生成绩管理程序 277
11.3 图形与游戏编程实例 285
11.3.1 Turbo C 2.0的图形处理系统 285
11.3.2 Turbo C 2.0图形库函数简介 285
11.3.3 游戏编程——贪吃蛇游戏 289
技能训练:编写黑白棋对弈游戏 294
小结 303
习题 304
项目实训 304
综合测试题 305
试卷一 305
试卷二 309
附录 A 常用字符与ASCII代码对照表 314
附录 B C语言的关键字 315
附录 C 运算符的优先级和结合性 316
附录 D 编译预处理命令 318
附录 E 位运算 323
附录 F C语言常见库函数 326
参考文献 333 -
作者介绍
-
编辑推荐
-
书评书荐
-
附件下载
图书推荐