《第1章C语言概述》_第1页
《第1章C语言概述》_第2页
《第1章C语言概述》_第3页
《第1章C语言概述》_第4页
《第1章C语言概述》_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 C语言概述计算机系统包括硬件系统和软件系统,硬件系统(称为裸机)是计算机的物质基础,而软件系统则是计算机的灵魂所在。所有的软件都是用程序设计语言编写的。程序设计语言的发展经历了从机器语言、汇编语言到高级语言的历程,而C语言正是众多高级语言中的一种。C语言是一种面向过程的计算机高级程序设计语言,它适合作为系统描述语言,既可用于编写系统软件,也可用于编写用户应用软件。经过长期的改进和发展,C语言的应用范围已经相当广泛,它是目前国际上广泛流行的计算机高级语言之一。1.1 C语言产生的历史背景1C语言的产生和发展过程由于汇编语言程序依赖于计算机硬件,其可读性和可移植性差,而一般的高级语言又难以

2、实现对计算机硬件的直接操作,于是人们希望有一种能对计算机硬件进行直接操作的高级程序语言,C语言就是在这样的背景下产生的。1972年至1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言的雏形。最初的C语言保持了B语言的优点,它只是为了描述和实现UNIX操作系统而提供的一种工作语言。后来C语言多次做了改进,直到1975年NUIX第6版发布后,C语言的突出优点才引起人们的普遍注意。1978年以后,C语言先后移植到大型、中型、小型和个人计算机上,已独立于UNIX了。从此开始C语言便很快风靡全世界,成为世界上应用最广泛的几种计算机语言之一。2C语言的几种不同版本 目前常见

3、的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)运算符丰富。

4、C语言共有44种运算符(见附录C),C语言把括号、赋值和强制类型转换等都作为运算符处理,从而使C语言的运算类型及其丰富,表达式类型多样化。(3)数据类型丰富,具有现代语言的各种数据结构。C语言提供的数据类型有:整形、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂数据结构(如链表、树、栈等)的运算。(4)具有结构化的控制语句(如ifelse语句、while语句、dowhile语句、switch语句、for语句)。C程序以函数作为基本模块单位,便于实行程序的模块化设计。(5)语法限制不太严格,程序设计自由度大。在书写C语言源程序时不像FORTRAN语言那样有严格的

5、格式要求,其书写形式比较随意。比如在C程序中,一行可以写多个语句,也可以将一个语句分成多行来写。(6)C语言允许直接访问物理地址。在C语言程序中能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能又具有低级语言的许多功能,可用来编写系统软件。C语言既是成功的系统描述语言又是通用的程序设计语言。(7)生成的目标代码质量高,程序执行效率高。C语言一般只比汇编程序的目标代码效率低10%到20%。(8)用C语言编写的程序可移植性好。C语言编写的程序,基本上不做任何修改就能用于各种型号的计算机和各种操作系统。在C语言的基础上,1983年贝尔实验室又推

6、出了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()输出一个字符

7、串*/ /*主函数结束*/程序中,第一行的作用是把标准输入输出库函数的头文件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*

8、/ a=123; b=456; /*为变量a,b分别赋值123和456*/ sum=a+b; /*求a,b的和到sum中*/ printf(“sum is: %d n”,sum); /*调用printf函数输出:sum si:*/ 【例1.3】通过调用自定义函数求两个数中的较大者。#include “stdio.h” /*包含标准输入输出库函数的头文件stdio.h*/ int max(int x,int y) /*函数max()的作用为输入两个整形返回一个整形*/ int c=x; /*定义一个整形变量c并赋于初值为x的值*/ if(cy)c=y; /*使c为x,y中的最大值*/ retur

9、n(c); /*返回变量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(“最大数是:%dn”,c); /*调用系统函数printf()输出“最大数是:”*/1.3.2 C程序的特点根据以上几个简单例子,下面给出C语言源程序的组成和运行特点。1C程序的构成C程序是由程序源文件组成的,每个程序文件都是由函数构成的,函数是C程序的

10、基本单位。在一个C程序中,有且仅有一个主函数main(),同时还可以包含若干个其它函数。C语言程序的这种特点使得容易实现程序的模块化。2C程序中函数之间的关系在C程序中主函数main()可以调用其它函数,反之不然;其它函数之间可以相互调用。程序中的所有函数都是独立的,即不能在一个函数中包含另一个函数。3C程序中函数的来源C程序中的函数由两部分组成,即库函数和用户自定义函数。ANSI(美国国家标准化协会)C提供的库函数有300多个,使用库函数时要先用#include命令将其所在函数库的头文件包含进来;在调用自定义函数时,要先定义后使用。4C程序中一个函数的组成(1)函数首部 函数首部为该函数代码

11、的第1行,包括函数类型、函数名、函数形参类型、形参名。例如,在【例1.3】中求最大值的函数首部为:int max(int a,int b),其中每一部分的含义如图1-1所示。(2)函数体 函数体为函数首部下面一对花括号即内部的语句部分。如果一个函数内有多对花括号,则最外层的一对为函数体的范围。函数体内一般包括以下两个部分:声明部分: 在声明部分定义所有用到的变量和声明程序中所有调用的自定义函数。执行部分: 执行部分由若干个语句组成,用以完成该函数的特定功能。例如,在【例1.2】中主函数的第2行:“int a,b,sum;”为声明部分,第3、4、5行为执行部分。5C程序的执行过程 一个C程序总是

