计算机类教材 > 算法与程序设计
C语言程序设计教程
书号:9787113304577 套系名称:普通高等院校计算机基础教育“十四五”规划教材
作者:邵雪航 杨迎 王春明 于济铭 出版日期:2023-10-01
定价:45.00 页码 / 开本: /16
策划编辑:李学敏 责任编辑:李学敏
适用专业:计算机基础教育 适用层次:高等教育
最新印刷时间:2023-10-01
资源下载
教学课件
教学素材(暂无)
习题答案
教学案例(暂无)
教学设计(暂无)
教学视频(暂无)
内容简介
前言
目录
作者介绍
图书特色
本书是普通高等院校计算机基础教育“十四五”规划教材,内容分11章,第1~5章是基础篇,包括C语言简介及基础,变量、数据类型和运算符,顺序结构程序设计,选择结构程序设计,循环结构程序设计;第6~11章是提高篇,包括数组,函数,指针,结构类型与联合类型,文件,位运算。 章内设有学习目标、素养目标、完成项目、小结、练习题、实验和综合实训,力求通过大量的练习、实验、实训及实际问题的讲解,逐步提高学生编写程序和解决问题的能力,理解编程思想,并真正掌握编程的方法及技巧,从而学以致用。书中例题的程序均已调试通过。 本书适合作为普通高等院校C语言程序设计课程的教材,也可作为计算机等级考试的复习用书,以及各类计算机培训机构的学员、编程爱好者和维护人员的自学用书。
C语言是普通高等院校开设的一门程序设计基础课程。为适应本科发展新形势的需要,也为了学生学习后续其他编程语言奠定基础,编者编写了本书。本书内容既注重基础知识的系统性和基本概念的准确性,又注重操作技能的实用性。 为让学生顺利掌握C语言程序设计的基本思想、方法和解决实际问题的应用技巧,编著者设计了学生成绩管理系统项目并贯穿全书始终。本书通过详实的知识点和案例程序分析,力争把程序设计的学习从语法知识的学习提高到解决问题的能力培养上。 全书内容分11章,第1~5章为基础篇,第6~11章为提高篇。第1章讲述C语言的发展及特点、程序的概念、程序算法及流程图、程序简单结构、程序编译原理及开发环境等。 第2章讲述变量和常量基本概念,基本数据类型及算术、关系、逻辑、赋值、条件、逗号等运算符和表达式,不同类型变量之间的类型转换,C语言的语句等。第3章讲述结构化程序设计及顺序结构、格式输入/输出函数和字符数据输入/输出函数的执行流程。第4章讲述选择结构的一般形式和执行流程,if语句嵌套,switch语句和常用算法。第5章讲述循环结构的一般形式和执行流程,while循环、do-while循环、for循环嵌套和常用算法及实现流程转向的break和continue语句。第6章讲述一维数组、二维数组和字符数组的定义及使用和数组的综合应用举例。第7章围绕模块化编程思想,讲述函数分类、定义、调用等相关概念,变量的作用域和存储类型,内部函数和外部函数等。第8章讲述指针的概念和相关操作,结合实例对指针与变量、指针与函数之间的关系进行详细分析。第9章讲述结构体类型、结构体变量的定义和使用、用结构体实现链表、共用体类型的定义和使用。第10章讲述文件操作的概念和分类,缓冲文件系统,文件类型指针和文件打开、关闭、读写、定位等文件操作方法。第11章讲述位运算符的相关概念和取反、左移、右移、按位“与”、按位“或”、按位“异或”等位运算符的运算功能。每章设有学习目标、素养目标、完成项目、小结、练习题、实验和综合实训,力求通过大量的练习、实验、实训及实际问题的讲解,逐步提高学生编写程序和解决问题的能力。 本书的特色具有以下几点: (1)示例、案例丰富:书中附有大量示例和案例,通过示例和案例介绍知识点,以使读者举一反三,掌握C语言编程的方法与技巧,学以致用。 (2)全面性:本书包含了C语言编程中的所有语法知识。 本书由邵雪航、杨迎、王春明、于济铭编著。其中,第1~4章由邵雪航编著;第5、10章由于济铭编著;第6、7章由杨迎编著;第8、9、11章由王春明编著。全书由邵雪航统稿。 由于编著者水平有限,书中难免有不足之处,欢迎读者对本书提出宝贵意见和建议,以便再版时更正。 编著者 2023年5月
基 础 篇 第 1 章C 语言简介及基础 2 1.1 C 语言发展及特点 2 1.1.1 程序设计语言发展历程 2 1.1.2 C 语言发展历程 4 1.1.3 C 语言特点 5 1.2 程序的概念 6 1.3 程序算法及流程图 6 1.3.1算法 6 1.3.2流程图 7 1.4 C 语言程序的简单结构 8 1.5 C 程序编译原理及开发环境 11 1.6 C 语言开发环境——Visual C++ 6.0 12 小结12 练习题13 实验14 综合实训14 第 2 章变量、数据类型和运算符 15 2.1 变量、数据类型和运算符应用的必要性15 2.2 常量 16 2.3 变量 16 2.3.1 变量的概念 16 2.3.2 变量的定义与初始化 17 2.4 基本数据类型 18 2.4.1 整型 19 2.4.2 实型 20 2.4.3 字符型 21 2.4.4 字符串 21 2.5 表达式和运算符 22 2.5.1 表达式 22 2.5.2 运算符 22 2.5.3 算术运算符 23 2.5.4 数据间的混合运算与类型转换 26 2.5.5 赋值运算符 27 2.5.6 关系运算符 28 2.5.7 逻辑运算符 29 2.5.8 sizseof 运算符 30 2.5.9 运算符的优先级 30 小结31 练习题31 实验 34 综合实训 34 第 3 章顺序结构程序设计 35 3.1 结构化程序设计简介 35 3.2 C 语句简介 37 3.3 格式输入 / 输出函数 38 3.3.1 printf() 函数 38 3.3.2 scanf() 函数 44 3.4 字符数据输入 / 输出函数 47 3.4.1 getchar() 函数 47 3.4.2 putchar() 函数 48 小结 48 练习题 49 实验 49 综合实训 49 第 4 章选择结构程序设计 50 4.1 if 语句 50 4.1.1 简单 if 语句 50 4.1.2 多重 if 语句 52 4.1.3 嵌套 if 语句 54 4.1.4 if 语句示例 55 4.2 switch 语句 57 4.2.1 switch 语句 57 4.2.2 switch 语句示例 59 4.3 if 语句和 switch 语句的比较 60 4.4 条件运算符 60 小结 62 练习题 62 实验 63 综合实训 63 第 5 章循环结构程序设计 64 5.1 循环应用的必要性 64 5.2 while 循环 65 5.3 do-while 循环 67 5.4 while 循环和 do-while 循环比较 70 5.5 for 循环 70 5.6 三种循环比较 74 5.7 break 跳转语句和 continue 跳转语句 74 5.7.1 break 跳转语句 74 5.7.2 continue 跳转语句 75 5.8 循环的嵌套 77 小结 79 练习题 80 实验 82 综合实训 82 提 高 篇 第 6 章数组 84 6.1 数组应用的必要性 84 6.2 数组及数组元素的概念 85 6.3 一维数组的定义及引用 86 6.3.1 一维数组的定义 86 6.3.2 一维数组的存储结构 87 6.3.3 一维数组元素的引用 88 6.3.4 一维数组的初始化 89 6.3.5 一维数组程序示例 90 6.4 二维数组的定义及引用 92 6.4.1 二维数组的定义 92 6.4.2 二维数组元素的存储结构 94 6.4.3 二维数组元素的引用 94 6.4.4 二维数组的初始化 94 6.4.5 二维数组程序示例 96 6.4.6 二维数组常用算法 96 6.5 多维数组的定义及引用 98 6.6 字符数组 100 6.6.1 字符数组的定义 100 6.6.2 字符数组的引用 101 6.6.3 字符数组的初始化 101 6.6.4 字符串及字符串结束标记 103 6.6.5 字符数组的输入与输出 104 6.6.6 常用字符串处理函数 105 6.6.7 字符数组程序示例 111 小结 113 练习题 113 实验 116 综合实训 117 第 7 章函数 118 7.1 函数应用的必要性 118 7.2 函数的分类 119 7.3 常用的库函数 120 7.4 函数定义 122 7.5 函数原型 124 7.6 函数返回值 127 7.6.1 函数有返回值 127 7.6.2 函数无返回值 129 7.7 函数调用 130 7.7.1 区分形参和实参 130 7.7.2 函数的参数数据传递 131 7.7.3 数组作为函数参数 134 7.8 函数的嵌套与递归调用 136 7.8.1 函数的嵌套调用 136 7.8.2 函数的递归调用 139 7.9 变量的作用域 144 7.9.1 局部变量 144 7.9.2 全部变量 147 7.10 变量的存储类型 149 7.10.1 auto/register/extern 存储类型 150 7.10.2 static 存储类型 151 小结 153 练习题 154 实验 158 综合实训 159 第 8 章指针 160 8.1 地址和指针的概念 160 8.2 指针的定义和使用 162 8.2.1 指针变量的定义 162 8.2.2 指针变量的赋值 163 8.2.3 指针变量的引用 165 8.2.4 指针变量的运算 168 8.3 数组与指针 170 8.3.1 一维数组和指针 170 8.3.2 二维数组和指针 174 8.3.3 用数组名作函数参数 179 8.4 字符串与指针 182 8.4.1 通过赋初值的方式使指针指向一个字符串 182 8.4.2 通过赋值运算使指针指向一个字符串 183 8.4.3 字符指针作函数参数 183 8.5 指针数组 184 小结 185 练习题 186 实验 188 综合实训 189 第 9 章结构类型与联合类型 190 9.1 结构类型与联合类型简介 190 9.2 结构类型定义和使用 191 9.2.1 定义结构类型的语法 191 9.2.2 声明结构类型变量 192 9.2.3 结构类型变量初始化 194 9.2.4 访问结构类型中的成员 196 9.2.5 结构类型数组 198 9.3 用结构类型实现链表 201 9.3.1 链表 201 9.3.2 动态存储分配 202 9.3.3 链表的基本操作 203 9.4 共用体类型的定义和使用 210 9.4.1 定义共用体类型的语法 210 9.4.2 声明共用体类型变量 210 9.4.3 共用体类型变量的初始化 211 9.4.4 共用体类型变量的赋值和使用 212 9.5 枚举类型 213 9.6 用 typedef 定义类型 214 小结 215 练习题 216 实验 216 综合实训 216 第 10 章文件 217 10.1 文件应用的必要性 217 10.2 文件的概述 218 10.2.1 文件的概念 218 10.2.2 文件的分类 218 10.2.3 文件指针 220 10.3 文件的打开与关闭 221 10.3.1 对文件操作步骤 221 10.3.2 文件的打开 221 10.3.3 文件的关闭 223 10.4 文件的顺序读 / 写 223 10.4.1 读 / 写文件中的一个字符 224 10.4.2 读 / 写一个字符串── fgets() 和 fputs() 227 10.4.3 读 / 写一个数据块── fread() 和 fwrite() 228 10.5 文件的定位与随机读 / 写 229 10.5.1 位置指针复位函数 rewind() 230 10.5.2 随机位置指针函数 fseek() 230 10.5.3 返回文件当前位置的函数 ftell() 232 10.5.4 ferror() 函数 232 10.5.5 文件结束检测函数 feof() 233 10.5.6 clearerr() 函数 233 小结 234 练习题 234 实验 235 综合实训 236 第 11 章位运算 237 11.1 位运算符及位运算 237 11.1.1 位运算符 237 11.1.2 不同长度的数据进行位运算 240 11.2 位运算符优先级别 240 11.3 位段 241 11.3.1 位域的定义和位域变量的说明 241 11.3.2 位段的使用 243 小结 243 练习题 244
邵雪航,教授,黑龙江工商学院副校长,先后从事过电信业务方面的软件开发及计算机专业相关主干课程的教学工作。研究方向为软件工程,主讲课程有C语言程序设计、Java语言程序设计和软件工程等,科研成果:省级教育教学改革立项4项(作为主持人3项)、发表学术论文15篇(EI检索1篇)、编写教材4部和实用新型专利4项。 杨迎,副教授,任职于黑龙江工商学院,教学经历:担任C、Java面向对象编程、数据结构与算法及操作系统等课程的讲授。科研成果:省教育教学改革立项4项(作为主持人1项),发表学术论文12篇(注:其中EI检索1篇),编写教材6部和实用新型专利5项。 王春明,副教授,任职于黑龙江工商学院, 教学经历:担任C#、JAVA方向和软件工程相关课程的讲授。 科研成果:省级教育教学改革立项7项(作为主持人2项)、发表学术论文9篇、编写教材3部和实用新型专利3项。 于济铭,研究实习员,任职于黑龙江工商学院。
本书共11章,分基础、提高两篇,循序渐进地为学生讲解 C 语言程序设计的基本思想、方法和解决实际问题的应用技巧。编著者还设计了学生成绩管理系统项目并贯穿全书始终,通过详实的知识点和案例程序分析,力争把程序设计的学习从语法知识的学习提高到解决问题的能力培养上。