C语言程序设计

C语言程序设计"

作者:黄保和
ISBN:9787302135999
定价:¥28
字数:千字
页数:
出版时间:2006.09.01
开本:
版次:1-4
装帧:
出版社:清华大学出版社
简介

    本书是一本为高等学校非计算机专业“C语言程序设计”课程编写的教材。本书有以下特点:(1)突出重点而不是面面俱到,重点介绍基本的、常用的语法,忽略不常用的语法。(2)注重程序设计语言的共性,让学生掌握语言比较学的方法,培养学生自学其他程序设计语言的能力。(3)简单介绍了C++的面向对象的程序设计方法,为学生今后过渡到面向对象的程序设计留下接口。(4)不从理论上讲程序设计。本书以介绍C语言的语法为线索,通过一批实例分析,将程序设计的一般方法和技术贯穿其中。

    本书也可作为相关科技和工程技术人员学习C语言的参考书。

前言

目前,我国高校非计算机专业的计算机教育普遍实施“三个层次”的教学方式,即计算机应用基础、计算机技术基础和结合专业的计算机应用。“C语言程序设计”属计算机技术基础课程。

因为受到课时数不足、配套课程不够等客观因素的制约,任课老师普遍感到要在非计算机专业的学生中上好“C语言程序设计”课程不容易,学生也普遍感到学好该课程有一定难度。为了使课程教学达到预期效果,我们认为应该明确并解决好以下问题。

(1) 课程目的。程序设计是计算机技术在各行各业应用的基础。对非计算机专业的学生,在今后的工作中不一定要自己开发应用程序,但一定要会使用计算机程序,也有可能与计算机专业人员合作开发本专业领域的应用程序。因此,学习程序设计的一般原理,掌握基本的程序设计方法和技术具有重要的现实意义。“C语言程序设计”课程的目的就是帮助学生掌握一种高级程序设计语言(C语言),并通过运用C语言开展程序设计实践,使学生具备应用高级语言开展程序设计的初步能力。

程序设计必须借助于某种语言。“C语言程序设计”课程必然应包含“C语言”和“程序设计”两方面的内容。必须明确,学习程序设计的一般方法和技术是本课程目的,学习C语言只是为了实现程序设计,C语言是程序设计的工具语言。本课程将通过对C语言的词法、语法介绍,通过各种基本控制结构的实际案例分析,向学生介绍程序设计的基本方法。通过上机实验,使学生掌握程序调试和测试方法。通过本课程的学习,应使学生应用计算机解决问题的能力得到进一步的提高,为后续的计算机应用课程打下坚实的基础。

(2) 课程内容。对程序设计语言和程序设计技术的熟练掌握和深入理解是计算机系学生的两大基本功。“C语言程序设计”课程是计算机专业学生4年中要学习的系列计算机课程的第一门,属专业基础课,其重要性不言而喻,因此一般安排比较充足的教学课时。况且,计算机系学生还应学习一系列计算机课程,如“数据结构”、“汇编语言”、“编译原理”、“程序设计语言理论”、“算法设计与分析”、“程序设计方法学”、“形式语义学”、“软件工程”等。因此,计算机系学生学习“C语言程序设计”课程时,主要的课程内容是深入地研究C语言的词法和语法,并通过程序设计练习进一步理解程序设计语言。其教学的重点是程序设计语言,程序设计技术是副产品。

在非计算机专业学生中开设“C语言程序设计”课程,不能全盘复制计算机专业学生的课程内容。一方面课时不够,另一方面应该对本课程的内容做适当的外延。

历史上先后产生了多种高级程序设计语言,而且新的高级程序设计语言也在不断出现。C语言是目前使用较普遍的一种高级程序设计语言,虽然C语言的内容比较庞杂、琐碎,语言描述本身也不如Pascal规范,但考虑到它具有较广泛的实用性,比较容易和后续的计算机应用课程衔接,所以笔者认为使用C语言作为程序设计的工具语言是合适的。

本课程的基本教学内容应包括: 了解软件开发的一般过程,软件开发和软件运行平台的使用,软件工程的基本概念,C语言的基本词法和语法,结构化程序设计的方法,模块和函数的概念,顺序、分支和循环3种基本程序控制结构的概念和实现,程序调试和测试的一般方法,面向对象程序设计方法的概念等。

