【教学课件】第二章数据类型、运算符及表达式.ppt

上传人:牧羊曲112 文档编号:5662008 上传时间:2023-08-07 格式:PPT 页数:68 大小:691KB
返回 下载 相关 举报
【教学课件】第二章数据类型、运算符及表达式.ppt_第1页
第1页 / 共68页
【教学课件】第二章数据类型、运算符及表达式.ppt_第2页
第2页 / 共68页
【教学课件】第二章数据类型、运算符及表达式.ppt_第3页
第3页 / 共68页
【教学课件】第二章数据类型、运算符及表达式.ppt_第4页
第4页 / 共68页
【教学课件】第二章数据类型、运算符及表达式.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《【教学课件】第二章数据类型、运算符及表达式.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二章数据类型、运算符及表达式.ppt(68页珍藏版)》请在三一办公上搜索。

1、第二章 数据类型、运算符及表达式,主要内容:c语言的三种基本数据类型,算术运算符以及赋值运算符,重点、难点:掌握每种数据类型的常量如何表示、变量如何定义。,各种运算符号的运算规则、不同运算符号之间的优先级和结合性。,例题:输入一个四位的正整数,提取并输出每一位上的数字。例如:输入1978,则输出1,9,7,8,问题3:怎样输入数据?,问题2:输入的数据怎样存放?,问题4:通过什么运算可以将每一位上的数字取出?,问题5:怎样将结果保存并输出?,问题1:输入的是什么样的数据?,C语言的数据类型,本章讨论的基本类型数据,问题1:输入的是什么样的数据?,答:整数。,问题2:输入的数据怎样存放?,答:暂

2、存于变量中。,2.2 常量与变量,一、变量,变量:其值可以改变的量。,在使用时应为每个变量起一个名字变量名,可以给变量赋值变量值,注意区分变量名和变量值的不同:,变量名:实际上是一个符号地址,在编译时,系统根据变量的类型分配相应的内存单元。,变量值:内存存储单元中存放的数据。,2000H,2001H,2002H,2003H,2004H,int x;,系统给x分配了4个字节的空间,x=3;,3,00000011,00000000,如果在程序中需要用到3这个数据了,那么我们可以直接用x这个变量名称来代表(取得)它。例如:x*6,使用变量值:实际上就是根据变量名所标识的地址找到相应的内存单元,从中取

3、出数据。,变量名,变量值,00000000,00000000,标识符:用来标识变量名、符号常量名、函数名、数组名、文件名等的有效字符序列。,C中对用户自定义标识符的规定:只能由字母、数字、下划线组成;,例如:max min x_1 _a1,第一个字符必须为字母或者下划线;,不能和系统的关键字重名。,在C语言中,标识符有3种:,、和。,关键字,系统预定义的标识符,用户标识符,练习:判断下列标识符的正误:,stu1 a.1 a_2 _xy x?y 1ab int,x,x,x,x,注:1)见名知义,2)先定义,后使用;,题解:#include“stdio.h”void main(),问题2:输入的数

4、据怎样存放?,答:暂存于变量中。,整型变量如何说明?,答:int 变量名称表例如:int a,b;,int x,thun,hun,ten,id;,分析:程序中用到几个变量?,问题3:怎样输入数据?,答:scanf函数,格式:scanf(格式控制,地址列表),注:1、功能:从标准输入设备上读入不同类型的多个数据,并将它们按照指定格式进行转换后,存储于地址列表对应的变量中。,由%和格式字符组成。整型变量的格式字符:d,由若干个变量地址组成。(&变量名),题解:#include“stdio.h”void main()int x,thun,hun,ten,id;,scanf(,);,输入整型数据存放在

5、变量x中,“”,%d,&x,%d,&x,%d,&x,问题4:通过什么运算可以将每一位上的数字取出?,答:算术运算,四、算术运算符和算术表达式,1.基本的算术运算符+(加)-(减)*(乘)/(除)%(模,或求余,%两侧均应为整型数据)。,2.算术表达式:用算术运算符将运算对象连接起来的式子。,例如:,表达式,表达式的值,2+3*2.5,9.5,5/2,2,-5/2,-2,两个整数相除结果仍然为整数,而且向零取整。,5%3,2,(-5)%3,-2,3.优先级,*/%高于+-,4.结合性:左结合性,将下列算术式子用c语言的形式表达出来:,1、3+2xy,3+2*x/y,2、x+5y(8-z)2,X+

