登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書

『簡體書』C语言零起点精进攻略——C/C++入门·提高·精通

書城自編碼: 3492501
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 爱编程的魏校长 主编
國際書號(ISBN): 9787122357533
出版社: 化学工业出版社
出版日期: 2020-03-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 129.4

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
西域考古记 世界科普名著经典译丛(精装)
《 西域考古记 世界科普名著经典译丛(精装) 》

售價:HK$ 106.8
数字图像处理——使用MATLAB分析与实现(第2版)
《 数字图像处理——使用MATLAB分析与实现(第2版) 》

售價:HK$ 82.8
陪你的情绪坐一坐
《 陪你的情绪坐一坐 》

售價:HK$ 71.8
公开的密谋
《 公开的密谋 》

售價:HK$ 70.8
可怕的战争——美国内战及其创伤(第三版)
《 可怕的战争——美国内战及其创伤(第三版) 》

售價:HK$ 177.6
超能团队:提高团队绩效的30个工具   [英]帕梅拉·汉密尔顿
《 超能团队:提高团队绩效的30个工具 [英]帕梅拉·汉密尔顿 》

售價:HK$ 82.8
渡鸦的文化史
《 渡鸦的文化史 》

售價:HK$ 94.8
韦伯政治著作选
《 韦伯政治著作选 》

售價:HK$ 94.8

 

