C语言其实很简单 张宁编著

  • 书籍语言:简体中文
  • 下载次数:7644
  • 书籍类型:Epub+Txt+pdf+mobi
  • 发布日期:2025-09-07
  • 连载状态:全集
  • 书籍作者:张宁
  • 图书编号:9787302397519
  • 运行环境:pc/安卓/iPhone/iPad/Kindle/平板

内容简介

  《C语言其实很简单》是为零基础的C语言初学者量身定做的,特别适合非计算机专业的读者自学C语占。《C语言其实很简单》尽最避免使用专业术语,利用大量贴近生活的实例,用通俗易懂的方式讲解C语言的基本概念和基本编程方法,并提供许多独特的小窍门、小技巧、小口诀等,使读者在轻松的环境中花费很少的时间就能掌握C语言,并应用自如。

编辑推荐

    接地气的C语言图书,拥有3个显著的特点,那就是——不用啃,不用啃,真的不用啃!
  为零基础的初学者量身定做,让读者在十分轻松的环境中花费较少的时间掌握C语言。通过本书学习C语言,读者会很快抓住知识的“根”,因而事半功倍! 

目录

目    录
第1章  从这里爱上编程——程序设计和C语言概述 1
1.1  水面下的冰山——计算机程序和计算机语言 1
1.2  第一次亲密接触——纵览C语言 3
1.2.1  一窥程序之美——C语言程序的结构 3
1.2.2  循序渐进,快乐学习——语句的光和影 4
1.2.3  程序里的说明书——注释 6
1.2.4  免费翻译服务——编译和链接 8
1.3  先其利器——Visual C++ 6.0上机指导 10
1.4  天平称物问题——进制转换 15
1.4.1  这些进制是哪来的——二进制、八进制、十六进制 15
1.4.2  你还应知道这几招——不同进制之间的转换 15
第2章  色彩斑斓的积木——数据类型、运算符和表达式 21
2.1  标识符、常量和变量 21
2.1.1  给我起个名字吧——标识符 21
2.1.2  有一说一——常量 22
2.1.3  程序里的储物盒——变量 23
2.2  追根“数”源——细说数据类型 25
2.2.1  整型数据用C语言怎样说 25
2.2.2  实型数据用C语言怎样说 28
2.2.3  字符型数据用C语言怎样说 32
2.2.4  字符串型常量用C语言怎样说 36
2.3  诸算达人——运算符和表达式 39
2.3.1  再谈加减乘除——算术运算 39
2.3.2  走,给我进去!——赋值 45
2.3.3  加加和减减——自增、自减 48
2.3.4  神秘的倒数第一——逗号运算 50
2.4  位在我心中——位运算 52
2.4.1  按位与& 52
2.4.2  按位或 | 52
2.4.3  按位异或 ^ 53
2.4.4  按位求反 ~ 54
2.4.5  按位左移 << 54
2.4.6  按位右移 >> 54
2.4.7  位运算的复合赋值 55
第3章  一战到底——顺序结构 56
3.1  整装待发——C语言中的语句 56
3.2  别急,一个一个来——单个字符的输出与输入 57
3.2.1  拿好了钥匙进仓库——输出与输入概述 57
3.2.2  向屏幕开火——单个字符的输出 58
3.2.3  饭要一口一口地吃——单个字符的输入 59
3.3  更过瘾的输出与输入——格式输出与输入 62
3.3.1  我有私人警察——格式输出函数printf 62
3.3.2  我是快乐的快递员——格式输入函数scanf 68
3.4  常用系统数学函数 73
3.5  是不是有点专业级软件的意思了——顺序结构程序举例 74
第4章  程序也能跑捷径——选择结构 76
4.1  计算机的判断力——关系运算和逻辑运算 76
4.1.1  判断真假的符号——关系运算符和逻辑运算符 76
4.1.2  火眼金睛断真假——关系表达式和逻辑表达式 78
4.1.3  挑剔的“吗+否则”——条件运算 82
4.2  如果——if语句 83
4.2.1  教室停电就不上课了——if语句的基本形式 83
4.2.2  一朝天子一朝臣——if语句的完整形式 88
4.2.3  如果里的如果——if语句的嵌套 94
4.3  多路开关——switch语句 98
4.3.1  司令的锦囊——switch语句的一般形式 99
4.3.2  我爱读小说——switch语句的执行过程 100
4.4  goto去哪?想去哪就去哪!——goto语句 105
第5章  不必亲手愚公移山——循环结构 107
5.1  看好了情况再下手——while语句 107
5.2  先下手干了再说——do...while语句 110
5.3  我勤奋?我劳动?我光荣——for语句 112
5.3.1  按劳分配——for语句的基本形式 112
5.3.2  劳动者的工作模式——for语句的常见应用 114
5.3.3  有人接班我偷懒——表达式的变化 119
5.4  循环里的循环——循环的嵌套 122
5.5  埋头干活中的抬头看路——continue语句和break语句 125
5.5.1  来源于生活——continue语句和break语句概述 125
5.5.2  下一个上——continue语句 127
5.5.3  前方施工请绕行——break语句 129
5.6  轻车熟路——程序控制结构小结和综合举例 130
第6章  把平房升级为高楼大厦——数组 137
6.1  直线升级——一维数组 137
6.1.1  一维数组的定义和引用 137
6.1.2  一维数组的初始化(定义时赋初值) 144
6.1.3  一维数组的应用 147
6.2  找东西和整理东西的艺术——查找和排序 152
6.2.1  这个经常有——查找技术 152
6.2.2  混乱之治——排序技术 156
6.3  立体升级——二维数组 163
6.3.1  二维数组的定义和引用 163
6.3.2  二维数组在内存中的存储形式 164
6.3.3  二维数组的初始化(定义时赋初值) 164
6.3.4  二维数组可被看做是由一维数组组成的 169
第7章  蒙着面干活——函数 171
7.1  从讲故事开始——函数概述 171
7.2  该是学写多段文章的时候了——函数定义和调用 173
7.2.1  自己创造函数——函数的定义 173
7.2.2  把自己写的“段落”用起来——函数的调用 175
7.2.3  你歇着,我劳动——函数调用的过程 177
7.2.4  做好的菜端出来——函数的返回值 179
7.3  喂!听到了吗——函数的声明 185
7.3.1  函数声明的形式 186
7.3.2  函数声明的位置 187
7.4  函数的嵌套调用和递归调用 189
7.4.1  函数里的函数——函数的嵌套调用 189
7.4.2  克隆函数——函数的递归调用 190
7.5  变量的时空范围——变量的作用域及存储类别 196
7.5.1  空间范围——局部变量和全局变量 196
7.5.2  时间范围——变量的存储类别 202
7.5.3  时空统一——局部变量和全局变量的存储类别 206
7.6  给编译做点儿手脚——预编译处理 207
7.6.1  潜伏代号——宏定义 207
7.6.2  程序的自动复制粘贴——文件包含 211
7.6.3  早知当初,何必如此——条件编译 212
第8章  璀璨的星星——指针 213
8.1  内存里的门牌号——地址和指针的基本概念 213
8.2  别拿地址不当值——指针变量 214
8.2.1  找张字条记地址——定义指针变量 215
8.2.2  这可不是说我——指针变量的基类型 217
8.2.3  把地址记下来——为指针变量赋值 218
8.2.4  指针运算俩兄弟——两个运算符 220
8.3  原来咱俩是一个朋友圈的——数组与指针 223
8.3.1  下一站到哪了——指针变量的运算 223
8.3.2  我原来是指针变量——一维数组的指针 227
8.3.3  我是你的上级——二维数组的指针和行指针 232
8.3.4  来自星星的数组——指针数组和指针的指针 238
8.3.5  指针三家人——指针小结 242
8.4  有了地址也可以找我帮忙啊——函数与指针 244
8.4.1  地址给我,我来帮忙——指针变量做函数参数 244
8.4.2  吃葡萄不抓葡萄粒,抓住葡萄的把柄——数组做函数参数 249
8.4.3  指针私房菜——返回地址值的函数 256
8.4.4  函数遥控器——函数的指针 256
8.5  一两拨千斤——字符串的指针 259
8.5.1  字符串的存储 259
8.5.2  字符串的输出和输入 263
8.5.3  字符串处理技术 267
8.6  另类运行程序——main函数的参数 286
第9章  我的类型我做主——结构体与共用体 289
9.1  多功能收纳盒——结构体 289
9.1.1  绘制收纳盒设计图——定义结构体类型 289
9.1.2  收纳盒制作——使用结构体变量 290
9.1.3  一本通讯录——结构体类型的数组 294
9.1.4  结构体的弓箭手——结构指针变量 296
9.1.5  重口味与轻口味——结构体类型数据做函数参数 297
9.1.6  大收纳盒里套小收纳盒——结构体类型的嵌套 301
9.2  公路桥洞——共用体 302
9.3  给类型起个“绰号”——类型定义符typedef 304
9.4  内存空间的批发和零售——动态存储分配 306
9.5  电影院里的座次问题——链表 310
9.5.1  链表的建立和遍历 311
9.5.2  链表结点的插入和删除 317
9.5.3  链表的高级兄弟——高级链表简介 320
第10章  得文件者得天下——文件 322
10.1  一针hold住全文件——文件指针 322
10.1.1  与文件牵手——文件的打开 322
10.1.2  与文件分手——文件的关闭 326
10.1.3  文件操作流程 326
10.2  搬运流水线——文件的读写 327
10.2.1  手指和笔尖——文件位置指针 327
10.2.2  文本文件的读写 328
10.2.3  二进制文件的读写 332
10.3  这是手工活儿——文件的随机读写 337
第11章  编程的经验财富——算法与数据结构基础 345
11.1  “一招鲜”——算法 345
11.1.1  何谓算法 345
11.1.2  算法的控制结构 346
11.1.3  算法复杂度 346
11.2  数据结构概述 347
11.2.1  何谓数据结构 347
11.2.2  数据结构的类型 348
11.3  早出晚归的勤快人——栈(堆栈) 349
11.3.1  何谓栈(堆栈) 349
11.3.2  堆栈的基本运算 350
11.3.3  堆栈的逻辑结构和存储结构 350
11.3.4  堆栈的应用 351
11.4  先来后到——队列 352
11.4.1  何谓队列 352
11.4.2  队列的逻辑结构和存储结构 352
11.4.3  循环队列的基本运算 353
11.5  倒置的树——树与二叉树 354
11.5.1  树和树的基本概念 354
11.5.2  二叉树的基本概念 355
11.5.3  二叉树的存储结构 356
11.5.4  二叉树的遍历 356
  第12章  程林高手武功秘籍——软件开发基础 360
