大学课程《C语言程序设计》PPT课件:第一章.pptx
- 文档编号:18905765
- 上传时间:2024-02-10
- 格式:PPTX
- 页数:24
- 大小:549.87KB
大学课程《C语言程序设计》PPT课件:第一章.pptx
《大学课程《C语言程序设计》PPT课件:第一章.pptx》由会员分享,可在线阅读,更多相关《大学课程《C语言程序设计》PPT课件:第一章.pptx(24页珍藏版)》请在冰点文库上搜索。
第一章概述1.1历史背景1.2C语言的特点1.3简单的C程序1.4C语言字符集、标识符与关键字1.5C程序的开发环境1.1概述世界上第一台计算机诞生于1946年的美国,随着时间的推移,计算机的应用从国防和科学计算,发展到日常家庭生活。
计算机的英文computer,是由动词compute(计算)加上er后缀得到的,指用于计算的机器。
众所周知,计算机所能识别并采用的是机器语言,也就是二进制语言,由0和1组成,如果要求计算机做某些计算,就需要用二进制语言来编写一系列的指令,然后输入计算机,计算机根据这些指令序列进行特定的计算和判断。
最早期的计算机语言,常常为了完成一个极其简单的任务或者计算,不得不编写一大串的指令,这项工作无论对编程者还是读程序的人来说,都是一件极其不容易的事情。
虽然后面也出现了一些其他的计算机语言,如汇编语言,但是相对来说,其过程还是繁琐的,无法满足人们日益增长的程序开发的需要。
为了加快程序开发的进程,人们逐渐设计出一些可以由一条语句就能够完成一个特定任务的高级语言,如C语言、C+、Java等。
在这些语言中,C语言可以说是功能最强大、使用最广泛的语言之一。
现在的计算机能够以比人类快几百万甚至几十亿倍的速度来进行计算和逻辑上的判断,这一点是如何实现的呢?
事实上,计算机在进行庞大的数据处理时,就是在一系列的指令集下按照程序设计的流程来进行一些列的操作,这些指令的集合,就称之为计算机程序,也就是计算机语言。
计算机是由计算机程序来控制的,而人则负责编写这些计算机程序,从而使得计算机最终按照人的意思进行一系列的数据处理和分析判断。
C语言是一门计算机语言,更是一个关于程序设计的方法的集合。
在了解C语言之前,我们先来了解一下它的历史。
C语言并不是突兀地诞生的,它是从B语言演化而来的,而B语言则起源于BCPL语言。
B语言是KenThompson在模拟并且继承了BCPL语言的诸多特点的基础上,经过了进一步的简化,从而开发出来的。
B语言诞生之后,它过于简单,所以在应用过程中,它在很多方面的功能受到了限制。
1.1概述在1972到1973年间,贝尔实验室的DennisRitchie将B语言进行了进一步的优化,从而设计出C语言,C语言的命名取自BCPL的第二个字母。
1978年,BrianKernighan和DennisRitchie出版了TheCProgrammingLanguage,此书被认定为C语言的非正式的标准说明,从此开始,贝尔实验室正式发布了C语言。
后来到了20世纪七八十年代,大型主机和小型微机都广泛地应用了C语言,从而也衍生了不同版本的C语言。
1983年,美国国家标准局(ANSI,AmericanNationalStandardsInstitute)成立了一个委员会,专门来制定C语言的标准。
后来,随着C语言的发展和越来越广泛的应用,C语言标准也经过了多次的修订和增补,至2011年12月8日,ISO正式公布C语言新的国际标准草案:
ISO/IEC9899:
2011,即C11。
简而言之,C语言从诞生到现在,取得了举世瞩目的成就。
C语言不仅仅保留了B语言的很多优点,又克服了B语言过于简单的缺点,增加了数据类型以及其他一些强大的功能,并且采用了结构化的程序设计思想,使得它的结构极其严谨,从而便于把由C语言编写的程序移植到大多数计算机上,因此得到了全世界的认可和欢迎,C语言也因此成为世界上应用最广泛的几种计算机语言之一。
虽然人们此后在C语言的基础上又开发出了C+、Java以及C#语言等,但是C语言是它们的基础。
计算机语言的发展如同一棵大树的成长过程,机器语言、汇编语言是计算机语言的根,C语言是大树的躯干,而其他的高级语言则如同大树的枝叶,只有掌握了基础和躯干,才能以不变应万变,立于不败之地。
我们可以先简单了解一下由C语言衍生出来的几个主要的程序语言。
C+:
C+语言与C语言有着很深的渊源,C+语言基本兼容了C语言的全部语法,当今所流行的C+编译器都可以编译C语言,以至于C+语言被误认为是C语言的升级版。
但是事实上,C+语言采用面向对象的程序设计思想,而C语言采用的是结构化的程序设计思想,二者程序设计的思维方式是完全不同的。
C+里面的“+”表示“ObjectOriented”(面向对象)。
通俗的说法是,C语言更贴近低级语言,而C+则更符合人类语言的表达习惯。
1.1概述Java:
Java语言诞生于1995年,是由Sun公司开发出来的,纯面向对象、与平台无关且易学易用。
它全面照搬了C+的语法,并且去掉C+里面不常用和不成功的部分,做到化繁为简,从而获得越来越多用户的支持。
C#:
C#语言是由微软公司于2000年推出的,完全照搬了C/C+的语法特点,同时又吸收了Java的成功之处,从而变成了一个似Java非Java,在某些地方又胜于Java的语言。
在程序语言的世界里,C/C+、Java、C#呈三足鼎立之势,并且都在不断完善、不断发展且极力排它,以至于其他语言只能在其专属领域里发展。
C语言是一种高级语言,但是它同时还具备了一些低级语言的特点,也有人戏称C语言为“中级语言”。
作为一种比较广泛流行的热门语言,C语言有着其不可忽视的优点和特点。
通过本书的学习,读者将了解到C语言的特性,并且能够读懂并且编译一些简单的C程序,为以后程序语言的学习打下良好的基础。
1.2C语言的特点C语言能够得到如此广泛的应用,必然是有着其他程序语言所不可比拟的优点。
C语言的主要特点如下:
(1)表达方式灵活。
它只规定了32个关键字和9种控制语句,C语言所使用的9种流程控制语句,每一种都可以完成一个特定的任务,并且书写的形式也相对自由。
对于编写程序和读程序的人来说,都显得简洁明快,一目了然。
(2)数据类型丰富。
与机器语言相比,C语言增加了数据类型,定义了整型、实型、字符型等数据类型,又引入了指针的概念。
这些特点足以实现各种复杂的数据运算和逻辑判断,使程序的运行效率更高。
(3)运算符丰富。
C语言不仅仅采用了数学里面常用的加减乘除等运算符,还把括号、问号、逗号等符号引用到运算符里面去,从而扩大了其运算的类型,也使得各种运算符和各种数据类型组成的表达式呈现多样化,可以实现难度较大的运算。
这是其他的高级语言不可比拟的。
(4)结构化的语言。
结构化的语言的特点在于代码及数据的分隔化,也就是说,程序的各个部分除了必要的数据交流外,彼此之间是相互独立的。
因为C程序语言把函数作为其基础单元,每个函数都可以进行单独的设计,也就是实现了程序的模块化设计,这样使得编程更自由灵活,同时程序的层次也更清晰,便于使用、维护和调试。
(5)可移植性好。
因为C语言可以实现汇编的一些优点,也就是能够对硬件进行操作,例如,C语言可以对位、字节和地址进行操作,这是低级语言的特点;同时其可以编写系统软件,又可用来开发应用软件,已成为一种通用的程序设计语言;同时C语言适合于多种操作系统,如Windows、DOS、UNIX等,支持多种显示屏和驱动器。
这些显著的优点,使得它的适用范围远远超过了其他语言。
1.2C语言的特点(6)语法限制不太严格。
程序设计的自由度是由语法限制来决定的,如果语法限制得太严格了,那么自由度就小了,也就失去了灵活性,但是如果完全强调灵活,那么程序则变得毫无章法,没有了意义。
C语言的语法限制相对宽松,如对整型量与字符型数据及逻辑型数据可以通用等,就是给了程序员相对较大的自由度,由程序员在编写的时候自己控制,但是对程序员的熟练度的要求就更高了。
(7)生成目标代码高。
与汇编语言相比,C语言描述问题的工作量小并且可读性高,更易于调试、修改和移植,所生成的代码质量却与汇编语言相当。
一般情况下,C语言只比汇编语言生成的目标代码低10%20%。
也就是处理同样的问题,C语言更简洁易行一些。
C语言的缺点主要表现在数据的封装性上,这是C语言数据安全性上所存在的最大的缺陷。
同时由于C语言的运算法过于丰富,从而造成优先级太多;以及C语言的语法限制不太严格,书写过于自由,可读性下降;还有对变量的类型约束也不严格,从而影响了程序的安全性。
此外,C语言对算法正确与否和数组下标越界都不做检查等,使得C语言在编辑、编译和运行中产生了一些不必要的错误。
从应用的角度来看,C语言确实比其他的高级语言更难掌握一些。
因此,对C语言的运用者来说,C语言的这些特点也就是要求他们对程序设计更加熟练一些。
1.3简单的C程序下面介绍两个简单的C程序,然后了解一下C语言的特点。
【例【例1-11-1】一个只包含输出语句的小程序。
#include/*预处理命令*/main()/*主函数*/printf(O.K!
n);/*输出语句*/程序运行结果如图1.1所示。
这是一个完整的C程序。
第一行是预处理命令#include,用来调用函数库里面的标准函数。
C语言中不存在输入/输出语句,若要用到输入/输出,就需要预先调用C语言函数库里的输入/输出库函数,stdio是标准输入/输出(standardinput&output)的英文缩写,后面的.h是head的缩写,.h是头文件的扩展名。
第二行是主函数main。
在C程序中,至少有一个main函数,main函数中包含一个小括号。
第三行至第五行是函数体,由大花括号括起来,函数体里只有一个输出语句,由printf()函数和分号组成。
printf()就是预处理命令所调用的输入/输出库函数里面的输出函数;而C语言的每一个语句都以分号作为语句的结束,这条语句的作用就是输出printf()的小括号里面的引号里的内容。
在引号里面,还有一个“n”,它是一个换行符,意义就是在输出O.K!
之后回车换行。
图图1.11.1例例1-11-1运行结果运行结果1.3简单的C程序【例【例1-21-2】求两个数之差的绝对值。
#include/*预处理命令*/main()intx,y,z;scanf(%d,%d,&x,&y);/*输入函数语句*/z=tbs(x-y);/*计算x-y的值并取绝对值后赋给变量z*/printf(z=%dn,z);/*输出函数语句*/inttbs(inta)/*变量声明*/intb;if(a=0)b=a;elseb=-a;return(b);例1-2的C程序包含了两个函数:
一个主函数main(),一个自定义函数tbs()。
tbs()函数的意义是对数值进行取绝对值运算。
程序的前两行是预处理命令,调用标准输入/输出库函数。
1.3简单的C程序第三行是主函数main()函数。
第四行定义了三个整型变量:
x,y,z。
第五行是输入函数语句,输入函数scanf()的作用是要求以十进制整数的形式给变量x和y赋值,也就是从键盘输入两个整数分别送到变量x和y的存储单元中去。
“&”是取地址运算符,它的作用是得到变量x和y的存储单元的首地址,这些知识点我们会在以后的章节里陆续学到。
第六行是调用tbs()函数,在调用时,将(x-y)的值传给tbs()函数里的形式参量a,经过执行tbs()函数,得到一个返回值,最终赋给变量z。
第七行是输出程序运行的结果,printf()中引号内的普通字符“z=”原样输出,“%d”是要求在输出z的值时以十进制整数的形式输出。
第八行至第十三行是tbs()函数的具体内容。
下面来看一下程序运行的情况:
3,5(输入3,5,按回车读入,分别赋给x,y)程序运行结果如图1.2所示。
图图1.21.2例例1-21-2运行结果运行结果1.3简单的C程序例1-2程序比例1-1程序复杂了一点,用到了数据类型中的整型变量、实际参数、形式参数等,这些内容将在以后的章节中详细讲解,我们就不再做进一步的解释了。
通过这两个例子,读者应该对C语言程序的组成和形式有了一个初步的认识。
下面我们总结一下C语言程序的基本结构。
(1)C源程序中包含头文件。
头文件可以是对程序中所用变量的说明,也可以是引用的库函数。
我们统一称之为预处理命令;如上面两个例子中的所用的include命令。
除此之外,头文件还有可能包含ifdef命令、define命令等。
预处理命令一般放在源文件或者源程序的最前面。
(2)C程序是由函数构成的。
每一个C语言源程序可以由一个或多个源文件组成,而每一个源文件则由一个或者多个函数组成。
但是不管一个源程序由多少个文件组成,这个源程序里面有且只有一个main()函数,即主函数。
而C程序总是从main()函数开始整个程序的执行,并且终止于主函数main(),与主函数main()所在程序中的位置无关。
除了main()函数之外,C程序还可以包含零个到多个用户自定义的函数,但是main()函数有且只有一个。
函数是C语言的最基本的组织结构单元。
(3)函数由两部分组成。
每一个函数都是由两部分组成的,即函数的首部和函数体。
在例1-2里,inttbs(inta)就是函数的首部,它包含了函数名(tbs()、函数类型(int)、函数参数名(a)、函数参数类型(int),这些都是对函数的返回值类型、函数名及参数类型的定义和说明。
当然,函数也可以没有形式参数,但是函数名后面的小括号是不能省略的(如main()函数)。
函数体指的是紧跟在函数首部下面的最外层的大花括号里面的内容。
函数体还可以分成两部分:
变量的定义和执行语句。
在例1-2里面,main()函数的函数体是从第四行到第八行的部分,由一个大花括号括起来。
在这个函数体里面:
第一行是变量的声明语句,后面三行则可以统称为执行语句。
1.3简单的C程序变量的声明是对函数中所要使用的变量进行数据类型的定义,在这个例子里面,是将变量x与y定义为整型数据。
而执行语句则是函数算法的体现,也就是函数要实行的“动作”的描述,这也是这个程序的意义所在。
除此之外,还有几点需要特别注意的书写规则:
(1)C语言的每一个语句都是由表达式加上分号构成。
只有表达式而无分号,则不是一条语句,分号是一条语句的结束标志。
但是在预处理命令、函数头和大花括号“”之后不能加分号。
(结构体、联合体、枚举型的声明的大花括号“”之后要加“;”。
)
(2)C语言的书写是比较自由的。
可以一个语句写一行,也可以多条语句写在一行,甚至还可以将一条语句写成多行(在流程控制语句中体现),且不需要加任何标识符。
但是为了程序的可读性和可执行性,建议读者养成一行内只写一条语句的习惯,这样比较规范,也便于阅读和纠错。
(3)标识符、关键字之间一般加一个空格以示间隔。
如果已经有了明显的间隔符,则也可以不加空格。
(4)每一行都对应相应的注释部分。
注释部分放在/*/内,可以用自然语言来书写,一行写不完,可以写到下一行。
注释部分是为了提高程序的可读性,便于程序员检查和纠错。
(5)低层次的语句最好比高层次的语句缩进若干格后书写,这样看起来结构更加清晰,也增加了程序的可读性,同时方便程序员在编译中纠错。
通过上面的例子,我们简单地了解了C程序的基本结构和C程序的组成单元函数,同时还有一些书写方面的特征,这些仅仅是C程序的入门知识,在以后的章节里面我们还将具体到每个细节,更详细地介绍其相关要点。
1.4C语言字符集、标识符与关键字1.4.11.4.11.4.11.4.1CCCC语言字符集语言字符集语言字符集语言字符集C程序作为一种计算机语言,必定有其所使用的固定字符,并且所使用的字符还会受到硬件设备的限制。
要编写一个能够在计算机上运行的C程序,就只能使用符合C语言规定的合法的字符。
C语言所使用的基本字符可分为六大类:
运算符、分隔符、常量、注释符、标识符、关键字等。
组成基本字符的字符集包括英文字母(大小写字母共52个)、阿拉伯数字(09)及其他一些特殊符号(下划线等)。
特殊符号如下所示:
+-*/%+!
|&,?
:
;.()&1.4C语言字符集、标识符与关键字1.4.21.4.21.4.21.4.2CCCC语言标识符与关键字语言标识符与关键字语言标识符与关键字语言标识符与关键字1.1.标识符标识符C语言中的标识符是指用来表示函数、类型以及变量的名称的字符,是编程者自己为函数、类型、变量所起的名称,一般由数字、字母和下划线组成,并且开头必须是字母或者下划线,后面可以跟若干个(或者0个)字母、数字和下划线。
由于在C语言里面,大小写是有区别的,所以在定义标识符时,大小写不同的则是不同的标识符,如SUM与sum是两个不同的标识符。
并且在定义标识符时,每个标识符最好有相应的意义,以便读者可以“顾名思义”,从而增加程序的可读性。
还有需要注意的一点是标识符的长度,虽然标准C不限制标识符的长度,但是由于存在各种版本的C语言编译系统的限制,标识符一般不要超过8个字符。
所以在定义标识符时,标识符的字符个数不要取得太长,以免出现不必要的错误。
下面给出一些合法的标识符:
AB13EF3XY4DC6下面是一些不合法的标识符:
4CGB.C.Jon#A73if1.4C语言字符集、标识符与关键字第一个不合法的标识符是以数字开头的,这不符合标识符的命名规则,同样的道理,第二个运用了“.”这个符号,第三个则用到了“#”,这些都不属于标识符命名所能采用的符号,因为标识符命名只限定是字母、数字和下划线,其他的特殊符号一概不能用到标识符里面去。
最后一个是关键字,关键字是不能重新命名为标识符的,原因在下面会讲解的比较清楚。
2.2.关键字关键字关键字是C语言中已经规定了有其特殊意义的标识符,不允许用户再进行自定义使用。
也就是说,用户只可以根据规定使用,而不可以使用其作为函数名或变量名。
关键字都采用小写字母。
C语言中有32个关键字,如下所示:
ifelsefordowhilegotointlongshortcharautobreakconstcontinuedefaultcasedoubleenumexternfloatregisterreturnsignedsizeofstaticstructswitchtypedefunionunsignedvolatile1.5C程序的开发环境当一个C程序写好之后,就要将其放到编译系统里面进行编辑(输入)、编译和连接,只有在完成了上面一系列步骤之后,一个C程序才变成一个可执行的程序,然后在计算机上运行,从而得到结果。
C语言程序的上机过程如图1.3所示。
当前有很多种编译系统可以对C语言程序进行编译,本书着重介绍VisualC+6.0语言集成环境,读者可以了解C语言程序在此环境下是如何进行编辑、编译、连接和运行的。
同时还将简单地介绍一下TurBoC2.0集成环境,它是DOS环境下的一款C语言集成环境,作为了解即可。
图图1.3C1.3C语言的上机过程语言的上机过程1.5C程序的开发环境1.5.11.5.11.5.11.5.1VisualC+6.0VisualC+6.0VisualC+6.0VisualC+6.0简介简介简介简介VisualC+6.0,简称VC或VC6.0,是微软推出的一款将高级语言翻译为机器语言的,并且是针对C+面向对象程序设计语言的开发环境。
由于C+语言是在C语言的基础上扩展而成的,所以C语言也能在VC6.0上运行。
VC6.0不仅仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境。
VC6.0是一个功能强大的可视化软件开发工具,以其拥有“语法高亮”、自动编译功能和高级除错功能而著称。
在VC6.0上对C程序进行编辑和编译时,由于它允许用户进行远程调试、单步执行,并且允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序,再加上其编译及创建预编译头文件、最小重建功能及累加连接等特点,从而大大缩短了程序编辑、编译及连接所花费的时间,使其成为专业程序员软件开发的首选工具。
1.1.启动启动VC6.0VC6.0单击“开始|程序|MicrosoftVisualstudio|MicrosoftVisualC+6.0”,启动VC6.0,在电脑屏幕上将显示如图1.4所示的窗口。
图图1.4VC6.01.4VC6.0窗口窗口1.5C程序的开发环境在此窗口的上面,我们可以看到有菜单项,单击每一个菜单项,都有相应的下拉菜单,在下拉菜单里面可以执行相应的操作。
如在图1.5和图1.6所示的File的下拉菜单中,如果要新建一个源程序,就可以选择New选项来新建源文件。
图图1.51.5菜单栏菜单栏图图1.61.6新建源文件窗口新建源文件窗口1.5C程序的开发环境2.2.新建新建CC源程序源程序单击VC6.0窗口上的“文件|New”命令,弹出“New”对话框,如图1.7所示。
单击对话框中的“Files”选项卡,单击“C+SourceFile”,然后单击“OK”按钮,就进入了编辑窗口,输入源程序,这时候源程序名及路径都是系统给的默认值。
如果想要事先设定文件名及保存路径,可以在单击“C+SourceFile”后,在“New”的对话框右边的文件小方框内给源程序命名为“名字.c”。
在位置小方框处,可以选择设置此源程序的路径,然后单击“OK”按钮即可,如图1.8所示。
图图1.71.7系统默认的程序名系统默认的程序名图图1.81.8新程序命名路径新程序命名路径1.5C程序的开发环境3.3.保存程序保存程序如果在新建源程序时,没有设定其路径,那么源程序就保存在VC6.0设定的默认目录下。
如果在输入源程序同时设定了源程序的名字和存放的路径,也就是在位置小方框处设定了保存的路径,那么源程序就保存在设定的路径下,如图1.9所示。
44执行程序执行程序要执行一个C源程序,首先应当将其生成可执行文件。
执行“Compile|Build”命令,也可以使用功能键F7,然后在弹出的对话框里单击“OK”按钮,即完成了此C源程序的编译。
此时在VisualC+中会生成一个与源文件同名的工作区,如果源程序没有错误,则工作区的显示如图1.10所示。
图图1.91.9新程序保存路径新程序保存路径图图1.101.10程序编辑工作区程序编辑工作区1.5C程序的开发环境如果源程序有错误,则工作区的显示如图1.11所示。
双击某行出错信息,系统会在程序窗口中指出出错的位置,用户可以根据此信息分别进行纠正。
如图1.12显示的程序出错提示是:
在printf()输出语句后面少了一个“;”。
如果编译连接正确,即执行“Compile|Run”命令,运行此程序,并得到运行结果,如图1.13所示。
图图1.111.11程序窗口显示的错误数程序窗口显示的错误数图图1.121.12程序窗口显示的出错信息程序窗口显示的出错信息图图1.131.13图图1.101.10运行结果运行结果1.5C程序的开发环境除此之外,VC6.0还提供了一组工具按钮,如图1.14所示,用户可以利用这些按钮快捷地执行程序。
除了工具按钮,还有一些快捷键,如表1-1所示。
图图1.141.14工具按钮工具按钮Ctrl+NNew新建工程Ctrl+U将选定区域转换成小写Ctrl+OOpen打开文件Ctrl+Shift+U将选定区域转换成大写Alt+F3/Ctrl+F弹出查找对话框Alt+F8自动格式重排F3查找下一个F7Build(编译并连接成exe文件)Shift+F3查找上一个Ctrl+F7Compile(编译)Ctrl+F3向下查找下一个Ctrl+F5编译+连接+运行Ctrl+Shift+F3查找上一个Ctrl+Shift+F5重新运行程序Ctrl+E寻找下一半括弧Ctrl+Break停止编译F4寻找下一个错误/警告F5顺序执行Shift+F4寻找上一个错误/警告Shift+F5停止调试Ctrl+T显示变量类型F10顺序执行,不进入循环或函数Ctrl+Shift+Space显示函数参数F11顺序执行,进入循环或函数F9在当前行插入/去掉断点Ctrl+F9应用断点表表1-11-1常用的快捷键常用的快捷键1.5C程序的开发环境5.5.退出退出VC6.0VC6.0程序运行完毕,点击VC6.0窗口上的关闭键即可关闭VC6.0。
如果程序进入死循环,无法通过关闭键关闭VC6.0,则可以将鼠标放在屏幕下方的蓝色任务窗上,单击鼠标右键启动任务管理器,单击任务管理器窗口中的“应用”,将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 大学 课程 语言程序设计 PPT 课件 第一章