編輯推薦:
1、本书是一本一线程序员教授零起点读者掌握C语言的经验性图书。
2、从计算机原理和数据内存控制原理角度讲解C语言的指令、变量和语句等内容,帮助读者真正理解C语言。
3、C语言的应用陷阱特别多,本书总结整理了这些使用中的陷阱,分布在相关章节,供读者提升内力之用。
4、本书讲解了Linux、Windows系统和手机上操作系统的区别,分析了CPU、硬盘和内存是什么关系,逐步提升读者对程序和系统的理解,这有助于编写更好的程序。
5、跨关思想。书中设定了三个大关,每章设定了一些小的关卡,读者学完一章,想一想,测一测,看自己在哪些知识和技能方面已经过关,就会发现距离自己成为专业程序员更近一步,给读者以学习的动力。
內容簡介:
C语言是学习其他程序设计语言的基础,也是编写硬件相关的嵌入式系统等系统级程序的优秀工具。本书从贴近CPU和内存原理的角度,给读者提供了一个学习实践应用C语言的逐步掌握C语言并成为C程序员的技能提升方案。
全书分5篇17章。前3篇分别讲述C语言的起步知识、控制程序流程的基础、编写基本C代码的组织工具;第4篇包含了编写系统级程序所需要的C指针、结构体、编译预处理等关键知识;第5篇提供了应用C开发程序所需要的技能和初步实践方法。
本书可作为高校学生学习C语言的教材和辅助读物,也可作为中学生参加NOIP竞赛的参考书,还能作为初级嵌入式程序员理解C语言的工具书。
目錄
第1篇 起步知识
第1章 CPU运行原理和C语言003
1.1 CPU是如何工作的 003
1.1.1 指令节拍和流水线 004
1.1.2 摩尔定律让CPU越来越快 004
1.1.3 从CPU指令到程序设计语言 006
1.2 理解计算机程序设计 006
1.2.1 程序是什么 006
1.2.2 程序设计与程序设计语言 007
1.2.3 不断细化问题的结构化程序设计思想 007
1.3 C语言的初步知识 008
1.3.1 C语言的历史 008
1.3.2 C语言程序的特点 009
1.3.3 C语言程序的开发过程 010
1.4 程序生成的工具 010
1.4.1 编译器的概念 011
1.4.2 连接器的概念 011
1.4.3 项目和Building 011
1.5 一个简单的C语言程序 012
1.5.1 学习写第一个C语言程序 012
1.5.2 分析C语言程序的组成部分 012
1.5.3 运行这个程序 013
1.5.4 牛刀小试 013
1.5.5 C程序的构成 014
本章小结 014
第2章 C语言基本功015
2.1 了解电脑内存的运行方式 015
2.1.1 数据和代码都存储在内存中 015
2.1.2 任何数据都需要标识符才能读取 016
2.2 认识和使用标识符 017
2.2.1 标识符的命名规则 017
2.2.2 C语言中标识符的分类 018
2.3 什么是变量 019
2.3.1 了解变量 019
2.3.2 声明变量 019
2.3.3 初始化变量 020
2.4 什么是常量 020
2.4.1 认识常量 020
2.4.2 整型常量 021
2.4.3 浮点型常量 021
2.4.4 字符型常量 022
2.4.5 字符串常量 023
2.4.6 符号常量 023
2.5 C语言程序中数据存储的基本类型 024
2.5.1 存储整型数据 024
2.5.2 存储实型数据 027
2.5.3 存储字符型数据 028
2.6 基于数学程序运算符和表达式 030
2.6.1 在C语句中使用算术运算符 031
2.6.2 赋值运算符 032
2.6.3 用自增、自减运算符来进行运算 034
2.6.4 逗号运算符 035
2.6.5 使用sizeof运算符求变量占用的空间大小 035
2.6.6 使用关系运算符完成条件的选择 037
2.6.7 注意运算符的优先级和括号 038
2.7 数据类型的转换 040
2.7.1 隐式自动转换 040
2.7.2 显式强制转换 043
本章小结 044
第2篇 代码基础
第3章 使用顺序结构编写程序047
3.1 语句与表达式 047
3.1.1 CPU指令是如何变身汇编语言的 047
3.1.2 表达式语句与空语句 048
3.1.3 复合语句 049
3.2 控制屏幕打印 049
3.2.1 使用putchar 输出字符 049
3.2.2 格式化输出函数printf 050
3.2.3 标准错误流 052
3.3 读取键盘输入 052
3.3.1 用getchar 函数输入字符 052
3.3.2 用getch 和getche 函数输入 053
3.3.3 格式化输入函数scanf 054
3.4 输入输出综合示例 057
3.5 操作系统和应用程序 057
3.5.1 应用程序在Windows中是如何被执行的 058
3.5.2 Windows API 和C 运行时库 058
本章小结 059
第4章 使用选择结构编写程序061
4.1 用逻辑运算符实现选择结构 061
4.1.1 逻辑运算符的使用 062
4.1.2 逻辑运算符的优先级与结合性 063
4.1.3 使用逻辑运算符的程序举例 063
4.2 用if语句实现选择结构 064
4.2.1 if语句的使用方法 064
4.2.2 使用if语句的程序举例 064
4.2.3 使用ifelse 结构实现多项选择 065
4.2.4 使用ifelse结构的程序举例 066
4.2.5 if语句的嵌套使用 067
4.2.6 使用if语句嵌套的程序举例 069
4.3 用条件运算符实现简单的选择结构 072
4.3.1 CPU只有JUMP指令 072
4.3.2 专业程序员都会错:悬挂else引发的问题 073
4.3.3 这是语言特性,不是数学公式 074
4.3.4 少用,但可以了解的语言特性 074
4.4 多分支条件选择语句:switch 076
4.4.1 switch语句的结构介绍 076
4.4.2 大多数人理解的switch语句都是错的 077
4.4.3 多个执行结果共用一个条件 079
4.4.4 使用switch语句的程序综合举例 080
本章小结 081
第5章 使用循环结构编写程序083
5.1 用while实现带条件的循环语句 083
5.1.1 while循环语句的结构和功能 083
5.1.2 while循环语句的程序实例 084
5.2 另一种带条件的循环语句:dowhile 086
5.2.1 比较dowhile与while的差异 086
5.2.2 用dowhile循环的程序实例 086
5.3 用for 语句实现循环 087
5.3.1 for 循环的结构与功能介绍 087
5.3.2 使用for循环的程序实例 088
5.3.3 for 循环的几种不同的格式 089
5.3.4 在for 语句中添加逗号运算符 091
5.4 高级流程控制语句 092
5.4.1 用goto 语句在程序中任意跳转 092
5.4.2 用break 语句中断循环 093
5.4.3 用continue 语句跳出当前循环 094
5.5 各种循环语句的嵌套使用 096
本章小结 098
第3篇能力提高
第6章 用函数把程序分块101
6.1 函数的概念 101
6.1.1 明白什么是函数 101
6.1.2 使用函数的好处 102
6.1.3 main()函数的概念及用途 102
6.2 函数的定义 102
6.2.1 自己定义一个函数 102
6.2.2 定义一个有参函数 104
6.2.3 函数的参数 105
6.2.4 函数的返回值 106
6.2.5 空函数 108
6.3 函数的调用原理与声明 108
6.3.1 函数的声明 108
6.3.2 函数调用表达式 109
6.3.3 函数调用的方式 109
6.3.4 不加()的函数调用会出现什么 111
6.3.5 嵌套调用 111
6.3.6 函数在结构化程序设计中的意义 112
6.4 递归函数 113
6.5 变量的作用域和存储类别 116
6.5.1 什么是变量的作用域 116
6.5.2 块结构 117
6.5.3 局部变量和局部变量的作用域 117
6.5.4 全局变量和全局变量的作用域 118
6.5.5 变量的存储类别 119
6.5.6 静态变量存储 119
6.5.7 自动变量存储 121
6.6 内部函数与外部函数 122
6.6.1 内部函数 122
6.6.2 外部函数 124
本章小结 125
第7章 数组127
7.1 数组的概念及内存占用 127
7.1.1 数组的概念 127
7.1.2 数组在内存中的存储 128
7.1.3 数组的溢出 129
7.2 一维数组 129
7.2.1 一维数组的定义 130
7.2.2 一维数组的初始化 130
7.2.3 一维数组元素的引用 131
7.2.4 一维数组的应用实例 132
7.3 二维数组 132
7.3.1 二维数组的定义 133
7.3.2 二维数组的初始化 134
7.3.3 二维数组元素的引用 134
7.3.4 二维数组的应用实例 135
7.4 字符数组 136
7.4.1 字符数组的定义 136
7.4.2 字符串与字符数组 136
7.4.3 字符数组的初始化 137
7.4.4 字符数组的输入和输出 137
7.4.5 使用scanf 函数接收字符串 138
7.4.6 字符数组的应用 139
7.5 字符数组元素作为函数参数 140
7.6 数组在程序中的实际应用举例 141
7.7 数组的专业用法 143
本章小结 146
第8章 控制字符串147
8.1 字符串的长度 147
8.2 使用字符串拷贝函数 148
8.2.1 strcpy 函数的使用 148
8.2.2 strncpy 函数的使用 149
8.3 字符串连接函数 150
8.3.1 用strcat 连接字符串 150
8.3.2 用strncat 连接字符串 151
8.4 使用字符串比较函数 151
8.4.1 两个完整的字符串之间的比较 152
8.4.2 两个字符串的一部分进行比较 153
8.4.3 忽略大小写的字符串比较 154
8.5 字符串查找函数 155
8.5.1 用strchr 函数查找字符串 155
8.5.2 用strrchr 函数查找字符串 156
8.5.3 用strcspn 函数查找字符串 156
8.5.4 用strspn 函数查找字符串 156
8.5.5 用strpbrk 函数查找字符串 157
8.5.6 用strstr 函数查找字符串 158
8.6 其他的字符串处理函数 159
8.6.1 strrev 函数的使用 159
8.6.2 strset 和strnset函数的使用 160
8.7 字符检查函数 161
8.7.1 数字检查函数isdigit 161
8.7.2 字母检查函数isalpha 161
8.7.3 检查函数的使用 161
8.8 将字符串转换成数字 162
本章小结 163
第4篇 C之精华
第9章 指针167
9.1 指针与地址 167
9.1.1 变量的地址与指针 167
9.1.2 了解指针 168
9.2 存放地址的指针变量 169
9.2.1 定义指针变量 169
9.2.2 用变量的地址初始化指针 170
9.2.3 置空指针变量 171
9.2.4 指针变量的引用 171
9.3 指针变量进行算数运算 172
9.3.1 指针变量的加减运算 172
9.3.2 指针变量的关系运算 174
9.4 指针与函数的关系 175
9.4.1 指针作为参数 175
9.4.2 指针作为返回值 177
9.4.3 函数指针 179
9.5 数组与指针 180
9.5.1 指针数组的定义和引用 181
9.5.2 一维数组中元素的指针表示法 181
9.5.3 二维数组的指针表示法 182
9.5.4 指针与字符串结合使用 183
9.5.5 命令行参数 185
9.6 指向指针变量的指针 186
本章小结 187
第10章 结构体、共同体与引用189
10.1 结构体的定义与引用 189
10.1.1 结构体类型的定义 190
10.1.2 结构体类型变量的定义 191
10.1.3 结构体类型变量的初始化 192
10.1.4 结构体类型变量的引用 193
10.1.5 结构体类型的指针 194
10.1.6 结构体数组 196
10.1.7 在结构中包含其他结构 199
10.1.8 结构与函数的关系 201
10.2 共用体的定义与引用 203
10.2.1 共用体类型的定义 203
10.2.2 共用体类型变量的定义 204
10.2.3 共用体类型变量的引用 205
10.2.4 共用体类型数据的特点 206
10.3 用typedef定义一个引用变量 207
10.4 枚举型数据类型 208
10.4.1 枚举型的定义 208
10.4.2 枚举变量的定义与赋值 209
10.5 在程序中实际应用结构体 210
本章小结 212
第11章 预处理命令213
11.1 认识预处理命令 213
11.2 包含其他文件的命令 214
11.3 宏定义 216
11.3.1 不带参数的宏 216
11.3.2 带参数的宏 217
11.3.3 宏的取消 219
11.3.4 使用宏定义的优缺点 219
11.4 条件编译 221
11.5 头文件的编写 223
本章小结 225
第5篇 开发实践
第12章 编程规范和项目开发初步229
12.1 为什么需要建立编程规范 229
12.2 基本的编码规范 230
12.2.1 命名规范 230
12.2.2 格式规范 232
12.2.3 函数规范 233
12.2.4 其他规范 235
12.3 小组开发规范 235
12.3.1 系统设计 236
12.3.2 软件架构设计 236
12.3.3 项目进程与人员配置 237
12.4 C带来的C提升 238
本章小结 239
第13章 管理计算机内存241
13.1 分配内存的存储空间 241
13.1.1 使用malloc 函数分配 242
13.1.2 使用calloc 函数分配 243
13.1.3 realloc 函数的使用 245
13.1.4 malloc 和calloc 函数的区别 246
13.1.5 调用free 函数释放内存 246
13.2 将数据按位运算 247
13.2.1 位运算符 248
13.2.2 将数据进行移位运算 248
13.2.3 将数据进行按位逻辑运算 250
本章小结 257
第14章 文件操作259
14.1 打开、关闭和检测文件 259
14.1.1 打开文件 260
14.1.2 文件检查函数 264
14.1.3 读写文件数据 264
14.1.4 关闭文件 274
14.2 文件定位函数 274
14.2.1 fseek 函数 275
14.2.2 ftell 函数 277
14.2.3 rewind 函数 278
14.3 文件管理函数的应用 280
14.3.1 删除文件 280
14.3.2 重命名文件 281
14.4 使用临时文件 282
14.5 非缓冲文件系统 283
14.5.1 open 函数 283
14.5.2 close 函数 284
14.5.3 create 函数 284
14.5.4 read 函数 284
14.5.5 write 函数 284
14.5.6 lseek 函数 285
本章小结 285
第15章 C语言中的库函数287
15.1 处理数学问题 287
15.1.1 使用三角函数 288
15.1.2 使用指数函数和对数函数 290
15.1.3 使用双曲线函数 291
15.1.4 使用其他数学函数 292
15.2 处理时间的函数 293
15.2.1 C语言程序中时间的表示 294
15.2.2 使用时间函数 294
15.3 查找和排序函数 302
15.3.1 用bsearch 查找 303
15.3.2 用qsort 排序 303
15.3.3 排序和查找的程序实例 303
15.4 随机数生成函数 307
15.4.1 随机数产生的过程 307
15.4.2 随机数相关的函数 307
本章小结 310
第16章 应用数据结构311
16.1 单链表 311
16.1.1 单链表的概念 311
16.1.2 单链表的创建 312
16.1.3 单链表的使用 315
16.2 栈 320
16.2.1 栈的概念 320
16.2.2 栈的基本运算 321
16.2.3 链栈 321
16.3 队列 323
16.3.1 队列的概念 323
16.3.2 队列的基本运算 323
16.3.3 链队列 324
16.4 快速排序函数 326
本章小结 329
第17章 学生管理系统的开发331
17.1 学生管理系统需求分析 331
17.2 学生管理系统界面设计 332
17.3 学生管理系统功能设计 334
17.3.1 学生管理系统概要设计 334
17.3.2 用户登录管理模块的设计 335
17.3.3 文件读写模块的设计 337
17.3.4 学生信息显示模块设计 340
17.3.5 学生人员增加模块的设计 340
17.3.6 学生人员删除模块的设计 341
17.3.7 学生信息修改模块的设计 342
17.3.8 学生信息查询模块的设计 344
17.3.9 主菜单模块的设计 345
17.3.10 主函数及错误处理模块的设计 347
17.3.11 结构体及宏定义 348
17.4 学生管理系统测试用例编写 349
17.5 学生管理系统整合测试 353
17.5.1 主菜单和界面显示功能测试演示 353
17.5.2 用户登录功能测试的演示 353
17.5.3 用户改密码功能测试的演示 354
17.5.4 学生人员增加功能测试的演示 355
17.5.5 学生人员信息删除功能测试的演示 355
17.5.6 学生人员信息查询功能测试的演示 356
17.5.7 学生人员信息修改功能测试的演示 356
17.5.8 文件读写功能测试的演示 356
本章小结 357
附录 Visual C开发调试环境359
一、 Visual C开发环境的安装和使用 359
二、 VC6开发控制台程序 360
三、 Win32控制台程序的创建、编译和运行 361
四、 程序出错及错误处理原则 365
五、 调试方法 372
內容試閱
上大学时,有一位教授讲大学学习之道,给我们提了一个建议:任何一门课程,最好同时采用2~3本教材来学习。教授的这一方法,让我们受益良多。我记得,当时大学里的第一门程序设计语言课是PASCAL,可是我们的教材,我学起来有点吃力,后来发现学校上机实验是VAX 小型机,于是从图书馆借来了小型机和PC 机的比较类图书,关键的是我还买了一本写得更加浅显的、基于PC 机的PASCAL 图书,同时学习了这些图书,我很快就掌握了PASCAL 语言。后来的线性代数、模电数电、数据结构和算法、操作系统、计算机原理等课程,我都用这种方法,同时从图书馆借或者购买1~2本比我自己用的教材浅一点或者深一些的教材,对比着学习。有的让我快速入门,有的让我掌握更深感谢教授提供的学习方法。
针对C 语言,我也向大家推荐这种学习方法。一方面,C 语言比较难;另一方面,如果你想成为一个编程高手,需要广泛涉猎相关图书,因为很多教材基于其定位,覆盖不到一些实际常用的编程常识。
我们认为,世界上有两种C 语言:一种是具有基本算法描述能力的C 语言,我们称为基本C ;另一种是具有内存操作等特色的系统编程能力的C 语言,我们称为系统C。所以,一本好的C 语言图书,要经得起两次阅读:第一次,让读者掌握基本C,帮助读者将来顺利学习后期如算法和数据结构等相关课程,帮助读者学习C、Java、C# 等C 派生的程序设计语言;第二次,让读者体会系统C 的关键。基本C 的学习,让读者将来可以轻松掌握其他程序设计语言,让读者具有移植能力;系统C,则让读者具有实战的开发能力。
我们这本C 语言图书,就定位于比一般讲解基本C的图书略微高深一点,希望可以成为读者C 语言教材之外的第二本辅助学习用书。
同时,我们也希望这本书给读者提供一些C 语言学习的闯关之道。
程序设计的水平提升是有一些关卡的。一旦你打过了这一个关隘之前的小怪兽,你的水平就提升一级。
在我们的CC 学习交流群里,大家总结,基本上有以下这三个大关,一旦闯过,掌握程序设计语言这件事情,或者说用程序设计语言来为我们解决问题这件事情,我们认为就达标了。
第一个关口:编译提示关
我记得在学习编程之初,第一个程序,我觉得就是按书输入的程序啊,可是编译提示总是提醒我有问题,让我很有挫败感。十几分钟之后,我放弃了自己纠错的可能性,问旁边一个同学,同学看了一眼,说:你有一个关键字少写了一个字母S。
我一看,果然如此。要知道,20 年前的编译器,错误提示经常是牛头不对马嘴的,定位不准。而且,我们那时参考书和学习资料很少,唯一能获得信息的地方,就是IDE 提供的帮助文件(Help),而且这个Help 还是全英文的!
还好,这个编译错误之后,我的编程之路就比较顺利了,慢慢我也摸清了编译器的脾气,自己能迅速定位错误所在。嗯,有些提升也是意外的,在整整两年几乎天天和BorlandC V3.1 打交道之后,我大约找到了十来个它的缺陷(bug)和避开的方法。当我啃了这全英文的Help 之后,英文技术文档的阅读水平也大大提高了,真是让人意外。
后来,从几个学习群,还有读者来信中了解到,大量的读者,第一个bug、第一个过不去的关卡,是使用了全角英文的字母,读者也是看不懂错误提示,然后怀疑自己的编程能力。这里,我先提醒大家,编译器和IDE 都是给半角纯英文环境设计的,他们没有想到还会有中国人使用全角的这个问题。你们一定要跨过这个关口。实际上,我们的经验是,跨过这一关,你的学习能力开始具有加速度。当大一完成C 语言程序设计的基本学习之后,假设从大二开始,像我们当年一样每天编写100行代码,等到大四毕业的时候,你怎么也有几万行代码的编写经验,基本上,找一份薪水优渥的工作就问题不大了。所以,一定要在大一闯过IDE 工具和语言的熟练关,像我们当年熟练掌握了Borland C,后来也很轻松就转到其他开发工具上。这些工具之间举一反三,很容易就能学会。
就像我们熟练使用Windows 系统,是从了解鼠标开始的一样,要学好C 语言,要先过编译提示关,而且这个关口完全靠你自己摸索,别人几乎帮助不了什么。还好,你开始学习的时候,都是小程序,错误提示都是逐步出现的,一次只会出现1个或2 个,而且会大量重复,这给了我们积累的时间。
第二个关口:理解变量和计算机对变量的操作
好多读者转不过这个弯来,始终觉得计算机程序是一个很奇怪的东西。这方面,我们从计算机的运行原理出发,给大家做了比较精彩的解释,希望能帮助大家跨越这一关。
20多年前,我们刚进大学时,是在VAX 小型机上学习编程语言,但很快又在PC 机上学习另外一种编程语言。两种平台的区别把我们折腾得苦不堪言。老师也是匆匆来上课,很难找到他们去问问题。后来我仔细研究了两个上机手册,还是学校自己编印的那种,然后借助图书馆的好多资料,才明白小型机、UNIX、PC 机、DOS 的区别。现在回头来看,没有好书,没有人指导,真的是非常痛苦,但也锻炼了我们的学习能力,慢慢积累了和各种机器打交道的经验,不亦乐乎?
在今天这个时代,你需要理解Linux 系统、Windows 系统和手机操作系统的区别,慢慢理解CPU、硬盘和内存是什么关系,逐步提升对程序和系统的理解,这有助于你编写更好的程序。很遗憾,这些内容其他C 语言图书中很少涉及,我们从现实需要出发,在本书中编写了这方面的相关内容。
第三个关口:现实问题的计算机化
中小学时期,很多人缺乏抽象训练,不能把生活中的问题数学化,以至于解决应用题时,一旦需要用到x,y,z,就感到一头雾水;如果要列出数学关系式来,更是让人绝望。但是,把现实问题用计算机来解决,建立数学模型,把数学问题计算机化,难度就小很多了。并且,这些问题的程序设计解决之道,是有规律可循的:
(1)利用计算机强大的不知疲倦的计算能力。枚举法,不停地循环计算,是常见之道。所谓暴力计算,最典型是百钱买百鸡问题。
(2)利用计算机强大的存储能力。我们可以把一些做法甚至结果存在内存里面,根据需要调用即可。比如,暴力解决算24问题。
(3)实在没办法,还有强大的函数库嘛,会使用就行了。
还有很多的数据结构和算法,可以让你体会如何把现实问题计算机化并采用一定的数据结构和算法处理,看多了,自然就会用了。这一关的意义是让读者成为一个真正的程序员。我大学毕业时接触的第一个项目是体温计。我们要从大量的数据中抽象出一个数据模型来,然后用计算机去统计和适配,最后得到一个算法,用以修正我们测量的数据。
如果具有良好的现实问题数学化、计算机解决化的能力,就可以轻松跨过学生学习到的知识到现实职场能力之间的小关卡。当然,过第三关的时候,最好辅助一些数学建模等相关图书,还有一定的课程设计、毕业设计级别的编程实践才行。至少你要理解结构体在解决现实编程问题中的意义。
我们把跨过这三关的方法作为三个重点,融合在这本C 语言程序设计能力提升的参考图书之中,读者只需要按照本书的内容,加强练习,每天提升自己一点,每天理解一点C 语言的精华所在,像钻研武功秘籍一样去修炼,相信你可以轻松过关。
这三关翻过,你基本就来到了编程的自由境界,你会从不断和计算机的交互过程中获得各种乐趣。如果你和当年的我们一样爱上编程这件事情写一个代码,很快就能看到结果,这种机器实验实在是太吸引人了你就可以开始探索程序设计中的其他奥秘了,比如一些指针的高级用法,充满玄妙的编程技巧,开始去理解程序= 算法数据结构。同时,你也积累了一些良好的编程习惯,或者说,掌握了软件构建的工程之道。毕竟,程序员除了是手工业的码农,还是一个软件工程师。
今天的读者很幸运,既有大量参考书籍,又有中文系统环境,还有网上交流的渠道。希望大家通过这本书,结合你们学习C 语言程序设计的教材,逐步精进你的程序设计水平,成为一毕业就基本可以上岗的开发人员!
爱编程的魏校长

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.