12.1  编程之道——程序设计方法 360
12.1.1  编程Style——程序设计风格 360
12.1.2  组装零件——结构化程序设计 361
12.1.3  这个feel,爽!——面向对象程序设计 361
12.2  不懂门道看热闹,看完咱也吊一吊——软件工程基础 364
12.2.1  何谓软件 364
12.2.2  软件生命周期 365
12.2.3  需求分析及其方法 366
12.2.4  软件设计及其方法 367
12.2.5  我是来找茬的——软件测试 369
12.2.6  谁来改正——程序的调试 371
12.3  信息时代是怎样炼成的——数据库和数据库设计初步 371
12.3.1  关系型数据库及相关概念 372
12.3.2  关系代数 374
12.3.3  数据库系统 378
12.3.4  数据库设计者眼里的世界——E-R模型 380
12.3.5  数据库设计 381
附录一  常用字符ASCII码对照表 383
附录二  C语言中的关键字 384
附录三  C语言运算符的优先级和结合性 385
索引 386
参考文献 391


下载地址

部分章节

在本书正文中,将穿插有以下栏目:

【脚下留心】针对初学者最容易犯的错误,或是在学习过程中,在编程实践时最应该引起注意的地方,都用“脚下留心”给出强调。零基础的初学者,紧紧抓住这些方面,就能在学习和编程实践中减少或避免很多不必要的弯路,为学习节省大量的时间。如果你正在应试,更要注意,这些内容往往都是高频出题但稍不留神就要丢分的。

 

