本书按任务驱动教学法的要求编写,开始讲解了计算机程序设计原理、Turbo C的运行环境及C语言的基本语法,然后通过计算器、成绩单、迷宫等七个大的实例(包含若干小例子)与C语言的数据类型、运算符与表达式,顺序结构程序设计,选择结构程序设计,循环结构程序设计,函数,编译预处理,数组,指针,结构体、联合体与枚举类型及文件等知识点融于一体,运用案例法教学,通过对这些实例的讲解掌握相应的知识点,并且在相应的章节精心设计了实训内容,真正做到了教、学、用相结合,充分体现高职高专教学的特点。
第1章 基本知识 1
1.1 计算机程序与程序设计 1
1.2 Turbo C程序设计开发环境(IDE) 9
1.3 数据的表示与运算 17
1.4 程序的基本结构 46
习题 67
实训 72
第2章 简易计算器 77
2.1 程序结构和主函数 77
2.2 显示计算器 89
2.3 获取计算数据 91
2.4 计算与结果显示 98
习题 98
实训 102
第3章 成绩排名 106
3.1 成绩单 106
3.2 成绩排序 122
3.3 成绩排名的实现 144
习题 147
实训 156
第4章 迷宫 159
4.1 不变的迷宫 159
4.2 二维数组 160
4.3 不变迷宫的实现 173
4.4 可变的迷宫 178
习题 186
实训 191
第5章 C语言基本语法 193
5.1 C语言基本数据类型及定义 193
5.2 C语言的运算符与表达式 196
5.3 指针与数组 199
5.4 程序控制语句 204
5.5 常用函数 205
第6章 百鸡问题 208
6.1 百鸡问题 208
6.2 穷举算法举例 210
习题 211
实训 211
第7章 Fibonacci数列 214
7.1 Fibonacci数列的引入 214
7.2 迭代算法举例 217
习题 219
实训 219
第8章 汉诺塔问题 222
8.1 汉诺塔问题的提出 222
8.2 递归算法举例 225
习题 227
实训 227
第9章 通信录 229
9.1 通信录的表示 229
9.2 通信录的管理 236
9.3 通信录程序的实现 251
习题 267
实训 267
附录A 预处理命令 268
附录B ASCII字符编码表 278
附录C Turbo C 2.0关键字及其用途 279
附录D Turbo C 2.0运算符及其优先级和结合性 280
附录E Turbo C 2.0库函数 282
附录F Turbo C 2.0常见错误信息 288
C语言功能强大,表达能力强,使用灵活方便,用C语言编写的源程序代码紧凑,生成的目标代码质量高。这些不争的事实及优点,让诸多PASCAL语言爱好者不得不对C语言另眼看待,纷纷把多年来一直使用的PASCAL语言换成了C语言。
由于C语言的应用越来越广泛,全国计算机等级考试的三级和四级考试又都必考C语言,因此,各高校无论是计算机专业还是非计算机专业都开设了C语言课程。
然而,从我们所了解到的情况来看,有相当大的一部分的学校,尤其是高职高专学校,其C语言的教学效果并不理想。主要表现在:第一,绝大多数学生还没有入门,课程就结束了;第二,即使是“入了门”的学生也只会考试,不会编写程序。究其原因,我们认为主要是缺少真正具有职业教育特点的C语言教材。
高等职业技术教育虽然已开办了五年,市面上也出了很多“高职高专”教材,但在我们看来,有些教材与本科教材没有多大的区别,没有体现出职业教育的特点。首先,从教材的内容上看,有些教材只是本科教材在篇幅上的压缩版。书是变薄了,但内容没有减少,C语言丰富的运算符和复杂的语法规则样样都有,“一个都不能少”。其次,从教材的编排和模式上看,有些教材通篇都只是为了验证知识点而去找例子讲,是为语言而讲语言,而不是从实际应用出发,根据需要讲解知识。第三,从应用能力的培养上看,有些教材根本就涉及不到这方面的教学与训练。21世纪的高职高专教育是面向应用、面向职业的教育,因此,只懂一点理论知识,不懂实际应用,不会具体操作的“人才”将不会得到社会认可。
我们从高职高专教育的特点出发,针对目前高职高专计算机类教材的问题和不足,本着“不求全但求精”的原则,对C语言教材的教学内容和教学模式作了较大的改革,力求做到:第一,尽量舍去一些不常用的或者可用可不用的知识,又不失掉C语言的精华内容;第二,不为语言讲语言,而是从应用中讲语言;第三,讲C语言,更讲程序设计;第四,注重C语言基础知识的讲解,更注重C语言应用能力的培养。全书分为9章,只有第1章从语言规则讲起,其他7章(第5章为小结)则从具体的应用例子讲起,以实现任务为目标,讲解任务的实现方法和实现过程,连带讲解所需的C语言的其他知识。
第1章 基本知识。内容主要包括“存储程序控制原理”,程序设计的基本概念,高级程序设计语言的共性,C语言的特点,计算机中数据的表示法,C语言最基本的语法规则,Turbo C 2.0集成开发环境,源程序编辑、编译、运行和调试方法等,不涉及复杂的语法和算法,目的是让初学者快速入门。
第2章 简易计算器。以实现简易计算器为例,讲解结构化程序设计方法,所涉及到的知识包括函数的概念、函数的定义、函数的声明与调用、变量的作用域和生存期、逻辑运算与逻辑表达式。
第3章 成绩排名。首先讲成绩单的表示方法,然后讲解如何实现排序。所涉及到的知识包括数组的概念,一维数组的定义与引用,字符数组与字符串,指针的概念,指针的应用,指针与一维数组的关系,for语句及循环嵌套。
第4章 迷宫。通过编写走迷宫游戏程序,让学生在编写一个复杂完整的程序的过程中得到能力的培养与训练,除掌握相关的知识之外,进一步掌握结构化程序设计的方法。所涉及到的知识包括二维数组的概念,二维数组的定义与引用,指针与二维数组的关系,switch语句,文件的概念和文件操作等。
第5章 C语言基本语法小结。本章的目的是让学生把前4章所涉及到的C语言各知识点相互联系在一起,构成一个相对完整的知识结构。
第6章到第8章主要从程序设计的方法来讲C语言的应用,对常用的“穷举法”、“迭代法”和“递归调用”作了较详细的讲解。目的是让学生进一步了解计算机算法的特点,从而提高程序设计的能力。
第9章 通信录。本章是C语言及程序设计综合应用能力的培养。通过设计、实现一个完整的通信录管理程序,使学生了解C语言应用程序的开发过程,包括从建立合理的数据结构开始到最终代码的实现的全过程。所涉及到的知识主要包括结构体的概念、结构体的相关知识和实际应用、枚举数据类型的应用等。
本书由武汉电力职业技术学院的黄逵中老师担任主编,由湖北水利水电职业技术学院的黄泽钧老师和浙江水利水电高等专科学校的周志敏老师担任副主编,参加编写的还有武汉电力职业技术学院的肖继文老师。黄泽钧老师编写第3章、第5章和附录A至附录D,周志敏老师编写第6章到第8章及附录E和附录F,肖继文老师编写第9章。
南昌工程学院的孙辉教授对本书的大纲提出了很多宝贵的意见和建议,在此,我们表示衷心的感谢。
尽管我们做了大量的工作,但本书肯定会有很多不足之处,敬请广大师生批评指正。可发电子邮件与我们联系,邮件地址如下:
E-mail:kuizhong@sina.com
作 者
2004年8月