当前位置:首页 > 青春园地 > 第二课堂 > 正文
一、概述
发布时间:2008-10-15 12:05:10   来源:本站原创   点击率:

一、C语言的产生与发展
    C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的 DEC PDP-11 计算机上使用。它由早期的编程语言BCPL (Basic Combind Programming Language)发展演变而来。在1970年,AT&T贝尔实验室的Ken hompson根据BCPL语言设计出较先进的并取名为B的语言,最后导致了C语言的问世。 
    随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准, 使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。

二、C语言的特点 
    C语言发展如此迅速, 而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件, 如PC-DOS,DBASE Ⅳ都是由C语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了。归纳起来C语言具有下列特点: 
        1. C是中级语言
           它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
        2. C是结构式语言
           结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
        3. C语言功能齐全
           C语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的。 
        4. C语言适用范围大 
           C语言还有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。

三、C源程序的结构特点

为了说明C语言源程序结构的特点,先看以下几个程序。这几个程
序由简到难,表现了C语言源程序在组成结构上的特点。虽然有关
内容还未介绍,但可从这些例子中了解到组成一个C源程序的基本部
分和书写格式。


main()
{
printf("世界,您好!\n");
}


main是主函数的函数名,表示这是一个主函数。
每一个C源程序都必须有,且只能有一个主函数(main函数)。
函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。
printf函数是一个由系统定义的标准函数,可在程序中直接调用。

 

#include
#include
main()
{
double x,s;
printf("input number:\n");
scanf("%lf",&x);
s=sin(x);
printf("sine of %lf is %lf\n",x,s);
}


include称为文件包含命令
扩展名为.h的文件也称为头文件或首部文件


定义两个实数变量,以被后面程序使用
显示提示信息
从键盘获得一个实数x
求x的正弦,并把它赋给变量s
显示程序运算结果
main函数结束

 

程序的功能是从键盘输入一个数x,求x的正弦值,然后输出结果。
在main()之前的两行称为预处理命令(详见后面)。预
处理命令还有其它几种,这里的include 称为文件包含命令,其意义
是把尖括号""或引号<>内指定的文件包含到本程序来,成为本程序的
一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也
称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的
函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函
数原型所在的头文件。在本例中,使用了三个库函数:输入函数
scanf,正弦函数sin,输出函数printf。sin函数是数学函数,其头文
件为math.h文件,因此在程序的主函数前用include命令包含了
math.h。scanf和printf是标准输入输出函数,其头文件为stdio.h,
在主函数前也用include命令包含了stdio.h文件。

需要说明的是,C语言规定对scanf和printf这两个函数可以省去
对其头文件的包含命令。所以在本例中也可以删去第二行的包含命令
#include。
同样,在例1.1中使用了printf函数,也省略了包含命令。

在例题中的主函数体中又分为两部分,一部分为说明部分,另一
部分执行部分。说明是指变量的类型说明。例题中未使用任何变量,
因此无说明部分。C语言规定,源程序中所有用到的变量都必须先说
明,后使用,否则将会出错。这一点是编译型高级程序设计语言的一
个特点,与解释型的BASIC语言是不同的。说明部分是C源程序结构中
很重要的组成部分。本例中使用了两个变量x,s,用来表示输入的自
变量和sin函数值。由于sin函数要求这两个量必须是双精度浮点型,
故用类型说明符double来说明这两个变量。说明部分后的四行为执行
部分或称为执行语句部分,用以完成程序的功能。执行部分的第一行
是输出语句,调用printf函数在显示器上输出提示字符串,请操作人

员输入自变量x的值。第二行为输入语句,调用scanf函数,接受键盘
上输入的数并存入变量x中。第三行是调用sin函数并把函数值送到变
量s中。第四行是用printf 函数输出变量s的值,即x的正弦值。程序
结束。