6、5*y/(8-2)*(8-2),(),题解:#include“stdio.h”void main()int x,thun,hun,ten,id;scanf(“%d”,thun=hun=ten=id=,x/1000;,x%1000/100;,x%100/10;,x%10;,通过运算分别求得个、十、百、千位上的数字,问题5:怎样将结果输出?,答:printf函数,格式:printf(格式控制,输出项表),注:1、功能:向终端输出若干任意类型的数据,由%和格式字符组成。整型变量的格式字符:d,由若干个变量名或者表达式组成。,题解:#include“stdio.h”void main()int x,t

7、hun,hun,ten,id;scanf(“%d”,分别输出个、十、百、千位上的数字,printf(“%d,%d,%d,%dn”,thun,hun,ten,id);,1)格式控制:双引号括起来的字符串。,例如:printf(“x=%d,y=%dn”,x,y);,格式控制,输出列表,一般包括两种信息:,格式说明:由%和格式字符组成。例如:%c%d%f 等等,普通字符:照原样输出,格式说明,普通字符,printf函数的进一步说明:,若x、y的值分别为3、5则输出:x=3,y=5,题解:#include“stdio.h”void main()int x,thun,hun,ten,id;scanf(“

8、%d”,若输入的数据为1978,则输出1978:1,9,7,8printf格式应怎样规定?,printf(“,);,x,thun,hun,ten,id,%d:%d,%d,%d,%dn,2.3整型数据,一、整型常量,十进制:由正负号以及0到9的数字组成,不能包含小数点。例如:12-36 等等,八进制:以0开头,由0到7的数字组成,例如:014-042 等等,十六进制:以0 x或者0X开头,由0到9及a到f或者A到F的数字组成,例如:0 xb-0 x22 等等,二、整型变量,1、整型变量的存放形式,整型数据在内存中以二进制的补码形式存放。,整型变量,基本整型(4B),短整型(2B),长整型(4B)

9、,有符号 int,无符号 unsigned int,有符号 short(int),无符号 unsigned short(int),有符号 long(int),无符号 unsigned long(int),2、整型变量的分类,练习:1、输入一个分钟数,转换成小时和分钟输出。例如输入200,则输出 200 minutes=3 hours and 20 minutes,2、输入两个整数,分别存放于两个变量中,然后将两个变量的值交换并输出。,课程回顾,1、定义一个整型的变量x,应使用的语句为:。,int x;,2、C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的。最基本的输出函

10、数是,最基本的输入函数是。,若已有定义:int x;则,printf();,scanf();,从键盘输入数据给x应使用的语句为:。,scanf(”%d”,&x);,若x的值为100,要求输出x=100的语句为:。,printf(”x=%d”,x);,例题(sy4.c):输入一个小数,将其保留小数位数后两位(进行四舍五入),并输出结果。例如:输入123.674,则输出123.67 输入123.678,则输出123.68,问题3:怎样输入数据?,问题2:输入的数据怎样存放?,问题4:通过什么运算可以将数据保留至小数位后两位并进行四舍五入?,问题5:怎样将结果保存并输出?,问题1:输入的是什么样的数

11、据?,整型 实型(浮点型)字符型 空类型枚举型,基本类型,本章讨论的基本类型数据,问题1:输入的是什么样的数据?,答:小数,实型数据。,实型数据,实型数据也叫浮点数(floatingpoint number),一、实型常量,表示形式有两种:,1)十进制小数形式:由数字和小数点组成。而且必须有小数点。,例如:1.2 3.45.67 100.等等,2)指数形式:,例如数据 1234.5 可以表示成:,123.45 x 101,123.45e+1,12.345e+2,12.345 x 102,1.2345e+3,1.2345 x 103,12345e-1,12345 x 10-1,规范化的指数形式:

12、小数点前有而且只有一位非零的数字,题解:#include“stdio.h”void main(),问题2:输入的数据怎样存放?,答:暂存于变量中。,实型变量如何说明?,答:float 变量名称表例如:float a,b;,float x,y;,分析:程序中用到几个变量?,二、实型变量,1、存放形式:,按指数形式存放。,一般的实型数据占用4个字节。即32位。,2、实型变量的分类,单精度 float 4B 有效位7位,双精度 double 8B 有效位16位,3、输入、输出格式符,单精度%f,长双精度 long double,问题3:怎样输入数据?,答:scanf函数,格式:scanf(格式控制,

13、地址列表),由%和格式字符组成。实型数据的格式字符:f,由若干个变量地址组成。(&变量名),题解:#include“stdio.h”void main()float x,y;,scanf(,);,输入实型数据存放在变量x中,“”,%f,&x,问题4:通过什么运算可以将小数四舍五入保留到小数位后两位?,答:算术运算,100,+0.5,?,(int),100,y=(int)(x*100+0.5),y=(int)(x*100+0.5)/100,x,y=x*100,y=x*100+0.5,?,.,题解:#include“stdio.h”void main()float x,y;scanf(“%f”,问

