图书简介:
第1章 认识C语言 1 1.1 C语言的历史及特点 1 1.1.1 计算机语言的发展 1 1.1.2 C语言的历史 2 1.1.3 C语言的特点 4 1.2 算法及其表示 4 1.2.1 算法的概念 4 1.2.2 算法的特征 5 1.2.3 算法的表示 5 1.3 C程序的操作过程 6 1.3.1 编辑 6 1.3.2 编译 6 1.3.3 链接 7 1.3.4 运行 7 1.4 C程序的基本结构 8 1.4.1 第一个基本的C程序 8 1.4.2 含有变量的C程序 9 1.4.3 包含多个函数的C程序 11 1.5 标识符、关键字和保留字 12 1.6 常量、变量和数据类型 13 1.6.1 常量 13 1.6.2 变量 14 1.6.3 数据类型 16 1.7 C语言的语法规范和编程规范 21 1.7.1 基本语法规范 21 1.7.2 基本编程规范 22 1.8 自测练习 22第2章 顺序结构 25 2.1 语句、运算符及表达式 25 2.1.1 语句 25 2.1.2 运算符和表达式 26 2.1.3 算术运算 30 2.1.4 增量运算 34 2.1.5 赋值运算 36 2.1.6 逗号运算 38 2.1.7 位运算 39 2.2 标准设备格式化输出函数 41 2.2.1 printf()函数的调用格式 41 2.2.2 格式控制字符串 42 2.3 标准设备格式化输入函数 45 2.3.1 scanf()函数的调用形式 45 2.3.2 格式控制字符串 46 2.4 其他标准设备输入、输出函数 48 2.4.1 字符输入、输出函数 48 2.4.2 字符串输入、输出函数 49 2.5 自测练习 50第3章 选择结构 52 3.1 条件构造 52 3.1.1 关系运算符和关系表达式 52 3.1.2 逻辑运算符和逻辑表达式 53 3.1.3 条件运算符 55 3.2 if语句 56 3.2.1 if语句的三种形式 56 3.2.2 if语句编程 58 3.3 switch语句 60 3.3.1 switch语句的形式 60 3.3.2 switch语句编程 61 3.4 选择结构的嵌套 63 3.4.1 嵌套选择结构的构成 63 3.4.2 编写含嵌套选择结构的程序 65 3.5 菜单设计及个税计算 69 3.6 自测练习 72第4章 循环结构 75 4.1 循环结构程序设计思路 75 4.2 while语句 76 4.3 do-while语句 81 4.4 for语句 83 4.5 循环嵌套 86 4.6 流程控制语句 91 4.6.1 break语句 91 4.6.2 continue语句 94 4.7 猜数游戏 96 4.8 自测练习 98第5章 数组 101 5.1 一维数组 101 5.1.1 一维数组的定义 101 5.1.2 一维数组的初始化 102 5.1.3 一维数组元素的引用 102 5.2 基于数组的数据管理操作 104 5.2.1 排序 104 5.2.2 查找 106 5.2.3 插入 108 5.2.4 删除 109 5.3 二维数组 110 5.3.1 二维数组的定义 110 5.3.2 二维数组的初始化 110 5.3.3 二维数组元素的引用 112 5.4 字符数组与字符串 113 5.4.1 字符数组 113 5.4.2 字符串 114 5.4.3 存储字符串的字符数组 114 5.4.4 字符串处理函数 115 5.5 矩阵转置和单词统计 118 5.6 自测练习 120第6章 函数 122 6.1 函数初识 122 6.1.1 函数的概念及分类 122 6.1.2 定义函数 124 6.1.3 调用函数 126 6.1.4 声明函数 127 6.2 函数的参数 129 6.2.1 函数形参的设置 129 6.2.2 函数参数的传递 130 6.3 函数的嵌套调用 131 6.4 函数的递归调用 134 6.5 局部变量和全局变量 135 6.5.1 变量的作用域 136 6.5.2 局部变量 136 6.5.3 全局变量 137 6.6 动态和静态变量 139 6.6.1 变量的生存期 139 6.6.2 变量的动态存储 139 6.6.3 变量的静态存储 141 6.7 利用函数实现系统框架的设计 143 6.8 自测练习 145第7章 指针 148 7.1 指针变量的定义和引用 148 7.1.1 地址和指针 148 7.1.2 指针变量的定义和赋值 149 7.1.3 引用指针变量 151 7.1.4 指向指针的指针变量 153 7.2 指针的运算 154 7.2.1 取地址运算和间址运算 154 7.2.2 指针与整数的加减运算 154 7.2.3 指针相减运算 156 7.2.4 指针的关系运算 158 7.3 指向字符串的指针 159 7.3.1 指向字符数组的指针 159 7.3.2 指向字符串常量的指针 162 7.4 指向数组的指针 165 7.5 指针数组 168 7.6 文本录入和统计 170 7.7 自测练习 172第8章 函数和指针进阶 174 8.1 函数与指针 174 8.1.1 指针作为函数的参数 174 8.1.2 返回值为指针的函数 178 8.1.3 指向函数的指针 179 8.2 命令行参数 181 8.3 数据的动态管理 183 8.3.1 malloc()函数 184 8.3.2 free()函数 185 8.3.3 calloc()函数 186 8.3.4 realloc()函数 187 8.4 编译预处理 188 8.4.1 文件包含 190 8.4.2 宏定义 192 8.4.3 条件编译 195 8.5 身份证信息合法性验证 195 8.6 自测练习 198第9章 自定义数据类型 200 9.1 结构体类型与结构体变量 200 9.1.1 结构体类型的定义 200 9.1.2 结构体变量的定义及初始化 201 9.1.3 结构体变量的引用 203 9.1.4 typedef关键字 204 9.2 结构体数组 205 9.2.1 结构体数组的定义及引用 205 9.2.2 结构体数组的实例 206 9.3 结构体指针 208 9.3.1 结构体指针的概述 208 9.3.2 结构体数组指针 208 9.4 结构体与函数 209 9.4.1 结构体变量作为函数参数 209 9.4.2 结构体指针作为函数参数 210 9.5 共用体 212 9.6 枚举类型 214 9.7 自测练习 216第10章 文件 219 10.1 文件的基本概念 219 10.1.1 文件的定义及分类 219 10.1.2 C语言处理文件的方式 220 10.1.3 文件指针 221 10.2 文件的打开和关闭 222 10.2.1 文件的打开 222 10.2.2 文件的关闭 223 10.3 文件读/写函数 223 10.3.1 单字符读/写函数 224 10.3.2 字符串读/写函数 226 10.3.3 格式化读/写函数 227 10.3.4 数据块读/写函数 229 10.4 文件定位操作 231 10.5 文件出错检测 233 10.6 员工基本信息管理 236 10.7 自测练习 238第11章 数据结构 241 11.1 算法与数据结构 241 11.1.1 算法设计与分析 241 11.1.2 数据结构的基本概念 243 11.2 顺序表和单链表 245 11.2.1 顺序表 246 11.2.2 单链表 247 11.3 栈和队列 251 11.3.1 栈 251 11.3.2 队列 252 11.4 树和二叉树 253 11.4.1 树的基本概念 253 11.4.2 二叉树结构 254 11.5 查找 257 11.5.1 顺序查找 257 11.5.2 二分查找 257 11.6 排序 258 11.6.1 交换类排序 258 11.6.2 选择类排序 260 11.6.3 插入类排序 263 11.7 自测练习 264第12章 程序设计及软件工程 266 12.1 程序设计方法与风格 266 12.2 结构化程序设计 267 12.2.1 结构化程序设计的原则 267 12.2.2 结构化程序设计的基本结构与特点 268 12.2.3 结构化程序设计原则和方法的应用 269 12.3 面向对象的程序设计 269 12.4 软件工程基本概念 271 12.4.1 软件定义与软件特点 271 12.4.2 软件危机与软件工程 272 12.4.3 软件工程过程与软件生命周期 272 12.4.4 软件工程的目标与原则 273 12.4.5 软件开发工具与软件开发环境 274 12.5 结构化分析和设计方法 274 12.5.1 需求分析与需求分析方法 275 12.5.2 结构化分析方法 275 12.5.3 软件需求规格说明书 276 12.5.4 软件设计的基本概念 277 12.5.5 概要设计和详细设计 277 12.6 软件测试及程序调试 284 12.6.1 软件测试的目的和准则 284 12.6.2 软件测试技术与方法概述 284 12.6.3 软件测试的实施 285 12.6.4 程序调试的基本概念 288 12.6.5 软件调试方法 289 12.7 自测练习 290附录A ASCII码表 292附录B C语言中的关键字 294附录C C语言常用标准库函数 295参考文献 300
展开
C语言与通信卫星、移动电话等一并被誉为贝尔实验室改变世界的十大发明,从诞生至今近半个世纪一直受到全世界程序员的青睐。C语言结构简单,数据类型丰富,运算灵活方便。用它编写的程序,具有速度快、效率高、代码紧凑、可移植性好等优点,能够有效地用来编制各种系统软件和应用软件。从Internet核心开发到驱动“好奇号”火星车,C语言遍及全球、跨越星际。因其在操作系统、工业控制、人工智能和物联网等诸多新工科领域的广泛应用,“C语言程序设计”仍然是计算机专业和非计算机专业首选的计算机语言课程。 本教材以国际标准C语言(ANSI C)的知识和结构为基本内容,以普及率甚高的Visual C++ 2010 Express为编译系统,全面系统地介绍了C语言及其程序设计方法。书中所有的例题均通过了调试。 针对初学者的特点,本书对内容进行了精心编撰,用读者容易理解的方式介绍相关知识。为了方便读者学习与实践,本教材还配套了《C语言程序设计习题与实践(慕课版)》,让读者加深和巩固所学知识。整套教材总共录制了181个重点、难点解析视频,方便学习者自主在线学习。本书可作为高等院校计算机基础课程教材及相关专业程序设计课程的参考教材,也可以作为全国计算机等级考试(二级C语言)参考用书。 本教材对应的慕课课程“C君带你玩编程”设计理念新颖、特色鲜明,荣获大中华区首届优秀慕课团体贡献铜奖,已上线爱课程(中国大学MOOC)、学堂在线、智慧树网、优课在线和玩课网等主流慕课平台,为方便教师开展“以学生为主体”的翻转课堂教学和实施过程化考核。除此之外,本书还提供了与慕课课程紧密结合的雨课件等丰富的教学资源。 本教材具有如下特点: 1.?内容安排合理,各章衔接紧密。以C语言的最基本内容为主线,深入浅出,通俗易懂,把难点进行了分散,使初学者能够更好地掌握课程的基本内容。 2.?各章均包含了C语言语法知识之外的成熟的程序设计思想、程序设计理念和程序设计方法,可引导读者少走弯路,尽快掌握运用C语言进行程序设计的思想精髓。 3.?设置的典型例题,有较好的示范作用;精选的习题,有利于读者掌握知识点和考点;丰富的实训内容,有利于培养读者调试程序的能力,进而全面掌握C语言的知识。 4. 配套了120个重点例题、难点知识及自测练习的详细解析二维码视频,为学习者提供了反复学习的便利,扫清学习障碍。 本书共分12章,有4个层次:第1~第4章是基础篇,第5~第7章是进阶篇,第8~第10章是提高篇,第11~第12章是拓展篇。其中,基础篇、进阶篇和提高篇的理论教学大约需要32学时,拓展篇则视学生的接受情况和具体学时数而定。 本书第1章、第10章由普运伟编写;第2章、第7章由耿植林编写;第3章、第4章由方娇莉编写;第5章由郭玲编写;第6章、第8章由潘晟旻编写;第9章由田春瑾编写;第11章由刘领兵编写;第12章由黎志编写。全书由方娇莉任主编并负责统稿和审稿。 本书的编写和出版得到了云南省高校教材研究会、电子工业出版社、昆明理工大学教务处、昆明理工大学计算中心领导和同仁的大力支持,在此一并表示衷心感谢!同时对本书所有参考文献、资料的作者们表示感谢! 由于作者水平有限,书中难免存在不足之处,恳请广大读者及同行给予批评指正,谢谢! 编 者 2017年11月
展开