新書推薦:
《
在虚无时代:与马克斯·韦伯共同思考
》
售價:NT$
260.0
《
日内交易与波段交易的资金风险管理
》
售價:NT$
390.0
《
自然信息图:一目了然的万物奇观
》
售價:NT$
640.0
《
经纬度丛书·州县之民:治乱之间的小民命运
》
售價:NT$
440.0
《
女性史:古代卷(真正意义上的女性大历史)
》
售價:NT$
560.0
《
跨代伴侣治疗
》
售價:NT$
440.0
《
精华类化妆品配方与制备手册
》
售價:NT$
990.0
《
经纬度丛书:出祁山:诸葛亮北伐得与失
》
售價:NT$
440.0
|
編輯推薦: |
精讲学习视频全程相伴,扫码即看;146个有趣实例及精彩分析娓娓道来
|
內容簡介: |
本书以学习笔记的形式循序渐进地讲解了使用C语言的核心知识,并通过具体实例的实现过程讲解了各个知识点的使用方法和流程。全书简洁而不失其技术深度,内容丰富全面,针对每一个知识点均搭配典型案例讲解和视频;除此之外,本书易于阅读,以极简的文字介绍了复杂的案例,帮助读者扎实理解实践应用。
|
關於作者: |
薛小龙,山东大学计算机硕士。现就职于浪潮云,从事互联网云服务器的架构和研发工作。精通Java、Python、C、C 语言,擅长大数据挖掘和数据分析工作。个人喜爱技术分享,曾经写作出版《开发从入门到精通》系列图书,且拥有对图书推广和营销方面的经验。
|
目錄:
|
第1 章 C 语言基础知识介绍
1.1 永不过时的C 语言 ............................................................................................1
1.1.1 品味C 语言这一坛老酒 ....................................................................................1
1.1.2 C 语言的发展史 .................................................................................................2
1.1.3 学习C 语言还有用吗 ........................................................................................2
1.2 认识第一段C 语言程序 ....................................................................................3
1.2.1 编写第一段C 语言程序 ....................................................................................3
实例1-1:第一段C 语言程序(定义变量并进行算数操作) ................................................. 3
1.2.2 分析C 语言程序的具体组成 ............................................................................4
1.3 如何学好C 语言 ................................................................................................6
第2 章 安装C 语言开发工具
2.1 一步到位的Visual Studio ..................................................................................7
2.1.1 安装Visual Studio 2017 .....................................................................................7
2.1.2 使用Visual Studio 2017 .....................................................................................9
实例2-1:使用Visual Studio 2017 运行一个C 程序 ................................................................ 9
2.2 使用DEV C 开发C 语言程序 ...................................................................12
2.2.1 安装DEV C ..................................................................................................12
2.2.2 使用DEV C 运行一个C 语言程序 ............................................................14
2.3 使用Turbo C 3.0 开发C 语言程序 ................................................................14
2.3.1 安装Turbo C 3.0 ...............................................................................................14
2.3.2 使用Turbo C 3.0 ...............................................................................................15
第3 章 C 语言语法基础
3.1 标识符和关键字 ..............................................................................................16
3.1.1 标识符 ...............................................................................................................16
3.1.2 关键字 ...............................................................................................................17
3.2 数据类型 ..........................................................................................................19
3.3 常量和变量 ......................................................................................................20
3.3.1 常量 ...................................................................................................................20
3.3.2 变量 ...................................................................................................................21
实例3-1:计算圆的周长和面积 ............................................................................................... 23
3.4 整型数据 ..........................................................................................................24
3.4.1 整型常量 ...........................................................................................................24
3.4.2 整型变量 ...........................................................................................................26
实例3-2:计算两个整型变量的和 ........................................................................................... 27
3.5 实型数据类型 ..................................................................................................28
3.5.1 实型常量 ...........................................................................................................28
3.5.2 实型变量 ...........................................................................................................29
实例3-3:对一个很大的数和一个很小的数进行加法运算 ................................................... 29
3.6 字符型数据 ......................................................................................................30
3.6.1 字符常量详解 ...................................................................................................30
实例3-4:通过转义字符输出指定的文本字符 ....................................................................... 31
3.6.2 字符串常量 .......................................................................................................32
实例3-5:我最喜欢的偶像是欧阳娜娜 ................................................................................... 32
3.6.3 字符变量 ...........................................................................................................33
实例3-6:将字符变量和整型变量进行相互赋值 ................................................................... 33
3.7 整型、实型和字符型数据之间的运算 ..........................................................34
3.7.1 强制转换 ...........................................................................................................34
实例3-7:将int 类型强制转换为double 类型 ........................................................................ 35
3.7.2 自动转换 ...........................................................................................................35
实例3-8:计算圆的大概面积和精确面积 ............................................................................... 36
第4 章 运算符和表达式
4.1 运算符和表达式介绍 ......................................................................................37
4.2 算术运算符和算术表达式 ..............................................................................38
4.2.1 算术运算符的分类 ...........................................................................................38
4.2.2 单目运算符 .......................................................................................................39
实例4-1:使用单目运算符实现基本的数学运算 ................................................................... 39
4.2.3 双目运算符 .......................................................................................................39
实例4-2:获取任意小于1000 的正整数的个位、十位、百位和千位的数字 ..................... 40
4.3 赋值运算符和赋值表达式 ..............................................................................40
4.3.1 基本的赋值运算符 ...........................................................................................41
4.3.2 复合赋值运算符 ...............................................................................................43
4.3.3 赋值表达式 .......................................................................................................43
实例4-3:实现基本的赋值表达式运算处理 ........................................................................... 43
4.4 关系运算符和关系表达式 ..............................................................................44
4.4.1 关系运算符 .......................................................................................................44
4.4.2 关系表达式 .......................................................................................................44
实例4-4:比较体重 ................................................................................................................... 45
4.5 逗号运算符和逗号表达式 ..............................................................................46
4.5.1 逗号运算符 .......................................................................................................46
4.5.2 逗号表达式 .......................................................................................................46
实例4-5:使用逗号运算符实现数学运算 ............................................................................... 47
4.6 逻辑运算符和逻辑表达式 ..............................................................................48
4.6.1 逻辑运算符 .......................................................................................................48
4.6.2 逻辑表达式 .......................................................................................................49
实例4-6:对变量进行逻辑运算处理,并输出运算后的结果 ............................................... 49
4.7 求字节数运算符sizeof ....................................................................................50
实例4-7:使用sizeof 运算符计算不同类型数据的字节大小 ................................................ 51
4.8 运算符的优先级 ..............................................................................................52
第5 章 数据的输入和输出
5.1 语句介绍 ..........................................................................................................54
5.1.1 C 语句简介 .......................................................................................................54
5.1.2 赋值语句 ...........................................................................................................56
5.2 C 语言内置的数据输入和输出函数 ...............................................................57
5.2.1 使用字符输出函数putchar ..............................................................................58
实例5-1:使用函数putchar 输出指定的字符 ......................................................................... 58
5.2.2 使用字符输入函数getchar .............................................................................59
实例5-2:使用getchar 函数获取在键盘中输入的内容.......................................................... 60
5.2.3 使用格式输出函数printf .................................................................................60
实例5-3:使用printf 函数输出不同格式变量a 和b 的数据 ................................................ 61
实例5-4:使用printf 格式字符输出指定格式的数据 ............................................................ 62
5.2.4 使用格式输入函数scanf ..................................................................................64
实例5-5:输出显示用户输入字符的ASCII 码和对应的大写字母 ....................................... 66
5.2.5 使用字符串输出函数puts ...............................................................................67
实例5-6:使用函数puts 输出指定的字符串 ........................................................................... 67
5.2.6 使用字符串输入函数gets ................................................................................68
实例5-7:输出显示用户的姓名和身高信息 ........................................................................... 68
第6 章 使用流程控制语句
6.1 顺序结构 ..........................................................................................................69
实例6-1:计算三角形的面积 ................................................................................................... 70
6.2 选择结构 ..........................................................................................................70
6.2.1 单分支结构语句 ...............................................................................................71
实例6-2:从大到小排列3 个数字 ........................................................................................... 71
6.2.2 双分支结构语句 ...............................................................................................72
实例6-3:判断用户输入内容的格式 ....................................................................................... 72
实例6-4:判断变量a 和b 的值是多少 ................................................................................... 74
6.2.3 使用多分支结构语句 .......................................................................................75
实例6-5:提示用户输入数字,然后将用户输入的数字输出。 ........................................... 77
6.2.4 条件运算符和条件表达式 ...............................................................................77
实例6-6:比较两个数字的大小并输出最大数 ....................................................................... 79
6.3 循环结构 ..........................................................................................................79
6.3.1 使用for 语句 ....................................................................................................79
实例6-7:计算某个整数的阶乘 ............................................................................................... 80
6.3.2 使用while 循环语句 ........................................................................................81
实例6-8:依次输出1*1、1*2到1*20 的积 ........................................................................ 82
6.3.3 使用do-while 语句 ...........................................................................................83
实例6-9:猜数游戏 ................................................................................................................... 84
6.3.4 正确对待goto 语句 ..........................................................................................84
实例6-10:统计从键盘输入一行字符的个数 ......................................................................... 85
6.3.5 使用break 语句 ................................................................................................85
实例6-11:计算圆的面积 ......................................................................................................... 86
6.3.6 使用continue 语句 ...........................................................................................86
实例6-12:输出显示100 到200 之间的不能被3 整除的整数 ............................................. 87
6.3.7 死循环 退出程序 ............................................................................................87
第7 章 数组存储数据
7.1 使用一维数组 ..................................................................................................89
7.1.1 定义一维数组 ...................................................................................................89
7.1.2 引用即使用 .......................................................................................................90
实例7-1:输出数组内的各个元素值 ....................................................................................... 91
7.1.3 数组需要初始化 ...............................................................................................91
实例7-2:实现一个由小到大排列的冒泡程序 ....................................................................... 92
7.2 多维数组 ..........................................................................................................93
7.2.1 二维数组 ...........................................................................................................93
实例7-3:输出显示10 行杨辉三角 ......................................................................................... 95
7.2.2 使用多维数组 ...................................................................................................96
实例7-4:获取成绩最高分的球员编号 ................................................................................... 98
7.3 使用字符数组与字符串 ..................................................................................99
7.3.1 侃侃字符数组 ...................................................................................................99
7.3.2 字符串与字符数组 .........................................................................................100
7.3.3 字符数组的输入输出 .....................................................................................101
实例7-5:比较两个字符串的大小 ......................................................................................... 102
7.4 使用字符处理函数和字符串处理函数 ........................................................103
7.4.1 使用测试字符串长度函数strlen ...................................................................103
实例7-6:使用函数strlen 输出程序中数组字符串的长度 .................................................. 103
7.4.2 使用字符串大小写转换函数strupr 和strlwr ...............................................103
实例7-7:分别输出输入字符串的小写形式和大写形式 ..................................................... 103
7.4.3 使用字符串复制函数strcpy 和strncpy ........................................................104
实例7-8:复制用户输入的字符串 ......................................................................................... 104
7.4.4 使用字符串比较函数strcmp 和strncmp ......................................................105
实例7-9:比较用户输入的字符串 ......................................................................................... 106
7.4.5 使用字符串连接函数strcat 和strncat ...........................................................106
实例7-10:连接用户输入的字符串 ....................................................................................... 107
7.4.6 将字符串转换成数值的函数 .........................................................................108
实例7-11:将用户输入的字符串转换为数值类型的值 ....................................................... 108
7.4.7 使用字符检测函数 .........................................................................................109
实例7-12:判断字符串中各字符所占用的个数 ................................................................... 109
7.4.8 使用字符大小写转换函数tolower 和toupper ..............................................110
实例7-13:将字符串分别输出转换为大写形式和小写形式 ................................................111
第8 章 函数
8.1 函数基础知识介绍 ........................................................................................ 112
8.1.1 函数的分类 .....................................................................................................112
8.1.2 函数的定义 .....................................................................................................114
实例8-1:比较两个数字的大小 ..............................................................................................114
8.2 函数声明和函数原型 .................................................................................... 115
8.2.1 函数声明 .........................................................................................................115
实例8-2:求s=1 2 3 n1 2 3 m 的值 ...............................................................116
8.2.2 函数原型 .........................................................................................................117
8.3 函数的参数 .................................................................................................... 117
8.3.1 形参和实参详解 .............................................................................................117
实例8-3:计算从1 到某个数字值的和 ..................................................................................118
8.3.2 将数组作为函数参数 .....................................................................................118
实例8-4:判断一个整数是否大于0 .......................................................................................119
实例8-5:互换二维数组中行和列的元素 ............................................................................. 120
8.4 函数的返回值 ................................................................................................120
实例8-6:计算两个整数3 和4 的和 ..................................................................................... 121
8.5 实现函数的调用 ............................................................................................122
8.5.1 调用函数的格式 .............................................................................................122
实例8-7:比较3 个数字的大小 ............................................................................................. 122
8.5.2 函数调用的方式 .............................................................................................123
实例8-8:计算最大公约数和最小公倍数 ............................................................................. 123
8.6 函数的嵌套调用和递归调用 ........................................................................124
8.6.1 函数嵌套调用详解 .........................................................................................124
实例8-9:输出字符串中最长的单词 ..................................................................................... 125
8.6.2 函数递归调用 .................................................................................................126
实例8-10:实现数学中Hanoi 塔问题的解决方案................................................................ 127
8.7 变量的作用域 ................................................................................................129
8.7.1 局部变量作用域 .............................................................................................129
实例8-11:计算长方体的体积和三个面的面积 ................................................................... 129
8.7.2 全局变量作用域 .............................................................................................130
实例8-12:超市价格调整 ....................................................................................................... 130
8.8 静态存储变量和动态存储变量 ....................................................................131
8.8.1 静态存储和动态存储的区别 .........................................................................132
8.8.2 四种变量存储类型 .........................................................................................132
8.8.3 自动变量 .........................................................................................................132
8.8.4 外部变量 .........................................................................................................133
实例8-13:在函数间通过外部函数直接传递数据 ............................................................... 134
8.8.5 静态变量 .........................................................................................................134
实例8-14:使用静态变量设置初始值 ................................................................................... 136
8.8.6 寄存器变量 .....................................................................................................136
实例8-15:使用register 变量提升效率 ................................................................................. 136
8.9 内部函数和外部函数 ....................................................................................137
8.9.1 内部函数详解 .................................................................................................137
实例8-16:在不同的文件内使用同一个名称的函数 ........................................................... 138
8.9.2 使用外部函数 .................................................................................................138
实例8-17:在一个文件内调用另一个外部函数 ................................................................... 138
8.10 库函数 ..........................................................................................................139
8.10.1 库函数介绍 ...................................................................................................139
8.10.2 库函数的分类 ...............................................................................................139
第9 章 使用指针
9.1 指针和内存地址 ............................................................................................141
9.2 变量的指针和指向变量的指针变量 ............................................................142
9.2.1 声明指针变量 .................................................................................................142
9.2.2 初始化指针变量 .............................................................................................143
9.2.3 引用指针变量 .................................................................................................144
实例9-1:将两个指针变量分别指向两个变量 ..................................................................... 145
9.2.4 指针运算符 .....................................................................................................145
实例9-2:对输入的数字进行排序处理 ................................................................................. 146
9.2.5 指针变量的运算 .............................................................................................147
实例9-3:顺序显示数组内的元素并分别逆向输出 ............................................................. 148
9.2.6 指针变量作为函数参数 .................................................................................148
实例9-4:按照从小到大的顺序排序输出三个整数 ............................................................. 150
9.2.7 void 类型的指针 .............................................................................................151
实例9-5:定义4 个类型的变量,然后分别输出转换后的结果 ......................................... 151
9.3 指针和数组 ....................................................................................................152
9.3.1 数组元素的指针 .............................................................................................153
9.3.2 指向一维数组元素的指针变量 .....................................................................154
9.3.3 通过指针引用数组元素 .................................................................................155
实例9-6:分别通过指向数组的指针引用数组、利用数组名和下标引用数组 ................. 156
9.3.4 数组名作函数参数 .........................................................................................158
实例9-7:将数组中的元素按相反顺序存放 ......................................................................... 158
实例9-8:输出数组元素中的最大值和最小值 ..................................................................... 159
9.4 指针和多维数组 ............................................................................................160
9.4.1 多维数组的地址 .............................................................................................160
实例9-9:输出显示二维数组元素的地址 ............................................................................. 162
9.4.2 指向多维数组的指针变量 .............................................................................162
实例9-10:2*3 或3*4 矩阵相乘运算 .................................................................................... 164
9.5 指针和字符串 ................................................................................................165
9.5.1 指针访问字符串 .............................................................................................165
实例9-11:把一个字符串的内容复制到另一个字符串中 ................................................... 166
9.5.2 字符串指针作函数参数 .................................................................................167
实例9-12:使用函数调用复制字符串的内容 ....................................................................... 167
9.6 指针数组和多级指针 ....................................................................................168
9.6.1 指针数组 .........................................................................................................168
9.6.2 多级指针的定义和应用 .................................................................................169
实例9-13:对5 个字符串进行排序 ....................................................................................... 170
9.6.3 指向指针的指针 .............................................................................................171
9.6.4 main 函数的参数 ............................................................................................171
实例9-14:使用带参数的main 函数输出指针数组参数的值 ............................................. 172
9.7 指针函数和函数指针 ....................................................................................173
9.7.1 指针函数 .........................................................................................................173
9.7.2 函数指针 .........................................................................................................173
|
內容試閱:
|
从你开始学习编程的那一刻起,就注定了以后所要走的路:从编程学习者开始,依次经
历实习生、程序员、软件工程师、架构师、CTO 等职位的磨砺。当你站在职位顶峰的位置蓦
然回首,会发现自己的成功并不是偶然,在程序员的成长之路上会有不断修改代码、寻找并
解决Bug、不停测试程序和修改项目的经历。不可否认的是,只要你在自己的开发生涯中稳
扎稳打,并且善于总结和学习,最终将会得到可喜的收获。
■ 选择一本合适的书
对于一名程序开发初学者来说,究竟如何学习并提高自己的开发能力呢?选择一本适合
自己的开发图书会是一个好的建议。那么什么样的图书才是适合自己的呢,除了对知识点的
细致讲解外,更要能实现从理论平滑过渡到项目实战,为此,我们特意策划了本书。
■ 本书的特色
(1)内容全面
本书详细讲解C 语言所涵盖的所有知识点,循序渐进地讲解了这些知识点的使用方法和
技巧,帮助读者快速步入C 语言开发高手之列。
(2)146 个示例融入其中,面向实战
通过对这些实例的讲解实现了对知识点的横向切入和纵向比较,让读者有更多的实践演
练机会,并且可以从不同的方位展现一个知识点的用法,确保读者扎实掌握。
(3)视频讲解,二维码布局全书
本书正文的每一个二级目录都有一个二维码,通过二维码扫描可以观看本小节内容的讲
解视频,既包括实例讲解也包括教程讲解,对读者的开发水平实现了拔高处理。
(4)本书售后帮助读者快速解决学习问题
无论书中的疑惑,还是在学习中遇到的问题,群主和管理员将在第一时间为读者解答,
这就是我们对读者的承诺。
(5)QQ 群网站论坛实现教学互动,形成互帮互学的朋友圈
本书作者为了方便给读者答疑,特提供了网站论坛、QQ 群等技术支持(通过QQ:
729017304 获得),并且随时在线与读者互动。让大家在互学互帮中形成一个良好的学习编
程的氛围。
FOREWORD 前 言
I
II
? C语言学习笔记:从入门到实战
■ 本书的读者对象
本书以学习笔记的形式系统地讲解了C 语言的知识点和基本的实战应用,旨在帮助入门
级的读者轻松梳理知识点并掌握简单开发技巧。另外,融入书中的开发经验和综合案例,会
对有着一定C 语言开发基础的读者大有裨益,帮助他们提升开发技能、积累实战经验。
■ 致谢
本书在编写过程中,得到了中国铁道出版社编辑的大力支持,正是各位编辑的求实、耐
心和效率,才使得本书能够在这么短的时间内出版。另外,也十分感谢我的家人给予的巨大
支持。本人水平毕竟有限,书中存在纰漏之处在所难免,诚请读者提出宝贵的意见或建议,
以便修订并使之更臻完善。
最后感谢您购买本书,希望本书能成为您编程路上的领航者,祝您阅读快乐!
编者
2019 年8 月
|
|