第1章  C语言概述
C语言是国际上广泛流行的、很有发展前途的高级程序设计语言,它既可以用来编写系统软件,又可以用来编写应用软件。C语言也是大学生学习程序设计选用最多的语言。本章主要介绍C语言的发展历史、C语言的特点、C程序的结构和C程序的上机步骤。通过本章的学习,读者应重点掌握C语言的特点、C程序的结构和上机运行C程序的方法。
1.1  C语言的发展和特点
自从计算机诞生以来,为了更好地进行软件的设计,各种高级程序设计语言也在不断地发展、进步和完善。C语言就是其中最优秀的程序设计语言之一。
1.1.1  C语言的发展过程
C语言是目前世界上最流行、使用最广泛的高级程序设计语言。在设计操作系统等系统软件和需要对硬件进行操作时,使用C语言编程明显优于其他高级语言,许多大型应用软件和系统软件都是用C语言编写的。
C语言的起源可以追溯到ALGOL 60。1963年英国的剑桥大学在ALGOL 60的基础上推出了CPL语言,但是CPL语言难以实现。1967年英国剑桥大学的Matin Richards对CPL语言作了简化,推出了BCPL语言。1970年美国贝尔实验室的Ken Thompson以BCPL语言为基础,又作了进一步的简化,设计出了很简单且接近硬件的B语言,并用B语言写了第一个UNIX操作系统,在DEC PDP-7型计算机上实现。1971年在DEC PDP-11上实现了B语言。1972年由美国的Dennis M.Ritchie在B语言的基础上设计出了C语言,并首次在UNIX操作系统的DEC PDP-11计算机上使用。
为了推广UNIX操作系统,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,1983年美国国家标准研究所(ANSI)为C语言制定了第一个ANSI标准,称为ANSI C。1987年美国国家标准研究所又
公布了新的C语言标准,称为87 ANSI C。这个标准在1989年被国际标准化(ISO)组织采用,被称为ANSI/ISO Standard C(即C89)。Brian W.Kernighian和Dennis M.Ritchie根据这个标准,重写了他们的经典著作,并发表了《The C Programming Language, Second Edition》。
1995年又为C语言增加了一些新的函数,使之具有C++的一些特征,使C89成为C++的子集。1999年推出的C99在基本保留C语言特征的基础上,增加了一系列面向对象的新特征。C语言也从面向过程的语言发展成为面向对象的语言。
C语言是C++的基础,因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。本课程是按照ANSI/ISO Standard C(即C89)来讲授C语言的。
目前最流行的C语言有Microsoft C 或称 MS C、Turbo C和AT&T C。这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。本课程使用Turbo C作为上机环境。
1.1.2  C语言的主要特点目前流行的编程语言
C语言发展迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如dBASE III PLUS、dBASE IV都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势,像PC-DOS、WordSTAR等就是用这种方法编写的。归纳起来C语言具有下列特点:
1.C语言简洁、紧凑、方便、灵活
C语言共有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了一些不必要的成分。
2.运算符丰富
C语言的运算符包括的范围很广泛,共有34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富、表达式类型多样化,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。
3.数据结构丰富
C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、联合体类型等,能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外Turbo C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
4.C语言是结构化语言
结构化语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便地调用,并具有多种循环语句、条件语句来控制程序流程,从而使程序完全结构化。
5.C语法限制不太严格,程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言放宽了语法检查,允许程序编写者有较大的自由度。这是C语言的优点,也是C语言的缺点。限制严格就失去了灵活性,而强调灵活必然要放松限制。在程序设计中,程序员不要过分地依赖编
译器的语法检查。因此,对于初学者,编写一个正确的C语言程序比编写一个其他高级语言程序更难些。
6.C语言允许直接访问物理地址,可以直接对硬件进行操作
C语言既具有高级语言的特点,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。因此,有人把C语言称为“中级语言”。
7.C语言程序生成的代码质量高
程序执行效率高,一般只比汇编程序生成的目标代码效率低10%~20%。
8.C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
1.2  C程序的结构
用C语言编写的程序称为C语言源程序,简称为C程序。为了说明C语言源程序结构的特点,先看以下几个程序。这几个程序由简到难,虽然有关内容还未介绍,但可从这些例子中了解到组成一个C程序的基本部分和书写格式。
【例1-1】输出一行信息的C程序。
void main()
{
  printf("Hello,world!\n");
}
main是主函数的函数名,表示这是一个主函数。每一个C程序都必须有主函数,且只能有一个主函数。
printf是输出函数,它的功能是把要输出的内容送到显示器去输出。printf函数是一个由系统定义的标准函数,可在程序中直接调用。
执行这个程序,会在显示器上输出:
Hello, world!
【例1-2】计算三角函数的C程序。
#include<math.h>                /*#include称为文件包含命令,扩展名为.h的文件称为头文件*/
#include<stdio.h> 
void main()
{
double x,s;                        /*定义两个实数变量,以被后面程序使用*/
printf("Input a angle:");            /*显示提示信息*/
scanf("%lf",&x);                    /*从键盘获得一个实数x*/
s=sin(x*3.14159/180.0);              /*求x的正弦,并把它赋给变量s*/
printf("sine of %lf is %lf\n",x,s);        /*显示程序运算结果*/
printf("Strike any key to continue!\n");
getch();                          /*按任何键回到集成开发环境*/
}
程序的功能是从键盘输入一个数x,求x的正弦值,然后输出结果。在main()之前的两行称为预处理命令(详见后文)。预处理命令还有其他几种,这里的#include称为文件包含命令,其意义是把尖括号<>或引号""内指定的文件包含到本程序来,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。在本例中,使用了3个库函数:输入函数scanf、正弦函数sin和输出函数printf。sin函数是数学函数,其头文件为math.件,因此在程序的主函数前用#include命令包含了math.h。scanf和printf是标准输入/输出函数,其头文件为stdio.h,在主函数前也用#include命令包含了stdio.件。在程序的每行后用/*和*/括起来的内容为注释部分,程序不执行注释部分。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。