C语言程序设计教程
2010-8
中国铁道出版社
陈波,吉根林 著
303
“c语言程序设计”是高等学校计算机科学与技术及相近专业中程序设计类最重要的基础课程之一,也是理工科相关专业重要的公共基础课,全国以及各省市的计算机等级考试等都将c语言列入了考试范围。学习c语言、学好c语言是每一个准备从事计算机或相关行业人员的迫切愿望。 本教材的5位作者全部是多年从事本科生“c语言程序设计”课程教学的教师,在多年的c语言教学实践中,学生普遍反映难学难懂;听课时懂了,上机时脑子一片空白;笔试时的题目会做,编程题却无从下手;有解答、分析的编程题会了,面对新问题又不知如何解决…… 面对诸如此类的问题,几位作者进行了多年的思考和教学实践。本教材就是作者多年从事“c语言程序设计”课程中,进行教学内容与教学方法改革与探索的结晶。 首先,本书面向初学者,立足C99标准,重点介绍了与C89兼容的内容,全书体系完整,内容条理清晰,语言流畅。全书共分1o章:第1章介绍程序设计语言的发展、c语言的发展、特点以及c语言的标准,分析了c语言源程序的实例结构,给出了上机运行一个c程序的步骤;第2章介绍了数据类型、常用表达式和运算符;第3章介绍了基本语句与结构化程序设计,重点分析了顺序、分支、循环3种基本控制结构在程序设计中的应用,第4章介绍了数组;第5章介绍了函数和模块化程序设计;第6章介绍了指针;第7章介绍了编译预处理的使用;第8章介绍了结构体、共用体和枚举类型;第9章介绍了文件的基本操作;第1O章介绍了位运算操作。 其次,本书内容讲解由浅入深,直观易懂,既重视对知识点的梳理,又重视对编程能力的训练。例如,每章附有较多图表,使读者能够准确、直观地理解问题;样例丰富,紧扣知识点,一些样例在多个章节中用不同的编程方法实现,便于读者对于相关知识在编程中的应用进行比较;每个例题均在’Visualc++6.o开发环境中运行通过,并给出运行结果图,可操作性强;样例中给出编程方法分析以及技巧的讲解;注重对读者良好编程风格的引导,每个例程均增加空行和适当的注释;每章后面还给出了初学者在编程中易犯的错误,使读者在学习中少走弯路。
《C语言程序设计教程》面向初学者,立足C99标准,重点介绍了与C89兼容的内容。全书共分10章:C语言概述,数据类型,基本语句与结构化程序设计,数组,函数和模块化程序设计,指针,编译预处理,结构体、共用体和枚举类型,文件以及位运算。《C语言程序设计教程》集作者多年“c语言程序设计”课程的教学经验,全书体系完整,内容由浅入深,条理清晰,语言流畅;每章附有较多的图表,使读者能够准确、直观地理解问题;样例丰富,紧扣知识点,并以VisualC++6.0为程序平台,可操作性强;注重编程方法与技巧的讲解,重视对编程能力的培养;每章均附有习题和上机实验题,习题覆盖知识重点,题型丰富。书后附录提供了两套笔试和上机模拟试卷,做到了教材、实验、习题三位一体。 《C语言程序设计教程》适合作为高等学校计算机专业及相关专业c语言程序设计课程的教材,也可作为计算机等级考试参考书,还可供从事计算机软件开发人员参考使用。
第1章 C语言概述1.1 程序与程序设计语言1.1.1 计算机与程序1.1.2 程序设计语言1.1 -3高级语言程序的开发过程1.2 C语言的发展和特点1.2.1 C语言的发展历史1.2.2 C语言的特点1.2.3 C和C++1.3 C语言程序的结构1.4 C语言程序的上机步骤本章 小结及常见错误分析习题l上机实验题l第2章 数据类型2.1 数据类型的概念2.2 常量和变量2.2.1 字面常量2.2.2 符号常量2.2.3 变量2.2.4 标识符的命名规则2.3 整型数据2.3.1 整型的分类2.3.2 整型数据的内存表示2.4 实型数据,2.4.1 实型数据的内存表示2.4.2 实型数据的精确表示2.5 字符型数据2.5.1 字符的内存表示2.5.2 转义字符2.5.3 字符型与整型的等价关系2.6 数据类型转换2.6.1 自动类型转换2.6.2 强制类型转换2.7 算术运算符与算术表达式2.7.1 C语言运算符简介2.7.2 c基本的算术运算符2.7.3 运算符的优先级与结合性2.7.4 自增、自减运算符2.8 赋值运算符与赋值表达式2.8.1 赋值运算符2.8.2 赋值中的类型转换2.8.3 复合赋值运算符2.8.4 赋值表达式2.9 逗号运算符与逗号表达式本章 小结及常见错误分析习题2上机实验题2第3章 基本语句与结构化程序设计3.1 程序与基本语句3.1.1 程序的概念3.1.2 程序的评价3.1.3 c基本语句3.2 顺序结构程序设计3.2.1 赋值语句3.2.2 数据的格式化输入,输出3.2.3 字符数据的非格式化输入/输出3.2.4 顺序结构程序设计举例3.3 分支结构程序设计3.3.1 关系运算符与关系表达式3.3.2 逻辑运算符与逻辑表达式3.3.3 if语句3.3.4 switch语句3.3.5 分支结构程序设计举例3.4 循环结构程序设计3.4.1 for语句3.4.2 while语句3.4 -3d0while语句3.4.4 几种循环的比较及应用举例3.4.5 break和eontinue语句3.4.6 循环的嵌套3.5 综合应用举例本章 小结及常见错误分析习题3上机实验题3第4章 数组4.1 一维数组4.1.1 一维数组的定义与初始化4.1.2 一维数组的引用4.1.3 一维数组应用举例4.2 二维数组4.2.1 二维数组的定义与初始化4.2.2 ——维数组的引用4.2.3 -"维数组应用举例4.3 字符串与字符数组4.3.1 字符数组的定义与初始化4.3.2 字符串的输入,输出4.3.3 字符串处理函数4.3.4 字符数组应用举例本章 小结及常见错误分析习题4上机实验题4第5章 函数和模块化程序设计5.1 模块化程序设计方法5.2 函数的定义与声明5.2.1 函数的主要语法成分5.2.2 函数编程示例5.3 参数传递与返回值类型5.3.1 参数的传递规则5.3.2 函数返回值类型5.4 局部变量与全局变量5.4.1 局部变量5.4.2 全局变量5.4.3 重名问题5.5 变量的存储属性5.5.1 动态变量与静态变量5.5.2 寄存器变量5.6 数组名作为函数参数5.6.1 一维数组名作为函数参数5.6.2 二维数组名作为函数参数5.7 函数的嵌套调用5.8 递归函数本章 小结及常见错误分析习题5上机实验题5第6章 指针6.1 指针与地址的概念6.2 指向变量的指针6.2.1 指针变量的定义与初始化6.2.2 通过指针访问变量6.2.3 指针变量作为函数参数6.2.4.指针的强制转换6.2.5 void指针类型6.3 指针与一维数组6.3.1 指针的算术运算6.3.2 指针用于数组处理6.3.3 指针与字符串.6.3.4 数组名作为函数参数6.4 指针与二维数组6.4.1 指针与二维数组的关系6.4.2 向函数传递二维数组6.5 指针数组和指向指针的指针6.5.1 指针数组的定义与使用6.5.2 指针数组与字符串数组6.5.3 指向指针的指针6.5.4 main()函数的形参6.6 指向函数的指针6.6.1 函数指针的定义与使用6.6.2 函数指针数组的使用6.6.3 函数指针作为函数参数6.7 返回指针的函数本章 小结及常见错误分析习题6上机实验题6第7章 编译预处理7.1 宏定义7.1.1 无参宏定义第8章 结构体、共用体和枚举类型第9章 文件
与其他高级语言相比,c语言之所以发展迅速,成为最受欢迎的语言之一,主要原因是它具有强大的功能。归纳起来,C语言具有以下一些特点: 1.C语言是中级语言 c语言通常被称为中级语言。因为c语言既具有高级语言的基本结构和语句,又具有低级语言的实用性,所以人们称为“高级语言中的低级语言”或“中级语言”。例如,c语言允许直接访问物理地址,可以像汇编语言一样对位、字节和地址进行操作。 2.C语言是结构化程序设计语言 结构化语言的特点是代码与数据分隔,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。作为一种结构化程序设计语言,其逻辑结构由顺序、选择(分支)和循环3种基本结构组成,以函数作为模块,实现程序的模块化设计,符合现代编程风格。 3.语言简洁、紧凑,使用方便、灵活 C89’标准定义的C语言只有32个关键字、9种控制语句。和IBM-PC的BASIC相比,BASIC包含的关键字多达159个。C程序主要由小写字母组成,书写格式自由。C程序比较简练,源程序短,输入程序时工作量少。 4.运算符和数据结构丰富,表达式多样 C语言共有34种运算符。在C语言中把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。表达式类型多样,既提高了编译效率和目标代码的质量,又提高了程序的可读性。 c语言提供了各种各样的数据类型,如整型、实型、字符型、数组类型、指针类型、结构体类型等,能够实现各种数据结构,如线性表、链表、栈、队列、树、图等。尤其是指针类型数据,使用起来灵活、多样,程序运行效率更高。 5.语法限制不太严格,程序设计自由度大 C语言编译系统的语法检查不太严格。例如,在C语言中对数组下标越界不进行检查,由编程者自己保证程序的正确;变量类型使用灵活,整型和字符型变量都可以通用等。其优点是允许编程者有较大的自由度。但明显的缺点是增加了程序的不安全因素。这就要求编程者在编程时自我约束,养成良好的、严谨的编程习惯,程序编好后要仔细检查。