14、题4:通过运算以将小数四舍五入保留到小数位后两位?,y=(int)(x*100+0.5)/100.,强制类型转换运算符可以利用强制类型转换运算符将一个表达式转换成所需类型。例如:(double)a(将a转换成double类型)(int)(x+y)(将x+y的值转换成整型)(float)(5%3)(将5%3的值转换成float型)一般形式为(类型名)(表达式)(int)x+y则只将x转换成整型,然后与y相加。,注意:强制类型转换时,原变量类型未变化。书写格式(int)x不要写成int(x),float a=5.1,c;int b;b=a%3;c=a*b;,float a=5.1,c;int b;

15、b=(int)a%3;c=a*b,注意:强制类型转换运算符优先级高于算术运算符优先级,C的值是:,10,10.2,练习:设 x=2.5,a=7,y=4.7 计算下列表达式的值,x+a%3*(x+y)%x/4,(int)(x+y)%(int)x/4,错误的表达式,正确的表达式,返回,=2.5+7%3*(int)(2.5+4.7)%(int)2.5/4,=2.5+1*(int)(7.2)%2/4,=2.5+1*7%2/4,=2.5+1/4,=2.5+0.25,=2.75,0,2.5,问题5:怎样将结果输出?,答:printf函数,格式:printf(格式控制,输出项表),由%和格式字符组成。实型变

16、量的格式字符:f,由若干个变量名或者表达式组成。,题解:#include“stdio.h”void main()float x,y;scanf(“%f”,y=(int)(x*100+0.5)/100.;,printf(“%f”,y);,例如:输入一个球的半径(整数),分别计算球的周长、截面积和体积,并输出。,main(),float l,s,v;,/*对变量的声明*/,scanf(“%d”,/*输入球的半径*/,l=,/*圆的周长*/,s=,/*圆的截面积*/,2*3.1416*r;,3.1416*r*r;,v=,/*球的体积*/,4*3.1416*r*r*r/3;,#define PI 3.

17、1416,PI,PI,PI,3.14,符号常量,printf(“circumference:%f,area:%f,volum:%fn”,l,s,v);,int r;,2.3.3 字符型数据,一、字符常量C的字符常量是用单引号括起来的一个字符。如a,x,d,?,等都是字符常量。C还允许用一种特殊形式的字符常量,就是以一个“”开头的字符序列,称为转义字符。例如,n,它代表一个“换行”符。这是一种“控制字符”,在屏幕上是不能显示的。,转义字符n 回车换行 t 跳至下一个制表位b 退格 r 回车不换行f 换页显示 显示 显示”显示”ddd 1-3位8进制数 xhh 1-2位16进制数,例2.5转义字符

18、的使用。ain()printf(ab ct derftgn);程序中没有设字符变量,用printf函数直接输出双引号内的各个字符。其中t等表示转义字符。,例2.5转义字符的使用。ain()printf(ab ct derftgn);第一个printf函数先在第一行左端开始输出“ab c”然后遇到“t”,跳到下一个“制表位置”输出 de“ab c de”,8位字符,例2.5转义字符的使用。ain()printf(ab ct derftgn);然后遇到“t”,跳到下一个“制表位置”输出de“ab c de”遇到“r”,它代表“回车”(不换行),则返回行首继续输出r后的字符f“fab c de”,例

19、2.5转义字符的使用。ain()printf(ab ct derftgn);又遇到“t”,它代表“跳转下一个制表位”,继续输出字符g,然后遇到n换下行继续输出。“f gde”,8个字符,二、字符变量字符变量的定义形式如下:char变量名表例如:char c1,c2;注意只能放一个字符。占用1个字节用下面语句可以对c1、c2赋值:c1=a;c2=b;,三、字符串常量,a 是什么类型数据?“a”是什么类型数据?注意区分!,字符串常量:以双引号括起来的字符序列,例如:“CHINA”,“a”,“123.45”,c规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定

20、以字符0作为字符串结束标志。0是一个ASCII码值为0的字符,代表一个空操作。,c=a;,定义字符数据:char c;,c=a;,c=“CHINA,c=CHINA,对,错,错,错,a和“a”的区别:,a是字符数据,“a”是字符串数据,一个字符串“CHINA”,实际上在内存中所占的空间不是5个字节,而是6个字节。最后一个字符为0。但在对字符串进行处理和操作时,结束标志0不参与操作。,0字符是系统自动加上的,表示字符串结束标志,四、对字符数据的输入输出格式符为:%c,五、内存中的存储形式及其使用方法,例如:字符a、b的内存形式为:,以该字符ASCII码的二进制形式放到存储单元中。,字符a,ASCI

