热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力

C语言程序设计教程(第二版)

中国水利水电出版社
    【作 者】徐新华 主编 【I S B N 】978-7-5084-4452-9 【责任编辑】王艳燕 【适用读者群】高职高专 【出版时间】2008-06-01 【开 本】16开本 【装帧信息】平装(光膜) 【版 次】第2版 【页 数】252 【千字数】 【印 张】 【定 价】24 【丛 书】21世纪高职高专新概念教材 【备注信息】
图书详情

    本书是普通高等教育“十一五”国家级规划教材。

    本书由13章组成。前12章,按ANSI C标准,全面、系统地介绍了C语言的基本知识,支持选择结构和循环结构程序设计的控制语句,以及数组、函数、编译预处理、指针、结构体、位运算和文件操作等。第13章是综合应用专题,旨在突破指针、结构体和文件操作等教学重点和难点,并通过专门设计的小型参考程序,详细介绍了一些增强程序健壮性、处理变长数据的设计思路、实现方法和技巧等。

    本书适用于应用型本专科学历教育,成人本专科学历教育各专业,以及对C语言感兴趣的读者。本书有相关配套教材:《C语言程序设计实验指导与习题祥解(第二版)》和《C语言程序设计实训(第二版)》。

    第二版前言

    本书是普通高等教育“十一五”国家级规划教材。

    C语言作为面向对象方法的经典语言——C++/C#的基础,得到了广泛的认可和重视。各类院校工科专业,尤其是计算机类专业,程序设计语言都首选C语言。

    本书第一版自2001年7月出版以来,得到了广大教师、学生和读者的认可,累计印刷12次、5.6万册。随着C语言程序设计课程教学实践的深入,本书作者在不断总结经验、持续改进的同时,产生了许多对于教材的新设想,及作者在学习新知识过程中,站在学习者角度产生的对教材的强烈期盼,促使作者再次拿起笔来,将最近几年积累起来的对C语言程序设计课程教学新的认识和感悟,物化在第二版中。

    第二版的主要改进如下:

    (1)在每章的前面新增“本章教学导读”栏目,在每章的后面新增一节“软件工程与方法”。

    在“本章教学导读”栏目中,详细说明哪些是基础的、必须知道的内容,哪些是重点、难点和进阶内容等情况,便于读者根据教学目标、学时以及其他实际情况,有选择性地进行教或者学。

    在“软件工程与方法”栏目中,除了将第一版各章中分散的软件工程评述和方法等内容集中起来,还新增了部分内容。这样处理的目的:一是降低对一般初学者的教学要求;二是对于有兴趣、又有能力的读者,可以强化软件工程思想和处理方法。

    (2)调整了原有的部分案例和习题,新增了部分基于应用的、趣味性更强的案例和习题。

    第二版中案例的一般结构是:案例描述、算法设计要点、参考源程序(配有大量的简明注释)、程序运行结果(或举例)和程序说明。

    算法设计是程序设计的核心,第二版中各案例的算法都经过重新优化。新增的程序说明部分,作为参考源程序中注释的补充,扼要地解释程序实现过程中的主要技术或技巧,旨在使读者不仅知其然,而且知其所以然。

    (3)新增一个贯穿于第3~5章和第7章的实用程序“加、减、乘、除和求余数运算练习程序”,旨在整合结构化程序设计“三大基本结构”(顺序结构、选择结构和循环结构)及其相关控制语句的应用,展现软件工程“逐步求精”的基本思想和方法。

    重新改写了第13章(FoxBASE+模拟系统),旨在突破结构、指针和文件等教学难点,并通过专门设计的小型参考程序,详细介绍了一些增强程序健壮性、处理变长数据的设计思路、实现方法和技巧等。

    (4)将上机实验环境升级到TC++ 3.0(正文)和VC++ 6.0(附录)。

    随着计算机技术快速发展,软硬件不断升级,鼠标已经成为计算机系统的标准配置。与第一版的TC 2.0集成开发环境相比,TC++ 3.0(或VC++ 6.0)集成开发环境的最大优势在于支持鼠标操作和彩色管理,从而显著地提高了易操作性和操作效率。

    在继承第一版特色的基础上,第二版的主要特色如下:

    1.教学效率方面

    效率是产出(知识、能力等)与投入(时间、精力等)之比。

    (1)分级组织。

    C语言作为一门自成体系的系统软件开发工具,其知识点和功能点很多,有些是基础的、必须的,有些是属于进阶的,也有些是不太常用的。恰恰是那些不太常用的部分,导致教学效率的下降!

    有鉴于此,在第二版中,按照效率原则,将上述情况在“本章教学导读”栏目予以说明,便于读者有选择性地进行教或者学。

    (2)内容自含,备查方便。

    内容自含是指本书任何地方首次引用的新东西(术语、知识、功能、库函数等),均直接给出其说明或解释。

    本书的目标之一是实现100%的“内容自含”;同时,在第一版原有附录A、附录B、附录C基础上,新增“控制语句和编译预处理命令索引”、“TC++ 3.0的安装、配置、多源文件的编译连接与程序调试”和“在VC++ 6.0环境中运行C语言程序的基本操作”三个附录。

    内容自含,并且建立相关索引表,将极大地方便读者(尤其是初学者和自学者),有效地提高学习效率。

    2.教学效果方面

    (1)全面贯彻“以应用为中心”的指导思想。

    C语言作为开发工具,语法介绍是必须的。但教学的目的是为了应用,本书第二版全面贯彻“以应用为中心”的指导思想,具体做法请参见“第二版的主要改进”板块中的(2)和(3)。

    (2)用软件工程思想和方法贯穿整个教材。

    作者在长期的教学实践中发现,很多学生(包括计算机专业的学生)到毕业时,都未养成一个良好的源程序书写风格,也未形成基本的程序设计风格。

    本书以独立的“软件工程与方法”栏目形式,强化软件工程思想,包括源程序书写风格方面(例如标识符命名“见名知意”、对齐与缩排、注释等)、程序设计风格(例如人机交互、数据校验、错误提示等)等;同时,将作者多年来在教学实践中积淀起来的、简单易用的方法和技巧(例如,必须配对使用的符号输入、混合运算时的运算次序、else与if的匹配等)奉献给读者。

    通过上述各种举措,有意识地、潜移默化地引导读者,使之逐步养成一个良好的源程序书写习惯,掌握程序设计与实现的基本方法,形成符合软件工程要求的程序设计和编码风格。

    本书导读

    本书由13章组成,可分为4部分:

    第1部分——C语言基础知识,由第1、2章组成,主要介绍C语言源程序的总体结构、函数的一般结构以及源程序书写规则,Turbo C++ 3.0的基本操作,程序设计的灵魂——算法的有关知识,C语言提供的基本数据类型、运算符和表达式等。

    第2部分——初级程序设计,由第3~7章组成,介绍顺序结构、选择结构和循环结构程序设计,以及数组、函数与变量作用域。

    第3部分——高级程序设计,由第8~12章组成,介绍编译预处理、指针、结构类型与链表、位运算、文件。

    第4部分——综合应用,由第13章(FoxBASE+模拟系统)组成,介绍FoxBASE+库文件的逻辑结构与存储结构,算法设计要点与参考源程序,增强程序健壮性、处理可变长度数据的基本方法,以及C语言程序设计实训项目。

    第1、2部分,是C语言程序设计教学的必须部分,理论教学大约需要36学时。第3部分,理论教学大约需要18学时。第4部分,可作为课程设计或实训项目,大约需要36学时。

    每章结构如下:①引言;②本章主体内容提要;③本章教学导读;④正文;⑤软件工程与方法;⑥本章小结;⑦习题。

    在“本章主体内容提要”的章节编号后面标注“*”者,表示该章节属于进阶内容,或者是教学难点内容;同时,在“本章教学导读”栏目中,用文字予以详细说明。

    “本章教学导读”栏目中的内容,有助于读者根据教学目标、学时以及其他实际情况,有选择性地进行教或者学。

    “软件工程与方法”栏目中的内容,有助于读者从软件工程层面上,重新认识C语言的某些灵活性和功能,以及解决某些问题的方法和技巧。

    本书由徐新华担任主编,谢永红、王建平任副主编,杨国兴、刘勇、邹广慧、宋晏、严婷等参加了部分章节的编写,以及编写大纲的讨论、案例和习题设计、文字输入与排版等工作。具体分工如下:徐新华编写了第9~13章,谢永红编写了第5~7章,王建平编写了第3~4章,杨国兴编写了第2章,刘勇和严婷编写了本书附录,邹广慧编写了第8章,宋晏编写了 第1章。

    本书全套电子教案、书中所有案例的源程序代码,以及其他教学资源,可到中国水利水电出版社网站(http://www.waterpub.com.cn/softdown/)免费下载。

    由于作者水平有限,加之时间仓促,书中难免有不当之处,敬请专家及广大读者批评指正。

    编 者

    2006年12月


    第二版前言
    第一版前言
    第1章 C语言概述 1
    1.1 C语言的发展简史和特点 1
    1.2 C语言源程序的结构及其书写规则 2
    1.2.1 C语言程序的总体结构 2
    1.2.2 函数的一般结构与函数分类 4
    1.2.3 源程序书写规则 6
    1.3 C语言的语句和关键字 6
    1.3.1 C语言的语句 6
    1.3.2 C语言的关键字 7
    1.4 Turbo C++ 3.0的基本操作 7
    1.5 软件工程与方法 11
    1.5.1 软件工程评述 11
    1.5.2 方法与技巧 11
    1.6 本章小结 11
    1.7 习题 12
    第2章 数据类型、运算符与表达式 13
    2.1 程序设计概述 13
    2.1.1 算法的概念和特性 14
    2.1.2 算法设计的一般方法 14
    2.1.3 算法描述 15
    2.1.4 结构化程序设计方法 17
    2.2 C语言的数据类型 18
    2.3 常量和变量 18
    2.3.1 常量 18
    2.3.2 变量与标识符 18
    2.4 整型数据 19
    2.4.1 整型变量 19
    2.4.2 整型常量 20
    2.5 实型数据 20
    2.5.1 实型变量 20
    2.5.2 实型常量 20
    2.6 字符型数据 21
    2.6.1 字符常量 21
    2.6.2 字符变量 22
    2.6.3 字符串常量 23
    2.7 算术运算与算术表达式 24
    2.7.1 5种基本算术运算符 24
    2.7.2 表达式和算术表达式 24
    2.7.3 运算符的优先级与结合性 25
    2.7.4 数据类型转换 25
    2.8 赋值运算与赋值表达式 26
    2.8.1 赋值运算 26
    2.8.2 复合赋值运算 26
    2.8.3 赋值表达式 27
    2.9 C语言特有的运算 27
    2.9.1 自增(++)、自减(--)运算 27
    2.9.2 逗号运算(,)及其表达式 29
    2.10 软件工程与方法 29
    2.10.1 良好的源程序书写风格——见名知义 29
    2.10.2 软件工程评述 29
    2.10.3 方法与技巧 30
    2.11 本章小结 30
    2.12 习题 32
    第3章 顺序结构程序设计 33
    3.1 格式化输出——printf()函数 33
    3.1.1 printf()函数的一般格式 33
    3.1.2 格式指示符应用举例 36
    3.1.3 使用说明 38
    3.2 格式化输入——scanf()函数 38
    3.2.1 scanf()函数的一般格式 38
    3.2.2 格式指示符 40
    3.2.3 数据输入操作 41
    3.3* 单个字符输入输出——getchar()和putchar()函数 41
    3.3.1 单个字符输出——putchar()函数 42
    3.3.2 单个字符输入——getchar()函数 42
    3.4 顺序结构程序设计 43
    3.5 软件工程与方法 44
    3.5.1 良好的源程序书写风格——左对齐 44
    3.5.2 软件工程评述 45
    3.6 本章小结 45
    3.7 习题 46
    第4章 选择结构程序设计 47
    4.1 关系运算及其表达式 47
    4.1.1 关系运算符及其优先级 48
    4.1.2 关系表达式 48
    4.2 逻辑运算及其表达式 48
    4.2.1 逻辑运算及其优先级 49
    4.2.2 逻辑表达式 49
    4.3 if语句和条件运算 50
    4.3.1 if语句 50
    4.3.2 条件运算符 53
    4.4 switch语句 54
    4.5 选择结构程序设计 56
    4.6 软件工程与方法 61
    4.6.1 良好的源程序书写风格 61
    4.6.2 软件工程评述 62
    4.6.3 方法与技巧 63
    4.7 本章小结 63
    4.8 习题 64
    第5章 循环结构程序设计 65
    5.1 循环语句概述 65
    5.2 for语句和while语句 66
    5.2.1 for语句 66
    5.2.2 while语句 68
    5.3 直到型循环do-while语句 69
    5.4 break语句与continue语句 70
    5.5 循环结构程序设计 71
    5.6 软件工程与方法 74
    5.6.1 良好的源程序书写风格 74
    5.6.2 软件工程评述 75
    5.7 本章小结 75
    5.8 习题 76
    第6章 数组 77
    6.1 1维数组的定义、存储和引用 78
    6.1.1 1维数组的定义与存储 78
    6.1.2 1维数组元素的引用 79
    6.1.3 1维数组元素的初始化 80
    6.2 2维数组的定义、存储和引用 80
    6.2.1 2维数组的定义与存储 80
    6.2.2 2维数组元素的引用 82
    6.2.3 2维数组元素的初始化 82
    6.3 字符数组与字符串 83
    6.3.1 字符数组概述 83
    6.3.2 字符数组的逐个字符处理 84
    6.3.3 字符数组的整体处理 85
    6.4 常用的字符串处理函数 87
    6.4.1 字符串输入——gets()函数 87
    6.4.2 字符串输出——puts()函数 88
    6.4.3 字符串比较——strcmp()函数 88
    6.4.4 拷贝字符串——strcpy()函数 89
    6.4.5 连接字符串——strcat()函数 89
    6.4.6 求字符串长度——strlen()函数 90
    6.4.7 将大写字母转换成小写——strlwr()函数 90
    6.4.8 将小写字母转换成大写——strupr()函数 90
    6.5 应用案例 90
    6.6 软件工程与方法 94
    6.6.1 软件工程评述 94
    6.6.2 方法与技巧 95
    6.7 本章小结 95
    6.8 习题 97
    第7章 函数与变量作用域 98
    7.1 函数的定义与调用 98
    7.1.1 函数的定义 99
    7.1.2 函数的返回值与函数类型 100
    7.1.3 对被调用函数的说明和函数原型 100
    7.1.4 函数调用与返回 102
    7.1.5 参数传递——值传递方式 103
    7.2 函数的嵌套调用与递归调用 104
    7.2.1 函数的嵌套调用 104
    7.2.2 函数的递归调用 105
    7.3 内部函数与外部函数 107
    7.3.1 内部函数(又称静态函数) 107
    7.3.2 外部函数 107
    7.3.3 多个源文件的编译和连接 109
    7.4 内部变量与外部变量 110
    7.4.1 内部变量 110
    7.4.2 外部变量 110
    7.5 变量的动态存储与静态存储 112
    7.5.1 内部变量的存储方式 112
    7.5.2 外部变量的存储方式及其作用域 114
    7.6 软件工程与方法 115
    7.6.1 良好的源程序书写风格——注释 115
    7.6.2 软件工程评述 116
    7.6.3 方法与技巧 116
    7.7 本章小结 116
    7.8 习题 118
    第8章 编译预处理 119
    8.1 宏定义与符号常量 119
    8.1.1 无参宏定义 119
    8.1.2 符号常量 121
    8.1.3 有参宏定义 121
    8.2 文件包含 123
    8.2.1 文件包含的概念 123
    8.2.2 文件包含的一般格式 124
    8.2.3 使用文件包含的优点 124
    8.2.4 说明 124
    8.3 条件编译 125
    8.3.1 #ifdef~#endif和#ifndef~#endif命令 125
    8.3.2 #if~#endif 126
    8.4 软件工程与方法 126
    8.4.1 软件工程评述 126
    8.4.2 方法与技巧 126
    8.5 本章小结 126
    8.6 习题 127
    第9章 指针 128
    9.1 指针和指针变量的概念 128
    9.1.1 内存地址 128
    9.1.2 变量地址 129
    9.1.3 变量值的存取 129
    9.1.4 指针与指针变量 130
    9.2 指针变量及其应用 131
    9.2.1 指针变量的定义与相关运算 131
    9.2.2 指针变量作函数参数 133
    9.3 1维数组的指针与列指针变量 136
    9.3.1 使用列指针变量引用1维数组的元素 136
    9.3.2 数组作函数参数 138
    9.4 2维数组的指针与行指针变量 139
    9.4.1 2维数组的1维化处理 139
    9.4.2 2维数组的指针 140
    9.4.3 行指针变量——指向由n个元素组成的1维数组的指针变量 141
    9.4.4 2维数组指针作函数参数 142
    9.5 字符串的指针和指向字符串的指针变量 142
    9.5.1 字符串的表示与引用 143
    9.5.2 字符串指针作函数参数 144
    9.6 指针数组与主函数main()的参数 145
    9.6.1 指针数组 145
    9.6.2 主函数main()的参数 147
    9.6.3 指向指针的指针变量简介 148
    9.7 返回指针值的函数 149
    9.8 函数的指针和指向函数的指针变量简介 150
    9.9 软件工程与方法 151
    9.9.1 软件工程评述 151
    9.9.2 方法与技巧 151
    9.10 本章小结 153
    9.11 习题 155
    第10章 结构类型与链表 156
    10.1 结构类型与结构变量的定义 156
    10.1.1 结构类型定义 156
    10.1.2 结构变量定义 157
    10.2 结构变量的引用与初始化 158
    10.3 结构数组 159
    10.4 指向结构类型数据的指针 161
    10.4.1 指向结构变量的指针 161
    10.4.2 指向结构数组的指针 162
    10.4.3 指向结构数据的指针作函数参数 163
    10.5 链表处理——结构指针的应用 164
    10.5.1 概述 164
    10.5.2 创建一个新链表 165
    10.5.3 对链表的插入操作 167
    10.6 枚举型和共用型简介 169
    10.6.1 枚举型 169
    10.6.2 共用型 169
    10.7 定义已有类型的别名 170
    10.8 软件工程与方法 171
    10.9 本章小结 172
    10.10 习题 173
    第11章 位运算 175
    11.1 数值在计算机中的表示 175
    11.2 位运算 176
    11.2.1 位运算及其运算符 176
    11.2.2 应用举例 177
    11.3 位段简介 179
    11.3.1 位段类型的概念与定义 179
    11.3.2 说明 179
    11.4 软件工程与方法 180
    11.4.1 实现按位与(&)、按位或(|)、按位异或(^)运算主要用途的方法 180
    11.4.2 实现按位取反运算主要用途的方法 180
    11.5 本章小结 180
    11.6 习题 181
    第12章 文件 182
    12.1 C语言文件概述 182
    12.1.1 文件与文件名 182
    12.1.2 文件分类 182
    12.1.3 C语言的流式文件 183
    12.1.4 文件类型FILE 183
    12.1.5 读文件与写文件 184
    12.1.6 缓冲文件系统 184
    12.2 文件的打开与关闭 184
    12.2.1 文件的打开——fopen()函数 185
    12.2.2 文件的关闭——fclose()函数 186
    12.3 常用的文件读写操作库函数 186
    12.3.1 读/写1个字符 186
    12.3.2 读/写1个字符串——fgets()和fputs()函数 189
    12.3.3 读/写1个数据块——fread()和fwrite()函数 191
    12.3.4 对文件进行格式化读/写——fscanf()和fprintf()函数 191
    12.3.5 读/写函数的选用原则 192
    12.4 读写位置指针与文件定位 192
    12.4.1 读写位置指针复位函数rewind() 192
    12.4.2 随机读写与fseek()函数 192
    12.4.3 返回文件当前位置的函数ftell() 193
    12.5 出错检测 193
    12.5.1 ferror()函数 193
    12.5.2 clearerr()函数 193
    12.6 软件工程与方法 194
    12.6.1 软件工程评述 194
    12.6.2 方法与技巧 194
    12.7 本章小结 194
    12.8 习题 195
    第13章 综合应用——FoxBASE+模拟系统 197
    13.1 FoxBASE+及其模拟系统简介 197
    13.1.1 FoxBASE+库文件的逻辑结构与存储结构 197
    13.1.2 模拟系统功能简介 199
    13.2 算法设计要点与参考源程序 199
    13.2.1 数据结构头文件(Foxsys.h) 199
    13.2.2 源程序文件(Foxsys.c) 200
    13.3 软件工程与方法 209
    13.3.1 增强程序健壮性的基本方法——校验并规范化 209
    13.3.2 处理可变长度数据的基本方法——动态处理 210
    13.4 C语言程序设计实训项目 210
    13.4.1 理解题 210
    13.4.2 程序设计题 211
    附录A ASCII编码表(基本部分) 212
    附录B C语言的运算符和结合性 213
    附录C 标准库函数 214
    附录D 控制语句和编译预处理命令索引 219
    附录E TC++ 3.0的安装、配置、多源文件的编译连接与程序调试 222
    附录F 在VC++ 6.0环境中运行C语言程序的基本操作 227
    参考文献 231
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册