C语言程序设计 第2章数据类型、运算符与表达式.pptx

上传人:小****库 文档编号:2917551 上传时间:2020-05-22 格式:PPTX 页数:106 大小:1.63MB
返回 下载 相关 举报
C语言程序设计 第2章数据类型、运算符与表达式.pptx_第1页
第1页 / 共106页
C语言程序设计 第2章数据类型、运算符与表达式.pptx_第2页
第2页 / 共106页
点击查看更多>>
资源描述

《C语言程序设计 第2章数据类型、运算符与表达式.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计 第2章数据类型、运算符与表达式.pptx(106页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第2章数据类型、运算符与表达式,C语言程序设计,2.1标识符、常量、变量及基本类型,1.标识符(1)定义用来标记常量、变量、数据类型、函数及程序的名字的字符序列。C语言中标识符必须符合以下规定:标识符只能由字母、数字、下划线组成,且必须以字母或下划线开头。区分大小写。例如:name和Name是不同的标识符。标识符不可与关键字相同。例如:if,main不能作为标识符。下面是正确的标识符命名:smart_decisionhigh3Area下面是不正确的标识符命名:5smartBomb?High.balance,(2)分类C语言的标识符可分为关键字、预定义标识符和用户自定义的标识符3类。关键字C语言

2、规定了一些专用的标识符,它们有着固定的含义,不能更改,这些专用的标识符就是关键字(见表2-1-1)。,2.1标识符、常量、变量及基本类型,预定义标识符主要用在C语言的预处理程序中,因此,人们习惯上也把它们看成是关键字,不作一般标识符使用,它们是:defineincludeunderifdefifndefendifline用户自定义的标识符用户自定义的标识符,通常根据标志内容的含义用英文或汉语拼音来表示,应做到“见名知意”,有利于提高程序的可读性,也方便程序的维护。例如:用sum表示求和,name表示姓名,max表示最大值等。,2.1标识符、常量、变量及基本类型,2.基本数据类型C语言的数据类型

3、如图2-1-1所示。,2.1标识符、常量、变量及基本类型,程序中可以根据不同的需要选用不同的类型,每种类型的数据的长度和存储的值域在不同类型的机器上各不相同。VC+6.0数据的基本类型的定义和表示范围见表2-1-2。,2.1标识符、常量、变量及基本类型,3.常量对于基本数据类型,按其取值是否改变又分为常量和变量。在程序运行过程中,其值不能被改变的量称为常量。常量有整型常量、实型常量、字符常量、字符串常量和符号常量5种类型。(1)整型常量整型常量有十进制整型常量、八进制整型常量和十六进制整型常量三种形式。十进制整型常量十进制整型常量没有前缀,由09的数字组成。例如:合法的十进制整型常量:237,

4、-568,1623,35L(其中L代表长整型)。不合法的十进制整型常量:023,23D。,2.1标识符、常量、变量及基本类型,八进制整型常量以数字0开头,由07的数字组成。例如:合法的八进制常量:015,0101,0177777。不合法的八进制常量:255,03B2,0129。十六进制整型常量以0 x或0X开头,即以0 x或0X作为前缀(十六进制数的前缀字符0 x,x前面是数字0而不是字母o),由数字09、字母AF或af组成。例如:合法的十六进制整型常量:0X2A、0XA0、0XFFFF。不合法的十六进制整型常量:5A、0X3H。,2.1标识符、常量、变量及基本类型,【例2.1.1】下列程序运

5、行的结果是。,程序运行的结果:252137,2.1标识符、常量、变量及基本类型,(2)实型常量实型常量也称为实数或浮点数,在C语言中,实型常量只能采用十进制,表现形式有小数形式和指数形式两种。小数形式由正负号、09的数字和最多一个小数点组成(必须有小数点)。例如:-1.850.3456120.0.426-11注意:小数点前面和后面可以没有数字(不能同时省略)。,2.1标识符、常量、变量及基本类型,指数形式由十进制数加上阶码标志e或E以及阶码组成。一般形式如下:aEn其中,a为十进制数,n为十进制整数(n为正数时“+”可以省略),其值为a10n。例如:合法的实数:1.236e+12(表示1.23

6、61012),0.27E-8(表示0.2710-8)。不合法的实数:e-5,2.7E,6.4e+5.9。,2.1标识符、常量、变量及基本类型,(3)字符型常量字符常量字符常量是用单引号括起来的一个字符。如a,+都是合法的字符常量。在C语言中,字符常量有以下特点:a.字符常量只能用单引号括起来,不能用双引号或其他括号。b.单引号中的大写字母和小写字母代表不同的字符常量。如b和B是两个不同的字符常量。c.字符常量只能是单个字符,不能是字符串。d.字符可以是字符集中任意字符,但数字被定义为字符型之后就以ASCII码值参与数值运算。如5和5是不同的常量,5是字符常量,而5是整型常量。,2.1标识符、常

7、量、变量及基本类型,e.字符常量在机器内以整型的形式存放,数值为该字符的ASCII码值,占一个字节。【例2.1.2】已知字母A的ASCII码为65,下列程序运行的结果是。,程序运行的结果:67G,2.1标识符、常量、变量及基本类型,转义字符常量C语言还定义了一些特殊的字符常量,是以反斜杠“”开头的字符序列,称为转义字符。转义字符具有特定的含义,如“n”表示换行的功能。转义字符及其含义见表2-1-3。,2.1标识符、常量、变量及基本类型,【例2.1.3】下列程序的运行结果是。,程序运行结果:ChinaA,2.1标识符、常量、变量及基本类型,(4)字符串常量在C语言中,字符串常量是用双引号括起来的

8、字符序列。以下是合法的字符串常量:ChinaThisismyfirstCprogram.502754注意:表示一个空格串。:表示什么字符也没有的字符串。n:表示一个具有换行功能的字符串。,2.1标识符、常量、变量及基本类型,字符常量与字符串常量的主要区别:字符常量由单引号括起来,字符串常量由双引号括起来。如A与A不是同一种常量。字符常量只能是单个字符,字符串常量则可以包含一个或多个字符。可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中,没有相应的字符串变量,但是可以用一个字符数组来存放一个字符串变量。字符常量占一个字节的内存空间。字符串常量占的内存字节数等

9、于字符串中字节数加1。其中,字符串尾部有字符串结束标志0。,2.1标识符、常量、变量及基本类型,(5)符号常量在程序中,如果某个常量多次被使用,则可以使用一个符号来代替该常量,称为符号常量。C语言中,用编译预处理命令#define定义符号常量。,2.1标识符、常量、变量及基本类型,【例2.1.4】编程:求一个半径r为3.0的球的体积和表面积。,程序运行结果:v=113.097237,s=113.097240,2.1标识符、常量、变量及基本类型,4.变量(1)定义所谓变量是指在程序运行过程中,其值可以改变的量。例如:计算圆周长的C语句:c=2*3.14159*r;/*c和r都是变量*/变量的一般

10、格式为:数据类型标识符变量名1,变量名2,变量名3,变量名n其中,表示可选项。,2.1标识符、常量、变量及基本类型,例如:inta;/*定义a为整型变量*/intm,n;/*定义m和n为整型变量*/floatx,y,z;/*定义x、y、z为单精度型变量*/charch;/*定义ch为字符型变量*/变量定义时,应注意:允许在一个数据类型标识符后说明多个相同类型的变量,各变量名之间用逗号隔开。数据类型标识符与变量名之间至少用一个空格隔开。最后一个变量名之后必须以分号“;”结尾。,2.1标识符、常量、变量及基本类型,变量说明须放在变量使用之前,一般放在函数体的开头部分。在同一个程序中变量不允许重复定

11、义。在同一程序中以下定义是不合法的:intx,y,z;/*定义x、y、z为整型变量*/inta,b,x;/*变量x被重复定义*/(2)变量的特征变量名的命名方式应符合标识符的命名规则。变量有确定的类型,不同类型的变量占用的内存单元(字节)数不同。,2.1标识符、常量、变量及基本类型,变量可以存放值,遵循“先定义,后使用”的原则。变量名和变量值的区别如图2-1-2所示。(图中x=15),变量在使用前一定要有初始值,变量初始值有初始化和赋初值两种形式。a.初始化是在定义变量时预置它的初始数据。例如:intx=1,y=3;,2.1标识符、常量、变量及基本类型,b.赋初值是指先定义变量类型,再赋值。例

12、如:intx,y;x=1;y=2;(3)变量类型变量类型有整型变量、实型变量和字符型变量3种。整型变量整型变量分为基本型、短整型、长整型和无符号型。不同类型的变量,其存储单元的大小不同。,2.1标识符、常量、变量及基本类型,实型变量实型变量分为单精度型(float)和双精度型(double)两种。例如:floatx,y;/*定义x,y为单精度型实数*/doublesum;/*定义sum为双精度型实数*/注意:a.float型数据在内存中占4个字节,double数据在内存中占8个字节。b.单精度型实数提供7位有效数字,双精度型实数提供15位有效数字。c.VC+6.0环境下,float型数据自动转

13、换成双精度型double类型。字符变量字符变量是用来存储字符常量的,即单个字符。,2.1标识符、常量、变量及基本类型,字符变量的类型说明符是char。字符变量格式:char变量名;例如:chara,b;/*定义a,b字符变量*/注意:a.每个字符变量被分配一个字节的内存空间,因此,只能存放一个字符。b.内存单元中存放的是该字符的ASCII码。c.C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值,在输出时允许把字符变量按整型量输出,也允许把整型变量按字符值输出。,2.1标识符、常量、变量及基本类型,【例2.1.5】下列程序的运行结果是。,程序运行结果:x,y120,121,2.1标识符

14、、常量、变量及基本类型,2.2运算符与表达式,1.运算符(1)定义运算是对数据进行加工处理,用来表示各种运算的符号。(2)分类C语言中,提供的运算符按运算符功能大致可以分为算术运算符、关系运算符、逻辑运算符、位运算符、增减运算符等(见表2-2-1)。,2.2运算符与表达式,根据参与运算的对象个数,C语言运算符可分为单目运算符(如!)、双目运算符(如+、-)和三目运算符(如?:)。,2.2运算符与表达式,(3)运算符的优先级优先级指多个运算符用在同一个表达式中时先运算什么,后运算什么,即如果在同一个表达式中出现了不同级别的运算符,首先计算优先级较高的。运算符优先级:初等运算符单目运算符算术运算符

15、(先乘除后加减)关系运算符逻辑运算符(不包括“!”)条件运算符赋值运算符逗号运算符。注意:初等运算符(包括圆括号()、下标运算符、结构体成员运算符-)优先级最高,逗号运算符优先级最低。(4)运算符的结合性结合性指在表达式中,若连续出现若干个优先级相同的运算符时,各运算符的运算次序。C语言中有左结合性和右结合性。,2.2运算符与表达式,所有的单目运算符、条件运算符、赋值运算符及其扩展运算符,结合方向都是从右向左,其余的结合方向是从左向右。例如:已知a=3,b=4,c=5,写出下列表达式的计算结果。a/b*c结果为0。【分析】因为/和*运算优先级相同,从左向右结合,先计算a/b值为0,再计算0*c

16、=0。a%b*c结果为15。【分析】%与*同级,从左到右执行,a%b=3,再计算3*c=15。,2.2运算符与表达式,2.表达式用运算符和圆括号把运算对象连接起来的、符合C语言语法规则的式子,称为表达式。例如:表达式d/(3*a+b)-6*c中,包括+、-、*、/、()等运算符号,运算对象包括a、b、c、d、3、6等。(1)基本算术运算符与表达式常见的基本算术运算符见表2-2-2。,2.2运算符与表达式,注意:模除运算符是两个整数相除后取余数。“%”的两个操作数必须为整数(可以是隐式转换成整数的类型),余数的符号取决于运算符“%”左边的操作数的符号。例如:10%3=1/*注意符号*/,2.2运

17、算符与表达式,-10%3=-1-10%-3=-13%7=3若“/”算术运算符两边均为整数,则结果仍为整数。例如:9/-2=-4/*注意符号*/-9/-2=4-9/2=-47/3=21/2=0,2.2运算符与表达式,若“/”算术运算符的两个数中有一个数为实数,则结果为double型。例如:7/3.0=2.333333优先级:*、/、%的优先级高于+与-,先乘除后加减。结合方向:从左向右。例如:10/5*3结果是6,而不是10/(5*3)=0。(2)关系运算符与表达式C语言规定了六个关系运算符:(大于)、=(大于等于)、=优先级相同,=、!=优先级相同;前四个的优先级高于后两个。结合方向:自左向右

18、。例如:表达式6b(成立,其运算结果为1),2.2运算符与表达式,a=c(不成立,其运算结果为0)a!=b(成立,其运算结果为1)a-c=b(成立,其运算结果为1)a-b!=c(不成立,其运算结果为0)【分析】最后一题中,因为关系运算符优先级低于算术运算符,因此,先计算a-b,其值为3,再计算3!=c不成立,因此其最终结果为0。多个关系式的书写。若变量x的取值范围为0x10,不能写成“0=x=10”,应该采用逻辑运算符进行连接,写成“00且a0,a、b、c由键盘输入。(流程图如图2-3-2所示),2.3简单程序设计,程序运行结果:请输入a,b,c:2,5,3x1=-1.000000 x2=-1

19、.500000,2.4顺序结构程序实例,【例2.4.2】输入三个整数,求出三个整数之积。,程序运行结果:请输入三个整数3,4,5a*b*c=60,2.4顺序结构程序实例,【例2.4.3】从键盘输入一个小写字母,要求输出大小写字母及所对应的ASCII码值。,2.4顺序结构程序实例,程序运行结果:请输入一个小写英文字母:aa,97A,65注意:getchar()函数的作用是从终端上输入一个字符。getchar()函数不需要参数,在调用时注意不要遗漏圆括号,从终端输入的空格、回车符都被当作字符读入,即输入单个字符,当用户按下回车键后,字符被送入内存才可被getchar()所接收。,2.4顺序结构程序

20、实例,该函数的使用方式有两种:把函数getchar()得到的字符可以赋给一个字符变量或整型变量。如“a=getchar();”语句。把函数getchar()得到的字符直接作为表达式的一部分,而不赋给任何变量。如“printf(%c,getchar();”语句。,2.4顺序结构程序实例,【例2.4.4】执行下列程序,若从键盘输入“a”后回车,程序的运行结果为。,程序运行结果:变量c1被赋予字符a,c2被赋予回车符。,2.4顺序结构程序实例,由于getchar()函数的作用是从终端输入一个字符,从终端输入的空格、回车符都被当作字符读入,故字符a赋予变量c1,回车符赋予变量c2。注意:putchar

21、()函数的作用是向终端输出一个字符,其一般形式为“putchar(c)”。putchar()函数的参数可以是字符变量或字符常量或整型变量,也可以是某个字符对应的ASCII码值,还可以是表达式,甚至还可以是控制字符。如n,它的作用是输出一个换行符,即使输出的当前位置移到下一行的开头。,2.4顺序结构程序实例,【例2.4.5】下列程序的运行结果是。,程序运行结果:9,10【分析】由于变量i为八进制数,+i的值先将变量加1,再使用i,则为十进制的8+1,结果输出为9;而j-的值是先使用j的值,再减1,结果输出为10。,2.4顺序结构程序实例,注意:自增运算符只能用于变量,不能用于常量或表达式。如“+

22、(i+1);”语句为非法的。【例2.4.6】下列程序的运行结果是。,2.4顺序结构程序实例,【分析】执行“a=10;”后,a的值为10,而“b=20”包含在注释语句中,b的值仍然为0,故a+b的值为10。【例2.4.7】执行下列程序,若从键盘输入“876543.0”后回车,a和b的值分别是。,2.4顺序结构程序实例,程序运行结果:876543.0a=87,b=6.000000【分析】由于格式化输入scanf()函数中“%2d”限制了a读两位,即87而后面的6被b读到,遇到空格结束了,后面的543.0未被读到。,2.4顺序结构程序实例,【例2.4.8】下列程序的运行结果是。,程序运行结果:123

23、.141593【分析】由于格式化输出printf()函数中“%d”表示输出的x是整数,“%8.6f”表示y输出的格式为y取小数点后6位,且y总共占8个位置,两数之间没有分隔符。,2.4顺序结构程序实例,【例2.4.9】执行下列程序,若从键盘输入“2,5,3”后回车,程序的运行结果是。,程序运行结果:m=5,2.4顺序结构程序实例,【例2.4.10】数位分解,如123则百位数为1,十位数为2,个位数为3。,本章主要介绍了标识符、常量、变量的命名规则,区分常量和变量的区别;理解C语言的运算符的种类、结合性和优先级;能对表达式进行正确的运算;会运用基本语句进行简单的程序设计,并能初步分析程序运行结果。,本章小结,1.程序填空:数位分解,如123则百位数为1,十位数为2,个位数为3。,习题,2.程序填空:输入一个大于100的正整数a,将a的百位、十位和个位依次放在b的个位、十位和百位上。(例如:输入“321”,输出结果是“123”。),习题,3.下列程序的运行结果是。,习题,4.编程:已知三角形的三条边长分别为a、b、c,求三角形的面积。三角形的面积,习题,5.编程:按公式计算并输出s的值。其中,a和b的值由键盘输入,结果保留两位小数。当从键盘输入2赋给变量a,3赋给变量b时,s的值为多少?,习题,谢谢观看THANKYOU,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com