您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > C语言入门教程全第1章
第1章C语言概述1.1C语言及其特点1.2C语言源程序介绍1.3C语言源程序的基本结构1.4C程序的编辑、编译、链接和运行本章小结习题一1.1C语言及其特点C语言之所以能被世界计算机界广泛接受,正是由于它自身具备的突出特点。从语言体系和结构上讲,它与Pascal,ALGOL60等语言类似,是结构化程序设计语言。但从用户应用、实现难易程度、程序设计风格等角度来看,C语言的特点又是多方面的。1.1.1C语言的发展简史C语言是一种广泛应用于专业程序设计中的高级程序设计语言。它是在B语言的基础上发展起来的,其根源可追溯到1960年出现的ALGOL60。ALGOL60是一种算法语言,它离硬件比较远,不易用来编写系统程序。1963年,英国剑桥大学推出了CPL(CombinedProgrammingLanguage)语言。CPL语言比ALGOL60接近硬件,但规模较大,难以实现。1969年,英国剑桥大学的M.Richards对CPL语言做了简化,推出了BCPL(BasicCombinedProgrammingLanguage)语言。1970年,美国贝尔实验室的KenThompson以BCPL语言为基础,设计出了简单而又接近硬件的B语言(取BCPL的第一个字母),并用B语言编写了UNIX操作系统,但B语言过于简单,功能有限。1972~1973年间,AT&T公司Bell实验室的丹尼斯·里奇(D.Ritchie)在B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练、接近硬件等),又克服了它们的缺点(过于简单、数据无类型等)。最初C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的,首先在DEC公司的PDP-11机上实现。1973年,K.Thompson和D.Ritchie两人合作用C语言改写了90%以上的UNIX。经多次改进直到1975年,UNIX第3版公布后,C语言的突出特点才引起人们的普遍关注。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,并迅速地推动了UNIX操作系统在各种机器上的安装(可以不经过较大的改动而方便地从一个平台移植到另一个平台)。后来随着UNIX日益广泛的使用,C语言也迅速得到推广。1978年出现了UNIX第7版,以此书的C编译程序为基础,B.Kernighan和D.Ritchie(合称K&R)合著了影响深远的《TheCProgrammingLanguage》,它被称为标准C。1983年美国国家标准协会(ANSI)对标准C进行了发展和扩充,制定了新的标准称为ANSIC。1987年,ANSI又公布了新标准——87ANSIC。1988年,K&R根据ANSIC标准重新编写了《TheCProgrammingLanguage》。1990年国际标准化组织ISO(InternationalStandardOrganization)接受87ANSIC为ISOC的标准(ISO/IEC9899)。目前广泛流行的C编译系统都是以它为基础的。C语言是一种通用的程序设计语言,它揉合了高级语言的一系列特点与汇编语言的效率,并不专用于某一个特定的应用领域。另外C语言限制少,通用性强,这使得它比一些公认的其他语言用起来更方便,效率更高。目前,C语言已从位于贝尔实验室的发源地传播到世界各地,成为全球程序员的公共语言,并由此诞生了几个新的主流语言C++,Java等,它们都建立在C语言语法和基本结构的基础上。现在国际上的许多软件都是在C语言及其衍生的各种语言的基础上开发出来的。1.1.2C语言的特点C语言是近年来在国内外非常流行的一种高级语言,其原因是C语言有优于其他语言的许多特点。概括地说,C语言在很多方面继承和发扬了20世纪60年代出现的许多高级语言的成功经验和特色,它使用自由书写格式,具有丰富的数据类型和多种存储类别;具有一定程度的模块化结构,采用结构化的控制;用函数参数传值,并支持分别编译等。具体介绍如下:1.语句简明ANSIC语言共有32个保留字,5种基本语句。其语句规模小,相对简单,表示方法简洁,高度灵活。2.运算符多C语言的运算符有30多种,除此之外,括号、逗号、长度运算符(sizeof)等都作为运算符处理。灵活地使用各种运算符,可实现其他高级语言难以实现的运算和复杂算法的描述。3.数据类型丰富C语言的数据类型不仅包括整型、实型、字符型等基本类型,而且还包括数组、结构体、共用体等构造类型和指针类型。尤其是指针类型的使用,可实现各种复杂数据结构(如链表、栈、树、图等)的运算。4.直接快速地访问硬件与其他高级语言相比,C语言比较接近硬件系统,它允许用户深入系统底层,直接访问物理地址和寄存器,能进行位(bit)操作,在许多场合可代替汇编语言。5.具有结构化的控制语句C语言有3种基本控制结构(顺序结构、分支结构和循环结构)。使用这3种基本结构可以使程序结构良好、易读、易理解和易维护。结构化程序设计的一个显著特点是选用的控制结构只允许有一个入口和一个出口,程序从起点到终点执行的流程是线性的。6.适合按模块组织程序C语言适合按模块组织程序。C程序是以函数为模块来编写源程序的,所以整个C程序几乎是由函数构建而成的。模块化的中心环节是适当地划分模块,模块化根本特征是设计“相对独立、功能单一”函数。模块化为大型软件开发和由多人同时进行集体开发的软件工程技术方法提供了强有力的支持。7.编程自由度大C语言语法限制不太严格,使程序设计比较自由。例如,C语言对数组下标不做检查,而是由编程人员确保程序的正确性;对变量的类型使用也比较灵活,例如整型与字符型数据可以通用。8.可移植性好C程序基本上不作太多修改就能用于各种类型的计算机和各种操作系统,原因是C语言中没有依赖于硬件的输入/输出语句,输入/输出操作均是通过调用系统提供的标准库函数来实现的。1.2C语言源程序介绍读程序是初学者学习C语言入门最快、也是最好的方法之一。为了说明C语言源程序的基本结构,下面介绍一些程序实例。这些实例一方面体现了C语言的特点,另一方面可以帮助读者初步了解C语言源程序的基本结构和书写格式。1.2.1简单的C程序介绍【例1.1】在计算机屏幕上输出AfirstsimpleCprogram.字符串。程序运行结果:分析:这是一个简单的C程序。程序首行#includestdio.h是编译预处理命令,用于通知编译器在本程序中包含标准输入/输出头文件(stdio.h)信息。main()表示主函数,主函数体用一对花括号“{}”括起来,其中左花括号“{”表示主函数体开始,右花括号“}”表主函数体结束;主函数体中只有一个printf()函数调用语句,其功能是在计算机屏幕上按原样输出双撇号“”“”内的字符串AfirstsimpleCprogram.;“\n”是换行符,表示在输出AfirstsimpleCprogram.后自动换行;分号“;”是C语句的结束标志。注释符“/*”和“*/”间内容表示对程序的解释,以便于读者理解。【例1.2】求两数之和。程序运行结果:分析:在程序中第2~9行是主函数。其中,第2行是主函数头;第3~9行是主函数体,函数体中包含两个部分:第4行是说明部分,说明变量m,n和sum为整型变量;第5~8行是语句部分,第8行是格式输出函数printf()调用语句。printf()函数中双撇号“”“”内的Sumis原样输出,%d是输出“格式字符串”,它表示输出时是以带符号的十进制形式输出sum的值,sum是要输出的两数之和,其值为30。在程序中除了可以使用系统提供的库函数外,用户还可以自己定义函数,下面再举一个例子。【例1.3】任意从键盘上输入两个整数m和n,比较它们的大小,并输出较大的数。要求:比较两数大小用自定义函数实现,输入两个整数和输出较大的数在主函数中完成。程序:分析:该程序由两个函数构成的,其中一个是主函数main(),另一个是自定义函数max()。当程序按顺序执行到第6行之时,屏幕提示用户输入数据Pleaseinputm,n:,到第7行时等待用户按格式输入数据,这时用户可在键盘上输入“116,118”后按回车键结束输入,接着程序继续执行,当执行到第8行时,主函数开始调用自定义函数,并将实际参数m(116)和n(118)的值分别传递给max()函数的形式参数x(116)和y(118)。经过调用自定义函数后可以得到较大的数z(118),并通过max()带回调用处赋给变量c,最后在主函数中输出c的值。scanf()函数中&m和&n里的“&”是“取地址”运算符,其作用是把从键盘上输入的两个数据(116,118)分别送到变量m和n的地址(&m和&n)所标志的单元中。【例1.4】计算半径r为2.0时圆的面积。程序运行结果:分析:这是一个当半径r等于2.0时,编程计算圆面积的程序。程序中第1行是编译预处理命令中的宏定义,其作用是编译时,用宏体自动替换宏名。其中:PI是宏名(一般用大写),3.14159是宏体(可以是一个字符串等)。程序中的pow(r,2)是常用的数学函数,功能是计算r的平方,其有关的数学函数包含在指定头文件math.h(详见附录IV)中。1.2.2较复杂的C程序介绍【例1.5】菜单程序——通信录。(见课本第8页)程序运行结果:【例1.6】动画程序——太阳、地球和月亮。(见课本9页)程序运行结果:【例1.7】电脑音乐程序——好人一生平安。(见课本11页)程序运行结果:【例1.8】TurboC2.0自带的部分DEMO——演示程序。(见课本13页)【说明】该DEMO程序源代码约有1400余行,限于篇幅,我们这里只给出前150行,仅供参考。分析:这里从不同侧面给出几个较复杂的程序实例,目的是想通过这些实例让读者管窥C语言的风采,同时加深对C语言源程序的全面理解,从而激发读者学习计算机程序设计的热情,增强学习的信心。1.3C语言源程序的基本结构从上述几个程序实例的分析中可看出,尽管C程序源代码和注释的内容千变万化,但是它们的基本结构都是一致的。一个完整C语言源程序一般包括编译预处理命令、被调函数声明、全局变量说明、一个主函数和若干个自定义函数以及注释部分等。典型C语言源程序的基本结构如下:编译预处理命令被调函数类型声明其中:main()为主函数,f1()~fN()代表用户自定义的各种函数。【说明】(1)函数是组成C语言源程序的基本单位。一个完整的C语言源程序一般由一个或者多个函数组成,其中必须有一个而且只能有一个主函数main()。main()函数可以出现在程序中的任何位置,但程序执行时总是从main()函数开始执行,一般情况下又在main()函数中结束。主函数可以调用其他各种函数,但其他函数不能调用主函数。相对于主函数而言,其他函数是指系统提供的标准库函数(详见附录Ⅳ)和用户自定义函数。(2)函数一般由两部分组成,即函数首部和函数体。1)函数首部:函数首部也称为函数头,一般包括函数返回类型、函数名和包含在一对圆括号“()”中的函数参数及参数类型等。一个函数也可以没有函数参数。C语言除了主函数main()外,其他自定义函数用户可以自行命名,但要符合C语言标识符的命名规则。2)函数体:即函数首部下面的一对花括号“{}”内的部分。在函数体中一般包括说明部分和执行语句部分。说明部分使实体名与被说明的实体相联系,如变量名和被调函数的声明等,但有的简单程序可以没有此部分;执行语句部分罗列各种操作,如赋值、计算、控制和输入/输出等。(3)分号是C语句的必要组成部分。每个语句或变量说明(定义)的最后都必须以分号“;”结尾,它是语句终止符。(4)保留字(关键字)与标识符之间必须至少加一个空格以示间隔。(5)编译预处理命令是程序执行前系统自动进行的特殊处理。例如#includestdio.h或#include“stdio.h的作用是把尖括号“”或双撇号“”内指定的文件包含到本程序中,成为本程序的一部分。其中stdio.h是一个“头文件”,stdio是Standardinput&output的缩写,意为
本文标题:C语言入门教程全第1章
链接地址:https://www.777doc.com/doc-3612115 .html