考虑到能提供给本课程的学时有限、学生在学习本课程之前数学基础和专业知识还较欠缺,加上在一、二年级其他功课压力较重等客观因素,具体安排课程内容时应注意以下几点:

(1) 介绍程序设计语言时应有重点,不要面面俱到。C语言语法比较庞杂,有些语句可以相互替代,有些语法不常使用。课程中要重点介绍基本的、常用的语法,忽略重复的、不常用的语法。

(2) 注重程序设计语言的共性。学生以后不一定用C语言写程序,而本课程又不可能介绍所有的计算机语言。所以应该介绍计算机程序设计语言共性的东西,让学生掌握语言比较学的方式方法,使学生具有自学其他程序设计语言的能力。

(3) 应该介绍面向对象的程序设计方法。面向对象的程序设计是今后程序设计的方向,C语言是面向过程的程序设计语言,并不支持面向对象的程序设计方法。但C++是面向对象的程序设计语言,课程中应简单介绍C++的面向对象的内容,为学生今后顺利过渡到面向对象的程序设计留下接口。

(4) 不要从理论上讲程序设计。由于课时的限制,不能安排太多的时间专门讲授程序设计理论,而应以介绍语言为线索,通过一批实例分析,将程序设计的一般方法和技术传授给学生。

长期的计算机基础教学实践,长期的计算机基础教学研究,是本书形成与完善的基础。笔者希望奉献给老师和同学一本适合教、适合学的教材。

本书由江弋和黄保和共同编写,其中江弋编写前6章,黄保和编写后6章。编写期间,得到福建省计算机基础教育研究会的大力支持,得到厦门大学公共计算机教学部各位老师的大力支持,借此表示感谢。

使用本书过程中,如发现错误,恳请与黄保和联系(huangbh@xmu.edu.cn)。

编者

2006年7月于厦门大学

目录

第1章绪论

1.1程序设计语言

1.1.1机器语言

1.1.2汇编语言

1.1.3高级语言

1.2程序设计的概念

1.2.1 程序设计

1.2.2程序设计的步骤

1.3C语言的发展和C++简介

1.3.1C语言发展简述

1.3.2C++简介

1.4C语言程序的基本结构

1.5算法

1.5.1算法的概念

1.5.2计算机算法的特征

1.5.3计算机算法的分类

1.5.4最佳算法

1.5.5算法的基本结构及其描述

1.6Visual C++简介

1.6.1Visual C++6.0主窗口

1.6.2简单C/C++程序的编写和运行过程

1.6.3程序调试的一般过程及其调试手段

1.6.4Visual C++ 中程序调试方法和工具

习题

第2章C语言基础

2.1C语言的词汇与词法

2.1.1基本字符集

2.1.2关键字

2.1.3特定字

2.1.4标识符 

2.1.5运算符

2.1.6分隔符

2.1.7字面常量

2.2C语言的数据类型

2.2.1C语言数据类型概述

2.2.2C语言的基本数据类型

2.2.3举例

2.3常量与变量

2.3.1常量

2.3.2变量

2.3.3举例

2.4运算符和表达式

2.4.1运算符和表达式概述

2.4.2算术运算符和算术表达式

2.4.3类型转换

2.4.4赋值运算符和赋值表达式

2.4.5逗号运算符和逗号表达式

习题

第3章结构化程序设计

3.1结构化程序设计方法

3.1.1自顶向下分析设计问题

3.1.2模块化程序设计

3.1.3结构化程序编写

3.2语句的概念

3.2.1表达式语句

3.2.2控制语句

3.2.3复合语句

3.2.4空语句

3.3程序的3种基本结构

3.3.1顺序结构 

3.3.2选择结构(分支结构)

3.3.3循环结构

3.4赋值语句

3.5输入输出函数

3.5.1格式输出函数printf

3.5.2格式输入函数scanf

3.5.3字符输出函数putchar( )

3.5.4字符输入函数getchar( )

3.6顺序结构程序设计举例

习题

第4章选择结构

4.1关系运算符和关系表达式

4.1.1关系运算符

4.1.2关系表达式

4.2逻辑运算符及逻辑表达式

4.2.1逻辑运算符

4.2.2逻辑表达式

4.2.3逻辑运算符的优先级和结合性

4.3if语句

4.3.1if语句(单分支)

4.3.2if…else语句(双分支)

4.3.3if 语句的嵌套

4.3.4if …else if 语句(多分支)

