第一章 预备知识 1.1 计算机软件基础 1.2 C语言发展史 1.3 C语言特征 1.4 C语言学习方法 1.5 程序与算法 1.7 Visual C++集成环境介绍
1.1 计算机软件基础 1.1.1 机器语言 1.1.2 汇编语言 1.1.3 高级语言
1.1.1 机器语言 二进制是计算机语言的基础,也就是说计算机内部存储、加工并处理的信息是由“0”和“1”组成的二进制序列构成。计算机诞生之初,人们只能用二进制指令去命令计算机干这干那,即写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言就是机器语言。 特点是:运行速度快,难以记忆,难以修改,可移植性差
1.1.2 汇编语言 用一些简洁的英文字母、符号串来替代一个特定指令的二进制串 ,是一种符号语言。 特点:比机器语言易记、易修改程序;可移植性差;机器不能直接执行,需要用编译程序翻译成机器语言才可执行。
1.1.3 高级语言 接近于数学或人的自然语言,同时又不依赖于计算机硬件的计算机语言。 特点:机器不能直接执行,需要用编译程序或解释程序翻译成机器语言,才可执行;可移植性好;容易记忆和修改程序。
1.2 C语言发展史 C语言诞生于20世纪70年代,是由 Unix操作系统的研制者Dennis Ritchie和Ken Thompson于1970年,在B语言的基础上发展和完善起来的。1972年 Thompson等人在小型机PDP-11上用C语言重写Unix操作系统内核, 可以说C语言与Unix操作系统同时诞生。 20世纪80年代C语言被程序员广泛使用,从而逐渐演化为个人计算机上流行的编程工具。1983年美国国家标准委员会(ANSI)对C语言进行了标准化,颁布了第一个C语言标准草案(83 ANSI C)。 为了适应大规模软件的生产制作,在C语言基础上,贝尔实验室的Bjarne Stroustrup博士及其同事开始对其进行了改进和扩充,将“类”引入了C语言,1983年构成了最早的C++语言。为了适应大规模软件的开发,Stroustrup博士又为C++引进了多重继承、运算符重载、引用、虚函数等许多特性。 美国国家标准化协会ANSI和国际标准化组织ISO一起进行了标准化工作,并于1998年正式发布了C++语言的国际标准ISO/IEC:98-14882,从此软件开发进入到一个快速发展的阶段。
1.2 C语言发展史 20世纪90年代,美国微软公司(Microsoft)为了降低Windows应用程序的开发成本,拉动应用软件在软件市场的地位,于1992年发布了含有MFC 2.0的Visual C++ 1.0,一个划时代的可视化C++集成开发环境诞生了。所谓的 MFC,就是一个软件包(framework)。即用面向对象的方法对Win32 API(应用程序接口)进行了封装,提高了Windows平台上的程序开发效率。1998年, Microsoft公司推出了目前最流行的的Visual C++ 6.0版本。 2002年,推出了Visual C++ 7.0,即嵌入在VS.NET框架中的Visual C++ .NET 2002。目前最新的VC++版本是Visual C++ .NET 2005-VC 8.0 随着Internet国际互联网的普及,美国Sun公司于1995年推出了互联网环境下通用的编程语言-Java语言。显然Java吸取了了C++的成功之处,借鉴了C++的不足。使得Java逐渐演化成为Internet环境下的世界级通用语言。而Microsoft公司为了与如日中天的 Sun公司抗衡,于2005年推出了Visual C#.NET 2005。 尽管软件开发环境的研发脚步一直没有停止,但对于初学者而言,最重要的是打好计算机编程的基础。
1.3 C语言特征 1.3.1 中级语言 1.3.2 编程环境及使用 1.3.3 C语言格式和结构特点
1.3.1 中级语言 C语言是一门中级语言,也就是说它既有 “低级语言”的固有特征:允许自由访问计算机物理地址,能进行位操作,可直接对计算机硬件接口直接访问, 生成目标代码的质量高,程序执行效率高。又兼备“高级语言”的固有特征: 语句简洁、紧凑,运算符灵活、 数据类型丰富,具有结构化的控制语句,可移植性好。
1.3.2 编程环境及使用 为了适应计算机软件市场的需求,计算机语言的编程环境随着操作系统的变迁在同步变化。早期的磁盘操作系统下的C编程环境为Borland 公司的Turbo C 2.0,随着Windows操作系统的推出,其编程环境演化为可视化的集成编程环境,其代表作有:Borland 公司的BC++ 5.0和Microsoft公司的Visual C++ 6.0,本书所用的C编程环境就是Visual C++ 6.0
1.3 C语言特征 对于初学者,学会上机调试程序是学习计算机编程首要解决的问题。这是因为由课堂或书本获取的计算机编程知识,必须通过自己亲手编制并上机调试程序,才会对该程序算法有更为深刻的消化和理解,这是学会编程的必要条件。 对于入门者,上机调试程序可使对教材中的实例举一反三,使相关知识融会贯通,迈向程序设计自由之路。对于熟练者,只有上机调试程序才会实现预期的软件设计目标。
1.3.3 C语言格式和结构特点 1. C程序格式 例1.1计算圆柱体的体积 1.3.3 C语言格式和结构特点 1. C程序格式 例1.1计算圆柱体的体积 #include <stdio.h> //包含头文件stdio.h,支持程序中的输入输出语句功能 int main( ) { int radiu, hight; //定义表示圆半径和圆柱体高的两个整型变量 float volum; //定义保存圆柱体体积的实型变量volum scanf(“%d%d”, &radiu , &hight); //由键盘输入圆半径和圆柱体高 volum =3.14159 * radiu * radiu * hight; //计算圆柱体体积 printf(“volum=%f\n”,volum); //屏幕输出计算结果 return 0; }
1.3.3 C语言格式和结构特点 (1) C语言程序习惯上使用小写英文字母,也可以使用大写字母,但大写字母常常用于符号常量的定义或其他特殊用途。 (2) C语言使用分号“;”作为语句之间的分隔符,每一条语句占用一个书写行的位置。 (3) C语言程序中用大括弧对{}表示程序结构的层次范围。一个完整的程序模块要用一对大括弧表示该程序模块的范围,如上面程序中的第3行和最后一行的大括弧对。 (4)一般情况下每个语句占一行,采用缩进式书写C程序。即每个控制结构(一对花括弧)都缩进一个跳格键(TAB)位。
1.3.3 C语言格式和结构特点 (5)空格作为语句中标识符、关键字间的分隔符。为了增强可读性,程序中可适当加些空格和空行。但不能在程序中所使用的关键词(称为保留字)及各种标识符(变量名、函数名)名字中间插入空格。 (6)为了便于阅读理解C源程序,例1.1中使用了注释语句对每条语句做出解释,一般情况下使用“//”符号注释一条语句。C编译器在编译源程序时,对注释语句不予理睬。如果注释语句必须书写多行,则使用下列格式: /* … … */
1.3.3 C语言格式和结构特点 对专业术语的进一步说明: (7)关键词 1.3.3 C语言格式和结构特点 对专业术语的进一步说明: (7)关键词 关键词是被定义在C编译器系统内部的一些特定符号,对一条语句的作用做出解释,在程序中起到命令动词的作用。例如:例1.1中的scanf(…)表示实现数据输入库函数的关键词,而printf(…)是实现数据输出的库函数的关键词。 (8)标识符 标识符是由编程者所定义,通常表示程序中的常量或变量的名称。如例1.1中表示圆柱体体积的变量volum就是用户定义的标识符。
1.3.3 C语言格式和结构特点 2. C程序结构 一个完整的C语言程序是由一个或多个具有相对独立功能的程序模块结合而成,这样的程序被称为函数。每个函数都是由函数名和大括弧对{}包围的若干语句组成,为了更直观地了解C语言程序的特点,重新编写例1.1。
1.3.3 C语言格式和结构特点 例1.2计算圆柱体的体积。 #include <stdio.h> 1.3.3 C语言格式和结构特点 例1.2计算圆柱体的体积。 #include <stdio.h> float func1(int , int); //函数func1的原型声明 int main( ) { int radiu, hight; float v; scanf(“%d%d”,&radiu, &hight); v= func1(radiu, hight); //调用函数func1,得到圆柱体体积计算结果 printf(“volum=%f\n”,v); return 0; } float func1( int r, int h) //定义函数func1,实现圆柱体体积的计算 return 3.14159 * r * r * h;
1.3.3 C语言格式和结构特点 说明:主函数main(){ }是C源程序中的唯一函数,它表示程序运行的入口,无论主函数位于整个源程序的什么位置,都从主函数开始执行。也就是说,一个完整的C程序,主函数main()是必不可少的。 对例1.2的分析:第2条语句是对函数func1进行了原型声明,通知后续程序按原型声明定义并调用函数func1。主函数中的第3条语句是定义了表示圆半径和圆柱体高的两个整型变量radiu和hight,接着定义一个实型变量volum,用于保存圆柱体体积的计算结果。在由键盘输入圆半径和圆柱体高之后,调用函数func1,实现了圆柱体体积的计算,最后在屏幕上显示输出圆柱体体积的计算结果。
1.4 C语言学习方法 预习教材 完成作业 上机调试程序 课后总结 难点处理
1.5 程序与算法 算法是思想,程序是表达。算法是求解问题的思路,程序是这个思路的具体实现过程。 一个完整的计算机程序包括两方面内容:数据和操作步骤,而操作步骤就是算法。 表示算法的方法有以下三种: (1)用自然语言表示算法 (2)用伪代码表示算法 (3)用流程图表示算法
1.5 程序与算法 算法的最佳表示方法是用流程图来表示,程序设计者常以流程图的方式来描述算法,就是用一些图框来表示各种操作,使算法直观形象,易于理解。用流程图表示算法,直观形象,易于理解。美国国家标准化协会ANSI规定了一些常用的流程图符号,已为世界各国程序工作者普遍采用,流程图符号如图1-1所示。 起至框 一般处理框 判断框 输入/输出框 流程线 图1-1 流程图符号
1.5 程序与算法 下面我们就将日常生活中的过马路用框图表示出来,如下图所示: 绿灯看停车线看红绿灯开始判断是否绿灯过马路等待结束红灯
1.6 程序开发过程 C语言是一种编译型程序语言,和大多数流行的软件开发环境类似,C语言程序的开发过程要经历四个基本阶段:编辑 → 编译 → 链接 → 运行。
1.7 Visual C++集成环境介绍 1.7.1 初识Visual C++ 1.7.2 Visual C++ 集成环境的使用
1.7.1 初识Visual C++ Visual C++是程序员及软件爱好者梦寐以求掌握的工具,它内嵌了微软基础类库MFC-微软程序员几十年精髓积累,在这些上百万行C++优化代码的支持下,它将Windows应用程序的可视化设计、C++源程序代码及Windows资源的输入、编辑、编译、调试链接集为一体,是微软公司推出的Windows平台下优秀的软件开发工具之一。它由主菜单、工具栏、控件工具箱及完成各种特定功能的窗口组成。其界面如图所示。
1.7.1 初识Visual C++ 菜单工具栏 类 视 图 资源视图 文件视图 切换窗口 调试工具栏 代码编辑窗口 编译调试窗口
1.7.2 Visual C++ 集成环境的使用 下面介绍如何在VC++环境下实现C源程序的输入、编辑、编译链接并运行的。为了实现C源程序的输入、编辑、编译链接,首先要创建一个类型为“Win32 Console Application”的工程。具体操作如下: 1. 创建基于“Win32 Console Application”的工程 2.添加C源程序文件 3.输入代码 4.运行程序
注意: 第1个程序调试完毕后,在输入第2个程序之前,一定要打开“File”菜单,选择“Close Workspace”菜单项,待关闭了第1个程序后,再接着创建一个空的“基于控制台”的应用工程,输入第2个源程序代码。这种操作是由于在一个工程中不允许出现两个main函数所致。