21、I码:,内存形式:,97,01100001,ASCII码:,内存形式:,98,01100010,字符b,字符A,内存形式:,01000001,内存形式:,01000010,字符B,ASCII码:,65,ASCII码:,66,例2.6向字符变量赋以整数。main()char c1,c2;c1=97;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);,注意:%c表示什么含义%d表示什么含义,“%c”是输出字符时必须使用的格式符。,总结:字符变量可用整型数据赋值 字符数据可输出字符,亦可输出整数,例2.7大小写字母的转换。(字符数据运算)main()char

22、 c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c,%c,c1,c2);,总结:字符数据可以进行算术运算,且以字符的ASCII码参与运算。,程序结果:A,B,例题:输入一个小写字母,转换成其对应的大写字母输出。,题解:#inlcude“stdio.h”void main()/*定义变量*/*输入字母*/*字母转换*/*输出*/,char c1,c2;,scanf(“%c”,c2=,c1-32;,printf(“%c”,c2);,c1=getchar();,putchar(c2);,练习作业:1、字母译码:输入一个小写字母,输出其后的第四个字符。(zuoy

23、e1.c)例如:输入a,输出d;输入v,输出z;输入y,输出c;2、数字字符与数字之间的转换:输入一个数字字符,输出对应的数值。(zuoye2.c)例如:输入字符9,输出数值9,字符数据与整型数据的关系1、字符变量可以整型数据赋值2、字符数据可输出字符,亦可输出整数3、字符数据可以进行算术运算,且以字符的ASCII码参与运算。,下一页,一、getchar(),作用:从终端接收一个字符,只能接受一个字符,以回车键结束输入。,注:该函数为空参,但括号不可以省略。函数的返回值即为从键盘接收的字符。,常用格式:用赋值运算符将该函数的返回值赋值给字符型变量。,例如:char c;c=getchar();

24、,注:getchar(c);,错误的函数使用,补充:字符数据的输入和输出,返回,补充:字符数据的输入和输出,二、putchar(),作用:向终端输出一个字符。,参数可以为常量、变量、表达式或者函数。,例如 main()char c1=a;putchar(c1);putchar(b);putchar(c1-32);,#include“stdio.h”,返回,赋值运算符和赋值表达式,一、赋值运算符“=”,作用:将运算符右边的表达式的值赋值给左边的变量。,注:运算符左边只能为变量,不能为常量或者表达式。,例如:x=5 常量5赋给变量x y=3*9+6 把表达式的值33 赋给变量y 以上都是正确的,5

25、=x x+y=3 都是错误的,二.复合的赋值运算符,赋值运算符与双目运算符连接组成复合赋值运算符。,=与+-*/%连接形成:,+=-=*=/=%=复合赋值运算符例如:a+=5,1、其作用相当于变量与运算符右边的表达式进行相应的运算后,再将结果赋值给变量本身。,1、其作用相当于变量与运算符右边的表达式进行相应的运算后,再将结果赋值给变量本身。上例中:a+=5 就相当于 a=a+5,1、其作用相当于变量与运算符右边的表达式进行相应的运算后,再将结果赋值给变量本身。上例中:a+=5 就相当于 a=a+5,再如:x*=y+8 相当于 x=x*(y+5),2、结合性:右结合,3、赋值表达式的值:被赋值的

26、变量的值。,练习:若有 int a=3;则下列表达式的值为:,1、a*=5+3,等价于:a=a*(5+3)所以a的值为24 表达式的值为24,2、a*=a+=5/3,(1)a+=5/3 相当于 a=a+5/3 所以a的值为,4,(2)a*=4 相当于 a=a*4 所以a的值为,16,逗号运算符与表达式,1、逗号运算符:,,2、逗号表达式:由逗号连接起来的多个式子,形式:表达式,表达式,表达式,注:)自左至右依次求取每个表达式的值,最右边表达式的值即为整个逗号表达式的值。,例如:3+5,4*6,5/3,9%6,整个表达式的值为3,2)在所有的运算符中级别最低。,小结:以上三种运算符的优先级为:,算术运算符*/%+-,赋值运算符=+=-=*=/=%=,逗号运算符,,低,高,练习:int a=0,b=0,c=0;c=(a-=a-5),(a=b,a+3)printf(“%d,%d,%dn”,a,b,c);,结果为:0,0,5,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号