第2章数据类型运算符和表达式.ppt
《第2章数据类型运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《第2章数据类型运算符和表达式.ppt(98页珍藏版)》请在三一办公上搜索。
1、第2章 数据类型、运算符与表达式,C语言程序设计基础,复习回顾,C语言的特点C语言程序格式特点及基本结构C语言的上机步骤.C,.obj,.exe 的区别,一个简单的C程序例子,#include/*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值:整型数a和b之和*/int Add(int a,int b)return(a+b);/*主函数*/main()int x,y,sum=0;printf(Input two integers:);scanf(%d%d,/*输出x和y相加之和*/,本章内容提要,基本数据类型;常量和变量;标识符命名;常用运算符和表达式;运算符的优先级与结合性
2、 变量的地址和指向变量的指针,本章重点,C语言的数据类型及其使用范围字符串常量与字符常量的区别转义字符的使用C语言中的运算符和表达式,及各类数据的混合运算掌握变量的地址和指向变量的指针,本章难点,不同数据类型的使用范围赋值运算符和赋值表达式数据的隐式转换问题逗号运算符和逗号表达式运算符的优先级问题指针变量,第一讲 数据类型,C程序常见符号分类,关键字(Keyword)又称为保留字,C语言中预先规定的具有固定含义的一些单词 标识符(Identifier)系统预定义标识符用户自定义标识符 运算符(Operator)34种,详见附录B 分隔符(Separator)空格、回车/换行、逗号等 其它符号
3、大花括号“”和“”通常用于标识函数体或者一个语句块“/*”和“*/”是程序注释所需的定界符 数据(Data)变量(Variable)常量(Constant),2.1 C语言的数据类型(Data Type),数据为什么要区分类型?不同类型的数据代表不同的数据表示形式合法的取值范围占用内存空间大小可参与的运算种类 从基本数据类型到抽象数据类型无数据类型基本数据类型 构造数据类型 抽象数据类型,数据类型决定:1.数据占内存字节数2.数据取值范围3.其上可进行的操作,数据类型,整型,字符型,实型,有,无,有,3.4e-383.4e38,有,有,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM
4、 PC机为例:请看int和unsigned int,基本数据类型,标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字不可以是数字开头长度:最长32个字符命名原则:见名知意不宜混淆 如 l 与 I,o 与 0,2.2 常量与变量,例:判断下列标识符号合法性sum Sum M.D.John day Date 3days student_name#33 lotus_1_2_3 char ab _above$123,M.D.John,3days,#33,char,$123,ab,-标识符,下划线和大小写通常用来增强
5、可读性variablenamevariable_nameVariableName,variableName某些功能的变量采用习惯命名如:for语句所采用的循环变量习惯用i,j,k,Windows 风格,UNIX 风格,一般用大写字母是宏定义预处理命令,不是C语句直接常量:整型常量 请点击:实型常量 请点击:字符常量 请点击:字符串常量 请点击:,如#define PRICE 30,定义:程序运行时其值不能改变的量(即常数)分类:符号常量:用标识符代表常量定义格式:#define 符号常量 常量,例 符号常量举例(ch2_1.c)#define PRICE 30main()int num,tot
6、al;num=10;total=num*PRICE;printf(total=%d,total);,运行结果:total=300,常量,符号常量:定义一个标识符来表示的常量。【例2】#define PRICE 20/*宏定义语句*/main()float num;float sum;/*变量定义*/num=6.0;sum=num*PRICE;printf(“sum=%f”,sum);/*输出结果*/,说明:1、符号常量的值在其作用域内不能改变,也不能再赋值;2、使用符号常量,可以做到一改全改;3、还可以起到一定的注释作用。,直接常量:直接可以看得到数据的常量。【例1】已知每千克牛肉的价格为20
7、元,买6斤需要多少钱。main()float sum;/*变量定义*/sum=20.0*6;/*给变量赋值*/printf(“sum=%dn”,sum);/*输出结果*/,运行结果:(屏幕显示)Sum=120.000000,三种形式:十进制整数:由数字09和正负号表示.如 123,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示.如0 x123,0Xff,例 12 与 12L,例 30000 为int型 65536 为long int 型,整型常量的类型根据其值所在范围确定其数据类型在整常量后加字母l或L,认为它是l
8、ong int 型常量,问题:0123=()100 x123=()100Xff=()10,整型常量(整常数),表示形式:十进制数形式:(必须有小数点)如0.123,.123,123.0,0.0,123.指数形式:(e或E之前必须有数字十进制数;指数必须为整数)如12.3e3,123E2,1.23e4,e-5,1.2E-3.5,实型常量的类型默认double型在实型常量后加字母f或F,认为它是float 型,实型常量(实数或浮点数),定义:用单引号括起来的单个普通字符或转义字符.,字符常量的值:该字符的ASCII码值,如 101-A 012-n 376-x61-a 60-0 483-(),例:A
9、-101-x41-65,如 A65,a97,048,n10,如 a A?n 101,转义字符:反斜线后面跟一个字符或一个代码值表示,例 转义字符举例(ch2_001.c,ch2_004.c)main()printf(101 x42 Cn);printf(I say:How are you?n);printf(C Programn);printf(Turbo C);,运行结果:(屏幕显示)A B CIsay:”How are you?”C ProgramTurbo C,例 main()printf(“Yb=n”);,运行结果:屏幕显示:=打印机输出:,字符常量,字符常量与字符串常量不同,定义:用
10、双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串结束标志,例:char ch;ch=“A”;,字符串常量,概念:其值可以改变的量变量名与变量值变量定义的一般格式:数据类型 变量1,变量2,变量n;,变量初始化:定义时赋初值,例:int a,b,c;float data;,决定分配字节数和数的表示范围,合法标识符,例:int a=2,b,c=4;float data=3.67;char ch=A;int x=1,y=1,z=1;int x=y=z=1;,变量的使用:先定义,后使用,例1 int student;stadent=19;/Undefined symbol s
11、tadent in function main,例2 float a,b,c;c=a%b;/Illegal use of floating point in function main,变量定义位置:一般放在函数开头,变量,占字节数随机器不同而不同,一般占一个机器字shortintlong可用sizeof(类型标识符)测量,实型变量float:占4字节,提供7位有效数字double:占8字节,提供1516位有效数字example,字符型变量字符变量存放字符ASCII码char与int数据间可进行算术运算,例1:float a;a=111111.111;/*a=111111.1*/例2:doub
12、le b;b=111111.111;/*b=111111.111*/,例 a=D;/*a=68;*/x=A+5;/*x=65+5;*/s=!+G/*s=33+71;*/,没有字符串变量,用字符数组存放,整型变量,【exp2.7】一个较大实数加一个较小实数。main()float x=7.24356E10,y;y=x+54;printf(x=%en,x);printf(y=%en,y);,程序执行的结果为:x=7.24356E10 y=7.24356E10,进行计算时,要避免一个较大实数和一个较小实数相加减。,【exp2.8】实型数据的溢出 main()float a,b,c,d;a=1.2E3
13、3;b=0.5E-22;c=0.25E-21;d=a/b;d=d*c;printf(c=%fn,d);,结果:Floating point:Overflow,改:d=a*c;d=d/b;或:d=a/b*c;,/*ch2_5.c*/#define PRICE 12.5 main()int num=3;float total;char ch1,ch2=D;total=num*PRICE;ch1=ch2-A+a;printf(“total=%f,ch1=%cn”,total,ch1);,运行结果:total=37.500000,ch1=d,例子,结论:允许对字符变量赋以整型值。在输出时,允许把字符变
14、量按整型量输出,同样也允许对整型变量赋以字符值,把整型量按字符量输出。注意:因字符量存放为单字节,所以当整型量按字符型量处理时,只有低八位字节参与处理。,本次课回顾,基本数据类型,int整数,在目前绝大多数机器上占4个字节。TC2中是2个字节float单精度浮点数,一般是4个字节长double双精度浮点数,一般是8个字节长char字符,一般是1个字节长用来表示256个ASCII字符,或者0255的整数,ASCII字符表1,数据类型修饰符,shortshort int,短整数,一般2个字节长。通常简写为shortlonglong int,长整数,一般是4个字节长。通常简写为longlong do
15、uble,长双精度(高精度)浮点数,一般是16个字节长。signed用来修饰char、int、short和long,说明他们是有符号的整数(正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略unsigned用来修饰char、int、short和long,说明他们是无符号的整数(正整数和0),3.4e-383.4e38,基本数据类型,注:对于其它系统中设基本整型占用内存字节数为n,其值域为:-2n-1(2n-1-1);无符号整型变量的值域为:0(2n-1)。,常数(Constant),整型常数18、-31长整型常量 123l、123L、123456l、123456L无符号型常量
16、123u、123U浮点常数十进制小数形式 123.45、456.78指数形式 1e-2、4.5e3单精度实型常量 123.45f、456.78F、1e-2f、4.5e3F长双精度型常量 123.45l、456.78L、1e-2l、4.5e3L,八进制与十六进制常数,以数字“0”开始的整型常数是八进制数022、-037010和10大小不一样因为八进制并不常用,所以此种表示法比较少见以“0 x”或者“0X”开始的整型常数是十六进制AF和af用来表示十进制的1015十六进制的形式比较常用,尤其在进行位一级的控制的时候0 x12、-0 x1F,-0 x1f,字符(Character)常数,字符常数的表
17、示方法a,A,5,%,$单引号内只能有一个字符,除非用“”开头就是一个普通整数,也可以参与各种数学运算每个字符具有一个0255之间的数值,可从ASCII表查出注意:5和整数5的区别字符的数学运算在密码学内用得比较多,字符常数,转义字符一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示,字符串(String)常数,用双引号括住的由0个或多个字符组成的字符序列I am a string表示空字符串转义字符也可以在字符串中使用引号只作为字符串开始和结束的标志C语言内部用0表示字符串的结束除注释外,是唯一可以出现中文的地方x和x是不同的里定义了一系列专门的字符串处理函数,使用变量要注意,不要对变
18、量所占的内存空间字节数想当然用sizeof获得变量或者数据类型的长度现场演示程序在Turbo C2.0下的运行结果,注意!,#include main()printf(Data type Number of bytesn);printf(-n);printf(char%dn,sizeof(char);printf(int%dn,sizeof(int);printf(short int%dn,sizeof(short);printf(long int%dn,sizeof(long);printf(float%dn,sizeof(float);printf(double%dn,sizeof(dou
19、ble);,变量声明,使用变量的基本原则变量必须先定义,后使用所有变量必须在第一条可执行语句前定义声明的顺序无关紧要一条声明语句可声明若干个同类型的变量声明变量,是初始化变量的最好时机不被初始化的变量,其值为危险的随机数char esc=a;int i=1;int sum=0;float eps=1.0e-5;,实型数据提供的有效数字位数,float型数据提供7位有效数字double型数据提供16位有效数字 使用不当导致舍入误差,#include main()float a;double b;a=123456.789e4;b=123456.789e4;printf(%fn%fn,a,b);,数
20、据在内存中的存储格式,整型实型字符型,char型与int型之间的关系,小写字母转换为大写字母,#include main()char ch=b;ch=b-32;printf(%c,%dn,ch,ch);,#include main()char ch=b;ch=b-(a-A);printf(%c,%dn,ch,ch);,小结,C语言的数据类型分为标准类型、构造类型、指针类型、空类型等四大类;常量与变量:变量必须先定义,后使用;常量有直接常量和符号常量两种形式。C语言规定标识符只能由字母、数字和下划线3种字符组成,并且第一个字符必须为字母或下划线。整型数据:分为短整型(short)、长整型(lon
21、g)和基本整型(int)3种。根据是否存放符号,又可分为:无符号(unsigned)数和有符号(signed)数。整型常量有3种形式:八进制(前缀0)、十进制(无前缀)、十六进制(0 x为前缀)。整型常量还可以加后缀u、U和l、L来表示无符号数和长整型。实型数据:分为单精度(float)、双精度(double)、长双精度3种。实型常量都是双精度型,可以用十进制小数和指数形式表示。字符型数据:在内存中以ASCII码形式存放。字符型数据可以作为整型数据使用,整型数据也可以作为字符型数据使用,相互转换的一句是ASCII码表,练习,(1)以下选项中合法的标识符是A)1-1 B)11 C)-11 D)1
22、(2)以下选项中不能作为C 语言合法常量的是()。A)cd B)0.1e+6 C)a D)011(3)若函数中有定义语句:int k;,则A)系统将自动给k赋初值0 B)这时k中值无定义C)系统将自动给k赋初值-1 D)这时k中无任何值(4)以下选项中,能用作数据常量的是A)o115 B)0118 C)1.5e1.5 D)115L(5)以下叙述中正确的是()。A)C 程序的基本组成单位是语句 B)C 程序中的每一行只能写一条语句 C)简单C 语句必须以分号结束 D)C 语句必须在一行内写完(6)计算机能直接执行的程序是()。A)源程序 B)目标程序 C)汇编程序 D)可执行程序(7)以下选项中
23、正确的定义语句是()。A)double a;b;B)double a=b=7;C)double a=7,b=7;D)double,a,b;(8)C 源程序中不能表示的数制是()。A)二进制 B)八进制 C)十进制 D)十六进制,1、C2、A3、B4、D5、C6、D7、C8、A,填空(10)若整型变量a 和b 中的值分别为7 和9,要求按以下格式输出a 和b 的值:a=7b=9请完成输出语句:printf(“【7】”,a,b);。(11)若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【7】,x/y);补充完整,使其输出的计算结果形式为:x/y=11,prin
24、tf(“a=%dnb=%d”,a,b);,printf(“x/y=%d”,x/y);,第二讲 运算符和表达式,运算符和表达式,运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型,学习运算符应注意,基本算术运算符:+-*/%结合方向:从左向右优先级:-(负号运算符)-*/%-+-(减)(2)(3)(4)说明:“-”为单目运算符(负号)时,右结合性两整数相除,结果为整数,如运算量中有一个是实型,则结果为双精度实型%要求两侧均为整型数据,例 5/2=-5/2.0=,例 5%2=-5%2=1%10=5%1=5.5%2,算术运算符和表达式,2,-2.5,1,-1,1,0,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算 表达式
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4995995.html