本书是国家精品课程教材,以任务驱动的方式,通过实例讲授程序设计的基本概念和基本方法,把重点放在解题思路上,试图贯穿以程序编写带动语法教学的模式,引导读者掌握C语言的核心编程方法,提高应用能力。本书共7章,主要内容包括:C语言程序基础、C语言程序基本结构、模块化程序设计思想、简单构造数据类型、复杂构造数据类型、磁盘数据存储、实用程序设计技巧等。本书配套《C语言程序设计实验教程(第3版)》,并提供课程网站、电子课件、习题答案及程序源代码。
适读人群 :本书可作为高等学校本科生教材,也可作为专科和高职高专教材及计算机等级考试的参考书,还可供相关领域的工程技术人员学习参考。
国家精品课程教材,*家级精品资源共享课教材
蒋彦,男,济南大学计算机系主任、副教授,十余年来致力于计算机基础、专业、竞赛课程的教学、教研和科研工作,获省级教学成果奖3项,校级教学成果奖4项,优秀教材奖2项,出版著作13本。
目 录
第1章 C语言程序基础 (1)
1.1 C语言程序的基本结构 (1)
1.1.1 认识C语言程序 (1)
1.1.2 基本结构 (3)
1.1.3 程序举例 (4)
1.2 C语言基本语法成分 (6)
1.3 C语言数据类型 (9)
1.3.1 基本数据类型 (9)
1.3.2 指针类型 (12)
1.3.3 构造数据类型 (13)
1.4 C语言的表达式和语句 (13)
1.5 C语言程序运行过程 (14)
1.5.1 源程序、目标程序和可执行程序的概念 (14)
1.5.2 C语言程序的开发步骤 (15)
1.6 编写简单的C语言程序 (16)
1.7 数据的输入与输出 (18)
1.7.1 printf函数 (18)
1.7.2 scanf函数 (20)
1.8 C语言中的宏定义 (22)
1.8.1 不带参数的宏定义 (22)
1.8.2 带参数的宏定义 (24)
1.9 算法 (26)
1.9.1 算法的概念及特性 (26)
1.9.2 算法的表示方法 (26)
1.10 C语言的产生、发展及特点 (29)
1.10.1 C语言的产生及发展 (29)
1.10.2 C语言的特点 (30)
习题 (31)
第2章 程序基本结构 (36)
2.1 分支结构 (36)
2.1.1 单分支结构 (36)
2.1.2 双分支结构 (37)
2.1.3 多分支结构 (38)
2.1.4 if语句的嵌套 (39)
2.1.5 条件运算符 (41)
2.1.6 switch语句 (43)
2.2 关系运算和逻辑运算 (45)
2.2.1 关系运算符和关系表达式 (45)
2.2.2 逻辑运算符和逻辑表达式 (45)
2.3 循环结构 (47)
2.3.1 概述 (47)
2.3.2 当型循环while (48)
2.3.3 直到型循环do-while (49)
2.3.4 当型循环for (51)
2.3.5 几种循环的比较 (53)
2.3.6 循环嵌套 (54)
2.4 break语句和continue语句 (55)
2.4.1 break语句 (55)
2.4.2 continue语句 (57)
2.5 goto语句 (58)
2.6 指针程序设计 (59)
2.6.1 指针 (59)
2.6.2 指针变量的使用 (60)
2.7 典型例题 (63)
习题 (68)
第3章 模块化程序设计 (75)
3.1 模块化程序设计思想 (75)
3.2 函数定义 (77)
3.3 函数调用 (78)
3.3.1 函数调用的形式 (79)
3.3.2 函数间的参数传递 (79)
3.3.3 函数的返回值 (81)
3.4 函数的原型与声明 (82)
3.5 函数的嵌套与递归 (83)
3.5.1 函数的嵌套调用 (83)
3.5.2 函数的递归调用 (85)
3.6 库函数 (86)
3.7 变量的作用域与存储类型 (87)
3.7.1 变量的作用域 (87)
3.7.2 变量的存储类型 (90)
3.8 指针与函数 (94)
3.8.1 指针作为函数参数 (94)
3.8.2 返回指针值的函数 (97)
3.8.3 指向函数的指针变量 (98)
3.9 典型例题 (99)
习题 (103)
第4章 简单构造数据类型 (109)
4.1 一维数组 (109)
4.1.1 一维数组的引出 (109)
4.1.2 一维数组的定义和引用 (110)
4.1.3 一维数组程序举例 (112)
4.2 二 维 数 组 (114)
4.2.1 二维数组的引出 (114)
4.2.2 二维数组的定义和引用 (115)
4.2.3 二维数组程序举例 (116)
4.3 字符数组与字符串 (118)
4.3.1 字符数组的引出 (118)
4.3.2 字符数组的定义和引用 (119)
4.3.3 字符串的使用 (120)
4.3.4 字符数组程序举例 (126)
4.4 数组与指针 (127)
4.4.1 一维数组与指针 (128)
4.4.2 多维数组与指针 (130)
4.4.3 数组作为函数参数 (131)
4.5 字符串与指针 (135)
4.5.1 用字符指针访问字符串 (135)
4.5.2 字符指针和字符数组的区别 (137)
4.5.3 字符串作为函数参数 (139)
4.6 典型例题 (141)
习题 (148)
第5章 复杂构造数据类型 (156)
5.1 结构体 (156)
5.1.1 结构体的引出及使用 (157)
5.1.2 结构体数组 (161)
5.1.3 结构体程序举例 (163)
5.1.4 结构体与指针 (165)
5.2 共用体 (168)
5.2.1 共用体的定义和引用 (168)
5.2.2 共用体类型的特点 (169)
5.2.3 共用体应用举例 (170)
5.3 枚举类型 (172)
5.3.1 枚举类型的定义和引用 (172)
5.3.2 枚举类型应用举例 (173)
*5.4 链表 (174)
5.4.1 概述 (174)
5.4.2 简单链表 (174)
5.4.3 动态链表 (175)
5.4.4 链表的实现及应用 (176)
习题 (180)
第6章 磁盘数据存储 (184)
6.1 将数据写入文件 (184)
6.1.1 打开文件函数 (185)
6.1.2 关闭文件函数 (185)
6.2 文件读写分类函数 (187)
6.2.1 单字符写入函数 (187)
6.2.2 单字符读取函数 (188)
6.2.3 字符串读取函数 (188)
6.2.4 字符串写入函数 (189)
6.2.5 格式化读写函数 (190)
6.2.6 数据块读写函数 (192)
6.3 文件定位函数 (194)
6.3.1 位置指针复位函数 (194)
6.3.2 位置指针的随机移动函数 (197)
6.3.3 文件指针当前位置函数 (198)
6.4 其他文件函数 (199)
6.4.1 文件结束检测函数 (199)
6.4.2 出错检测函数 (200)
习题 (201)
第7章 实用程序设计技巧 (205)
7.1 程序的模块化结构 (205)
7.1.1 软件工程的思想 (205)
7.1.2 模块设计 (205)
7.1.3 模块化的优点 (206)
7.2 模块的组装 (207)
7.2.1 文件包含与头文件的使用 (208)
7.2.2 模块间的连接 (210)
7.2.3 标识符的一致性 (213)
7.2.4 条件编译 (213)
7.3 模块设计风格简述 (215)
7.3.1 数据风格 (215)
7.3.2 标识符风格 (216)
7.3.3 算法风格 (216)
7.3.4 输入/输出风格 (217)
7.3.5 书写风格 (217)
7.4 应用程序设计实例 (218)
习题 (227)
附录 (229)
附录A 常用C语言库函数 (229)
A.1 数学函数 (229)
A.2 输入/输出函数 (230)
A.3 字符函数 (232)
A.4 字符串函数 (233)
A.5 动态存储分配函数 (234)
A.6 时间函数 (235)
A.7 其他函数 (236)
附录B ASCII码表 (237)
附录C C语言运算符的优先级与结合性 (240)
参考文献 (242)