新書推薦:
《
微观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:HK$
155.7
《
Python贝叶斯深度学习
》
售價:HK$
89.4
《
文本的密码:社会语境中的宋代文学
》
售價:HK$
67.2
《
启微·狂骉年代:西洋赛马在中国
》
售價:HK$
78.4
《
有趣的中国古建筑
》
售價:HK$
67.0
《
十一年夏至
》
售價:HK$
76.2
《
如何打造成功的商业赛事
》
售價:HK$
89.5
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:HK$
58.2
|
編輯推薦: |
本书注重培养学生综合运用相关知识解决实际问题的能力,内容包括:算法及其描述方法、程序设计基础、数组及字符串、复杂数据类型、指针、函数、文件、系统开发与链表、位运算和预处理。本书注重应用性和实践性,通过一些典型案例的解析,可进一步加强学生对C 语言的理解,培养学生综合运用相关知识解决实际问题的能力。
|
內容簡介: |
本书是普通高等教育十三五规划教材,在编写过程中,采用案例教学法,将烦琐而抽象的语法规则融入具体的例子当中,便于读者理解和掌握相关知识点。本书注重培养学生综合运用相关知识解决实际问题的能力,内容包括:算法及其描述方法、程序设计基础、数组及字符串、复杂数据类型、指针、函数、文件、系统开发与链表、位运算和预处理。本书注重应用性和实践性,通过一些典型案例的解析,可进一步加强学生对C 语言的理解,培养学生综合运用相关知识解决实际问题的能力。本书适合作为普通高等院校计算机相关专业的教材,也可作为社会培训班及C 程序爱好者的参考用书。
|
關於作者: |
祁建宏,男,1972年6月出生,甘肃省临洮县人,1995年6月毕业于西北师范大学计算机应用专业,1995年7月始,先后在兰州师专计算中心、计算机系及兰州城市学院信息工程学院、电子与信息工程学院工作至今,主要从事与计算机相关的教学及研究工作,主要研究方向为算法设计与优化,以第一作者身份先后发表省级以上论文十多篇,主编教材两部,参编五部,主持及参与校级直至国家级各类项目十多项
|
目錄:
|
第1 章 算法及其描述方法 ....................................................................... 1
1.1 为什么要编写程序 ................................................................ 1
1.2 算法的概念及基本特征 ......................................................... 2
1.3 结构化程序设计方法 ............................................................ 3
1.4 算法的几种描述方法 ............................................................ 5
1.4.1 自然语言 ........................................................................5
1.4.2 流程图 ............................................................................5
1.4.3 N-S 图 ...........................................................................6
1.4.4 计算机语言 .....................................................................7
1.4.5 伪代码 ............................................................................9
1.5 C 语言简介 ........................................................................10
1.6 C 语言程序上机调试过程 .....................................................11
1.6.1 C 语言程序的编制运行过程 ............................................ 11
1.6.2 VC 6.0 的启动 ............................................................... 12
1.6.3 VC 6.0 的关闭 ............................................................... 12
1.6.4 VC 6.0 中新程序的建立及调试运行 ................................. 12
1.6.5 当前源程序及相关环境的关闭 ......................................... 15
1.6.6 已存在的程序文件的打开及运行 ..................................... 15
习题 .........................................................................................16
第2 章 程序设计基础............................................................................. 18
2.1 信息处理流程及其在C 语言中的基本实现方法 .......................18
2.1.1 信息处理流程概述 ......................................................... 18
2.1.2 数据的输入、存储、加工处理及输出流程示例 .................. 19
2.2 顺序结构程序设计..............................................................22
2.3 格式化输出及输入函数 ........................................................24
2.3.1 格式化输出函数printf .................................................. 24
2.3.2 格式化输入函数scanf ................................................. 27
2.4 选择结构程序设计..............................................................27
2.5 循环结构程序设计 ..............................................................36
2.6 三种控制结构的综合应用 .....................................................44
2.7 标识符及其命名规则...........................................................57
2.8 常量、变量及数据类型 ........................................................58
2.8.1 变量 ............................................................................. 58
2.8.2 数据类型 ...................................................................... 59
2.8.3 常量 ............................................................................. 61
2.9 运算符及其优先级和结合性 ..................................................61
目 录CONTENTS
2.9.1 运算符的优先级及结合性概述 ......................................... 61
2.9.2 常见运算符及其相关说明 ............................................... 63
2.9.3 有关结合性的解释 ......................................................... 65
2.10 不同类型数据间的转换与运算 .............................................66
2.10.1 隐式自动转换 .............................................................. 66
2.10.2 显式强制转换 .............................................................. 68
习题 .........................................................................................69
第3 章 数组及字符串............................................................................. 74
3.1 一维数组 ...........................................................................74
3.1.1 一维数组的定义............................................................. 74
3.1.2 一维数组元素的引用 ...................................................... 75
3.1.3 一维数组的初始化 ......................................................... 76
3.2 二维及多维数组..................................................................87
3.2.1 二维数组的定义 ............................................................ 87
3.2.2 多维数组 ...................................................................... 92
3.3 字符串 ..............................................................................92
3.3.1 字符串的本质 ................................................................ 92
3.3.2 字符数组 ...................................................................... 93
3.3.3 常用字符串操作函数 ...................................................... 93
3.3.4 字符串应用举例 ............................................................ 96
习题 .........................................................................................98
第4 章 复杂数据类型........................................................................... 100
4.1 C 语言中的复杂数据类型概述 .............................................100
4.2 结构体 ............................................................................100
4.2.1 结构体类型的定义 ....................................................... 101
4.2.2 结构体变量的定义 ....................................................... 102
4.2.3 结构体变量的引用 ....................................................... 104
4.2.4 结构体变量的赋值 ....................................................... 104
4.3 共用体............................................................................108
4.3.1 共用体类型的定义 ....................................................... 109
4.3.2 共用体变量的定义 ....................................................... 110
4.3.3 共用体变量的引用 ....................................................... 111
4.3.4 共用体变量的赋值....................................................... 112
4.4 枚举类型 .........................................................................115
4.4.1 枚举类型的定义 .......................................................... 116
4.4.2 枚举型变量的定义....................................................... 116
4.4.3 枚举型变量的赋值 ....................................................... 116
4.4.4 枚举类型有关说明 ....................................................... 116
习题 .......................................................................................119
第5 章 指针.................................................................................. 121
5.1 C 语言中的指针概述 .........................................................121
5.1.1 指针与指针变量........................................................... 121
5.1.2 指针相关运算.............................................................. 125
5.2 指针与数组的关系 ............................................................126
5.2.1 数组的指针与指向一维数组元素的指针变量 ................... 126
5.2.2 一维数组与指针变量的关系 .......................................... 126
5.2.3 指向指针的指针变量 .................................................... 128
5.2.4 指针数组元素类型为指针的数组 ............................. 128
5.2.5 指针数组与指向指针的指针变量的关系.......................... 129
5.2.6 二维数组与指针变量的关系 .......................................... 131
5.3 指针与动态内存分配.........................................................135
5.3.1 C 语言内存管理概述 .................................................... 136
5.3.2 内存空间的动态分配 .................................................... 137
5.3.3 动态释放内存.............................................................. 138
5.3.4 动态内存分配的几种不同情形....................................... 138
5.3.5 常见内存错误及其对策................................................. 142
5.4 指针与字符串...................................................................142
5.4.1 用C 语言处理字符串的两种不同形式 ............................ 143
5.4.2 字符型指针变量与字符型数组....................................... 144
习题 .......................................................................................145
第6 章 函数.................................................................................. 146
6.1 C 语言函数简介................................................................146
6.1.1 函数的概念、分类 ....................................................... 146
6.1.2 标准函数的使用........................................................... 146
6.2 自定义函数 ......................................................................148
6.2.1 自定义函数概述........................................................... 148
6.2.2 自定义函数的一般定义形式 .......................................... 150
6.2.3 自定义函数的调用 ....................................................... 150
6.2.4 模块化程序设计 .......................................................... 153
6.3 函数中参数的传递方式 ......................................................155
6.3.1 按值传送 .................................................................... 156
6.3.2 按地址传送 ................................................................. 156
6.3.3 两种不同参数传递方式的选择 ....................................... 157
6.4 变量的作用域、生存期及存储类型 ......................................158
6.4.1 变量的作用域 .............................................................. 158
6.4.2 变量的生存期 .............................................................. 158
6.4.3 局部变量 .................................................................... 158
6.4.4 全局变量 .................................................................... 160
6.4.5 文件变量.................................................................... 161
6.4.6 变量的存储类型 .......................................................... 162
6.4.7 auto 存储类型的变量与作用范围 ................................... 162
6.4.8 static 存储类型的变量与作用范围 ................................. 162
6.4.9 register 存储类型的变量与作用范围 .............................. 163
6.4.10 extern 存储类型的变量与作用范围 .............................. 164
6.4.11 外部变量在多文件系统中的应用 .................................. 166
6.4.12 变量作用域、生存期及存储类型小结 ........................... 167
6.5 函数的嵌套与递归调用 ......................................................168
6.5.1 函数的嵌套调用 ........................................................... 168
6.5.2 函数的递归调用........................................................... 168
习题 .......................................................................................172
第7 章 文件 .................................................................................. 173
7.1 文件概述 .........................................................................173
7.1.1 文件的概念 ................................................................. 173
7.1.2 文件的分类 ................................................................. 173
7.2 文件操作 .........................................................................175
7.2.1 文件指针 .................................................................... 176
7.2.2 文件操作基本步骤示例 ................................................ 176
7.3 文件操作相关函数 ............................................................178
7.3.1 文件的打开:fopen 函数 ............................................. 178
7.3.2 文件的关闭:fclose 函数 ............................................. 179
7.3.3 文件格式化输出函数:fprintf ....................................... 180
7.3.4 文件格式化输入函数:fscanf....................................... 180
7.3.5 判断是否到文件尾函数:feof ....................................... 180
7.3.6 文件数据块读 写函数:fread 和fwrite ...................... 180
7.3.7 文件内部指针的定位 .................................................... 181
7.3.8 清除文件缓冲区函数:fflush ........................................ 184
习题 .......................................................................................186
第8 章 系统开发与链表 ....................................................................... 187
8.1 软件工程简介 ...................................................................187
8.1.1 软件工程概述 .............................................................. 187
8.1.2 软件工程中的瀑布模型 ................................................. 188
8.2 班级基本信息管理系统开发示例 ....................................190
8.2.1 问题的定义 ................................................................. 191
8.2.2 可行性研究 ................................................................. 191
8.2.3 需求分析 .................................................................... 191
8.2.4 系统设计(概要设计) ................................................... 192
8.2.5 详细设计 .................................................................... 193
8.2.6 编码 ........................................................................... 196
8.2.7 测试 ........................................................................... 200
8.2.8 运行及维护 ................................................................. 200
8.3 链表与系统开发................................................................201
8.3.1 问题的定义 ................................................................. 201
8.3.2 可行性研究 ................................................................. 201
8.3.3 需求分析 .................................................................... 201
8.3.4 系统设计(概要设计) ................................................... 201
8.3.5 详细设计(算法设计) ................................................... 204
8.3.6 编码 ........................................................................... 208
8.3.7 测试 ........................................................................... 214
8.3.8 运行与维护 ................................................................. 214
习题 .......................................................................................214
第9 章 位运算 ..................................................................................... 215
9.1 C 语言中的位运算 .............................................................215
9.2 位运算实际应用 ................................................................217
9.2.1 按位与、或、异或及取反 ............................................. 217
9.2.2 移位运算 .................................................................... 218
9.2.3 典型应用案例 .............................................................. 219
9.3 位域 ................................................................................222
9.3.1 位域类型定义 .............................................................. 223
9.3.2 位域变量定义 .............................................................. 224
9.3.3 位域的使用 ................................................................. 224
9.3.4 位域的空间分配 .......................................................... 225
习题 .......................................................................................226
第10 章 预处理 .................................................................................. 227
10.1 预处理简介 ....................................................................227
10.2 宏定义 ...........................................................................227
10.2.1 无参宏定义 ............................................................... 228
10.2.2 带参宏定义 ............................................................... 228
10.2.3 取消宏定义 ............................................................... 230
10.3 文件包含.......................................................................230
10.4 条件编译 .......................................................................231
习题 .......................................................................................233
附录A 学习建议 ................................................................................. 234
附录B 常见标准函数 .......................................................................... 235
附录C C 语言关键字.......................................................................... 253
附录D ASCII 码表.............................................................................. 255
附录E C 语言常见错误举例说明........................................................ 259
参考文献 ................................................................................................ 267
|
內容試閱:
|
前 言FOREWORD
2010 年《国家中长期教育改革和发展规划纲要20102020》颁布
以来,教育部就开始筹划高等教育体制和结构改革,核心是改变以往单一
的学术型或研究型办学模式,将高职、新建地方本科院校、独立学院纳
入现代职业教育体系,对高等学校实行分类管理。2014 年6 月,国务院
出台《关于加快发展现代职业教育的决定》,同时,教育部等6 部委联合
印发《现代职业教育体系建设规划(20142020 年)》,今后高校分为研
究型高校、应用技术型高校、高等职业学校。另外,2014 年3 月教育部
表示高考改革方案分为技术技能人才高考和目前的学术型人才高考。这
些措施,都表明我国对应用型人才培养的重视程度在逐渐提高。
程序设计的特点之一是技术实践性很强,应用型特征明显,但长期以
来,高校中对该类课程的教育都是以理论为主,培养的人才实践能力差。
如何满足市场对程序设计人才的实际需求,改变传统授课模式,培养出
既掌握理论知识、具有很强实践动手能力,又能综合运用所学相关知识
高效而准确地解决实际问题的软件开发人才,是高校计算机人才培养方
面的一个重要课题。
C 语言自推向市场,就以其丰富的数据类型及运算符、自由灵活的编
程风格、强大的硬件编程能力等独特优点,始终牢牢占据编程市场很大
的份额。时至今日,许多学校的计算机语言教学,通信、控制等领域的
软件开发,都首选C 语言。
本书作者全部为兰州城市学院一线教师。在编写过程中,借鉴了我校
这些年教学改革成功经验,通过编程解决实际问题,达到掌握语言本身
相关规则的目的,同时培养读者解决实际问题的能力。此外,课后还配
以针对性的习题,以巩固对相关知识点的理解掌握。与同类书相比,本
书具有以下优点:
(1)开发环境采用目前C 语言教学及考试的主流版本VC 6.0。
(2)采用案例教学法,将烦琐而抽象的语法规则融入具体例子当中,
有助于激发学习兴趣,培养学生解决实际问题的能力。
(3)增加了传统课本所不具备的图形模式编程案例,以满足部分学
员图形模式编程需要。
(4)对于程序设计基础知识,采取了先实践,后总结的组织模式,
使学生从实践中产生感性认识,再能动地发展到理性认识,最后从理性
认识再回到实践,更容易为初学者所接受。
(5)增加了数据结构的基础性内容,以提高读者综合编程能力。
(6)增加了软件工程的基础性内容,通过完整案例介绍了软件
生命周期,以便读者掌握完整软件开发的一般流程。
(7)针对C 语言学习中的难点指针及其最常见应用场合链
表,专门设计了案例以加强对这部分内容的理解及掌握。
(8)专门增加了行业应用案例(主要包含在配套的实践教程中),加
大了编程技术在各行业应用的教学力度,增强编程实用性,从而提高学
生学习兴趣,扩大学生知识面。
(9)习题以程序为主,通过大量的练习培养学生实践动手能力。
(10)附录中收录大量实用资料,方便学生参考。
本书全面介绍了C 语言本身的相关内容,另外,还涉及数据结
构软件工程计算机组成原理课程的部分内容。
全书共分10 章,内容包括:算法及其描述方法、程序设计基础、数
组及字符串、复杂数据类型、指针、函数、文件、系统开发与链表、位
运算和预处理。
前7 章介绍C 语言编程基础知识;第8 章主要是对前述内容的综合
应用,讲述完整系统开发的一般流程及单链表的相关操作;第9 章介绍了
位运算,以重点满足利用C 语言进行通信、控制等领域软件开发的需求;
第10 章讲述预处理,用于增强软件可移植性。
本书由祁建宏任主编,刘子江、屈宜丽、张明、任志国、郭媛参与编
写。其中:郭媛编写了第1 章,屈宜丽编写了第2 章,刘子江编写了第3 章,
张明编写了第4、5 章,任志国编写了第6、7 章,祁建宏编写了第8~10 章,
附录由屈宜丽和郭媛共同编写。全书由祁建宏统稿,书中涉及的一些非计
算机领域的案例,得到了刘子江、郭媛两位老师的指导和建议。
本书配套的实验指导书重点介绍了以编程方式解决实际问题时常用的
一些经典算法及典型软件系统的开发过程,同时专门收集了一些用计算机
技术编程解决的非计算机专业方面的问题,以针对性地训练实践动手能力
和解决现实问题的能力。
由于时间仓促,编者水平有限,书中难免存在疏漏与不妥之处,敬请
广大读者批评指正。
编者
2019 年12 月
|
|