[C语言程序设计讲稿2012]
第1章 C语言概述
计算机系统包括硬件系统和软件系统,硬件系统(称为裸机)是计算机的物质基础,而软件系统则是计算机的灵魂所在。所有的软件都是用程序设计语言编写的。程序设计语言的发展经历了从机器语言、汇编语言到高级语言的历程,而C语言正是众多高级语言中的一种。
C语言是一种面向过程的计算机高级程序设计语言,它适合作为系统描述语言,既可用于编写系统软件,也可用于编写用户应用软件。经过长期的改进和发展,C语言的应用范围已经相当广泛,它是目前国际上广泛流行的计算机高级语言之一。
1.1 C语言产生的历史背景
1.C语言的产生和发展过程
由于汇编语言程序依赖于计算机硬件,其可读性和可移植性差,而一般的高级语言又难以实现对计算机硬件的直接操作,于是人们希望有一种能对计算机硬件进行直接操作的高级程序语言,C语言就是在这样的背景下产生的。1972年至1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言的雏形。最初的C语言保持了B语言的优点,它只是为了描述和实现UNIX操作系统而提供的一种工作语言。后来C语言多次做了改进,直到1975年NUIX第6版发布后,C语言的突出优点才引起人们的普遍注意。1978年以后,C语言先后移植到大型、中型、小型和个人计算机上,已独立于UNIX了。从此开始C语言便很快风靡全世界,成为世界上应用最广泛的几种计算机语言之一。
2.C语言的几种不同版本
目前常见的C语言系统有Turbo C/C++,Borland C++,MS(Micro Software)C++和Visual C++ 等,他们都是以ANSI(美国国家标准化协会)C为基础开发出来的,并包含了C的几乎所有功能。本书选定的上机运行环境是Visual C++6.0系统。
1.2 C语言的特点
一种语言之所以能生存和发展,并具有较强的生命力,总是有其不同于其他语言的特点。C语言的主要特点如下。
(1)语言简洁紧凑,使用方便灵活。C语言共有32个关键字(见附录B),9种控制语句,C程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。C程序语言简练,源程序短,减少了程序输入的工作量。
(2)运算符丰富。C语言共有44种运算符(见附录C),C语言把括号、赋值和强制类型转换等都作为运算符处理,从而使C语言的运算类型及其丰富,表达式类型多样化。
(3)数据类型丰富,具有现代语言的各种数据结构。C语言提供的数据类型有:整形、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂数据结构(如链表、树、栈等)的运算。
(4)具有结构化的控制语句(如if…else语句、while语句、do…while语句、switch语句、for
第1页
[第一章、C语言概述]
语句)。C程序以函数作为基本模块单位,便于实行程序的模块化设计。
(5)语法限制不太严格,程序设计自由度大。在书写C语言源程序时不像FORTRAN语言那样有严格的格式要求,其书写形式比较随意。比如在C程序中,一行可以写多个语句,也可以将一个语句分成多行来写。
(6)C语言允许直接访问物理地址。在C语言程序中能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能又具有低级语言的许多功能,可用来编写系统软件。C语言既是成功的系统描述语言又是通用的程序设计语言。 (7)生成的目标代码质量高,程序执行效率高。C语言一般只比汇编程序的目标代码效率低10%到20%。
(8)用C语言编写的程序可移植性好。C语言编写的程序,基本上不做任何修改就能用于各种型号的计算机和各种操作系统。
在C语言的基础上,1983年贝尔实验室又推出了C++语言。C++语言进一步扩充和完善了C语言,C++是一种面向对象的高级程序设计语言。C语言是C++语言的基础,C++语言和C语言在很多方面是兼容的。掌握了C语言,再进一步学习C++语言就更容易了,并能达到事半功倍的效果。
1.3 简单的C语言程序介绍
1.3.1 几个简单的C语言程序举例
【例1.1】编写C程序,在屏幕显示输出一行信息“这是我的第一个C程序!”。 #include “stdio.h” /*包含标准输入输出库函数的头文件stdio.h */ void main() /*主函数头部分*/ { /*主函数开始*/
printf(“这是我的第一个C程序!\\n”); /*调用库函数printf()输出一个字符串*/ } /*主函数结束*/
程序中,第一行的作用是把标准输入输出库函数的头文件stdio.h包含进来,以便在下面的程序中调用它们(比如printf()函数)。C语言程序是由函数组成,其中主函数main()有且仅有一个。在程序中void main()表示主函数返回类型为空类型,而在花括号{}中的内容为主函数的函数体部分,在函数体中调用了stdio.h中的输出函数printf()用来输出一行字符。 【例1.2】编写C程序求两个整数之和123+456,并显示输出结果。 #include “stdio.h”
void main() /*函数头部分*/
{ int a,b,sum; /*定义3个整形变量a,b,sum*/ a=123; b=456; /*为变量a,b分别赋值123和456*/ sum=a+b; /*求a,b的和到sum中*/
printf(“sum is: %d \\n”,sum); /*调用printf函数输出:sum si:< sum的值>*/ }
【例1.3】通过调用自定义函数求两个数中的较大者。
#include “stdio.h” /*包含标准输入输出库函数的头文件stdio.h*/ int max(int x,int y) /*函数max()的作用为输入两个整形返回一个整形*/
第2页
[C语言程序设计讲稿2012]
{ int c=x; /*定义一个整形变量c并赋于初值为x的值*/ if(c void main() /*主函数首部*/ { int a,b,c; /*定义3个整形变量a,b,c*/ scanf(“%d,%d”,&a,&b); /*调用库函数scanf()从键盘输入两个整形变量a,b的值*/ c=max(a,b); /*调用自定义函数max()返回a,b的最大值到变量c中*/ printf(“最大数是:%d\\n”,c); /*调用系统函数printf()输出“最大数是: 1.3.2 C程序的特点 根据以上几个简单例子,下面给出C语言源程序的组成和运行特点。 1.C程序的构成 C程序是由程序源文件组成的,每个程序文件都是由函数构成的,函数是C程序的基本单位。在一个C程序中,有且仅有一个主函数main(),同时还可以包含若干个其它函数。C语言程序的这种特点使得容易实现程序的模块化。 2.C程序中函数之间的关系 在C程序中主函数main()可以调用其它函数,反之不然;其它函数之间可以相互调用。程序中的所有函数都是独立的,即不能在一个函数中包含另一个函数。 3.C程序中函数的来源 C程序中的函数由两部分组成,即库函数和用户自定义函数。ANSI(美国国家标准化协会)C提供的库函数有300多个,使用库函数时要先用#include命令将其所在函数库的头文件包含进来;在调用自定义函数时,要先定义后使用。 4.C程序中一个函数的组成 (1)函数首部 函数首部为该函数代码的第1行,包括函数类型、函数名、函数形参类型、形参名。例如,在【例1.3】中求最大值的函数首部为:int max(int a,int b),其中每一部分的含义如图1-1所示。 (2)函数体 函数体为函数首部下面一对花括号即{}内部的语句部分。如果一个函数内有多对花括号,则最外层的一对{}为函数体的范围。函数体内一般包括以下两个部分: ①声明部分: 在声明部分定义所有用到的变量和声明程序中所有调用的自定义函数。 ②执行部分: 执行部分由若干个语句组成,用以完成该函数的特定功能。 例如,在【例1.2】中主函数的第2行:“int a,b,sum;”为声明部分,第3、4、5行为执行 第3页 [第一章、C语言概述] 部分。 5.C程序的执行过程 一个C程序总是从主函数main()中的第一个语句开始执行,到主函数的最后一个语句运行结束,而不论main()在程序中的位置如何。 6.C程序的书写格式 在C程序中,一行可以写多个语句也可以将一个语句分成几行来写。每个语句的最后必须有一个分号“;”作为该语句的结束标记。 7.C程序的输入与输出 C语言本身没有专用的输入和输出语句,C语言系统的输入和输出(i/o)操作是通过调用标准输入输出库函数:printf()、scanf()、getchar()、putchar()等来完成的,在调用这些库函数前要先用命令“#include 8.C程序的注释 在编写C语言源程序时,可以对程序的任何部分进行注释。在程序中加上必要的注释说明可以增加程序的可读性。在C++环境中有以下两种注释语句格式: (1)块注释 在块注释中以“/*”表示块注释开始,以“*/”表示块注释结束。 例如: /*语句“printf(“a=%d,b=%d\\n”,a,b);”表示输出整形变量a、b的值*/ (2)行注释 行注释只能在C++运行环境中使用,行注释以“//”表示注释开始,本行中//后面的内容为注释部分。 例如: //语句“printf(“a=%d,b=%d\\n”,a,b);”表示输出整形变量a、b的值 1.4 C语言程序的编辑与运行方法介绍 1.4.1 运行C语言程序的步骤 前面已经列举了几个C语言源程序。所谓程序,是一组计算机能识别和执行的指令的集合,其中每条指令使计算机执行特定的操作。用高级语言编写的程序称为源程序。 由于计算机只能识别和执行由0和1组成的二进制指令,而不能识别和执行用高级语言编写的指令。为此,在源程序运行之前必须用相应的编译程序将其转换为计算机能识别的二进制的目标程序,然后再将该目标程序与系统中的库函数以及其它目标程序连接起来形成可执行程序。 在Visual C++6.0中,C语言程序的运行过程是: (1)上机编辑C语言源程序代码文件(file.cpp) (2)对源程序文件进行编译生成目标程序(file.obj) (3)将目标程序、程序中的库函数进行连接生成可执行程序(file.exe) (4)运行可执行程序得到结果。 第4页
相关推荐: