《普通高等教育计算机类特色专业系列规划教材:C语言程序设计实用教程》以应用为主线,讨论C语言程序设计,内容包括概况、C语言程序的运算功能、最简单程序的设计、分支程序设计、循环程序设计、同类问题的求解、表格处理功能的实现、链表的设计与实现、C语言应用程序的编写、界面的设计与实现及应用程序编写实例、C语言低级特性及其在系统软件中的应用,以及C语言程序的阅读与查错。《普通高等教育计算机类特色专业系列规划教材:C语言程序设计实用教程》强调程序设计全过程,即设计、编程与调试,强调程序设计的基本功,即程序的读、写与调试能力,强调思路与总体设计,兼顾基础性、实用性、趣味性与拓展性。
《普通高等教育计算机类特色专业系列规划教材:C语言程序设计实用教程》可作为高等院校理工科C语言程序设计课程的教材,或作为使用C语言开发应用程序的参考书,也可作为C语言程序设计自学读物。书中融合了C语言程序设计二级等级考试内容,亦可作为等级考试的辅助读物。《普通高等教育计算机类特色专业系列规划教材:C语言程序设计实用教程》所附光盘中包含有可运行的界面函数及管理信息系统实例,对进行毕业设计的读者可提供有效支持。
前言
第1章概况
1.1程序与程序设计语言
1.1.1程序的概念
1.1.2程序设计语言的引进
1.1.3 C语言特点
1.2 C语言程序的组成
1.2.1 C语言程序结构
1.2.2 C语言程序基本成分
1.2.3数据结构与控制结构
1.2.4 C语言程序的书写格式
1.3 C语言程序设计
1.3.1程序设计的概念
1.3.2程序设计的要点
1.3.3 C语言编程的基本法则
1.4 C语言程序的执行
1.4.1 C语言程序的执行方式与集成支持系统
1.4.2 C语言集成支持系统Turboo C
1.5 C语言程序错误的查出
1.5.1静态模拟追踪法
1.5.2动态调试法
1.6 C语言程序中的预处理命令
1.6.1宏定义
1.6.2文件包含
1.6.3条件编译
1.7小结
1.7.1本章C语法概括
1.7.2 C语言有别于其他语言处
本章概括
习题
第2章C语言程序的运算功能
2.1表达式
2.1.1量
2.1.2运算
2.1.3表达式的组成与计算
2.1.4算术表达式
2.2赋值表达式
2.2.1赋值运算与赋值表达式
2.2.2复合赋值表达式
2.3数据类型与变量说明
2.3.1类型的概念
2.3.2变量说明及其作用
2.3.3类型定义
2.3.4类型转换
2.4小结
2.4.1本章C语法概括
2.4.2 C语言有别于其他语言处
本章概括
习题
第3章最简单程序的设计——顺序结构
3.1概况
3.1.1 C语言程序的执行顺序
3.1.2 C语言顺序程序设计
3.2赋值语句
3.2.1赋值语句的组成
3.2.2赋值语句的含义与执行步骤
3.2.3注意问题
3.3数据的输入输出
3.3.1输入输出语句的功能
3.3.2输入输出的三要素
3.3.3注意问题
3.4应用实例
3.4.1幼儿算术题测验程序
3.4.2知识小测验程序
3.5 小结
3.5.1本章C语法概括
3.5.2 C语言有别于其他语言处
本章概括
习题
第4章 分支程序设计一选择结构
4.1 概况
4.1.1必要性
4.1.2选择结构的两种形式
4.2 if语句
4.2.1 if语句的概况
4.2.2逻辑表达式
4.2.3应用中的注意事项
4.2.4 if语句的应用
4.2.5动态调试包含if语句的程序
4.3 switch语句
4.3.1书写形式
4.3.2 switch语句的含义与执行步骤
4.3.3 switch语句的应用
4.3.4枚举类型简介
4.3.5 switch语句与if语句的比较
4.4综合应用实例
4.4.1算术题自测程序
4.4.2天数的计算
4.5小结
4.5.1本章C语法概括
4.5.2 C语言有别于其他语言处
本章概括
习题
第5章循环程序设计——C语言程序的迭代结构与数组类型
5.1概况
5.1.1重复运算的必要性
5.1.2迭代结构的三种形式
5.1.3比较
5.1.4包含循环结构的程序的阅读
5.2若干数学问题的计算机求解
5.2.1 三角函数值表的打印输出
5.2.2级数求和
5.2.3生成斐波那契数列
5.2.4求平方根
5.2.5求素数之和
5.3适用于循环的数据结构——数组类型
5.3.1数组的概念
5.3.2数组类型与数组变量说明
5.3.3数组类型的应用
5.3.4二维数组
5.3.5引进数组带来的问题:赋值语句的执行步骤
5.4数组类型的进一步应用:排序
5.5小结
5.5.1本章C语法概括
5.5.2 C语言有别于其他语言处
本章概括
习题
第6章 同类问题的求解——函数定义与函数调用
6.1 问题的提出及解决
6.1.1实例
6.1.2解决的思路
6.2函数定义与函数调用
6.2.1 函数定义的书写形式
6.2.2函数调用的书写形式及执行步骤
6.3如何设计函数定义
6.3.1设计要点
6.3.2有值函数的定义与调用
6.3.3无值函数的定义与调用
6.3.4有值函数与无值函数的比较
6.3.5函数参数类型的进一步扩充
6.4应用实例——栈
6.4.1栈的概念
6.4.2栈操作的实现
6.4.3栈的应用
6.5函数的递归定义
6.5.1 问题的提出
6.5.2递归的概念
6.6存储类与函数调用的副作用
6.6.1全局量与局部量概念
6.6.2 C语言的存储类
6.6.3函数副作用
6.7函数与程序编写
6.7.1程序编写的基本策略——自顶向下、逐步细化
6.7.2应用自顶向下、逐步细化策略编写程序
6.8小结
6.8.1本章C语法概括
6.8.2 C语言有别于其他语言处
本章概括
习题
第7章表格处理功能的实现——字符串与结构类型
7.1 问题的提出及解决
7.1.1数据处理的需要
7.1.2解决思路
7.2表格的设计与实现
7.2.1字符串与字符数组
7.2.2字符串型量的输入输出
7.2.3对字符串操作的常用系统函数
7.2.4表格的输出
7.3表格数据结构的设计与实现
7.3.1 结构类型定义与结构类型变量说明
7.3.2结构成员变量的表示与存取
7.4综合应用
7.4.1通讯录管理系统
7.4.2学生档案信息管理系统
7.5小结
7.5.1本章C语法概括
7.5.2 C语言有别于其他语言处
本章概括
习题
第8章链表的设计与实现——指针类型
8.1概况
8.1.1 问题的提出
8.1.2解决思路——指针类型的引进
8.2指针类型
8.2.1指针与存储地址
8.2.2指针类型变量说明与指针类型定义
8.2.3指针类型变量所指向数据对象的引用
8.2.4关于指针类型的运算
8.2.5指针类型与数组的联系
8.2.6指针类型应用于形式参数
8.3指针类型的应用——链表
8.3.1建立链表的一般思路
8.3.2关于链表的操作
8.3.3链表的种类
8.4指针类型的综合应用
8.4.1学生档案信息管理
8.4.2散列表及其应用
8.5小结
8.5.1本章C语法概括
8.5.2 C语言有别于其他语言处
本章概括
习题
第9章C语言应用程序的编写
9.1概况
9.1.1编写要点
9.1.2编写步骤
9.2数学教学系统的设计与实现
9.2.1复数演算系统
9.2.2小学数学自测系统
9.3简单数学游戏程序的设计与实现
9.3.1 24点游戏
9.3.2幻方
9.3.3后缀表达式的生成
本章概括
习题
第1 0章界面的设计与实现及应用程序编写实例
10.1界面设计概况
10.1.1界面设计的必要性
10.1.2界面设计的风格
10.1.3界面的种类及实现方法
10.2古典型界面的设计与实现
10.2.1 C语言程序实现的界面
10.2.2界面实现的要点
10.3时尚型界面的设计与实现
10.3.1 窗口函数的设计与实现
10.3.2菜单函数的设计与实现
10.4应用程序编写实例
10.4.1 界面的设计与实现
10.4.2程序的编写
10.4.3数据的保存与恢复
10.4.4 C语言文件的概念及其操作
10.5与VC++开发平台相结合编写应用程序
10.5.1 VC++平台上研制应用程序的要点
10.5.2 VC++平台上界面的设计与实现
10.5.3通讯录管理系统的设计与实现
10.6小结
10.6.1本章C语法概括
10.6.2 C语言中关于日期的数据结构与函数
本章概括
习题
第11章C语言低级特性及其在系统软件中的应用
11.1 问题的提出
11.2共用体类型
11.2.1引进的目的
11.2.2共用体类型定义与变量说明
11.2.3应用实例
11.3位运算
11.3.1引进的目的
1 1.3.2位运算及其优先级
11.3.3应用实例
11.4位域
1 1.4.1位域的概念与应用
11.4.2位域的一般定义形式
11.5小结
11.5.1本章C语法概括
11.5.2 C语言有别于其他语言处
本章概括
习题
第12章C语言程序的阅读与查错
12.1概况
12.1.1程序阅读的必要性
12.1.2程序阅读的要点与方法
12.2 C语言程序阅读方法
12.2.1基本方法(概念法)
12.2.2 IPO法
12.2.3列表法
12.2.4分析法
12.2.5图示法
12.2.6观察法
12.2.7静态模拟追踪法
12.2.8综合法
12.3典型算法阅读之例
12.3.1关于字符串操作的程序
12.3.2其他典型程序
12.4程序查错
12.4.1程序查错的要点与常见错误种类
12.4.2静态程序查错
12.4.3动态程序查错
12.5小结
本章概括
习题
参考文献
光盘目录
附录1正文附录
附录1.1 C语言语法一览
附录1.2常用系统函数名与头文件
附录1.3 Turbo C的使用
附录2 C语言实现的界面函数
附录3界面函数应用实例
附录3.1 24点游戏程序
附录3.2小学数学自测系统
附录3.3知识咨询系统
附录4基于VC++的通讯录管理系统
附录5各章例题的C程序
附录6综合题与补充习题
3.3数据的输入输出
一个程序执行的目的是达到某种效果,当程序运行后,为了要能验证程序的正确性,了解程序运行的效果,必须执行输出语句以显示运行效果。因此输出是必不可少的一个语言成分。一般来说,一个程序的运行,需要有初始数据,这可以通过赋值语句获得,但是,这样获得的值只能是确定的和固定的,因为这是由赋值语句右部表达式所规定了的。为了能适应各种特定情况,随机地获得初始数据,需要在程序运行时刻从键盘键入数据,这要通过输入语句来实现。就如同一个人,需要进出平衡,一个程序一般都包含有输入输出成分。
C语言中的输入输出,可以是有格式的,也可以是无格式的。这里首先讨论有格式的输入输出。不特殊说明时,本书讨论的输入输出都是有格式的。
3.3.1输入输出语句的功能
C语言中,输入输出功能通过输入输出语句来实现,输入输出语句又主要是对输入输出函数的调用。例如,
printf(\n请输入x的值:);
scanf(%d”,&x);
输入输出函数的功能,简单地说,是在程序与外设之间进行数据传输,具体地说,输入函数把从键盘键入的数据传输到程序变量(存储字)中,而输出函数把程序变量的值从存储字中传输到显示屏上。因此,输入输出语句是对输入输出函数调用,后跟一个分号“;”。
例如,设有输入语句:
scanf(“%d,%f”,&k,&x);
假定执行此输入语句时从键盘键入:
12,9.8
即用逗号隔开的一个整数值12与一个实数值9.8,变量k与X将分别得到值12与9.8。
又如下列输出语句:
printf(“k=%d,x=%f\n”,k,x);
执行此输出语句将在显示屏上显示如下所示的一行:
k=12,x=9.800000<回车>
这里9.8后跟有5个0。这是因为C语言规定:输出float型值而不指明输出位数时,小数点后显示6位小数。数字后面的“<回车>”表示不可见的换行字符。下面进一步讨论输入输出语句的细节。
3.3.2输入输出的三要素
从上面的例子中可以看到,一个输入输出函数中指明输入输出的是什么,同时还指明按什么格式来输入输出。在这里,隐含地指明在什么外设上进行输入输出,如输入是通过键盘,而输出是显示在显示屏上。可见,一般来说,输入输出的三要素是:设备、输入/输出项、输入/输出格式。
输入输出函数printf与scanf中,设备隐含是指标准设备,输入的标准设备是键盘,输出的标准设备是显示屏,因此不在输入输出函数中指明设备。输入/输出项指明进行输入/输出的是什么,而输入输出的格式由格式控制串指明,确切地说,由格式控制串中包含的格式转换符指明。格式转换符由字符%标记,且一个格式转换符对应一个输入输出项。例如,假定int型变量X的值是5,执行输出语句“printf(“x=%d\n”,x);”,其中格式控制串“X=%dhn”中不是格式转换符的字符串部分“x=”提示输出的是什么值,无需进行格式转换,直接输出。“\n”输出时使得换到下一行的左端,而格式转换符%d对应于输出项x,规定按整型值格式输出变量x的值,因此输出的是:x=5<回车>。