
本书是C语言程序设计系列丛书的一部分,专门针对教员编写,主要用于指导教员教好C语言程序设计这门课程。书中介绍了作者讲授这门课的体会,指导教员的具体教学,应重点讲解的内容与概念,特别是应该让学生掌握的语法和常用算法,还提供了典型示例用于学习和分析。本书按照教材的顺序对应分为10章,提供了上机练习题及答案。
本书适合作为高等学校中C语言课程的教学参考书。
关于这本书
(代)
写这本书的原因
1.作者本人有能力写这本书
作者自20世纪80年代初便开始讲C语言,至今已有20多年了,先后给本科生、大专生、中专生和高中生以及自学考试的考生讲过100多次。接触到了各种不同层次的学生,他们都提出过不同的问题,学习后有过各种感受。作者还针对着不同层次的C语言学习者写过各种不同层次的C语言教材共6、7种。可以说,作者对讲授C语言课程有丰富的经验,回答过千奇百怪的问题,经历过各种各样的考验,因此,有能力写好这本书。
2.社会上有对这种书的需求
随着高等、中等教育事业的发展,计算机专业不断扩招,讲授C语言课程的教员越来越多,他们中间有许多人是初讲者,缺乏讲授C语言课程的经验,特别需要在讲授经验上得到帮助。近些年来,也曾有过一些年轻教员与作者一起讨论关于C语言的教学问题。作者也尽力将自己的一些体会告诉初次讲授C语言课的教员,帮助他们提高教学水平。因此,作者一直想寻找机会将多年来讲授C语言的经验和体会让更多人知道,并能从吸取一点帮助。写这本书便提供这样一个窗口。
3.读过这本书能有一点帮助和启发便给作者最大的欣慰
作者已年过花甲,回顾以前走过的路,可以说一辈子与书结缘。概括有生之年所干过的事,可归纳为6个字:读书、教书、写书。念过18年的书,又教过36年的书,还写过30多种计算机方面的书。
读过作者的书的读者,如果能从书中得到一些帮助和启发,便给予作者最大的欣慰,这也是写这本书的原因和目的。
如何阅读这本书
这本书与《C语言程序设计——基础理论与案例》和《C语言程序设计习题解答和上机指导》一起作为C语言程序设计系列的教材。本书是针对教员而写的,希望能够通过这本书指导教员教好C语言程序设计这门课程。书中传授了作者讲授这门课的体会,并根据这些体会告诉教员应该讲些什么,应该重点讲解哪些内容,有哪些概念是要讲清楚的,有哪些语法和常用算法是要让学生掌握的,还有哪些典型例子可供学习和分析。因此,本书按讲课的教材对应分为10章,每章由如下各节组成:
(1)本章讲述的内容;
(2)重点内容;
(3)重要概念;
(4)常用语法和算法;
(5)典型例子;
(6)练习题。
读者可以有针对性地去阅读每章的有关章节。
阅读本书时一定要与《C语言程序设计——基础理论和案例》一书结合起来,为了避免重复,有些内容在本书中便省略了。
本书每章后面又备有练习题,可以选用一些作为学生的作业,也可以选用一些作讲课时的例题。
这本书将告诉读者如何教好C语言
给读者带来一些帮助和启发,这是作者的最大心愿。作者以前写过一些书深受读者欢迎,这是激励作者继续写书的动力。一个人做一件对别人有用的事,是值得庆贺的。
作者写这本书所贯穿的思想,也是自己教好C语言这门课程的体会,总来说,就是“三讲”、“三要”。
1.重点内容详细讲
C语言课程教材分为10章,每章都有一些要讲的内容,在这些内容中又有重点内容。讲课时一定要抓住重点,细致讲解,讲清楚讲明白。例如,在第8章“函数”章中,重点内容是函数的调用。要讲清楚函数的调用目的、调用过程和实现调用的方法。让学生明确函数调用要干什么,怎样做。像这样的重点内容每章都有,不止一个,都要详细地给学生讲清楚,为此教员自己必须先下工夫搞清楚。
2.重要概念反复讲
C语言是一种比较难学的高级语言。它之所以难学,其中有一个原因就是概念多、规则多,这些概念要理解,这些规定要记住。每章都要有许多概念,其中有一些是重要概念。例如,在第2章“单词、常量和变量”中,给变量赋初值和给变量赋值就是两个重要的概念,有的人学完了C语言后,对赋初值和赋值这两个概念还搞不清楚。因此,讲解变量时一定要把给变量赋初值和赋值的时间、方法和作用讲清楚,且在以后的例题中,在其他与此相关的地方还要反复讲。例如,在讲函数调用时,再次指出将函数实参传递给形参实际上是实参给形参赋值,而不是赋值。总之,一些重要的概念,仅讲一次是不够的,要抓住机会、创造条件多讲几次。
3.典型例子深入讲
讲课中要多讲例题,要选择一些有代表性的典型例题给学生讲清楚,在讲清楚例题中的语法现象和功能后,还要再改变一些语句,讲解改变前后的不同,并且让学生上机调试,看看改变某些语句后的结果。这样经过深入讲解例题,才能使学生深入了解一些概念和技巧。作者编写的教材中,尽量选用典型例题,把这些例题搞清楚,学生便可以照猫画虎地进行编程练习,逐渐学会编程方法,不断提高编程技能。学会编程是从学会分析例题开始的。
4.教学内容要少而精
由于讲课的时间有限,讲课时要对内容进行选择,挑那些难以理解的内容进行讲解,一些比较简单的内容留给学生自学。一堂课安排讲的内容不要太多,要留出一些给学生思考的时间,因此就要求教员的授课内容要少而精。教员应懂得一个道理:灌多了,学生得到的反而小;有重点地讲,学生反而记住的多。没有经验的教员往往是满堂灌,将一章的内容面面俱到,不停地讲了一节课,学生却什么也没记住,这样的实际效果并不好。
5.能力培养要贯穿始终
让学生在课堂上学到一些知识点、一些具体的规则、规定、格式和方法固然很重要,但是更重要的是,要教学生学会解决问题分析问题的方法。在讲述一个概念时,不仅要讲述“是什么”,而且要讲清“为什么”,往往从“为什么”中可以获得思考问题的方法。例如,讲数组概念时首先要讲述什么是数组,指出它是怎样的一种数据类型,还要讲清楚数组这种类型有什么作用,什么时候用数组。总之,在讲课的过程中,一方面让学生提问题,另一方面教员也不断地就某个概念或内容提出问题,让学生明白为什么要这样,能不能那样。教员要帮助学生爱思考,培养学生会思考,通过不断的思考来培养能力。
6.上机训练要反复强调
学习计算机语言课是离不开上机调试的。在教学环节中,应该把上机实践放在一个重要的位置。作者在这套教材中,专门为每章编写了上机要求和上机练习题,并在许多例题中提到了如何上机调试。要求学生保证一定的上机时间,还要教会学生通过上机来回答所提出的疑难问题。例如,变量的值可分为有意义的、无意义的,有意义的变量值又分为初值、默认值等等,这些都可以通过上机来验证,搞清楚在什么情况下会出现哪种值。为此,本书的练习题部分专门提出了许多要上机验证的问题。通过这些例子让学生学会自己提问题,自己上机验证,回答所提出的问题,这也是对学生能力的培养。在课堂上要告诉学生:不上机是学不好C语言的。
0在C语言中的重要性
下面列举出一些关于0在C语言中的重要用途,以引起人们对0的重视。
(1)C语言中数组下标是从0开始的。
(2)C语言中字符串的结束符是ASCII码为0的字符,表示为'\0'。
(3)枚举类型的定义中,枚举表中枚举符默认的整型数值是从0开始的。
(4)打开文件失败时,打开文件函数(fopen( ))返回值为0,通常用它来判断文件是否打开。
(5)C语言系统定义的符号常量NULL的值为0。
本书中的一些观点和提法愿与同行讨论研究。由于水平有限,难免存在错误和不足之处,诚心欢迎读者提出批评和意见。谢谢关注本书的所有读者。
作 者
于2006年5月写于燕北园
目 录
第1章 C语言概述 1
1.1 本章讲述的内容 1
1.2 重点内容 1
1.2.1 C语言的特点 1
1.2.2 C语言程序在结构上的特点 4
1.2.3 C语言程序的实现 4
1.3 重要概念 6
1.4 常用语法和算法 7
1.4.1 键盘输入操作方法 7
1.4.2 屏幕输出操作方法 8
1.5 典型例子 9
练习题 12
第2章 单词、常量和变量 15
2.1 本章讲述的内容 15
2.2 重点内容 15
2.2.1 类型 15
2.2.2 字符常量和字符串常量 16
2.2.3 全面认识变量 17
2.3 重要概念 18
2.4 常用的语法和算法 20
2.4.1 常量 20
2.4.2 变量 21
2.5 典型例子 22
练习题 24
第3章 运算符和表达式 28
3.1 本章讲述的内容 28
3.2 重点内容 29
3.2.1 具有副作用的运算符 29
3.2.2 运算符的优先级和结合性 31
3.2.3 表达式的值和类型 32
3.3 重要概念 33
3.4 常用语法和算法 35
3.4.1 运算符和表达式 35
3.4.2 类型 37
3.5 典型例子 37
练习题 41
第4章 预处理功能 44
4.1 本章讲述的内容 44
4.2 重点内容 46
4.2.1 两种不同格式的宏定义命令 46
4.2.2 文件包含的使用 49
4.3 重要概念 50
4.4 常用语法和算法 51
4.4.1 预处理命令 51
4.4.2 类型定义 52
4.5 典型例子 53
练习题 56
第5章 语句 59
5.1 本章讲述的内容 59
5.2 重点内容 60
5.2.1 选择语句 60
5.2.2 循环语句 62
5.3 重要概念 64
5.4 常用语法和算法 66
5.4.1 本章基本语法要求 66
5.4.2 常用算法 66
5.5 典型例子 67
练习题 73
第6章 数组 77
6.1 本章讲述的内容 77
6.2 重点内容 78
6.2.1 数组的定义 78
6.2.2 数组的初始化 79
6.2.3 字符数组 79
6.3 重要概念 80
6.4 基本语法和基本算法 81
6.4.1 本章基本语法 81
6.4.2 基本算法 83
6.5 典型例子 83
练习题 86
第7章 指针 90
7.1 本章讲述的内容 90
7.1.1 指针的概念 90
7.1.2 指针的应用 91
7.2 重点内容 91
7.2.1 指针的概念 91
7.2.2 指针在数组方面的应用 92
7.3 重要概念 95
7.4 重要的语法和算法 100
7.5 典型例子 102
练习题 105
第8章 函数 108
8.1 本章讲述的主要内容 108
8.2 重点内容 108
8.2.1 函数的定义和函数的说明 108
8.2.2 函数的返回值 109
8.2.3 函数的调用方式 110
8.3 重要概念 111
8.4 常用语法及算法 113
8.4.1 常用语法 113
8.4.2 主要算法 113
8.5 典型例子 114
练习题 119
第9章 结构和联合 123
9.1 本章讲述的主要内容 123
9.2 重点内容 123
9.2.1 结构变量 123
9.2.2 结构数组 126
9.2.3 联合成员的共址性 127
9.3 重要概念 129
9.4 常用语法和算法 130
9.4.1 常用语法 130
9.4.2 常用算法 131
9.5 典型例题 132
练习题 136
第10章 文件操作 139
10.1 本章讲述的内容 139
10.2 重点内容 140
10.2.1 标准文件的读写操作 141
10.2.2 一般文件的操作 142
10.3 重要概念 145
10.4 常用语法 146
10.5 典型例子 147
练习题 151