高手进阶

数字字符与对应整数的二进制只有2位之差,例如字符'5'(即53)的二进制为0011 0101,整数5的二进制为0000 0101。前者第45位均为1(最右端为第0位),后者这两位均为0,而两者后4位是一致的0101,都表示十进制的5。还有,为什么'A'ASCII码是65'a'ASCII码是97呢?作为字母表的第一个字母,为何大写从5开始,小写从7开始,似乎都不太“整”。把它们转换为二进制,答案立显!65的二进制是0100 000197的二进制是0110 0001,后50 0001都表示十进制的1,说明'A''a'是第一个字母。试着把字母表的第二个字母'B''b'ASCII码转换为二进制,你会发现后5位都表示十进制的2

 

【窍门秘笈】学习重在方法,方法得当,既可以节省学习时间,又能加深印象。“窍门秘笈”是学习方法的汇总,或是学习的小技巧、小窍门,或是概念的总结,还有轻松记忆知识点的顺口溜。我们的编程套路也将在窍门秘笈中给出。对于初学者,这些都是快速掌握C语言的捷径。

窍门秘笈  以变量类型为准的自动类型转换规则可总结为口诀如下:

变量定空间,塑身再搬迁。

若为空间窄,舍点也情愿。

 

【小游戏】编程不只是枯燥的工作,它也能充满乐趣。寓学于乐,寓编于乐,倘能达到这个境界,俨然不就是一位高手了吗?本书在正文中还穿插了一些小游戏,映衬相关的知识点,让读者在游戏中掌握编程!

