科技>计算机>编程语言
从零开始学C语言(第3版)

从零开始学C语言(第3版)"

作者:戴晟晖,冯志强
ISBN:9787121301049
定价:¥59.8
字数:662千字
页数:372
出版时间:2017-01
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

为了使初学者都更好地掌握这门高级语言——C 语言,本书系统地介绍了程序设计的基本理论与编程技术。每一个知识点都作为一个独立的章节进行详细的讲解,目的在于让读者在学习C 语言的过程中,能循序渐进、由浅入深。本书共4 篇分为18 章,内容包括C 语言入门基础、C 语言程序、常量/变量与标识符、数据类型、运算符及其表达式、输入与输出、顺序结构与选择结构、循环结构程序设计、结构语句的转移、数组、函数、指针、结构体、共用体和文件等内容。最后的实例篇,运用C 语言建立一个学生成绩管理系统,通过对该系统的界面设计、功能分析、模块描述,使读者对C 语言程序设计有一个更加系统、深刻的理解。本书内容全面、论述翔实,适合C 语言的初学者,也可作为大、中专院校师生的培训教材。对于C语言爱好者,本书也有很大的参考价值。

前言

近年来,C 语言是应用非常广泛的一种高级程序设计语言,它不仅是计算机专业学生的必 修课,也是许多非计算机专业学生所青睐的技术学科。C 语言程序设计是全国和各省计算机等 级考试的重要考试内容。C 语言功能丰富,表达能力强,使用灵活方便,程序效率高,是结构 化程序设计语言。C 语言具有很强的实用性,既可用来编写应用软件,也适合于编写系统软件。 改版说明 本书前面两版已经销售了数万册,广受读者欢迎,这次改版主要在如下几个方面进行了升 级: 1.修订了书中的个别错误。 2.增加了大量的代码注释,让书中代码的可读性更强,即使以前没有学过编程,也能轻松 读懂代码。 3.每章最后增加了“典型实例”栏目,全书增加了40 多段经典C 语言代码,帮助读者体 会知识的精髓。 4.赠送《C 语言函数速查效率手册》电子书及配套代码文件,内含300 多个常用函数的语 法规范讲解和300 多个典型案例,方便速查速用。 5.赠送《C 语言程序设计经典236 例》与《C++程序设计经典300 例》电子书及配套代码 文件,分别精心收录236 与300 个经典开发案例,全面覆盖C 语言与C++开发技术,实践出真 知。 6.赠送《C/C++程序员面试指南》电子书,内含200 多个经典面试题及解析,在提高开发 水平的同时快速提升面试能力。 本书的特点 C 语言是学习其他语言的基础,读者只要掌握C 语言,学习其他语言就会很快入门。本书 为了使读者能够从C 语言的初学者成为编程高手,专门对C 语言知识进行研究分析。本书的主 要特点如下: ? 结构清晰明了。本书共18 章,每章都分为若干节,每节一个小知识点,结构层次清晰 可见。 ? 内容全面详细。本书涵盖了C 语言中的所有主要知识,并将C 语言各个知识点作为单 独章节进行讲解,并举出大量实例。 ? 讲解由浅入深。本书首先向读者介绍C 语言的基本理论知识、数据结构和基本的编程 规则,让读者对C 语言的基本知识及结构化程序设计思想有一个初步的认识;接着对 C 语言一些复杂的数据结构类型如数组、函数、指针操作、结构体与共用体、文件等 进行详细的讲解。 ? 实例丰富多样。本书所讲的每一个知识点都运用充分的实例进行讲解说明,便于读者 掌握。 1.清晰的体例结构 1 知识点介绍 准确、清晰是其显著特点,一般放在每一节开始位置,让零基础的读者 了解相关概念,顺利入门。 2 贴心的提示 为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士。体例约定 如下。 提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。 注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。 警告:对操作不当或理解偏差将会造成的灾难性后果做出警示,以加深读者印象。 3 实例 书中出现的完整实例,各章中接顺序编号,便于检索和循序渐进地学习、实践, 各实例均放在每节知识点介绍之后。 4 实例代码 与实例编号对应,层次清楚、语句简洁、注释丰富,体现了代码优美的原 则,有助于读者养成良好的代码编写习惯。 5 运行结果 针对实例给出运行结果和对应图示,帮助读者更直观地理解实例代码。 6 习题 每章最后提供专门的测试习题,供读者检验所学知识是否牢固掌握。 经作者多年的培训和授课证明,以上讲解方式是非常适合初学者学习的方式,读者按照这 种方式,会非常轻松、顺利地掌握本书知识。 2.实用超值的配套资源包 为了帮助读者比较直观地学习,本书附带大容量资源包,内容 包括同步教学视频、电子教案(PPT)和实例源代码,以及赠品等, 下载地址为:www.broadview.com.cn/30104。 ? 教学视频 配有长达15 小时手把手教学视频,讲解关键知识点界面操作和书中的一些综合练习题。作 者亲自配音、演示,手把手指导读者进行学习。 ? 电子教案(PPT) 本书可以作为高校相关课程的教材或课外辅导书,所以笔者特别为本书制作了电子教案 (PPT),以方便老师教学使用。 3.提供完善的技术支持 本书配有支持论坛http://www.rzchina.net,读者可以在上面提问或交流。另外,论坛上还有 一些教程、视频动画和各种技术文章,可帮助读者提高开发水平。 适合阅读本书的读者 ? C 语言的初、中级读者。 ? 了解C 语言,但所学不全面的人员。 ? 高等理科院校学习C 语言课程的学生。 ? 使用C 语言进行毕业设计的学生。 ? 熟悉其他语言,以此作为参考书的开发人员。

