新書推薦:

《
城市文明蓝皮书:全球城市文明发展报告(2024-2025)
》
售價:HK$
140.8

《
未来生活金融指南
》
售價:HK$
63.8

《
《法官如何裁判》(在法律规范体系的框架下如何寻求个案公正的判决之道,麦读译丛18)
》
售價:HK$
86.9

《
自由的危机:全球视角下的英国内战史
》
售價:HK$
173.8

《
索恩丛书·俾斯麦:欧洲风暴
》
售價:HK$
196.9

《
元首政治与帝国治理——以赫洛迪安《罗马帝国史》为考察对象
》
售價:HK$
74.8

《
镜观中国 1930年代的中国人、中国事和中国景 “走近中国”译丛系列
》
售價:HK$
85.8

《
地中海十城:西方文明的古典基因
》
售價:HK$
97.9
|
編輯推薦: |
1. 用C 语言编写的程序,充分利用c 库实现丰富的功能。
2. 介绍的大部分的知识,符合C语言的标准,用户可以无障碍切换到C语言的学习。
3. 通过工程应用实例展现C/C 语言的相关应用,方便读者快速掌握程序设计的思想。
4.注重在Windows与Linux等多平台的编写编译,满足零基础读者学习后在嵌入式、机器学习、工程应用等方面的进一步开发学习。
4. 提供丰富的在线教学与实验资源,满足边学边练,适合于没有任何编程基础的学习者选取的入门教材。
5. 适合于高等院校各专业的本科生的通识教材。
|
內容簡介: |
本书是一本密切结合计算机语言最新发展的程序设计入门教材,专为初学者量身打造。全书系统阐述了C&C 语言程序设计的基本内容、常用算法设计及应用。
來源:香港大書城megBookStore,http://www.megbook.com.hk 全书共12章,内容涵盖了C&C 语言的3种控制结构、函数、数组、字符串、自定义数据类型、文件操作和基本的面向对象程序设计。同时,本书还介绍了常用的顺序与链表结构、通用算法和C STL。本书案例习题丰富,并配有在线课程与实验。
本书符合C99标准和C 11标准,同时适当拓展了更高版本知识点,以培养读者的计算思维为目标,注重编程能力的训练。通过数据处理和工程应用中的实际案例,引出相关知识点,有助于读者理解程序设计的思想和方法,为进一步学习C语言底层嵌入式应用程序编程以及C 语言进行大型应用软件系统的开发奠定基础。
本书是对“新工科”教学实践的探索,是国家级一流本科课程的配套教材。面向零编程基础的读者,适合作为高校各专业低年级学生学习程序设计的入门教材。
|
目錄:
|
第1章计算机语言程序设计概述1
1.1程序设计语言发展1
1.1.1机器语言到高级语言1
1.1.2高级语言翻译成机器语言2
1.2C&C 语言概述3
1.2.1C&C 语言的发展3
1.2.2C&C 语言的特点3
1.3算法简介3
1.3.1算法的特点与描述3
1.3.2算法的评价5
1.3.3数据结构与算法“一题多解”6
1.4三大程序设计思想7
1.4.1面向过程程序设计7
1.4.2面向对象程序设计8
1.4.3函数式程序设计8
1.5认识C&C 源程序8
1.5.1程序示例8
1.5.2程序代码说明10
1.6C&C 开发环境13
1.6.1常用的编译器及IDE13
1.6.2AI助力编程14
1.7实用知识: 常见的编译和运行错误14
1.7.1常见的编译错误14
1.7.2常见的运行错误15
1.8练习与思考16
第2章顺序结构与数学表达式18
2.1顺序结构18〖3〗程序设计基础及应用(C&C 语言)第2版目录〖3〗2.2基本数据类型与变量19
2.2.1基本数据类型简介19
2.2.2变量与内存的关系19
2.2.3变量定义与初始化20
2.2.4赋值运算符与自增/自减运算符20
2.2.5陷阱: 变量定义与赋值的常见问题22
2.3常量24
2.3.1字面常量24
2.3.2符号常量25
2.3.3#define宏定义26
2.3.4sizeof运算符28
2.4数学运算符与表达式28
2.4.1算术运算符28
2.4.2算术表达式及优先级29
2.4.3复合赋值运算符29
2.4.4逗号运算符29
2.4.5陷阱: 算术运算的常见问题30
2.5位运算符和表达式31
2.5.1位运算符及功能31
2.5.2位运算的应用32
2.6类型转换33
2.6.1隐式类型转换33
2.6.2显式类型转换33
2.6.3C 的类型推导34
2.7输入与输出34
2.7.1C 的cin和cout35
2.7.2库函数scanf和printf38
2.7.3C 20的format格式化40
2.7.4一个字符的输入与输出41
2.8实用知识: 常用的数学库函数42
2.8.1欧氏距离计算两个坐标点距离42
2.8.2半正矢法计算两个经纬度点的距离43
2.9简单程序算法及应用44
2.9.1交换两个整数的值44
2.9.2字母加密45
2.10练习与思考46
第3章选择结构及相关表达式48
3.1选择结构48
3.2关系运算符和关系表达式49
3.2.1关系运算符49
3.2.2关系表达式及应用49
3.2.3陷阱: 关系表达式的常见问题50
3.3逻辑运算符和逻辑表达式50
3.3.1逻辑运算符50
3.3.2逻辑表达式及应用51
3.4if语句52
3.4.1标准if…else…语句52
3.4.2简单的if语句53
3.4.3复杂的if…else if…else语句53
3.4.4if语句的嵌套55
3.4.5条件运算符及条件表达式55
3.5switch语句56
3.5.1switch语句实现多分支结构56
3.5.2break语句的合理使用57
3.5.3if与switch的混用57
3.6实用知识: 通用工具函数58
3.6.1生成随机数函数58
3.6.2进程控制函数59
3.7选择结构算法及应用60
3.7.1判断整数m是否能被n整除60
3.7.2大写字母转换成小写字母60
3.7.3简单的四则运算器61
3.8练习与思考62
第4章自定义函数与封装66
4.1函数与结构化程序设计66
4.2自定义函数的声明与定义68
4.2.1函数的声明68
4.2.2函数的定义69
4.2.3函数返回值70
4.2.4陷阱: 函数定义的常见问题71
4.3函数的调用72
4.3.1函数调用的格式72
4.3.2陷阱: 函数调用的常见问题73
4.3.3函数的嵌套调用74
4.3.4调用内联函数76
4.4函数的参数传递76
4.4.1参数的值传递76
4.4.2C 的引用传递77
4.4.3const修饰引用形参79
4.5变量的作用域与生存期79
4.5.1局部变量的作用域与生存期79
4.5.2全局变量的作用域与生存期80
4.5.3静态变量的作用域与生存期81
4.6C 的函数重载与默认参数82
4.6.1C 的函数重载82
4.6.2C 的默认参数83
4.6.3陷阱: 函数重载的二义性84
4.7递归思想——递归函数85
4.7.1递归函数的定义85
4.7.2递归函数的调用过程86
4.7.3递归调用中的“栈”88
4.8实用知识: C 函数高级特性88
4.8.1返回类型推导89
4.8.2返回类型后置89
4.8.3匿名函数(Lambda)89
4.9自定义函数的应用90
4.9.1获得用户选择的购物菜单90
4.9.2递归求快速幂问题91
4.10练习与思考92
第5章迭代与循环结构95
5.1循环结构95
5.2循环控制语句96
5.2.1while语句96
5.2.2for语句98
5.2.3do…while语句100
5.2.4陷阱: 循环的常见问题101
5.3循环和迭代的提前结束102
5.3.1break语句102
5.3.2continue语句退出迭代104
5.4循环结构的嵌套105
5.4.1循环嵌套的语句105
5.4.2多种循环的优化107
5.5循环与递归108
5.6实用知识: 循环读入与出错处理110
5.6.1循环读入直到满足特定条件110
5.6.2控制多行输入直到EOF结束110
5.6.3忽略输入错误的输入控制111
5.7循环结构的算法及应用113
5.7.1数学表达式的求解113
5.7.2多种方法求一组数的平均值114
5.7.3循环执行用户选择菜单功能115
5.8练习与思考116
第6章数值型数组与数据处理119
6.1一维数组119
6.1.1一维数组的定义与存储119
6.1.2数组元素的使用121
6.1.3基于范围的for循环123
6.2一维数组与指针124
6.2.1指针与指针变量124
6.2.2函数参数的址传递126
6.2.3使用指针变量访问数组128
6.2.4陷阱: 数组越界问题129
6.3一维数组与函数129
6.3.1一维数组作为函数的形参129
6.3.2返回指针的函数133
6.4实用知识: 数据处理的实用算法133
6.4.1中值与方差(标准差)计算134
6.4.2返回数组的最大值/最小值及下标134
6.4.3顺序查找与折半查找136
6.4.4冒泡排序与选择排序137
6.4.5插入与删除139
6.5二维数组与多维数组141
6.5.1二维数组的定义与存储141
6.5.2二维数组元素的使用142
6.5.3二维数组与指针143
6.5.4二维数组与函数144
6.5.5多维数组145
6.6指针数组与二级指针145
6.6.1指针数组146
6.6.2二级指针147
6.7数据处理与工程应用147
6.7.1实现购物菜单的结账子功能147
6.7.2接收不定个数的整数148
6.7.3计算日平均温度与最大温差150
6.7.4动态规划算法应用实例151
6.8练习与思考152
第7章字符型数组与字符串处理155
7.1字符数组的定义与初始化155
7.1.1字符数组的定义155
7.1.2字符数组的初始化156
7.1.3字符数组元素的使用156
7.1.4陷阱: 字符串使用=和==的问题157
7.2字符数组的输入与输出157
7.2.1接收一个单词给字符数组157
7.2.2接收一行句子给字符数组158
7.2.3输出字符串159
7.2.4陷阱: 混合输入字符串和数字的问题160
7.3字符数组与函数160
7.3.1字符数组作为函数的形参160
7.3.2数组作为函数的返回值163
7.3.3字符串数组164
7.4字符串与数值型的转换函数165
7.4.1利用sprintf函数将数值转换为字符串165
7.4.2利用sscanf 函数将字符串转换为数值165
7.5实用知识: 字符串处理函数165
7.5.1常用函数166
7.5.2字符或子串查找与替换167
7.5.3字符串分割168
7.5.4内存处理函数168
7.6字符串处理综合应用169
7.6.1所有单词首字母大写169
7.6.2合并两个有序字符串170
7.6.3身份证号码是否合法170
7.7练习与思考171
第8章文件与数据处理173
8.1文件概述173
8.1.1文件存储类型173
8.1.2文件对象173
8.2C 文件打开与关闭174
8.2.1文件的打开174
8.2.2文件的关闭176
8.3C 的文件读写176
8.3.1fstream类的常用检查方法176
8.3.2文本文件的读写177
8.3.3二进制文件的读写180
8.3.4随机读写181
8.4C语言的文件操作183
8.4.1C语言的文件打开与关闭183
8.4.2C语言的文件读写184
8.5实用知识: 带参数的main函数186
8.6文件应用示例187
8.6.1密码文件的读写187
8.6.2学生成绩分段统计效果图188
8.6.3温度周报文件的读写190
8.7练习与思考190
第9章自定义数据类型192
9.1C 的类与对象192
9.1.1类的定义192
9.1.2创建和使用对象195
9.1.3构造函数和析构函数197
9.1.4对象数组199
9.1.5运算符重载200
9.2C 类的进一步定义202
9.2.1C 类的继承性202
9.2.2C 类的多态性206
9.2.3命名空间210
9.3typedef类型与using210
9.3.1typedef211
9.3.2using211
9.4结构体211
9.4.1结构体类型的定义211
9.4.2结构体类型变量212
9.4.3结构体类型的数组215
9.5联合体216
9.5.1联合体的定义与应用216
9.5.2位段的定义与应用217
9.6枚举类型218
9.6.1枚举类型的定义与使用218
9.6.2C 的枚举类220
9.7实用知识: C 的string类220
9.7.1string类对象的定义220
9.7.2string 类成员函数221
9.7.3string 类的运算符222
9.7.4string类对象的输入与输出222
9.7.5string与其他类型转换223
9.7.6C 正则表达式224
9.8自定义类型的综合应用226
9.8.1自定义日期类226
9.8.2自定义类型数据的文件读写 228
9.9练习与思考229
第10章指针进阶应用232
10.1void指针232
10.2函数指针与函数对象233
10.2.1函数指针233
10.2.2函数对象234
10.3动态内存分配与回收235
10.3.1栈内存与堆内存235
10.3.2在C 中动态分配内存236
10.3.3含有动态内存分配成员的类238
10.3.4malloc与free函数239
10.4C 的智能指针240
10.4.1unique_ptr240
10.4.2shared_ptr240
10.4.3weak_ptr241
10.5链式数据结构241
10.5.1单链表242
10.5.2单链表的访问243
10.5.3单链表结点的插入243
10.5.4单链表结点的删除245
10.6实用知识: 通用算法函数246
10.6.1改变序列的算法247
10.6.2不修改序列的算法247
10.6.3有序范围的操作249
10.6.4for_each函数249
10.7链表与算法的应用250
10.7.1链表的应用250
10.7.2算法的应用251
10.8练习与思考252
第11章泛型编程与C 标准模板库254
11.1模板与泛型编程机制254
11.1.1C 的函数模板254
11.1.2C 中的类模板255
11.1.3C 的可变参数模板256
11.1.4C11的泛型宏257
11.2C 模板类pair与tuple257
11.2.1pair257
11.2.2tuple258
11.2.3比较pair与tuple259
11.3C STL组件259
11.3.1容器类型259
11.3.2迭代器260
11.4C 顺序容器261
11.4.1array与vector261
11.4.2list与forward_list263
11.5C 关联容器264
11.5.1set与multiset集合265
11.5.2map与multimap映射265
11.6C 容器适配器266
11.6.1stack266
11.6.2queue与priority_queue266
11.7实用知识: C 数值计算268
11.7.1数值界限268
11.7.2泛型数值计算算法268
11.7.3线性代数运算269
11.8数据处理与统计分析270
11.8.1数据分类汇总及Top n排名270
11.8.2统计频次最高的前n个单词271
11.9练习与思考272
第12章软件工程项目开发应用技术274
12.1程序设计的多文件结构274
12.1.1多文件工程274
12.1.2条件编译指令276
12.2静态链接库276
12.2.1创建静态链接库277
12.2.2部署静态链接库278
12.3异常处理278
12.4GUI与可视化设计279
12.4.1GUI框架和工具279
12.4.2C 语言的GUI程序279
12.4.3EasyX绘图实例280
12.5练习与思考282
|
內容試閱:
|
自2020年《程序设计基础及应用(C&C 语言)》首版问世以来,已在全国多所高校中历经万余名师生的教学实践,收获了众多宝贵反馈。其配套数字资源更是荣获2021年中国计算机教育大会计算机类教学资源建设优秀课程配套资源一等奖。2024年,本书荣获“北京高校优质本科教材”奖。作为国家级线上线下混合式一流本科课程《计算机语言程序设计》的配套教材,本书亦是首批新工科项目的重要建设成果,深度展现了C&C 语言技术的最新进展,尤其是在数据处理应用领域的教学研究与改革成果。
本次改版立足于教学发展前沿趋势,以学生为中心,旨在培养新工科背景下所需的人才。通过“教学研用”四位一体的创新教学模式,全面融合工程教育认证标准、课程思政理念、学科竞赛经验以及一流本科课程建设成果,实现了课程建设与数字教材的完美统一。我们的核心目标是激发学生的创新思维,提升他们解决复杂问题的能力,特别是在数据处理与大数据领域。全书在保持C语言面向过程与C 面向对象基础上,从知识体系到教材形式都进行了全面革新,以确保教材内容的时效性、准确性和教学的有效性。相较于第一版,本版的主要改动与特色包括:
1. 形态升级。通过二维码嵌入视频、文档等多媒体资源,将在线课程、在线实验与教材紧密融合,极大丰富了学习体验。
2. 章节重组。重新规划章节结构,新增函数式程序设计、匿名函数、函数对象、正则表达式等现代编程知识,深化泛型编程、C STL及算法内容,并通过二维码提供拓展实例和讲解,使内容更为丰富实用。
3. 实例更新。修订各章实用知识与案例,强化科学计算、文本数据处理、可视化、文件交互、算法与库等实践环节,助力读者深入理解C&C 语言在实际问题中的应用,培养编程思维和实践能力,同时为参加天梯赛、CSP、PAT等竞赛及认证的读者提供坚实基础。
4. 习题增强。大幅增加头歌与PTA平台的在线实训题目,并通过二维码与在线课程提供题解资料与视频,引导读者通过AI助力编程,提升思考与总结能力,进而增强解决问题与学习新技术的能力。
5. 代码优化。部分示例为完整程序,其余为程序段,旨在激发读者思考并自行补充完整,通过实践验证加深程序性知识理解,促进自我反思。
6. 教学支持强化。课程、教材及实验深度融合,读者可通过附录了解加入方法,教师可联系作者获得更多权限,以便在公共平台上开展混合式教学。读者亦可自主加入在线课程与实验,充分利用教材资源。
7. 知识图谱引领。本书采用知识图谱贯穿内容,将丰富资源、经典案例和代表性实践融为一体,实现线上线下资源的无缝对接,有效解决了资源分散与知识碎片化问题,满足了数智化时代师生的多元化需求。
书中个别章节加号,通常表示该章节为选读内容,建议学生自主学习。
本教材及其丰富的在线资源,共同构建了一个全方位、多层次的C&C 教学生态系统。读者不仅能够通过课程平台的知识图谱、拓展资料和AI助教功能获得深度学习支持,还能通过在线实验编程,将理论知识转化为实践技能,享受沉浸式学习体验。
我们期待《程序设计基础及应用(C&C 语言)》(第2版)能够成为广大教师和学生教学相长的得力助手。我们相信,借助这本教材,学生将能系统掌握C&C 编程的核心知识与技能,为未来的学术深造与职业发展奠定坚实的基石。
本书的修订工作由陈春丽与王振华两位老师完成,其中,陈春丽老师精心打造了第1~7、第9~10章的内容,王振华老师负责了第8章、第11~12章的编纂。此外,中国地质大学(北京)信息工程学院计算机基础教学团队的教师们对本书的教学实践提出了诸多宝贵建议与实践案例,并积极参与了国家级一流本科课程“计算机语言程序设计”的建设,共同促使本版教材为一套配套齐全、形态新颖的教学用书。
本书获得中国地质大学(北京)“十四五”本科规划教材立项支持。此外,还要特别感谢全国高等学校计算机教育研究会和全国高等院校计算机基础教育研究会对本书修订工作的立项支持。同时,也向清览、超星、PTA、头歌等平台表达诚挚的谢意,感谢它们为本书在线资源的发布提供了有力的技术支持与广泛的传播渠道。
国家级一流本科课程“计算机语言程序设计”的课程网站为https://www.xueyinonline.com/detail/245126882,所有内容免费。欢迎广大读者多提宝贵意见和建议,指出书中错误,可以直接发送邮件至ccl@cugb.edu.cn,作者非常感谢并会及时回复。
作者中国地质大学(北京)信息工程学院
|
|