小游戏  现有一架天平和4种重量的砝码,分别重8克、4克、2克、1克,每种重量的砝码只有一个。现要用此天平称重13克的物体,物体放在左盘上,如图1-20所示。请问在右盘上应该怎样选放4种砝码,才能使天平左右两盘重量相同天平平衡呢?

程序示例和习题

【程序示例】学习编程,程序例子是必不可少的。对于程序示例,本书都精心做了安排。在突出知识点的基础上,本书程序示例所遵循的原则是:或者让趣味指数都在三星                                           ★★★以上,旨在提高读者的编程兴趣;或者让难度都在一星★以下,旨在简单明了、一针见血地说明问题。

【随讲随练】是本书的习题,这些都是针对大多C语言考试的高频考点精心设计的,其中一部分为全国计算机等级考试二级C语言程序设计的历年考试真题或无纸化考试改革后的题库真题,供读者巩固复习之用。本书习题的特色是“随讲随练”,每道题都安排在相应知识点讲解的正文之后,并在题后直接给出了答案。这避免了在章后统一安排习题所带来的向前查阅知识、向后查看答案的弊端,减少了读者反复翻书的无用功。读者可一气呵成,通读本书,就能有学有练。

【小试牛刀】这些不作为正式习题,而主要是思考题的性质,也将穿插在相应知识点的讲解中。读者利用刚刚所学知识可以马上试一试身手,或是巩固所学知识,或是举一反三,每试一次“牛刀”,都是一次能力的提高。

本书的卡通形象

在本书中,还有两个卡通形象,将陪伴读者整个的学习过程:

【小博士形象】是始终陪伴在我们身边的老师。或是学习的小贴示,或是需要注意的问题,“小博士”都会侃侃道来。这些都是比较关键的内容,请读者一定悉心体会。

 

用空格缩进无可厚非,但用Tab而不用一连串的空格,是更简便的做法。Tab(又称跳格、水平制表)和空格是两种不同的字符,但对于在程序中起的“空白间隔”作用是相同的。我们可以随意使用空格或Tab甚至空格和Tab的组合来作为程序中元素间的“空白间隔”。

 

【大零蛋形象】它是初学者的代言人,时不时地“冒出来”,或是提出初学者的常见疑问,或是以简单通俗的方式表达对知识的领悟。“零”就是零基础的意思,“我对C语言一窍不通,将伴随您一起从零开始学习!”。有大零蛋在身边,零基础的读者非但不必畏惧学习C语言,反而可以从中获得乐趣。随读者一起,随着学习的深入,“大零蛋”的水平也会逐步提高,由一窍不通的“大零蛋”最终摇身变为满腹经纶的“大灵蛋”!零基础的初学者们,请跟随它一起成长,相信读过本书之后,你也会由零基础的菜鸟摇身变成一位编程高手的。

 

我明白了:printf函数的输出就是把"  "中的内容原封不动地“抄”在屏幕上就可以了,但其中若遇到带%的“警察”则不要照原样抄,而要用后面的数据替换它。注意替换时要按照%所规定的“手势”,按相应格式替换。

 

有时候,大零蛋与小博士还会对起话来:

致谢

感谢天津大学精密仪器与光电子工程学院的冯远明教授和课题组全体成员对本书写作的大力支持,没有他们的帮助和支持,不可能写出这样一部作品。特别感谢学院的何峰老师对C语言的知识介绍提供了许多有益的素材,这使很多枯燥乏味的概念讲解变得更为生动、有趣。

感谢赵佳为本书绘制或加工制作了全部精美的插图,这使本书更加妙趣横生,尤其是她设计的小博士和大零蛋形象,别有一番特色。

由于笔者水平有限,错谬之处在所难免,恳请专家和广大读者不吝赐教、批评指正。笔者的E-mail是:zhni2011@163.comQQ号码是:1307573198

短评

书评

笔记