目录

第1 篇 C 语言入门 第1 章 C 语言入门基础 ( 教学视频:58 分钟) ..... 1 1.1 计算机语言的演变 ............................... 1 1.1.1 机器语言 ................................................ 1 1.1.2 汇编语言 ................................................ 1 1.1.3 高级语言 ................................................ 1 1.1.4 面向对象或面向问题的高级语言 ........ 2 1.2 数制、数制转换与存储 ....................... 2 1.2.1 数制 ....................................................... 2 1.2.2 数制的转换 ........................................... 3 1.2.3 计算机中数据的存储 ........................... 4 1.3 程序设计思想——算法 ....................... 5 1.3.1 算法的概念 ........................................... 5 1.3.2 算法的特点 ........................................... 5 1.3.3 算法的表示方法 ................................... 6 1.3.4 算法分析 ............................................... 8 1.4 C 语言的发展简史和特点 ................... 8 1.4.1 C 语言的诞生与发展 ........................... 9 1.4.2 C 语言的特点 ..................................... 10 1.5 本章小结 ............................................. 11 1.6 习题 ..................................................... 11 第2 章 认识C 语言程序 ( 教学视频:30 分钟) ... 12 2.1 C 语言程序的结构特征 ..................... 12 2.2 C 语言程序的书写风格 ..................... 14 2.3 C 语言程序的开发过程 ........................... 15 2.4 Visual C++集成开发环境 ......................... 17 2.4.1 熟悉Visual C++ 6.0 集成开发环境 ... 17 2.4.2 C 语言在Visual C++ 6.0 的开发过程 ............................................. 18 2.5 用Visual C++ 6.0 运行一个C 程序 ........ 19 2.6 典型实例 ..................................................... 20 2.7 本章小结 ..................................................... 22 2.8 习题 .............................................................. 22 第2 篇 C 语言基础 第3 章 常量、变量与标识符 ( 教学视频:17 分钟) ... 23 3.1 标识符 ......................................................... 23 3.1.1 标识符的命名 ..................................... 23 3.1.2 保留字 ................................................. 23 3.2 常量 .............................................................. 24 3.2.1 直接常量 ............................................. 24 3.2.2 符号常量 ............................................. 24 3.3 变量 ............................................................. 25 3.3.1 变量的定义 ......................................... 25 3.3.2 变量初始化的方法 ............................. 25 3.4 变量的初始化 ............................................ 26 3.5 典型实例 ..................................................... 26 3.6 本章小结 ..................................................... 27 3.7 习题 ............................................................. 27 第4 章 数据类型 ( 教学视频:28 分钟) ... 29 4.1 C 语言中的数据类型 ................................ 29 4.1.1 基本数据类型 ..................................... 29 4.1.2 构造数据类型 ..................................... 30 4.1.3 指针数据类型 ..................................... 30 4.1.4 空类型 ................................................. 30 4.2 整型数据 ..................................................... 30 4.2.1 整型常量 ............................................. 31 4.2.2 整型变量 ............................................. 31 4.3 实数型数据 ................................................. 32 4.3.1 实数型常量 ......................................... 33 4.3.2 实数型变量 ......................................... 34 4.4 字符型数据 ................................................ 34 4.4.1 字符型常量 ......................................... 34 4.4.2 字符型变量 ......................................... 35 4.5 数值型数据间的混合运算 ....................... 37 4.5.1 自动类型转换 ..................................... 37 4.5.2 强制类型转换 ..................................... 38 4.6 典型实例 ............................................. 40 4.7 本章小结 ............................................. 41 4.8 习题 ..................................................... 42 第5 章 运算符及其表达式 ( 教学视频:57 分钟) ... 43 5.1 算术运算符及算术表达式 ...................... 43 5.1.1 算术运算符 ......................................... 43 5.1.2 算术表达式 ......................................... 45 5.2 赋值运算符及赋值表达式 ....................... 45 5.2.1 赋值运算符 ......................................... 46 5.2.2 赋值表达式 ......................................... 47 5.3 关系运算符及关系表达式 ....................... 48 5.3.1 关系运算符 ......................................... 48 5.3.2 关系表达式 ......................................... 49 5.4 逻辑运算符及逻辑表达式 ...................... 50 5.4.1 逻辑运算符 ......................................... 50 5.4.2 逻辑运算规则 ..................................... 51 5.4.3 逻辑表达式 ......................................... 52 5.5 条件运算符及条件表达式 ....................... 54 5.5.1 条件运算符 ......................................... 55 5.5.2 条件表达式 ......................................... 56 5.6 逗号运算符及逗号表达式 ....................... 58 5.6.1 逗号运算符 ......................................... 58 5.6.2 逗号表达式 ......................................... 59 5.7 位运算符 .................................................... 60 5.7.1 位逻辑运算符 ..................................... 60 5.7.2 移位运算符 ......................................... 62 5.7.3 位自反赋值运算符 ............................. 64 5.8 位运算符 .................................................... 64 5.9 典型实例 ............................................. 65 5.10 本章小结 ........................................... 67 5.11 习题 .................................................. 67 第6 章 输入与输出 ( 教学视频:65 分钟) ... 68 6.1 C 语句概述 ................................................. 68 6.1.1 流程控制语句 ..................................... 68 6.1.2 函数调用语句 ..................................... 72 6.1.3 表达式语句 ......................................... 72 6.1.4 空语句 ................................................. 72 6.1.5 复合语句 ............................................. 72 6.2 输入与输出函数 ......................................... 73 6.2.1 格式输出函数 ..................................... 73 6.2.2 格式输入函数 ..................................... 76 6.2.3 字符输入与字符输出函数 ................. 80 6.3 整型数据的输入与输出 ............................ 82 6.3.1 整型数据的输出 ................................. 82 6.3.2 整型数据的输入 ................................. 84 6.4 浮点型数据的输入与输出 ....................... 84 6.5 典型实例 ..................................................... 85 6.6 本章小结 ..................................................... 90 6.7 习题 .............................................................. 90 第7 章 顺序结构与选择结构 ( 教学视频:35 分钟) ... 91 7.1 顺序结构程序设计 .................................... 91 7.2 选择结构程序设计 .................................... 93 7.2.1 if 语句 ................................................. 93 7.2.2 switch 语句 ......................................... 98 7.3 典型实例 ................................................... 101 7.4 本章小结 ................................................... 104 7.5 习题 ........................................................... 104 第8 章 循环结构程序设计 ( 教学视频:54 分钟) ... 105 8.1 while 语句 ................................................ 105 8.2 do…while 语句......................................... 107 8.3 for 语句 ...................................................... 110 8.3.1 for 循环结构 ..................................... 110 8.3.2 for 循环语句的嵌套 ......................... 113 8.4 应用总结 .................................................. 115 8.4.1 几种循环的比较 ............................... 115 8.4.2 循环语句的嵌套 ............................... 116 8.5 典型实例 ................................................... 119 8.6 本章小结 ................................................... 121 8.7 习题............................................................ 121 第9 章 结构语句的转移 ( 教学视频:13 分钟) ... 122 9.1 break 语句 ................................................ 122 9.2 跳出循环结构 ........................................... 124 9.2.1 问题1 ................................................ 124 9.2.2 问题2 ................................................ 125 9.3 continue 语句 ........................................... 126 9.4 goto 语句 .................................................. 128 9.5 典型实例 .................................................. 129 9.6 本章小结 .................................................. 132 9.7 习题 ........................................................... 132 第3 篇 C 语言进阶 第10 章 数组 ( 教学视频:78 分钟) ... 133 10.1 数组的概述 ............................................. 133 10.2 一维数组 ................................................. 134 10.2.1 一维数组的定义 ............................. 134 10.2.2 一维数组的初始化 ......................... 134 10.2.3 一维数组的引用 ............................. 136 10.2.4 一维数组的程序举例 ..................... 137 10.3 二维数组 ................................................. 143 10.3.1 二维数组的定义 ............................. 143 10.3.2 二维数组的初始化 ......................... 144 10.3.3 二维数组的引用 ............................. 146 10.3.4 数组的程序举例 ............................. 148 10.4 典型实例 ................................................. 150 10.5 本章小结 ................................................. 155 10.6 习题 .......................................................... 155 第11 章 字符数组 ( 教学视频:45 分钟) ... 156 11.1 字符数组的定义 .................................... 156 11.2 字符数组的初始化 ................................ 157 11.3 字符数组的引用 .................................... 157 11.4 字符数组与字符串的关系 ................... 157 11.5 字符数组的输入与输出 ....................... 159 11.6 字符串处理函数 .................................... 160 11.6.1 输入字符串函数gets...................... 160 11.6.2 输出字符串函数puts ..................... 160 11.6.3 字符串测长度函数strlen ............... 160 11.6.4 字符串比较函数strcmp ................. 160 11.6.5 字符串复制函数strcpy 和strncpy ............................................. 161 11.6.6 字符串连接函数strcat ................... 161 11.7 典型实例 ................................................. 163 11.8 本章小结 ................................................. 167 11.9 习题 ......................................................... 168 第12 章 函数 ( 教学视频:43 分钟) ... 169 12.1 函数的初步认识 .................................... 169 12.2 函数定义 ................................................. 171 12.2.1 无参函数定义 ................................. 171 12.2.2 有参函数定义 ................................. 172 12.2.3 空函数定义 ..................................... 172 12.3 函数参数及返回值 ................................ 173 12.3.1 函数的参数 ..................................... 173 12.3.2 函数的返回值 ................................. 175 12.4 函数的参数传递 .................................... 176 12.4.1 函数参数的数值传递 ..................... 176 12.4.2 函数参数的地址传递 ..................... 177 12.5 典型实例 ......................................... 178 12.6 本章小结 ................................................. 181 12.7 习题 ......................................................... 181 第13 章 函数的调用 ( 教学视频:75 分钟) ... 182 13.1 函数调用的一般形式 ............................ 182 13.2 函数调用的形式 .................................... 183 13.3 被调用函数的声明与函数原型 .......... 184 13.4 函数的嵌套调用和递归调用 ............... 187 13.4.1 函数的嵌套调用 ............................. 187 13.4.2 函数的递归调用 ............................. 188 13.5 变量作用域 ............................................. 189 13.5.1 变量作用域和生存期 ..................... 189 13.5.2 局部变量和全局变量 ..................... 189 13.5.3 变量存储类别 ................................. 192 13.6 编译预处理 ............................................ 197 13.6.1 宏定义 ............................................. 197 13.6.2 文件包含处理 ................................. 200 13.6.3 条件编译 ......................................... 201 13.7 典型实例 ................................................. 202 13.8 本章小结 ................................................. 209 13.9 习题 ......................................................... 209 第14 章 指针操作 ( 教学视频:67 分钟) ... 210 14.1 指针与地址 ............................................ 210 14.2 指针和指针变量 .................................... 211 14.2.1 指针变量的定义 ............................. 211 14.2.2 指针变量的引用 ............................. 213 14.2.3 指针的运算 ..................................... 214 14.3 指针和数组 ............................................. 218 14.3.1 数组的指针和指向数组的指针变量 ............................. 218 14.3.2 指针数组和指向指针的指针 ......... 222 14.3.3 指向字符串的指针 ......................... 224 14.3.4 数组名作为函数参数 ..................... 225 14.4 指针和函数 ............................................. 229 14.4.1 函数的指针和指向 函数的指针变量 ............................. 229 14.4.2 用指向函数的指针作为函数参数 .. 231 14.4.3 指针数组作为函数参数 ................. 237 14.4.4 返回指针值的函数 ......................... 238 14.4.5 字符串指针作为函数参数 ............. 239 14.5 典型实例 ................................................. 240 14.6 本章小结 ................................................. 243 14.7 习题 .......................................................... 243 第15 章 结构体 ( 教学视频:77 分钟) ... 244 15.1 结构体类型定义 .................................... 244 15.1.1 结构体类型的说明 ......................... 244 15.1.2 结构体类型的定义 ......................... 244 15.2 结构体变量的定义与引用.................... 246 15.2.1 结构体变量的定义与初始化 ......... 246 15.2.2 结构体变量的引用 ......................... 248 15.3 结构数组 ................................................. 251 15.3.1 结构数组的定义 ............................. 251 15.3.2 结构数组的引用 ............................. 253 15.4 结构体指针 ............................................. 254 15.4.1 结构体指针变量的定义 ................. 254 15.4.2 结构体指针变量的引用 ................. 255 15.5 链表 .......................................................... 258 15.5.1 链表概述 ......................................... 258 15.5.2 单链表建立 ..................................... 260 15.5.3 单链表简单操作 ............................. 264 15.6 典型实例 ................................................. 274 15.7 本章小结 ................................................. 284 15.8 习题 .......................................................... 284 第16 章 共用体 ( 教学视频:43 分钟) ... 285 16.1 共用体类型定义 .................................... 285 16.1.1 定义共用体 ..................................... 285 16.1.2 共用体的存储 ................................. 286 16.2 共用体类型变量、数组和指针变量的定义 ..................................... 287 16.2.1 先定义共用体,再定义共用体变量、数组及指针变量 ..... 287 16.2.2 定义共用体的同时定义共用体变量、数组及指针变量 ............. 288 16.2.3 定义共用体变量、数组及指针变量时省略共用体名 ............. 288 16.3 共用体类型变量、数组和指针变量的引用 .............................. 288 16.4 枚举类型 ......................................... 290 16.4.1 枚举类型的定义 ............................. 290 16.4.2 枚举类型变量的赋值和引用 ......... 291 16.5 用typedef 定义数据类型 ............... 293 16.6 典型实例 ......................................... 297 16.7 本章小结 ......................................... 299 16.8 习题 ................................................. 300 第17 章 文件 ( 教学视频:58 分钟) ... 301 17.1 文件概述 ................................................. 301 17.1.1 文件名 ............................................. 301 17.1.2 文件的类型 ..................................... 302 17.2 文件类型指针 ........................................ 302 17.3 文件的打开与关闭 ................................ 304 17.3.1 文件打开函数fopen() .................... 304 17.3.2 文件关闭函数fclose() .................... 306 17.4 文件的读写操作 .................................... 307 17.4.1 字符读写函数 ................................. 307 17.4.2 字符串读写函数 ............................. 309 17.4.3 数据块读写函数 ............................. 313 17.4.4 格式数据读写函数 ......................... 315 17.5 文件的定位 ............................................. 316 17.5.1 文件头定位函数rewind() .............. 317 17.5.2 文件随机定位函数fseek() ............. 317 17.5.3 测试当前位置函数ftell() ............... 319 17.6 文件的检测 ............................................. 319 17.6.1 文件末尾检测函数feof() ............... 319 17.6.2 文件读写出错检测函数ferror() .... 320 17.6.3 清除文件末尾和出错标志函数clearerr() .......................................... 321 17.7 典型实例 ................................................. 322 17.8 本章小结 ................................................. 324 17.9 习题 ......................................................... 324 第4 篇 案例实战 第18 章 学生成绩管理系统设计 ( 教学视频:18 分钟) ... 325 18.1 学生成绩管理系统功能 ........................ 325 18.2 功能模块的描述 .................................... 325 18.2.1 数据结构 ......................................... 325 18.2.2 main()主函数 .................................. 325 18.2.3 score *creatlink()创建动态链表 ..... 326 18.2.4 void print(score *head)显示学生信息 ................................. 327 18.2.5 score *add(score *head,score *stu)向链表中添加学生数据 ................. 327 18.2.6 score *search(score *head)查询学生成绩 ................................. 327 18.2.7 score *dele(score *head)删除数据 . 328 18.2.8 score *sortdata(score *head)对数据进行排序 ............................. 328 18.2.9 save(score *p1)保存数据 ................ 328 18.2.10 score *load(score *head)从文件中读取数据 ....................... 328 18.2.11 score *statistics(score *head)成绩统计 ....................................... 329 18.2.12 int menu(int k)菜单 ....................... 329 18.2.13 用到的头文件和全局变量 ........... 329 18.3 程序代码 ................................................. 329 18.3.1 主函数main()代码 ......................... 329 18.3.2 创建链表函数creatlink() ............... 330 18.3.3 显示学生信息函数print() .............. 333 18.3.4 向链表中添加学生数据函数add() ............................... 333 18.3.5 查询学生成绩函数search .............. 335 18.3.6 删除数据函数dele ......................... 336 18.3.7 对数据进行排序函数sortdata() ..... 337 18.3.8 保存数据函数save() ...................... 340 18.3.9 从文件中读取数据函数loadfile() ... 340 18.3.10 成绩统计函数statistics() .............. 341 18.4 程序运行 ................................................. 343 18.4.1 编辑学生成绩 ................................. 343 18.4.2 显示学生成绩 ................................. 343 18.4.3 保存学生成绩信息 ......................... 344 18.4.4 查询学生的成绩 ............................. 344 18.4.5 添加学生的成绩 ............................. 344 18.4.6 删除学生的成绩 ............................. 345 18.4.7 学生成绩排序 ................................. 345 18.4.8 从文件中读取学生的成绩 ............. 345 18.4.9 统计学生的成绩 ............................. 345 18.5 本章小结 ................................................. 346 附录A ASCII 字符集 .......................... 347 附录B 运算符的优先级与结合性 ........ 349 附录C C 语言常用库函数 .................. 352 附录D 安装Visual C++ 6.0集成开发环境 ......................... 355

作者简介

本书的作者团队成员为一线开发工程师、资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版过多本相关畅销书,颇受广大读者认可。长期积累的开发实战经验,结合对编程入门爱好者需求与特点的深入调查研究,本书的内容结构十分有利于编程爱好者和相关学员快速提高水平。

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个