4.3.5条件运算符和条件表达式

4.4switch语句

习题

第5章循环结构程序设计

5.1while 语句

5.2do…while语句

5.3for语句

5.4break语句和continue语句

5.4.1break语句

5.4.2continue语句

5.5循环的嵌套

5.6goto语句

5.7常用算法举例

5.7.1累加法

5.7.2穷举法

5.7.3迭代与递推

习题

第6章函数

6.1函数的概念

6.1.1标准库函数与头文件

6.1.2标准库函数rand()举例

6.2函数的定义、声明与调用

6.2.1函数定义

6.2.2函数的声明与函数原型

6.2.3函数的调用

6.3函数间参数传递和返回值

6.3.1函数间参数传递

6.3.2函数的返回值

6.4函数的嵌套调用

6.5递归函数

6.5.1递归的概念

6.5.2递归调用和递归函数

6.5.3递归调用的执行过程

6.5.4递归函数应用举例

6.6变量的作用域与存储类别

6.6.1变量的生存期和可见性

6.6.2变量的作用域

6.6.3变量的存储类别

6.6.4局部变量的存储类型

6.6.5全局变量的存储类型

6.6.6内部函数和外部函数

习题

第7章编译预处理

7.1宏定义

7.1.1不带参数的宏

7.1.2带参数的宏

7.1.3取消宏定义

7.2条件编译

7.2.1#if、#elif、#else和#endif命令

7.2.2#ifdef和#ifndef命令

7.2.3defined预处理运算符

7.3文件包含

7.4多文件组织

7.4.1内部连接

7.4.2外部连接

习题

第8章数组

8.1一维数组

8.1.1一维数组的定义

8.1.2一维数组的引用

8.1.3一维数组的初始化

8.1.4一维数组应用举例

8.2多维数组

8.2.1二维数组的定义和引用

8.2.2二维数组的初始化

8.2.3二维数组应用举例

8.3字符串

8.3.1字符型数组

8.3.2字符串

8.3.3字符串处理函数

8.3.4字符串应用举例

习题

第9章结构体、共用体和枚举类型

9.1结构体

9.1.1结构体类型的定义

9.1.2结构体变量定义和初始化

9.1.3结构变量的引用

9.1.4结构体数组

9.2共用体

9.2.1共用体的类型定义

9.2.2共用体变量的定义、初始化和引用

9.3枚举类型

9.3.1枚举类型的定义

9.3.2枚举变量的定义、初始化和使用

9.4typedef语句

习题

第10章指针

10.1地址与指针变量

10.1.1内存单元地址

10.1.2指针

10.1.3指针变量的定义和初始化

10.1.4指针的运算

10.1.5指向指针的指针

10.2指针与函数

10.2.1指针变量作为函数参数

10.2.2函数的返回值为指针

10.2.3指向函数的指针

10.3指针与数组

10.3.1一维数组与指针

10.3.2二维数组与指针

10.3.3字符串与指针

10.3.4指针数组

10.4指针与结构体

10.4.1指向结构体的指针

10.4.2动态存储分配

10.4.3链表

习题

第11章文件

11.1文件概述

11.2文件的打开和关闭

11.2.1文件的打开

11.2.2文件的关闭

11.3文件的读写

11.3.1文本文件的读写

11.3.2二进制文件的读写

11.4文件的定位

习题

第12章C++的面向对象程序设计简介

12.1面向对象程序设计的基本概念

12.1.1结构化程序设计

12.1.2面向对象程序设计

12.1.3封装性

12.1.4继承性

12.1.5多态性

12.2类和对象

12.2.1类的定义

12.2.2类的成员函数

12.2.3对象定义与成员访问

12.2.4类成员的访问控制

12.2.5构造函数

12.2.6析构函数

12.2.7面向对象的程序实例

12.3友元 

12.3.1友元函数

12.3.2友元类

12.4继承和派生

12.4.1派生类的定义

12.4.2派生类的构造函数

12.4.3对基类成员的访问控制

12.4.4类成员的同名覆盖

12.4.5多继承

12.4.6虚基类

12.4.7派生类应用实例

12.5多态与重载

12.5.1函数重载

12.5.2运算符重载

12.5.3类型转换

12.6流类的应用(输入/输出)

12.6.1流的概念

12.6.2标准设备的输入/输出

12.6.3文件的输入/输出

习题

参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个