printf("input number:\n");
scanf("%lf",'C10F10&x);
s=sin(x);
printf("sine of %lf is %lf\n",'C10F10x,s);
运行本程序时,首先在显示器屏幕上给出提示串input number,
这是由执行部分的第一行完成的。用户在提示下从键盘上键入某一数,
如5,按下回车键,接着在屏幕上给出计算结果。

输入和输出函数

在前两个例子中用到了输入和输出函数scanf和 printf,在第三
章中我们要详细介绍。这里我们先简单介绍一下它们的格式,以便下
面使用。
scanf和 printf这两个函数分别称为格式输入函数和格式输出函
数。其意义是按指定的格式输入输出值。因此,这两个函数在括号中
的参数表都由以下两部分组成:

“格式控制串”,参数表

格式控制串是一个字符串,必须用双引号括起来,它表示了输入
输出量的数据类型。各种类型的格式表示法可参阅第三章。在printf
函数中还可以在格式控制串内出现非格式控制字符,这时在显示屏幕
上将原文照印。参数表中给出了输入或输出的量。当有多个量时,用
逗号间隔。例如:


printf("sine of %lf is %lf\n",x,s);
其中%lf为格式字符,表示按双精度浮点数处理。它在格式串中两次
现,对应了x和s两个变量。其余字符为非格式字符则照原样输出在屏
幕上。


int max(int a,int b);
main(){
int x,y,z;
printf("input two numbers:\n");scanf("%d%d",&x,&y);
z=max(x,y);
printf("maxmum=%d",z);
}
int max(int a,int b){
if(a>b)return a;else return b;
}


此函数的功能是输入两个整数,输出其中的大数。
/*函数说明*/
/*主函数*/
/*变量说明*/
/*输入x,y值*/
/*调用max函数*/
/*输出*/
/*定义max函数*/
/*把结果返回主调函数*/

 

上面例中程序的功能是由用户输入两个整数,程序执行后输出其
中较大的数。本程序由两个函数组成,主函数和max 函数。函数之间
是并列关系。可从主函数中调用其它函数。max 函数的功能是比较两
个数,然后把较大的数返回给主函数。max 函数是一个用户自定义函
数。因此在主函数中要给出说明(程序第三行)。可见,在程序的说明
部分中,不仅可以有变量说明,还可以有函数说明。关于函数的详细
内容将在第五章介绍。在程序的每行后用/*和*/括起来的内容为注释
部分,程序不执行注释部分。

上例中程序的执行过程是,首先在屏幕上显示提示串,请用户输
入两个数,回车后由scanf函数语句接收这两个数送入变量x,y中,然
后调用max函数,并把x,y 的值传送给max函数的参数a,b。在max函数
中比较a,b的大小,把大者返回给主函数的变量z,最后在屏幕上输出
z的值。

C源程序的结构特点

1.一个C语言源程序可以由一个或多个源文件组成。

2.每个源文件可由一个或多个函数组成。

3.一个源程序不论由多少个文件组成,都有一个且只能有一个
main函数,即主函数。

4.源程序中可以有预处理命令(include 命令仅为其中的一种),
预处理命令通常应放在源文件或源程序的最前面。

5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,
函数头和花括号“}”之后不能加分号。

6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明
显的间隔符,也可不再加空格来间隔。

书写程序时应遵循的规则

从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时
应遵循以下规则:
1.一个说明或一个语句占一行。

2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般
与该结构语句的第一个字母对齐,并单独占一行。

3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格
后书写。以便看起来更加清晰,增加程序的可读性。

在编程时应力求遵循这些规则,以养成良好的编程风格。

四、C语言的字符集

字符是组成语言的最基本的元素。C语言字符集由字母,数字,
空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可
以使用汉字或其它可表示的图形符号。

1.字母
小写字母a~z共26个
大写字母A~Z共26个

2.数字
0~9共10个

3.空白符
空格符、制表符、换行符等统称为空白符。空白符只在字符
常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,

编译程序对它们忽略不计。因此在程序中使用空白符与否,对程
序的编译不发生影响,但在程序中适当的地方使用空白符将增加
程序的清晰性和可读性。

4.标点和特殊字符

C语言词汇

在C语言中使用的词汇分为六类:标识符,关键字,运算符,分
隔符,常量,注释符等。

1.标识符
在程序中使用的变量名、函数名、标号等统称为标识符。除库函
数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只
能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且
其第一个字符必须是字母或下划线。

以下标识符是合法的:

a,x, 3x,BOOK 1,sum5

以下标识符是非法的:

3s 以数字开头
s*T 出现非法字符*
-3x 以减号开头
bowy-1 出现非法字符-(减号)
在使用标识符时还必须注意以下几点:
(1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系
统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符
前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。
(2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不
同的标识符。
(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个
量的符号。因此,命名应尽量有相应的意义,以便于阅读理解,作到
“顾名思义”。


2.关键字
关键字是由C语言规定的具有特定意义的字符串,通常也称为保
留字。用户定义的标识符不应与关键字相同。C语言的关键字分为以
下几类:
(1)类型说明符
用于定义、说明变量、函数或其它数据结构的类型。如前面例题
中用到的int,double等
(2)语句定义符
用于表示一个语句的功能。如例1.3中用到的if else就是条件语
句的语句定义符。
(3)预处理命令字
用于表示一个预处理命令。如前面各例中用到的include。


3.运算符
C语言中含有相当丰富的运算符。运算符与变量,函数一起组成
表达式,表示各种运算功能。运算符由一个或多个字符组成。

4.分隔符
在C语言中采用的分隔符有逗号和空格两种。逗号主要用在类型
说明和函数参数表中,分隔各个变量。空格多用于语句各单词之间,
作间隔符。在关键字,标识符之间必须要有一个以上的空格符作间隔,
否则将会出现语法错误,例如把int a;写成 inta;C编译器会把inta
当成一个标识符处理,其结果必然出错。


5.常量
C 语言中使用的常量可分为数字常量、字符常量、字符串常量、
符号常量、转义字符等多种。在第二章中将专门给予介绍。

6.注释符
C 语言的注释符是以“/*”开头并以“*/”结尾的串。在“/*”
和“*/”之间的即为注释。程序编译时,不对注释作任何处理。注释
可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。
在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不
作处理,待调试结束后再去掉注释符。

1. 一个C程序的执行是从 (          ) 。

A) 本程序的main函数开始,到main函数结束

B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C) 本程序文件的第一个函数开始,到本程序main函数结束

D) 本程序的main函数开始,到本程序文件的最后一个函数结束

2. 以下叙述不正确的是(          ) 。

A) 一个C源程序必须包含一个main函数

B) 一个C源程序可由一个或多个函数组成

C) C程序的基本组成单位是函数

D) 在C程序中,注释说明只能位于一条语句的后面

3. 以下叙述正确的是(          )  。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误

B) 在C程序中,main函数必须位于程序的最前面

C) C语言本身没有输入输出语句

D) C程序的每行中只能写一条语句

4. 一个C语言程序是由 (          ) 。

A)一个主程序和若干个子程序组成

B) 函数组成

C) 若干过程组成

D) 若干子程序组成
 
 


收藏本页】 【打印本页】 【关闭本页

 

COPYRIGHT 2003 庐江中学 ALL RIGHTS RESERVED
备案序号: 皖ICP备05003809号 庐城镇文昌路40号
联系电话:0565-7322629 QQ:641967001