图书简介:
第1章 C程序设计概述 1
1.1 计算思维与程序设计基础 1
1.2 计算机编程语言 2
1.3 初识C语言 3
1.4 C程序的开发步骤 4
1.5 C语言源程序介绍 5
1.5.1 编写一个简单的C程序 5
1.5.2 在Visual Studio 2010中
运行C程序 6
1.5.3 编写一个稍复杂的
C程序 11
1.5.4 在Visual Studio 2010中
跟踪调试C程序 12
1.6 C语言源程序的组成 14
1.6.1 编译预处理命令 14
1.6.2 main()函数 14
1.6.3 函数定义 14
1.6.4 程序中的注释 15
1.7 应用案例 15
本章小结 16
答疑解惑 17
习题 17
第2章 数据类型及运算 19
2.1 数据类型 19
2.1.1 C语言中的数据类型 19
2.1.2 常量与变量 20
2.1.3 整型数据 21
2.1.4 浮点型数据 23
2.1.5 字符型数据 24
2.1.6 指针类型 26
2.2 运算符和表达式 27
2.2.1 C语言中的运算符和
表达式 27
2.2.2 算术运算符与算术
表达式 28
2.2.3 赋值运算符与赋值
表达式 29
2.2.4 关系运算符与关系
表达式 30
2.2.5 逻辑运算符与逻辑
表达式 31
2.2.6 条件运算符与条件
表达式 33
2.2.7 取地址运算符和间接
访问运算符 33
2.2.8 逗号运算符与逗号
表达式 34
2.2.9 取字节运算符与取字节
运算表达式 34
2.2.10 位运算 34
2.3 不同类型数据之间的
混合运算 35
2.4 应用案例 37
本章小结 38
答疑解惑 39
习题 40
第3章 程序控制结构 42
3.1 C语句概述 42
3.2 算法 43
3.2.1 算法的概念 43
3.2.2 算法的表示 44
3.3 顺序结构 47
3.3.1 数据的输入与输出 47
3.3.2 简单C程序设计 52
3.4 选择结构 53
3.4.1 使用if语句实现
选择结构 53
3.4.2 使用switch语句实现
选择结构 57
3.5 循环结构 61
3.5.1 使用while语句实现
循环结构 61
3.5.2 使用do-while语句实现
循环结构 63
3.5.3 使用for语句实现
循环结构 64
3.5.4 循环的嵌套 65
3.5.5 break语句和continue语句
的使用 67
3.6 程序设计综合举例 68
3.6.1 迭代 68
3.6.2 穷举 70
3.7 应用案例 72
本章小结 73
答疑解惑 74
习题 75
第4章 数组与指针 78
4.1 一维数组 78
4.1.1 一维数组的定义 78
4.1.2 一维数组的初始化 79
4.1.3 一维数组中元素的引用 79
4.1.4 一维数组应用举例 83
4.1.5 动态分配与释放内存
空间 87
4.2 二维数组 88
4.2.1 二维数组的定义 88
4.2.2 二维数组的初始化 89
4.2.3 二维数组中元素的
引用 89
4.2.4 二维数组应用举例 92
4.3 字符数组和字符串 93
4.3.1 字符数组的定义和
引用 93
4.3.2 字符数组的初始化 94
4.3.3 字符数组的输入与
输出 94
4.3.4 字符串指针 96
4.3.5 常用的字符串处理
函数 96
4.3.6 指针数组与指向指针的
指针 98
4.4 应用案例 100
本章小结 104
答疑解惑 105
习题 106
第5章 函数 107
5.1 函数的定义 108
5.1.1 定义函数的语法格式 108
5.1.2 函数的返回值 109
5.2 函数的调用 110
5.2.1 函数的声明 110
5.2.2 函数调用的形式 110
5.2.3 参数的传递方式 112
5.2.4 函数的嵌套调用 118
5.2.5 函数的递归调用 120
5.3 函数与指针 125
5.3.1 函数的指针 125
5.3.2 返回指针的函数 128
5.4 变量的作用域与存储类别 130
5.4.1 局部变量和全局变量 130
5.4.2 变量的存储类别 134
5.5 内部函数与外部函数 137
5.5.1 内部函数 137
5.5.2 外部函数 137
5.6 应用案例 138
本章小结 139
答疑解惑 140
习题 140
第6章 用户自定义数据类型 143
6.1 结构体类型 143
6.1.1 结构体类型和变量 143
6.1.2 结构体数组 146
6.1.3 指向结构体变量的
指针变量 148
6.1.4 使用结构体变量作为
函数的参数 151
6.2 共用体类型 153
6.2.1 共用体类型的声明 154
6.2.2 共用体变量的定义 154
6.2.3 共用体变量中成员的
引用 155
6.3 枚举类型 159
6.4 应用案例 162
本章小结 163
答疑解惑 164
习题 165
第7章 文件 166
7.1 文件概述 166
7.1.1 文件的概念 166
7.1.2 文件的分类 166
7.1.3 文件指针 167
7.2 文件的打开和关闭 168
7.2.1 文件的打开 168
7.2.2 文件的关闭 170
7.3 文件的读写 170
7.3.1 文件中字符和字符串的
读写 171
7.3.2 文件的格式化读写 174
7.3.3 文件中数据块的读写 175
7.4 文件指针的定位 178
7.5 文件的出错检测 181
7.6 应用案例 182
本章小结 184
答疑解惑 185
习题 186
第8章 综合实例——学生综合
测评系统 187
8.1 项目任务 187
8.2 需求分析 188
8.3 总体设计 189
8.4 各个功能模块的设计 190
8.4.1 主函数模块 190
8.4.2 学生信息输入模块 190
8.4.3 学生信息排序模块 191
8.4.4 学生信息查询模块 191
8.4.5 学生信息插入模块 192
8.4.6 学生信息删除模块 193
8.4.7 学生成绩计算模块 194
8.4.8 学生名次统计模块 195
8.4.9 学生信息输出模块 196
8.4.10 学生信息存档模块 196
8.5 参考代码 196
附录A 常用的字符与ASCII码
对照表 207
附录B ANSI C标准规定的保留字 209
附录C C语言中运算符的优先级和
结合性 210
附录D 常用的标准库函数 212
附录E Visual Studio 2010中C语言
编译常见的错误 218
附录F 伪代码 220
参考文献
展开
C 语言作为一门诞生了将近半个世纪的编程语言,至今仍被广泛应用于各个领域。我们在长期的计算机教学实践中积累了一些新的教学经验和研究成果:在课程建设方面,我们建设的课程获评“全国精品资源共享课”“陕西省一流课程”“空军精品课程”等:在教学方法方面,我们先后总结出了算法先导教学法、陷阱教学法等:在教学实践方面,我们收集与整理了大量学生学习 C 语言的常见困惑和改进建议。为了将前沿技术发展成果与最新教学经验及时融入 C 语言的教学过程,并适配全国计算机等级考试二级 C 语言程序设计(Visual C++ 2010 编译器)的上机环境要求,我们编写了本书。
目前,C 语言的相关教程很多,但从高校本科教学需求出发、具有军事应用特色、体现“通过编程解决实际问题”理念的教程并不是很多,融入课程思政元素的教材更是少之又少。本书正是基于这一现实需求与教学理念,结合编写团队多年的教学实践和项目开发经验编写而成的,旨在为高校理工科学生提供一本理论与实践兼备的 C 语言编程入门教材。本书适合 C 语言初学者阅读,既可以作为本科层次理工科各专业的教材,也可以作为 C 语言编程爱好者的自学用书。
本书的主要特色体现在以下 3 个方面:
(1)严格遵循 C11 标准(ISO/IEC 9899:2011)编写程序,语法严谨规范。上机环境采用 Visual C++ 2010 编译器,便于与全国计算机等级考试的要求无缝对接。
(2)精简 C 语言语法细节的讲解篇幅,侧重算法设计能力和编程思维的培养,将 C 语言编程的基本知识和实际案例有机结合。
(3)遵循“循序渐进、难点分散”的原则合理安排教学内容,特别改变传统上将指针作为单独章节的编排模式,将其内容拆解并融入程序设计的各个章节。指针既是 C 语言的特色与精髓所在,也是 C 程序设计学习中的最大难点。同类教材通常将指针内容安排在数组和函数内容之后、结构体内容之前,处于教材中后段,这样容易导致难点过于集中,并且学生缺乏反复练习与巩固的机会,往往难以真正掌握。本书将指针的知识点进行细化拆分,分散到前面各个相关章节,符合循序渐进的教学规律,降低了学习难度,使学生能够边学边用,逐步领会其核心内涵。
从教学价值角度来看,C 语言的语法严谨规范,符合结构化程序设计的要求,非常适合作为程序设计入门教学语言。自 20 世纪 90 年代以来,“C 程序设计”始终是国内外高校普遍开设的一门计算机基础课程。从工程应用角度来看,C 语言执行效率高、硬件操作能力强,在很多领域都得到广泛应用,是嵌入式开发与系统软件开发中使用最频繁的编程语言之一。从学生创新能力培养角度来看,C 语言一直是 ACM/ICPC 程序设计大赛等计算机程序设计竞赛中使用最广泛的编程语言之一。
在编写思路上,本书强调通过问题的解决过程向读者展示程序设计的本质规律及 C 程序的编写方法,使读者能够在有限时间内快速掌握 C 语言编程的方法,并初步具备运用 C语言解决军事应用相关实际问题的能力。本书还具备以下特色:
(1)针对每个知识点提供相关程序实例,这些实例的规模逐步扩大,以便读者能够直观地理解 C 语言编程的基本语法和程序设计方法,并逐步提升解决问题的能力。
(2)针对重点和难点知识,设置大量“提示”模块和“注意”模块,对不易理解或容易混淆的内容进行强调与详细说明。
(3)每章均提供“答疑解惑”与“习题”,供读者检验自己的学习效果,及时发现学习过程中存在的问题。
(4)为学生和教师提供丰富的配套学习与教学资源,有效降低学习和教学的门槛。
本书共分 8 章:第 1 章介绍 C 语言的特点和程序设计的开发环境;第 2 章介绍 C 语言中的数据类型、运算符和表达式;第 3 章介绍顺序结构、选择结构和循环结构的程序设计方法;第 4 章介绍数组与指针的使用方法;第 5 章介绍函数的定义与调用方法、函数与指针、变量的作用域与存储类别、内部函数与外部函数;第 6 章介绍用户自定义的结构体类型、共用体类型和枚举类型;第 7 章介绍文件的基本操作;第 8 章通过一个综合实例——学生综合测评系统,引导读者熟练运用程序设计知识解决具体应用问题。
在使用本书学习 C 语言编程时,读者一定要多分析、多动手、多实践。当遇到具体问题时,应首先独立分析该问题、设计求解该问题的思路、梳理程序结构,然后编写代码实现算法,最后通过运行程序、分析系统的错误提示,反复调试以解决程序中的语法错误和逻辑问题。只有这样,才能真正掌握这门程序设计语言,并在实际工作和学习中运用程序设计思维解决具体的工程应用问题。
本书的编者长期从事计算机程序设计的教学工作,具有丰富的教学经验和较强的科研能力。编写团队始终秉持“强化基础、注重实践、突出计算思维培养、提升应用与创新能力”的教学理念,力求使本书具有良好的可读性、实用性和先进性。
本书由张红梅、拓明福担任主编,由赵永梅、谢鹏、柳泉、车敏担任副主编。本书的具体分工为:由谢鹏负责编写第 1 章,由车敏负责编写第 2 章,由张红梅负责编写第 3 章、第 4 章和附录,由柳泉负责编写第 5 章,由拓明福负责编写第 6 章和第 7 章,由赵永梅负责编写第 8 章。
本书在编写过程中借鉴与吸收了很多 C 语言相关的网络资源和书籍中的思想及观点,在此谨向相关作者致以诚挚的谢意。由于编者水平所限,书中难免存在疏漏与不足之处,敬请各位同行和读者批评指正。
编 者
展开