C语言及程序设计概述.ppt
第一章C语言及程序设计概述教学要点和重点教学要点:C语言是一种被国内外广泛使用的计算机语言,其功能丰富、表达能力强、使用灵活方便、目标程序效率高,是程序设计人员所需掌握的基础性语言。C语言程序设计是国内高等院校普遍开设的基础课程之一。本章将主要介绍C语言的发展、特点和程序结构、C语言的标识符与关键字以及C语言编译工具VisualC6.0的使用等。教学重点:掌握C语言的特点包括标识符、关键字等基本语言元素概念,学会使用编译器。1.1 C语言简介语言简介1.1.1 C语言的发展过程语言的发展过程C语言是一种编译型程序设计语言,它是在B语言的基础上发展起来的。它的内核最初用汇编语言编写。汇编语言是面向机器的语言,生成的代码质量较高;但其可读性和可移植性差,并且在对问题的描述上远不如高级语言更接近人类的表述习惯。C语言最初的研制目的就是用于编写操作系统和其他系统程序的,它具有汇编语言的一些特性,同时又具有高级语言的特点,其根源可追溯到Algol60。1963年,英国剑桥大学在Algol60的基础上推出了CPL(CombinedProgrammingLanguage)语言,它更接近于硬件,但规模较大,难以实现。1967年,英国剑桥大学的的MartinRichards对CPL语言进行了简化,开发了BCPL(BasicCombinedProgrammingLanguage)语言。1.1 C语言简介语言简介1.1.1 C语言的发展过程语言的发展过程1970年美国贝尔实验室的KenThompson对BCPL语言进一步做了简化,设计出更简单和接近硬件的B语言,并用B语言编写了DECPDP-7型计算机中的UNIX操作系统。1973年,美国贝尔实验室的DennisRitchie在B语言的基础上设计出了C语言,并首次用C语言编写了UNIX操作系统,在DECPDP-11计算机上得到应用。20世纪70年代后期,C语言逐渐成为开发UNIX操作系统的标准语言;随着UNIX操作系统的流行,C语言也得到了迅速地推广和应用。后来,C语言被移植到大型计算机、工作站等机型的操作系统上,逐渐成为编制各种操作系统和复杂系统软件的通用语言。1.1.2C语言的主要特点(1)C是结构化的语言。C语言是以函数形式提供给用户的,并配有结构化的控制语句,这些函数可方便的调用和程序实现模块化的设计。(2)语言简洁、紧凑,使用方便、灵活。C语言仅有32个关键字,9种控制语句,程序的书写形式也很自由,主要以小写字母书写语句,并有大小写之分。(3)C语言可以对硬件进行操作。C语言可直接访问内存物理地址和硬件寄存器,直接表达对二进制位(bit)的运算。它的程序简洁,编译程序体积小。(4)数据类型丰富。C语言具有丰富的数据类型,除基本数据类型:整型(int)、实型(float和double)、字符型(char)外,还设有各种构造类型并引入了指针概念。1.1.2C语言的主要特点(5)运算符极其丰富。C语言共有34种运算符,括号、赋值、强制类型转换等都以运算符的形式出现,使得C语言的表现能力和处理能力极强,很多算法更容易实现。(6)C语言程序的可移植性好。用C语言编写的程序不必修改或少量修改就可在各种型号的计算机或操作系统上运行。(7)C语言生成的目标代码质量高,程序执行效率高。代码质量是指C程序经编译后生成的目标程序在运行速度上的快慢和存储空间上的大小。一般而言,运行速度越高,占用的存储空间越少,则代码质量越高。(8)C语言的语法灵活、限制不是十分严格。参考程序如下:参考程序如下:#includevoidmain()printf(”programmingisinteresting!n”);main()是C语言程序中的主函数“”、“”是main函数体的标识符“printf();”是C编译系统提供的标准函数库中的输出函数运行情况:programmingisinteresting!(计算机屏幕上的输出显示)1.2.1C语言程序的结构及其主要特点【例1.1】编写程序,将“programmingisinteresting!”显示在计算机的屏幕上。1.2 C语言程序结构语言程序结构参考程序如下:参考程序如下:#includestdio.hintfab(intn);/*函数声明*/voidmain()/*主函数*/intn,i;/*变量声明*/printf(请输入几个月整数值:);scanf(%d,&n);/*格式化输入*/printf(num=%d,fab(n);/*格式化输出*/intfab(intn)if(n=1|n=2)return1;elsereturnfab(n-1)+fab(n-2);【例1.2】求解递归问题。一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。假设开始有一对刚出生的兔子且所有兔子都不死,那么一年以后可以繁殖多少对兔子?程序分析程序分析:利用递归的方法解题。递归分为回推和递推两个阶段。例如,要想知道第12个月兔子的对数,需知道第10,11个月兔子的对数,依次类推,推到第1,2个月兔子的对数,再往回推。定义fab函数,函数返回值类型为整型,形参n为整型fab函数是用户自定义的函数,供主函数main调用,计算任意月份兔子的对数。“if.else.”是条件控制语句,设定递推返回的条件。scanf是C编译系统的标准输入函数,从键盘上接收输入的数据;scanf圆括号中的“%d”是格式控制符,表示输入的数据是十进制整数;“&n”是地址列表,表示从键盘接收的十进制整数存入变量n的内存地址&n中。运行情况:请输入几个月整数值:12(输入12并回车。加下划线表示从键盘输入,“”代表按Enter键,以下同。)num=29(输出的结果)从【例1.1】、【例1.2】中可以看出C语言程序的结构及其特点:(1)函数是C语言程序结构的基本单位一个C语言程序可以由一个或多个函数组成。C语言中的所有函数都是相互独立的,它们之间仅有调用关系。(2)C语言程序只有一个主函数C语言程序必须有且只有一个主函数main(),是程序的入口点。(3)C语言程序的书写格式比较自由C语言每条语句必须以“;”结束。C语句的书写风格是比较自由的,一行可以写一条或多条语句,一个语句也可以分写在多行上(在行结尾处加”语句连接符)。在实际编写中,应该注意程序的书写格式,要易于阅读,方便理解。(4)C语言本身没有输入/输出语句输入/输出操作是由标准库函数中的scanf和printf完成的。(5)C语言中声明语句的使用C语言程序中所用到的各种各样的量(标识符)要先定义后使用,有时还要加上对变量引用说明和函数引用说明。(6)C语言可带有编译预处理命令由“”开头的行称为宏定义或文件包含,是C语言中的编译预处理命令,末尾无“;”号。每个编译命令需要单独占一行。(7)C语言中注释信息的使用C语言的注释信息格式为:/*注释内容*/(多行注释)或/注释内容(单行注释)。注释只增加程序的可读性,但不被计算机执行。(8)C语言的标识符区分大小写系统预留的关键词由小写字母组成。用户定义的变量名、函数名等标识符一般也由小写字母组成,但不可占用系统预留的关键字。1.2.2 标识符与关键字(1)C语言的标识符语言的标识符在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C语言规定,标识符只能是字母(AZ,az)、数字(09)和下划线组成的字符串,并且标识符的第一个字符必须是字母或下划线。以下标识符是合法的:a,x,_x,BOOK_1,sum5以下标识符是非法的:1s以数字开头S&T出现非法字符&-6z以减号开头boy-2出现非法字符-(减号)标准C不限制标识符的长度,但它受各种版本的C语言编译系统限制,同时也受到具体机器的限制。例如在某版本C中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。在标识符中,大小写是有区别的。例如NEXT和next是两个不同的标识符。标识符虽然可由程序员任意定义,但标识符是用于标识某个量的符号,命名应尽量具有相应的意义,方便阅读理解;一般以英文单词进行表示,尽量做到“见名知义”。在使用标识符时还必须注意以下几点:(2)C语言的关键字语言的关键字关键字是C语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不能与关键字相同。如表1-1所示。数据类型关键字(12个)控制语句关键字(12个)存储类型关键字(4个)其它类型关键字(4个)chardoubleenumfloatintlongshortsignedstructunionunsignedvoidbreakcasecontinuedefaultdoelseforgotoifreturnswitchWhileautoexternregisterstaticconstsizeoftypedefvolatile表1-1C语言的关键字一个C语言程序从编写到运行在计算机上,需要经过4个步骤:编辑、编译、连接和运行编辑、编译、连接和运行。编辑(Edit)。编写C语言源程序并在计算机上对其进行编辑,生成一个后缀为.c的源程序*.c,存盘。编译(Compile)。使用C语言编译器对上一步生成的*.c源程序进行编译。连接。编译生成的目标程序*.obj,将目标程序*.obj与系统的函数和头文件等引用的库函数进行连接装配,最后生成后缀为.exe的可执行程序*.exe。运行。上步生成的*.exe程序可被计算机执行,并得到运行的结果,显示输出。1.3C语言编译工具简介语言编译工具简介1.3.1 C语言程序实现的步骤语言程序实现的步骤图1-1C语言程序实现的流程图1.3.2TurboC2.0编译工具简介TurboC是美国Borland公司研发的基于DOS平台的C语言编译系统。1987年首次推出TurboC1.0版,而后升级到2.0版。该系列软件使用了全新的集成化开发环境,以菜单的方式将编辑、编译、连接以及运行等过程综合一体化,大大方便了程序的开发。(1)Turbo C 2.0的安装的安装TurboC2.0是以压缩的形式存放的,它的安装非常简单,有DOS平台安装和Windows平台安装两种方式。(2)TurboC2.0的启动在Windows平台上进入TurboC2.0的方法:单击TC.EXE文件,启动TurboC2.0。(3)TurboC2.0的简单操作启动TurboC2.0后,按任意键可去除版本信息的显示,进入TurboC2.0集成操作界面(主操作窗口),集成操作界面由菜单栏、编辑状态显示区、源程序编辑区、状态信息区和功能键显示区组成。图1-2TurboC2.0集成操作界面图1-3 Turbo C2.0集成操作界面图1-3TurboC2.0集成操作界面1.3.3 Visual C6.0编译工具简介编译工具简介VisualC+6.0是Microsoft公司开发的基于Windows的C/C+语言的开发工具。它是MicrosoftVisualStudio套装软件的一部分。由于C+是从C语言发展而来的,C+语言和C语言在很多方面是兼容的,因此可以用C+的编译系统对C程序进行编译。从MicrosoftVisualStudio套装软件中运行安装程序(SETUP.EXE),安装完成后,在桌面上创建VisualC+6.0快捷方式图标,双击该图标,进入VisualC+6.0的集成开发主窗口。(1)Visual C+6.0集成开发主窗口集成开发主窗口VisualC+6.0主窗口自上而下分别是标题栏、菜单栏、工具栏、项目工作区窗口(左)、程序和资源编辑区窗口(右)、信息输出窗口、状态栏。图1-4VisualC+6.0的集成开发主窗口(2)输入和编译源程序输入和编译源程序编辑C语言源程序并存储输入和编辑C语言源程序点击Compile命令,编译源程序,生成的目标程序*.obj文件生成的*.obj文件与系统资源文件进行连接操作,单击Build菜单项下Build*.exe命令,生成*.exe可执行文件。运行*.exe程序,显示结果。(单击Build菜单项!Execute*.exe命令)图1-5、1-6File菜单的New命令图1-7输入和编辑C语言源程序图1-9、1-10C语言源程序的编译、连接窗口图1-11、1-12运行命令菜单项、输出结果的窗口1.4如何学习C语言1.4.1 学习C语言的理由语言的理由 前面已经介绍了C语言的起源和特点。这些特点决定了选择学习C语言的理由。(1)C语言是编写操作系统最常使用的编程语言。(2)C语言的特性是介于高级语言和汇编语言之间。(3)C语言语法结构简洁精妙,写出的程序非常高效,适宜描述算法。1.4.2 学好学好C语言的步骤语言的步骤 总的来说学习C语言要分为两个层次,第一个层次是应用C语言学会基本编程,第二个层次是如何进一步提高编程水平,应用C语言编写程序解决工程和科研项目中的实际问题。一般学习步骤如下:(1)精读C语言教材,要掌握基本语法。(2)重点把C语言的语法规则,输入、输出格式、运算规则、变量的类型等搞清楚,掌握好程序的三种基本结构,学会数组、函数调用及指针的用法。(3)进一步通过实例掌握C语言提供的标准函数,以便减轻程序设计和编写工作量。(4)学习C语言,如同学习自然语言一样,多上机,强调多实践练习。(5)在此基础上,加强实践,进一步提高C语言编程水平。