C语言是编程者的入门语言,也是许多大学的第一门程序设计课程。本书充分考虑到这一点,在内容的编排上,尽量符合读者的要求,知识系统全面,在案例设计上从易到难,循序渐进,而且设计了许多经典的进阶案例,并在最后一章通过一个电子词典的案例综合运行前面所学知识,让初学者感觉到真正的程序开发过程。
本书共分为11个章节,接下来分别对每个章节进行简单地介绍,具体如下:
第1章主要介绍了C语言的特点和Visual Studio开发环境的搭建。通过本章的学习,读者需要掌握Visual Studio的安装与使用,并动手实现一个简单的C语言程序。
第2~5章主要讲解C语言的基础知识,主要包括进制、反码、补码、流程控制语句、函数、数组等,在讲解这些知识时提供了大量经典案例,如水仙花数、汉诺塔、杨辉三角等。学习这些知识时,一定要做到认真掌握每个知识点,切记走马观花,粗略的阅读章节内容,那样达不到任何学习效果。
第6~10章主要讲解了C语言中的核心内容,主要包括指针、字符串、预处理、结构体和共用体、文件操作等。读者需要花大量的精力来理解所讲解的内容,只有熟练掌握这些知识,才算真正的学好了C语言。
第11章主要讲解了电子词典这个项目,主要包括项目分析、项目开发、项目实现以及项目调试等。通过本章的学习初学者可以了解C语言项目的开发流程,并要求初学者按照教材中的思路和步骤动手实践。
本书附有配套的教学PPT、题库(2000道)、教学视频、源代码、教学补充案例、教学设计等资源。同时,为了帮助读者及时地解决学习过程中遇到的问题,传智播客还专门提供了免费的在线答疑平台,并承诺在3小时内针对问题给予解答。
本书可作为高等院校本、专科计算机相关专业程序设计类课程专用教材。
特色1:知识体系由浅入深
本书对C语言体系的讲解全面而系统,层次布局由浅入深,引导读者一步一步深入C语言知识的学习。
特色2:讲解方式新颖独特
针对每一个知识点,都是以“知识点描述+案例设计+案例分析+知识点使用技巧”的方式进行讲解。
特色3:案例丰富,图文并茂
每个知识点都配有案例练习,较难知识点会有多个案例对照使用,在重要章节处都配进阶案例。
特色4:教材、资源、服务三合一,高效学习
本书配套了多种资源供广大师生使用,另外,不管您是老师还是学生,使用我们的教材、资源过程中,遇到任何问题,都可以联系我们,我们的服务是贴心的、专业的。
第1章 初识C语言 1.1 C语言概述 1.1.1 计算机语言 1.1.2 什么是C语言 1.1.3 C语言的特点 1.1.4 为什么要学习C语言 1.2 开发环境搭建 1.2.1 主流开发工具介绍 1.2.2 Visual Studio安装 1.2.3 Visual Studio主界面 1.3 编写HelloWorld程序 1.4 注释——程序员的解释 1.5 C语言的运行机制 1.6 本章小结 1.7 习题 第2章 数据类型与运算符 2.1 进制 19 2.1.1 进制 2.1.2 进制转换 2.1.3 ASCII码表 2.2 原码、反码和补码 2.2.1 原码、反码、补码简介 2.2.2 原码、反码和补码的应用 2.3 关键字和标识符 2.3.1 关键字 2.3.2 标识符 2.4 常量与变量 2.4.1 常量 2.4.2 变量 2.4.3 变量的数据类型 2.4.4 类型转换 2.5 运算符 36 2.5.1 运算符与表达式 2.5.2 算术运算符 2.5.3 赋值运算符 2.5.4 关系运算符 2.5.5 逻辑运算符 2.5.6 条件运算符 2.5.7 逗号运算符 2.5.8 位运算符 2.5.9 sizeof运算符 2.5.10 运算符的优先级 2.6 本章小结 2.7 习题 第3章 结构化程序设计 3.1 程序的运行流程图 3.2 顺序结构语句 3.3 选择结构语句 3.3.1 if条件语句 3.3.2 if语句的嵌套 3.3.3 switch条件语句 3.4 循环结构语句 3.4.1 while循环语句 3.4.2 do-while循环语句 3.4.3 for循环语句 3.4.4 循环嵌套 3.4.5 跳转语句(break、goto、continue) 3.5 进阶案例——打印水仙花数 3.6 本章小结 3.7 习题 第4章 函数 4.1 初识函数 4.1.1 函数的定义 4.1.2 函数名 4.1.3 函数参数 4.1.4 返回值类型 4.1.5 函数体 4.2 初识内存四区 4.2.1 内存四区 4.2.2 栈区 4.2.3 堆区 4.3 函数调用 4.3.1 函数的调用方式 4.3.2 printf()函数和scanf()函数 4.3.3 嵌套调用 4.3.4 递归调用 4.3.5 案例——斐波那契数列(兔子问题) 4.4 外部函数与内部函数 4.4.1 外部函数 4.4.2 内部函数 4.5 局部变量与全局变量 4.5.1 局部变量 4.5.2 全局变量 4.5.3 变量的作用域 4.6 进阶案例——汉诺塔 4.7 本章小结 4.8 习题 第5章 数组 5.1 什么是数组 5.2 一维数组 5.2.1 一维数组的定义与初始化 5.2.2 一维数组的引用 5.2.3 一维数组的常见操作 5.3 二维数组 5.3.1 二维数组的定义与初始化 5.3.2 二维数组的引用 5.3.3 二维数组的应用 5.4 数组作为函数参数 5.4.1 数组元素作为函数参数 5.4.2 数组名作为函数参数 5.5 多维数组 5.6 进阶案例——打印杨辉三角 5.7 本章小结 5.8 习题 第6章 指针 6.1 指针的概念 6.2 指针运算 6.2.1 取址运算符 6.2.2 取值运算符 6.2.3 指针的常用运算 6.3 指向变量的指针 6.3.1 指针变量的使用 6.3.2 指针变量作为函数参数 6.4 指向数组的指针 6.4.1 指向一维数组元素的指针 6.4.2 指向二维数组元素的指针 6.4.3 数组指针作为函数参数 6.5 指向函数的指针 6.5.1 定义一个指向函数的指针 6.5.2 使用函数指针作为函数参数 6.6 指针数组和二级指针 6.6.1 指针数组的概念 6.6.2 指针数组作为main()函数的形参 6.6.3 二级指针 6.6.4 案例——冒泡排序 6.7 内存申请和操作 6.7.1 内存申请 6.7.2 内存回收 6.7.3 内存操作 6.8 指针与const限定符 6.9 进阶案例——查找不及格的学生成绩 6.10 本章小结 6.11 习题 第7章 字符串 7.1 字符串和字符数组 7.1.1 字符数组 7.1.2 字符串 7.1.3 字符串与指针 7.1.4 字符数组、字符指针之间的剪不断、理还乱 7.2 字符串的输入输出 7.2.1 gets()函数 7.2.2 puts()函数 7.3 操作字符串函数 7.3.1 字符串比较 7.3.2 字符串查找 7.3.3 字符串连接 7.3.4 字符串复制 7.3.5 数字与字符串的转换 7.4 字符串作为函数参数 7.5 进阶案例——去掉字符串两端空格 7.6 本章小结 7.7 习题 第8章 预处理 8.1 宏定义 8.1.1 不带参数的宏定义 8.1.2 带参数的宏定义 8.2 文件包含 8.2.1 文件包含命令的形式 8.2.2 文件包含的实例 8.3 条件编译 8.3.1 #if/#else/#endif指令 8.3.2 #ifdef指令 8.3.3 #ifndef指令 8.4 五个预定义宏 8.4.1 __DATE__ 8.4.2 __TIME__ 8.4.3 __FILE__ 8.4.4 __LINE__ 8.4.5 __FUNCTION__ 8.5 本章小结 8.6 习题 第9章 结构体和共用体 9.1 结构体类型和结构体变量 9.1.1 结构体类型定义 9.1.2 结构体变量的定义 9.1.3 结构体变量的初始化 9.1.4 结构体变量的引用 9.2 结构体数组 9.2.1 结构体数组的定义 9.2.2 结构体数组的初始化 9.2.3 结构体数组的引用 9.3 结构体指针变量 9.3.1 结构体指针变量 9.3.2 结构体数组指针 9.4 结构体类型数据在函数间的传递 9.4.1 结构体变量作为函数参数 9.4.2 结构体数组作为函数参数 9.4.3 结构体指针作为函数参数 9.5 union共用体 9.5.1 共用体类型的定义 9.5.2 共用体变量的定义 9.5.3 共用体变量的引用和初始化 9.6 typedef—给类型取个别名 9.7 进阶案例——求学生平均成绩 9.8 本章小结 9.9 习题 第10章 文件操作 10.1 文件概述 10.1.1 外部介质和文件 10.1.2 文件分类 10.1.3 文件存储形式 10.1.4 文件指针 10.1.5 文件位置指针 10.1.6 流 10.2 文件的打开与关闭 10.3 文件的读写 10.3.1 单字符读写文件 10.3.2 单行读写文件 10.3.3 二进制读写文件 10.4 文件的随机读写 10.4.1 文件位置指针的定位 10.4.2 对文件进行随机读写 10.5 本章小结 224 10.6 习题 224 第11章 综合项目——学生成绩管理系统 11.1 项目分析 11.1.1 需求分析 11.1.2 效果展示 11.1.3 数据设计 11.2 项目实现 11.2.1 创建项目 11.2.2 预处理实现 11.2.3 功能函数实现 11.2.4 主函数实现 11.3 程序调试 11.3.1 设置断点 11.3.2 单步调试 11.3.3 观察变量 11.3.4 条件断点 11.3.5 项目调试 11.4 本章小结