温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
语言程序设计
实践
卓越工程师教育系列“十二五”规划教材 高等学校公共课计算机规划教材 C 语言程序设计与实践 廖小飞 李敏杰 主编 许武军 白恩健 陈 雯 蒋学芹 副主编 内 容 简 介 本书是依据高等学校计算机类和信息类各专业基础课程教学的要求与目标而编写的理论与实践相结合的教材。本书以 C 语言基本知识和基本概念为引领,将知识融入各个实例,通过实践来学习 C 语言程序设计,注重 C语言基本概念、基本编程思想的介绍和应用,始终贯彻“教、学、做”相结合的原则,使学生掌握 C 语言程序设计方法,能够学以致用,培养学生使用 C 语言来解决实际问题的能力。全书共 11 章,主要内容包括:计算机程序设计概述,C 语言基础,数据输入与输出,控制结构程序设计,数组和字符串,指针,函数,构造数据类型,编译预处理,文件,高质量编程规范。本书提供配套电子课件、程序代码和习题参考答案。本书可作为高等学校计算机类和信息类各专业本科生或专科生“C语言程序设计”课程的教材,或者其他专业、其他课程的参考书,也可以作为初学者学习C语言程序设计的入门教材,还可供有关工程技术人员学习、参考。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 C 语言程序设计与实践/廖小飞,李敏杰主编.北京:电子工业出版社,2015.8 卓越工程师教育系列“十二五”规划教材 ISBN 978-7-121-26220-3 IC II廖 李 IIIC 语言程序设计高等学校教材 IVTP312 中国版本图书馆 CIP 数据核字(2015)第 119345 号 策划编辑:王晓庆 责任编辑:王晓庆 文字编辑:王晓庆 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:7871092 1/16 印张:15.5 字数:447 千字 版 次:2015 年 8 月第 1 版 印 次:2015 年 8 月第 1 次印刷 印 数:3000 册 定价:35.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。III前 言 近几十年以来,计算机技术发展非常迅速,在各个行业都有着广泛的应用,已成为当今社会各行各业不可缺少的工具。软件技术是计算机技术的核心和灵魂,软件行业的发展水平和规模也成为衡量一个国家现代化程度和综合国力的重要标志。进行软件设计的程序设计语言非常多,现在全球大约有600 多种编程语言,但流行的编程语言只有 20 几种,C 语言自诞生之日起,由于具有功能丰富、使用灵活、运行速度快、能够操作硬件、应用范围广等优势,一直是最流行的程序设计语言之一,根据著名的 TIOBE 开发语言排行榜公布的结果,C 语言几乎每月都处于第一名位置。C 语言程序设计是计算机类和信息类专业的专业基础课和必修课,也是这些专业学生入校后最先接触的一门专业课,其重要性和基础性不言而喻。通过该课程的学习,读者应掌握 C 语言的基本语法和程序设计的基本思想,并掌握传统的结构化程序设计的一般方法,培养严谨的程序设计思想、灵活的思维方式及较强的动手能力,并以此为基础,逐渐掌握复杂软件的设计和开发方法,为后续“数据结构”、“面向对象程序设计”等课程的学习打下扎实的理论和实践基础。作为软件开发的入门课程,C 语言程序设计有着非常重要的地位和作用。为了培养技术应用型人才,使学生掌握高级程序设计语言的知识,在实践中逐步掌握程序设计的思想和方法,提高学生使用C 语言来解决实际问题的应用能力,我们为该课程编写了本书,适合高等学校低年级无程序设计基础的学生使用,帮助学生尽快掌握 C 语言,达到教学要求。该教材有如下特色。(1)从零基础学习 C 语言程序设计,适合高等学校低年级无计算机基础或计算机基础较弱的学生学习。本书从最基本的编程思想开始,一步步指导学生如何编写程序、如何编译、如何运行和调试程序。对于 C 语言的学习也是一步步由浅入深地讲解,使得学生在较短时间内较快地掌握 C 语言程序设计的知识和方法。(2)实例教学。本书的每个知识点都由实例构成,可以通过程序的运行结果来理解程序的原理,从而掌握每个知识点。通过实例学习相关知识,围绕模块进行教学和实训,降低了学生学习的困难度。(3)涵盖 C 语言基础知识和开发实践,将课堂教学、实验上机、课程设计的内容进行一体化,通过理论教学和实践应用并重,从各个层面提高学生的程序设计能力,实现“教、学、做”合一。本书以 C 语言程序设计为主线,从应用和实践出发,通过实例引入内容,重点讲解C 语言程序设计的知识和方法。全书共 11 章,理论教学参考学时数为 3648 学时,实验上机参考学时数为1216学时,课程设计参考学时数为 1620 学时,有关章节内容可根据专业要求和学时情况酌情调整。该教材可作为高等学校计算机类和信息类各专业本科生或专科生“C 语言程序设计”的教材,或者其他专业、其他课程的参考书,也可以作为初学者学习 C 语言程序设计的入门教材,还可供有关工程技术人员学习、参考。教学中,可以根据教学对象和学时等具体情况对书中的内容进行删减和组合,也可以进行适当扩展。为适应教学模式、教学方法和手段的改革,本书提供配套电子课件、程序代码和习题参考答案等,请登录华信教育资源网(http:/)注册下载。参加本书编写的有东华大学廖小飞和上海大学李敏杰,其中,廖小飞编写了第 2、3、4、5、6、7、11 章,李敏杰编写了第 1、8、9、10 章。东华大学许武军、白恩健、陈雯、蒋学芹等老师在编写过程中对教材的规划和编写给予了指导意见,提供了部分教材资料,并在C 语言程序设计教学中提出了宝 IV贵的意见。东北大学龚涛、曾献辉、齐金鹏等老师对教材课件的编写提供了建议,并在教学中对该教材的使用提供了宝贵的意见。东华大学研究生陈建军、周凡、盛佐等完成了部分录入和校对工作。本书在编写过程中得到了东华大学信息学院领导、教师、学生的关心和支持,在此一并表示谢意。由于作者水平有限,书中难免会存在缺点和不妥之处,敬请读者批评指正,请将意见和建议告诉我们,邮箱为。为了方便对本书内容进行交流和讨论,特提供一个 QQ 群:102084643。作 者 2015 年 7 月 V目 录 第 1 章 计算机程序设计概述 1 1.1 计算机系统组成 1 1.1.1 硬件系统 1 1.1.2 软件系统 2 1.2 程序设计语言 2 1.3 计算机算法简介 3 1.3.1 算法举例 4 1.3.2 算法的表示方法 5 1.3.3 基本程序结构和流程图 6 1.4 数制及进制转换 7 1.4.1 基本进位制 8 1.4.2 进制数间相互转换 10 1.5 数值编码 12 1.5.1 美国信息交换标准代码(ASCII)12 1.5.2 数的机器码表示 12 1.6 C 语言概述 14 1.6.1 C 语言简介 14 1.6.2 C 语言程序示例 15 1.6.3 C 语言程序编译与执行 16 上机实验:熟悉 C 语言开发环境 17 习题 18 第 2 章 C 语言基础 19 2.1 基本知识 19 2.1.1 位和字节 19 2.1.2 标识符 19 2.1.3 数据类型 20 2.2 常量 21 2.2.1 整型常量 22 2.2.2 实型常量 22 2.2.3 字符常量 23 2.2.4 字符串常量 24 2.3 变量 24 2.3.1 整型变量 25 2.3.2 实型变量 26 2.3.3 字符变量 28 2.4 数据类型转换 29 2.5 运算符和表达式 31 2.5.1 算术运算符和算术表达式 32 2.5.2 赋值运算符和赋值表达式 34 2.5.3 逗号运算符和逗号表达式 36 2.5.4 C 语言语句 36 上机实验:C 语言基础知识 37 习题 38 第 3 章 数据输入与输出 40 3.1 数据的输入 40 3.1.1 字符输入函数 getchar()40 3.1.2 格式输入函数 scanf()41 3.2 数据的输出 46 3.2.1 字符输出函数 putchar()46 3.2.2 格式输出函数 printf()47 3.3 顺序结构程序设计 51 3.4 程序示例 53 上机实验:顺序结构程序设计应用 54 习题 54 第 4 章 控制结构程序设计 56 4.1 关系运算符与逻辑运算符 56 4.1.1 关系运算符 56 4.1.2 逻辑运算符 57 4.2 选择结构程序 59 4.2.1 if 语句 59 4.2.2 switch 语句 65 4.2.3 条件运算符 68 4.2.4 选择结构程序设计 70 4.3 循环结构程序 71 4.3.1 while 与do-while 语句 71 4.3.2 for 语句 74 4.3.3 循环语句嵌套 77 4.3.4 break 与continue 语句 78 4.3.5 循环结构程序设计 79 4.4 程序示例 81 VI上机实验:控制结构程序设计应用 85 习题 87 第 5 章 数组和字符串 88 5.1 一维数组 88 5.1.1 一维数组定义 88 5.1.2 一维数组元素引用 89 5.2 二维数组 91 5.2.1 二维数组定义 91 5.2.2 二维数组元素引用 92 5.3 字符串 94 5.3.1 字符数组和字符串 95 5.3.2 字符串处理函数 97 5.4 程序示例 102 上机实验:数组程序设计应用 104 习题 105 第 6 章 指针 107 6.1 指针基本概念 107 6.1.1 访问内存数据 107 6.1.2 指针定义 108 6.2 指针变量 108 6.2.1 指针变量定义 108 6.2.2 指针变量引用 109 6.2.3 空指针和 void 类型指针 113 6.2.4 两重指针 113 6.3 指针与数组元素 114 6.3.1 指向一维数组元素的指针变量 114 6.3.2 指针变量运算 114 6.3.3 数组元素的表示方法 116 6.3.4 指向二维数组元素的指针变量 119 6.4 数组指针与指针数组 121 6.4.1 数组指针 121 6.4.2 指针数组 122 6.5 指针与字符串 124 6.6 程序示例 125 上机实验:指针程序设计应用 128 习题 129 第 7 章 函数 130 7.1 函数基本知识 130 7.1.1 函数分类 130 7.1.2 函数定义 131 7.2 函数参数与返回值 132 7.2.1 形参与实参 132 7.2.2 函数返回值 134 7.3 函数调用 136 7.3.1 函数调用形式 136 7.3.2 函数嵌套调用 138 7.3.3 函数递归调用 139 7.4 数组与函数参数 141 7.4.1 函数参数传递方式 141 7.4.2 数组元素作为函数实参 144 7.4.3 数组名作为函数参数 145 7.5 指针与函数参数 147 7.5.1 指针变量作为参数 147 7.5.2 指针变量和数组作为参数 150 7.6 变量种类及存储类型 152 7.6.1 变量种类 152 7.6.2 存储类型 155 7.7 程序示例 159 上机实验:函数程序设计应用 161 习题 162 第 8 章 构造数据类型 164 8.1 结构体 164 8.1.1 结构体类型 164 8.1.2 结构体数组 167 8.1.3 结构体指针 168 8.1.4 结构体与函数 171 8.2 联合体 174 8.3 枚举类型 176 8.4 位运算符与位段 178 8.4.1 位运算符 178 8.4.2 位段 180 8.5 类型定义符 typedef 183 8.6 程序示例 184 上机实验:结构体程序设计应用 186 习题 187 第 9 章 编译预处理 188 9.1 文件包含 188 9.2 宏