12、从主函数main()中的第一个语句开始执行,到主函数的最后一个语句运行结束,而不论main()在程序中的位置如何。6C程序的书写格式 在C程序中,一行可以写多个语句也可以将一个语句分成几行来写。每个语句的最后必须有一个分号“;”作为该语句的结束标记。7C程序的输入与输出C语言本身没有专用的输入和输出语句,C语言系统的输入和输出(i/o)操作是通过调用标准输入输出库函数:printf()、scanf()、getchar()、putchar()等来完成的,在调用这些库函数前要先用命令“#include”将函数所在的头文件stdio.h包含进来。C语言的这一特点使得C语言源程序的规模变小,编译程序简

13、单,同时增加了程序的可移植性。8C程序的注释在编写C语言源程序时,可以对程序的任何部分进行注释。在程序中加上必要的注释说明可以增加程序的可读性。在C+环境中有以下两种注释语句格式:(1)块注释 在块注释中以“/*”表示块注释开始,以“*/”表示块注释结束。例如:/*语句“printf(“a=%d,b=%dn”,a,b);”表示输出整形变量a、b的值*/(2)行注释 行注释只能在C+运行环境中使用,行注释以“/”表示注释开始,本行中/后面的内容为注释部分。例如:/语句“printf(“a=%d,b=%dn”,a,b);”表示输出整形变量a、b的值1.4 C语言程序的编辑与运行方法介绍1.4.1

14、运行C语言程序的步骤前面已经列举了几个C语言源程序。所谓程序,是一组计算机能识别和执行的指令的集合,其中每条指令使计算机执行特定的操作。用高级语言编写的程序称为源程序。由于计算机只能识别和执行由0和1组成的二进制指令,而不能识别和执行用高级语言编写的指令。为此,在源程序运行之前必须用相应的编译程序将其转换为计算机能识别的二进制的目标程序,然后再将该目标程序与系统中的库函数以及其它目标程序连接起来形成可执行程序。在Visual C+6.0中,C语言程序的运行过程是:(1)上机编辑C语言源程序代码文件(file.cpp)(2)对源程序文件进行编译生成目标程序(file.obj)(3)将目标程序、程

15、序中的库函数进行连接生成可执行程序(file.exe)(4)运行可执行程序得到结果。如果程序的运行结果不正确或编译时存在语法错误等问题,都要从修改源程序开始重复上面的各个步骤,直到运行结果正确为止。以上程序的执行过程如图1-2所示。1.4.2 使用Visual C+6.0编辑和运行C语言程序1进入Visual C+6.0的集成环境(1)在Windows操作系统的桌面菜单中点击开始(2)在开始菜单中点击所有程序子菜单(3)在所有程序菜单中点击Microsoft Visual Studio 6.0子菜单(4)在Microsoft Visual Studio 6.0菜单中点击Microsoft Vi

16、sual C+ 6.0子菜单,如图1-3所示。此时进入Visual C+ 6.0的集成环境如图1-4所示。2在Visual C+6.0中建立程序所在的工程(1)点击图1-4中的文件子菜单(2)在文件菜单中点击新建子菜单(3)点击新建菜单中的工程子菜单,此时进入Visual C+ 6.0的工程集成环境如图1-5所示。(4)在工程菜单中选中Win32 Console Application选项(5)在平台菜单中选中Win32(6)在位置菜单中输入工程所在的目录(本文为:D:VC60)(7)在工程名菜单中输入工程名(本文为:C程序2010)(8)单击确定选中An empty project单击完成单

17、击确定后就建立了一个名为“C程序2010”的工程。该工程的主窗体如图1-6所示。3进入VC+6.0的集成编辑环境(1)在图1-6中点击文件子菜单进入文件子窗体如图1-7所示。(2)在文件菜单中选中C+ Source File(3)文件名菜单中输入源文件名(本文中输入:ch1.cpp)(4)选中添加工程(5)单击确定后就进入了对源程序文件的编辑界面如图1-8所示。4源程序ch1.cpp的编辑、编译、运行(1)在图1-8的窗体中输入【例1.1】的程序(2)点击编译窗体中的构建C程序2010.exe或快捷键F7,进行编译和连接生成可执行程序。其编译过程如图1-9所示。(3)在以上操作无误的情况下点击

18、窗体中的“!”或快捷键Ctrl+F5运行该程序。结果如图1-10所示。如果发现有语法错误或运行结果不正确,就要重新修改源程序,并重复上述(1)、(2)、(3)的步骤,直至得到正确的结果为止。1.5 习 题一、选择题1以下并非C语言特点的是( )。 A. C语言简洁和紧凑 B. 能够编写出功能复杂的程序 C. C语言可以直接对硬件进行操作 D. C语言的可移植性好2一个C程序的执行是( )。 A. 从main()函数开始,直到main()函数结束 B. 从第一个函数开始,直到最后一个函数结束 C. 从main()函数开始,直到最后一个函数结束 D. 从第一个语句开始,直到最后一个语句结束3在一个

19、C程序中,main()函数的位置( )。 A. 必须放在它所调用的函数之后 B. 可以在程序的任意位置 C. 必须作为程序的最后一个函数 D. 必须是程序的第一个函数4一个C程序是由( )组成的。 A. 一个或多个函数 B. 若干个主函数 C. 若干个子程序 D. 一个主程序和若干个子程序5以下说法中正确的是( )。 A. 在执行C程序时不是从main()函数开始的 B. C程序的书写格式限制严格,一行内必须写一条语句 C. C程序的书写格式比较自由,写一条语句可以分成多行书写 D. 在C程序中每行写一条语句,并且要求有行号二、填空题6一个C源程序有( )个main()函数和( )个其它函数。7一条C语句必须以( )结束。8组成C语言源程序的基本单位是( )。9C编译程序的功能是( )。10本章中讨论的3类计算机语言是( )语言、( )语言和( )语言。11把高级语言编写的源程序翻译成机器语言程序的过程称为( )。12开发一个C语言程序可以分为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论