C语言程序设计.pptx
《C语言程序设计.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计.pptx(203页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、项目7 函数1项目8 指针2项目9 结构与联合3项目10 位运算4项目11 文件5 目 录项目1 C语言概述1项目2 数据类型、运算符与表达式2项目3 顺序结构程序设计3项目4 选择结构程序设计4项目5 循环结构程序设计5项目6 数组5附件5第1页/共203页项目1 C语言概论1项目导读项目目标项目任务第2页/共203页本项目主要对C语言的一些基础知识及其字符集和词汇进行介绍,使读者在学习C语言之前对其有个全面的认识。项目导读安装、配置TC2.0和VC+6.0,成功启动TC2.0和VC+6.0。能编写一个简单的C程序的源文件,并编译该源文件,链接目标文件得到可执行文件。项目目标第3页/共203
2、页任务1.1 C语言的发展与特点C语言是1972 年由美国的DennisRitchie设计发明的,并首次在配备了UNIX操作系统的DECPDP-11计算机上实现。它由早期的编程语言BCPL(BasicCombinedProgrammingLanguage)发展演变而来。C语言的特点1、C语言是中级语言2、C语言是结构化语言3、C语言功能齐全4、C语言适用范围广第4页/共203页任务1.2 认识C语言 本任务通过几个简单的C程序,介绍C语言的基本组成和格式。案例1.1main()printf(“Thisisacprogram.n”);本程序的功能是输入下列一行信息:Thisisacprogram
3、.第5页/共203页任务1.2 认识C语言 程序说明:(1)main函数是“主函数”,每一个C程序必须有一个main函数。(2)函数体由大括弧括起来。本例中,主函数内只有一个输出语句,printf(“Thisisacprogram.n”);是C语言的输出函数(具体详见项目3)。双引号内的字符串将照原样输出。(3)“n”是换行符,即在输出“Thisisacprogram.”后换行。(4)分号是C语句的基本构成,每一个C语句后都应再加上分号,分号是语句的结束标志。第6页/共203页任务1.2 认识C语言 本任务通过几个简单的C程序,介绍C语言的基本组成和格式。案例1.2main()/*求两数之和*
4、/int a,b,sum;/*本行开始的以下4条为C语句*/a=123;b=456;sum=a+b;printf(“sum is%dn”,sum);本程序的功能是求两数之和。第7页/共203页任务1.2 认识C语言 程序说明:(1)/*/是注释语句,此信息对编译和运行不起作用。(2)程序第二行的含义是定义a、b和sum为整体变量。(3)“sum=a+b;”的含义是把变量a和b的和赋给变量sum。(4)该程序的输出结果是:sumis579。第8页/共203页任务1.2 认识C语言 案例1.3main()/*求一个数的绝对值*/int x,y;scanf(“%d”,&x);y=abs(x);pri
5、ntf(“abs=%d”,y);int abs(int z)int w;if (z=0)w=z;else w=-z;return(w);本程序的功能是求z的绝对值。第9页/共203页任务1.2 认识C语言 程序说明:(1)本程序包括两个函数:主函数main和被调用函数abs。(2)函数abs的作用是将z的绝对值返回给主调函数main(返回值是通过函数名abs带回到main函数的调用处的)。(3)程序中的scanf函数的作用是从键盘上输入x的值。&x中的“&”的含义是“取地址”,此scanf函数的作用是将数值输入到变量x的地址所标志的单元中去,也就是输入给变量x。关于scanf函数详见项目3。(
6、4)main函数中的第四行为调用abs函数,在调用时将实际参数x传给abs函数中的形式参数z,然后输入y的值。(5)printf函数中双引号内的abs=%d,在输出时,其中的%d将由y值取代,“abs=”原样输出。该程序的运行结果是:假定从键盘上输入x的值为:-6 则y=6(6)本例用到了函数调用、实际参数和形式参数等概念,只是做了简单的解释,读者若对此不大理解,可先不予深究,在学到函数项目后的相关知识后,问题自会迎刃而解。这里介绍此案例的目的,是想让读者对C语言的组成和形式有一个初步了解。第10页/共203页任务1.2 认识C语言 通过以上三个例子,我们可以得到以下几点:1、C程序是由函数构
7、成的。一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其它函数。因此,函数是C语言的基本单位。被调用函数可以是系统提供的库函数(例如printf函数和scanf函数),也可以是用户根据需要自编译的用户函数(例如案例1.3中的abs函数)。2、函数及其结构。一个函数由两部分组成:即函数首部和函数体。函数首部包括函数类型、函数名、函数参数(形参)、形参类型;函数体一般包括说明部分和执行部分。函数结构如下:函数类型函数名(形参表)说明部分:函数体执行部分;函数体以左花括号“”开始,以右花括号“”结束,其间可以有说明部分和执行部分。在某些情况下,甚至可以既无说明部分,也无执行部
8、分。如:dump()它是一个空函数,表示什么也不做,但它是合法的第11页/共203页任务1.2 认识C语言 3、一个C程序中,不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后头,或在一些函数之前,或在另一些函数之后),但程序执行时,总是从main函数开始执行。4、C程序书写格式自由,一行中可以书写多个语句,一个语句也可以书写在连续的多行上。当一行写不下时,用连字符“-”连接,并且每条语句的后面以分号“;”作为结束标记。5、C语言本身没有输入输出语句。C语言的函数库提供了标准输入输出函数。6、可以用/*对C程序中的任何一部分做注释,以增加程序的可读性。第
9、12页/共203页任务1.3 C程序的执行过程 C语言程序是一种编译型的中级语言。用C语言编写的源程序必须先进行编译和连接,生成可执行的程序之后才能执行。执行一个C语言程序一般经过如下几个步骤。1、编辑2、编译3、连接4、运行C语言程序的开发是一个由编辑开始,经过编译、连接和运行,程序如果有错误,又回到编辑的反复循环过程,如图所示。第13页/共203页项目2 数据类型、运算符与表达式1项目导读项目目标项目任务第14页/共203页C语言中,为解决具体问题,需要采用多种类型的数据;本项目将主要介绍C语言的数据类型、常用运算符和表达式。项目导读学会声明整型变量,为声明的变量赋值,交换变量的值,输出变
10、量的值。学会声明浮点型变量,为声明的浮点型变量赋值,对浮点型变量值进行加法运算,并将运算结果存放到浮点型变量中,输出浮点型变量的值。学会声明字符型变量,为声明的字符型变量赋值,按%d或%c格式输出变量的值。项目目标第15页/共203页任务2.1 常量、变量和标示符 标识符 在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符(identifier)。简单地说,标识符就是一个对象的名字。C语言规定标识符只能由字母、数字和下划线组成,且第1个字符必须为字母或下划线。下面列出的是合法的标识符,可以作为变量名:Sum,average,_total,Class,d
11、ay,month,Student_name,lotus_1_2_3,BASIC,li_ling.下面是不合法的标识符和变量名:M.D.John,¥123,#33,3D64,ab 注意:编译系统将大写字母和小写字母认为是两个不同的字符。因此,sum和SUM是两个不同的变量名。同样,Class和class也是两个不同的变量名。通常,变量名用小写字母表示,习惯用对应的英文字母缩写形式,做到见名知意,与人们日常习惯一致,以增加可读性。第16页/共203页任务2.1 常量、变量和标示符 常量和变量1、常量 在程序运行过程中,其值不能被改变的量称为常量。如案例2.1程序中的5,9,32和案例2.2程序中的
12、1000,0.0036,0.0225,0.0198 都是常量。数值常量就是数学中的常数。常用的常量有以下几类:整型常量。如1000,12345,0,-345等都是整型常量。实型常量。有两种表现形式:十进制小数形式,由数字和小数点组成。如122.456,0.345,-55.79,0.0,12.0等。指数形式,如12.34e3(代表12.34103),-345.87e-25(代表-345.8710-25),0.145E25(代表0.14510-25)等。由于在计算机输入或输出时,无法表示上标或下标,故规定以字母e或E代表以10为底的指数。但应注意:e或E之前必须有数字,且e或E后面必须为整数。如不
13、能写成e4,12e2.5。第17页/共203页任务2.1 常量、变量和标示符 字符常量。有两种形式的字符常量:普通字符,用单撇号括起来的一个字符,如a,Z,3,?,#。注意:单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。a和A是不同的字符常量。字符常量存储在计算机存储单元中时,并不是存储字符(如a,z,#等)本身,而是以其代码(一般采用ASCII代码)存储的,例如字符A的ASCII话代码是97,因此,在存储单元中存放的是97(以二进制形式存放)。ASCII字符与代码对照表见附录。转义字符,除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量,就是以字符开头的字符序列。例如,前面
14、已经遇到过的,在printf函数中的n它代表一个“换行”符。常用的以“”开头的特殊字符见表2.1第18页/共203页任务2.1 常量、变量和标示符 表2.1第19页/共203页任务2.1 常量、变量和标示符 字符串常量。如“boy”,“123”等,用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符(但不包括双撇号本身)。注意不能错写成CHINA,boy,123。单撇号内只能包含一个字符,双撇号内可以包含一个字符串。符号常量。用#define 指令,指定用一个符号名称代表一个常量。如:#definePI3.1416注意行末没有分号经过以上的指定后,本文件中从此行开始所有的PI都代表3.1
15、416。在对程序进行编译前,预处理器先对PI进行处理,把所有的PI全部置换为3.1416。这种用一个符号名代表一个常量的,称为符号常量。在预编译后,符号常量全部变成字面常量(3.14159)。使用符号常量有以下好处。含义清楚。在需要改变程序中多处用到的同一个常量时,能做到“一改全改”。第20页/共203页任务2.1 常量、变量和标示符 2、变量变量代表一个有名字的、具有特定属性的存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间,变量的值是可以改变的。变量必须先定义,后使用。在定义时指定该变量的名字和类型。一个变量应该有一个名字,以便被引用。请注意区分变量名和变量值这两个不同的概念,
16、图2.1中a是变量名,3是变量a的值,即存放在变量a的内存单元中的数据。变量名的实质是以一个名字代表的一个存储地址。在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该储存单元中读取数据。图2.1第21页/共203页任务2.1 常量、变量和标示符 3、常变量如constinta=3表示a被定义为一个整型变量,指定其值为3,而且在变量存在期间其值不能改变。常变量与常量的异同是:常变量具有变量的基本属性,有类型,占存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量,有名字就便于在程序中被引用。第2
17、2页/共203页任务2.2 数据类型在定义变量时需要指定变量的类型。C语言要求在定义所有的变量时都要指定变量的类型。常量也是区分类型的。所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同的类型分配不同的长度和存储形式。C语言允许使用的类型见图2.2。图2.2第23页/共203页任务2.2 数据类型 整型数据1、整型数据的分类基本整型(int型)编译系统为int型数据分配2个字节或4个字节(有具体的C编译系统自行决定)。如TurboC2.0为每一个整型数据分配2个字节(16个二进位),而VisualC+为每一个整型数据分配4个字节(32位)。在存储单
18、元中的存储方式是:用整数的补码(complement)形式存放。5的补码-5的补码第24页/共203页任务2.2 数据类型 短整型(shortint)类型名为shortint或short。如用VisualC+5.0,编译系统分配给int数据4个字节,短整型2个字节。存储方式与int型相同。一个短整型变量的值的范围是32768 32767。长整型(longint)类型名为longint或long。一个longint型变量的值的范围是231(2311),即2147483648 2147483647(VisualC+5.0),编译系统分配给long数据4个字节。双长整型(longlongint)或l
19、onglong,一般分配8个字节。说明:C标准没有具体规定各种类型数据所占用存储单元的长度,这是由各编译系统自行决定的。C标准只要求long型数据长度不短于int型,short型不长于int型。即Sizeof(short)sizeof(int)sizeof(longlong)Sizeof是测量类型或变量长度的运算符。第25页/共203页任务2.2 数据类型 2、整型变量的符号属性以上介绍的几种类型,变量值在存储单元中都是以补码形式存储的,存储单元中的第1个二进位制代表符号。整型变量的值的范围包括负数到正数(见表2.2)。表2.2整型数据常见的存储空间和值的范围第26页/共203页任务2.2 数
20、据类型 在实际应用中,有的数据的范围常常只有正值(如学号、年龄、库存量、存款额等)。为了充分利用变量的值的范围,可以将变量定义为“无符号”类型。可以在类型符号前面加上修饰符unsigned,表示指定该变量是“无符号整数”类型。如果加上修饰符signed,则是“有符号”类型。因此,在以上4种整型数据的基础上可以扩展为以下8种整型数据。即有符号基本整型signedint;无符号基本整型unsignedint;有符号短整型signedshortint;无符号短整型unsignedshortint;有符号长整型signedlongint;无符号长整型unsignedlongint;有符号双长整型sig
21、nedlonglongint;无符号双长整型unsignedlonglongint;以上方括号表示其中的内容是可选的,既可以有,也可以没有。如果既未指定为signed也未指定为unsigned 的,默认为“有符号类型”。如signedinta和inta等价。第27页/共203页任务2.2 数据类型 字符型数据 1.字符与字符代码字符与字符代码并不是任意写一个字符,程序都能识别的。例如圆周率在程序中是不能识别的,只能使用系统的字符集中的字符,目前大多数系统采用ASCII字符集。各种字符集(包括ASCII字符集)的基本集都包括了127个字符。其中包括:字母:大写英文字母AZ,小写英文字母az。数字
22、:09。专门符号:29个:!”#&()*+,:;=?-|空格符:空格、水平制表符(tab)、换行、换页(formfeed)。不能显示的字符:空(null)字符(以0表示)、警告(以a表示)、退格(以b表示)、回车(以r表示)等。第28页/共203页任务2.2 数据类型2、字符变量字符变量使用类型符char定义字符变量。Char是英文character(字符)的缩写,见名即可知意。如:charc=;?定义c为字符型变量并使初值为字符?。?的ASCII代码是63,系统把整数63赋给变量c。c是字符变量,实质上是一个字节的整形变量,由于它常用来存放字符。所以称为字符变量。可以把0127之间的整数赋给
23、一个字符变量。在输出字符变量的值时,可以选择以十进制整数形式输出,或以字符形式输出。如:printf(“%d%cn”,c,c);输出结果是:63?用“%d”格式输出十进制整数63,用%c格式用字符形式输出字符?。第29页/共203页任务2.2 数据类型 浮点型数据 浮点型数据是用来表示具有小数点的实数的。浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、longdouble(长双精度浮点型)。(1)float型(单精度浮点型)。编译系统为每一个float型变量分配4个字节,数值以规范化的二进制数值形式存放在存储单元中。在存储时,系统将实型数据分成小数部分和指数部分两个部分
24、,分别存放。小数部分的小数点前面的数为0.如3.14159 在内存中的存放形式可以用图2.9表示。图2.9第30页/共203页任务2.2 数据类型 double型(双精度浮点型)。为了扩大能表示的数值范围,用8个字节存储一个double 型数据,可以得到15位有效数字,数值范围为1.710-3081.710308。在C语言中进行浮点数的算术运算时,将float型数据都自动转换为double 型,然后进行运算。longdouble型(长双精度)型,不同的编译系统对longdouble型的处理方法不同,TurboC对longdouble型分配16个字节。而VisualC+6.0则对longdoub
25、le型和double 型一样处理,分配8个字节。请读者在使用不同的编译系统时注意其差别。表2.4列出实型数据的有关情况表2.4第31页/共203页任务2.3 运算符和表达式 基本的算术运算符 表2.5最常用的算术运算符第32页/共203页任务2.3 运算符和表达式 自增、自减运算符作用是使变量的值加1或减1,例如:+i,-i(在使用i之前,先使i的值加(减)1)i+,i-(在使用i之后,使i的值加(减)1)粗略地看,+i和i+的作用相当于i=i+1。但+i和i+的不同之处在于+i是先执行i=i+1后,再使用i的值;而i+是先使用i的值后,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计
限制150内