C语言进修教程第一章-C语言概论
副标题#e#
C语言的成长进程
C语言是在70年月初问世的。一九七八年由美国电话电报公司(AT&T)贝尔尝试室正式颁发了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。凡是简称为《K&R》,也有人称之为《K&R》尺度。可是,在《K&R》中并没有界说一个完整的尺度C语言,厥后由美国国度尺度学会在此基本上拟定了一个C 语言尺度,于一九八三年颁发。凡是称之为ANSI C。
今世最优秀的措施设计语言
早期的C语言主要是用于UNIX系统。由于C语言的强大成果和各方面的利益逐渐为人们认识,到了八十年月,C开始进入其它操纵系统,并很快在种种大、中、小和微型计较机上获得了遍及的利用。成为今世最优秀的措施设计语言之一。
C语言的特点
C语言是一种布局化语言。它条理清晰,便于按模块化方法组织措施,易于调试和维护。C语言的表示本领和处理惩罚本领极强。它不只具有富厚的运算符和数据范例,便于实现种种巨大的数据布局。它还可以直接会见内存的物理地点,举办位(bit)一级的操纵。由于C语言实现了对硬件的编程操纵,因此C语言集高级语言和初级语言的成果于一体。既可用于系统软件的开拓,也适合于应用软件的开拓。另外,C语言还具有效率高,可移植性强等特点。因此遍及地移植到了种种各型计较机上,从而形成了多种版本的C语言。
C语言版本
今朝最风行的C语言有以下几种:
·Microsoft C 或称 MS C
·Borland Turbo C 或称 Turbo C
·AT&T C
这些C语言版本不只实现了ANSI C尺度,并且在此基本上各自作了一些扩充,使之越发利便、完美。
面向工具的措施设计语言
在C的基本上,一九八三年又由贝尔尝试室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向 工具的措施设计语言。C++今朝风行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更为深入的观念,它所支持的这些面向工具的观念容易将问题空间直接地映射到措施空间,为措施员提供了一种与传统布局措施设计差异的思维方法和编程要领。因而也增加了整个语言的巨大性,把握起来有必然难度。
C和C++
可是,C是C++的基本,C++语言和C语言在许多方面是兼容的。因此,把握了C语言,再进一步进修C++就能以一种熟悉的语法来进修面向工具的语言,从而到达事半功倍的目标。
C源措施的布局特点
为了说明C语言源措施布局的特点,先看以下几个措施。这几个程 序由简到难,表示了C语言源措施在构成布局上的特点。固然有关内容还未先容,但可从这些例子中相识到构成一个C源措施的根基部门和书写名目。
main()
{
printf("编程入门网www.bianceng.cn,您好!\n");
}
main是主函数的函数名,暗示这是一个主函数。每一个C源措施都必需有,且只能有一个主函数(main函数)。函数挪用语句,printf函数的成果是把要输出的内容送到显示器去显示。printf函数是一个由系统界说的尺度函数,可在措施中直接挪用。
#include "stdio.h"
#include "math.h"
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文件。
#p#分页标题#e#
需要说明的是,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的值。
#p#副标题#e#
C源措施的布局特点
1.一个C语言源措施可以由一个或多个源文件构成。
2.每个源文件可由一个或多个函数构成。
3.一个源措施岂论由几多个文件构成,都有一个且只能有一个main函数,即主函数。
4.源措施中可以有预处理惩罚呼吁(include 呼吁仅为个中的一种),预处理惩罚呼吁凡是应放在源文件或源措施的最前面。
5.每一个说明,每一个语句都必需以分号末了。但预处理惩罚呼吁,函数头和花括号“}”之后不能加分号。
6.标识符,要害字之间必需至少加一个空格以示隔断。若已有明明的隔断符,也可不再加空格来隔断。
书写措施时应遵循的法则
从书写清晰,便于阅读,领略,维护的角度出发,在书写措施时 应遵循以下法则:
1.一个说明或一个语句占一行。
2.用{} 括起来的部门,凡是暗示了措施的某一条理布局。{}一般与该布局语句的第一个字母对齐,并单独有一行。
#p#分页标题#e#
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 语言的注释符是以“/*”开头并以“*/”末了的串。在“/*”和“*/”之间的即为注释。措施编译时,差池注释作任那里理惩罚。注释可呈此刻措施中的任何位置。注释用来向用户提示或表明措施的意义。在调试措施中对暂不利用的语句也可用注释符括起来,使翻译跳过不作处理惩罚,待调试竣事后再去掉注释符。