《数据类型运算符及表达式学习教案.pptx》由会员分享,可在线阅读,更多相关《数据类型运算符及表达式学习教案.pptx(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据类型数据类型 运算符及表达式运算符及表达式第一页,共67页。C语言的数据类型 本章讨论的基本本章讨论的基本(jbn)(jbn)类型数据类型数据问题(wnt)1:输入的是什么样的数据?答:整数(zhngsh)。C C数数据据类类型型基本类型基本类型构造类构造类型型指针类型指针类型字符类型字符类型charchar枚举类型枚举类型enumenum整型整型浮点型浮点型单精度型单精度型floatfloat双精度型双精度型doubledouble短整型短整型shortshort长整型长整型longlong整型整型intint数组数组结构体结构体structstruct共用体共用体unionunion空
2、类型空类型voidvoid第1页/共67页第二页,共67页。问题2:输入的数据怎样(znyng)存放?答:暂存于变量(binling)中。2.2 2.2 常量常量(chngling)(chngling)与变量与变量第2页/共67页第三页,共67页。一、变量一、变量(binling)变量变量(binling):其值可以改变的量。:其值可以改变的量。在使用时应为每个变量在使用时应为每个变量(binling)起一个名字起一个名字变变量量(binling)名名 可以给变量赋值可以给变量赋值变量值变量值注意区分变量名和变量值的不同注意区分变量名和变量值的不同:变量名:实际上是一个符号地址,在编译时,系变
3、量名:实际上是一个符号地址,在编译时,系统根据变量的类型分配相应的内存单元。统根据变量的类型分配相应的内存单元。变量值:内存存储单元中存放的数据。变量值:内存存储单元中存放的数据。第3页/共67页第四页,共67页。2000H2001H2002H2003H2004Hint x;系统系统(xtng)给给x分配了分配了4个字节的空个字节的空间间x=3;30000001100000000如果在程序中需要用到如果在程序中需要用到3这个数据了,这个数据了,那么我们可以直接用那么我们可以直接用x这个变量名称这个变量名称(mngchng)来代表(取得)它。例来代表(取得)它。例如:如:x*6使用变量值:实际上
4、就是使用变量值:实际上就是(jish)根据变量名所标识的地根据变量名所标识的地址找到相应的内存单元,从中取址找到相应的内存单元,从中取出数据。出数据。变量名变量值0000000000000000第4页/共67页第五页,共67页。标识符:用来标识变量名、符号常量名、函数标识符:用来标识变量名、符号常量名、函数(hnsh)名、数组名、文件名等的有效字符序名、数组名、文件名等的有效字符序列。列。C中对用户自定义标识符的规定中对用户自定义标识符的规定(gudng):只能由字母、数字、下划线组成;只能由字母、数字、下划线组成;例如例如(lr):max min x_1 _a1 第一个字符必须为字母或者下划
5、线;第一个字符必须为字母或者下划线;不能和系统的关键字重名。不能和系统的关键字重名。在在C语言中,标识符有语言中,标识符有3种:种:、和和 。关键字关键字系统预定义的标识符系统预定义的标识符用户标识符用户标识符第5页/共67页第六页,共67页。练习练习(linx):判断下列标识符的正误:判断下列标识符的正误:stu1 a.1 a_2 _xy x?y 1ab int xxxx注:注:1)见名知义见名知义2)先定义)先定义(dngy),后使用;,后使用;第6页/共67页第七页,共67页。题解题解(tji):#include“stdio.h”void main()问题(wnt)2:输入的数据怎样存放
6、?答:暂存于变量(binling)中。整型变量如何说明?答:int 变量名称表例如:int a,b;int x,thun,hun,ten,id;分析:程序中用到几个变量?第7页/共67页第八页,共67页。问题(wnt)3:怎样输入数据?答:scanf函数(hnsh)格式:格式:scanf(格式控制,地址格式控制,地址(dzh)列表列表)注:注:1、功能:从标准输入设备上读入不同类型的多个数据,并将、功能:从标准输入设备上读入不同类型的多个数据,并将它们按照指定格式进行转换后,存储于地址列表对应的变量它们按照指定格式进行转换后,存储于地址列表对应的变量中。中。由%和格式字符组成。整型变量的格式字
7、符:d由若干个变量地址组成。(&变量名)第8页/共67页第九页,共67页。题解(tji):#include“stdio.h”void main()int x,thun,hun,ten,id;scanf(,);输入整型数据(shj)存放在变量x中“”%d&x%d&x%d&x第9页/共67页第十页,共67页。问题4:通过什么(shn me)运算可以将每一位上的数字取出?答:算术(sunsh)运算第10页/共67页第十一页,共67页。四、四、算术算术(sunsh)(sunsh)运算符和运算符和算术算术(sunsh)(sunsh)表达式表达式1.基本的算术(sunsh)运算符+(加)-(减)*(乘)/
8、(除)%(模,或求余,%两侧均应为整型数据)。2.算术算术(sunsh)表达式:用算术表达式:用算术(sunsh)运算符将运算对象连接起来的式运算符将运算对象连接起来的式子。子。第11页/共67页第十二页,共67页。例如(lr):表达式表达式表达式的值表达式的值2+3*2.59.55/22-5/2-2两个整数相除结果两个整数相除结果(ji gu)仍然为仍然为整数,而且向零取整数,而且向零取整。整。5%3 2(-5)%3 -2n n3.3.优先级优先级*/%/%高于高于 +-+-4.4.结合结合(jih)(jih)性:左结合性:左结合(jih)(jih)性性第12页/共67页第十三页,共67页。
9、将下列算术将下列算术(sunsh)式子用式子用c语言的形式表达出来:语言的形式表达出来:1、3+2xy3+2*x/y2、x+5y(8-z)2X+5*y/(8-2)*(8-2)()第13页/共67页第十四页,共67页。题解(tji):#include“stdio.h”void main()int x,thun,hun,ten,id;scanf(“%d”,&x);thun=hun=ten=id=x/1000;x%1000/100;x%100/10;x%10;通过运算(yn sun)分别求得个、十、百、千位上的数字第14页/共67页第十五页,共67页。问题(wnt)5:怎样将结果输出?答:print
10、f函数(hnsh)格式:格式:printf(格式控制格式控制(kngzh),输出项表,输出项表)注:注:1、功能:向终端输出若干任意类型的数据、功能:向终端输出若干任意类型的数据由%和格式字符组成。整型变量的格式字符:d由若干个变量名或者表达式组成。第15页/共67页第十六页,共67页。题解(tji):#include“stdio.h”void main()int x,thun,hun,ten,id;scanf(“%d”,&x);thun=x/1000;hun=x%1000/100;ten=x%100/10;id=x%10;分别(fnbi)输出个、十、百、千位上的数字printf(“%d,%d
11、,%d,%dn”,thun,hun,ten,id);第16页/共67页第十七页,共67页。1)格式)格式(g shi)控制:双引号括起来的字符串。控制:双引号括起来的字符串。例如例如(lr):printf(“x=%d,y=%dn”,x,y);格式格式(g shi)控制控制输出列表输出列表一般包括两种信息:一般包括两种信息:格式说明:格式说明:由由%和格式字符组成。例如:和格式字符组成。例如:%c%d%f 等等等等普通字符:照原样输出普通字符:照原样输出格式说明普通字符printf函数的进一步说明:函数的进一步说明:若若x、y的值分别为的值分别为3、5则输出:则输出:x=3,y=5第17页/共6
12、7页第十八页,共67页。题解(tji):#include“stdio.h”void main()int x,thun,hun,ten,id;scanf(“%d”,&x);thun=x/1000;hun=x%1000/100;ten=x%100/10;id=x%10;若输入(shr)的数据为1978,则输出1978:1,9,7,8printf格式应怎样规定?printf(“,);x,thun,hun,ten,id%d:%d,%d,%d,%dn第18页/共67页第十九页,共67页。2.32.3整型数据整型数据(shj)(shj)一、整型常量一、整型常量(chngling)十进制:由正负号以及十进制
13、:由正负号以及0到到9的数字组成的数字组成(z chn),不能包含小数点。不能包含小数点。例如:例如:12 -36 等等等等八进制:八进制:以以0开头,由开头,由0到到7的数字组成,的数字组成,例如:例如:014 -042 等等等等十六进制:十六进制:以以0 x或者或者0X开头,开头,由由0到到9及及a到到f或者或者A到到F的数字组成,的数字组成,例如:例如:0 xb -0 x22 等等等等第19页/共67页第二十页,共67页。二、整型变量二、整型变量(binling)1、整型变量的存放、整型变量的存放(cnfng)形式形式整型数据在内存整型数据在内存(ni cn)中以二进制的补码形式存放。中
14、以二进制的补码形式存放。第20页/共67页第二十一页,共67页。整型变量整型变量(binling)基本基本(jbn)整型整型(4B)短整型短整型(2B)长整型长整型(4B)有符号有符号(fho)int无符号无符号 unsigned int 有符号有符号 short(int)无符号无符号 unsigned short(int)有符号有符号 long (int)无符号无符号 unsigned long(int)2 2、整型变量的分类、整型变量的分类第21页/共67页第二十二页,共67页。练习练习:1、输入一个分钟数,转换成小时和分钟输出、输入一个分钟数,转换成小时和分钟输出(shch)。例如输入例
15、如输入200,则输出,则输出(shch)200 minutes=3 hours and 20 minutes2、输入两个整数,分别存放于两个变量、输入两个整数,分别存放于两个变量(binling)中,中,然后将两个变量然后将两个变量(binling)的值交换并输出。的值交换并输出。第22页/共67页第二十三页,共67页。课程课程(kchng)回顾回顾1、定义一个、定义一个(y)整型的变量整型的变量x,应使用的语句为:,应使用的语句为:。int x;2、C语言本身不提供输入输出语句,输入和输出操语言本身不提供输入输出语句,输入和输出操作作(cozu)是由是由C函数库中的函数来实现的。最函数库中的
16、函数来实现的。最基本的输出函数是基本的输出函数是 ,最基本的输入函数是,最基本的输入函数是 。若已有定义:若已有定义:int x;则则printf();scanf();从键盘输入数据给从键盘输入数据给x应使用的语句为:应使用的语句为:。scanf(”%d”,&x);若若x的值为的值为100,要求输出,要求输出x=100的语句为:的语句为:。printf(”x=%d”,x);第23页/共67页第二十四页,共67页。例题例题(lt)(sy4.c):输入一个小数,将其保留小数位数):输入一个小数,将其保留小数位数后两位(进行四舍五入),并输出结果。后两位(进行四舍五入),并输出结果。例如:输入例如:
17、输入123.674,则输出,则输出123.67 输入输入123.678,则输出,则输出123.68问题(wnt)3:怎样输入数据?问题2:输入(shr)的数据怎样存放?问题4:通过什么运算可以将数据保留至小数位后两位并进行四舍五入?问题5:怎样将结果保存并输出?问题1:输入的是什么样的数据?第24页/共67页第二十五页,共67页。整型整型 实型实型(浮点型浮点型)字符字符(z f)(z f)型型 空类型空类型枚举型枚举型基本基本(jbn)(jbn)类型类型本章本章(bn zhn)(bn zhn)讨论的基本类型数据讨论的基本类型数据问题1:输入的是什么样的数据?答:小数,实型数据。第25页/共6
18、7页第二十六页,共67页。2.3.2实型数据实型数据(shj)实型数据实型数据(shj)也叫浮点数(也叫浮点数(floatingpoint number)一、实型常量一、实型常量(chngling)表示形式有两种:表示形式有两种:1)十进制小数形式:由数字和小数点组成。而)十进制小数形式:由数字和小数点组成。而且必须有小数点。且必须有小数点。例如:例如:1.2 3.45 .67 100.等等等等第26页/共67页第二十七页,共67页。2)指数)指数(zhsh)形式:形式:例如数据例如数据 1234.5 可以可以(ky)表示成:表示成:123.45 x 101123.45e+112.345e+2
19、12.345 x 1021.2345e+31.2345 x 10312345e-112345 x 10-1规范化的指数(zhsh)形式:小数点前有而且只有一位非零的数字第27页/共67页第二十八页,共67页。题解题解(tji):#include“stdio.h”void main()问题2:输入的数据怎样(znyng)存放?答:暂存于变量(binling)中。实型变量如何说明?答:float 变量名称表例如:float a,b;float x,y;分析:程序中用到几个变量?第28页/共67页第二十九页,共67页。二、实型变量二、实型变量(binling)1、存放、存放(cnfng)形式:形式:
20、按指数形式按指数形式(xngsh)存放。存放。一般的实型数据占用一般的实型数据占用4个字节。即个字节。即32位。位。第29页/共67页第三十页,共67页。2 2、实型变量、实型变量(binling)(binling)的分类的分类单精度单精度 float 4B 有效有效(yuxio)位位7位位双精度双精度(jn d)double 8B 有效位有效位16位位3、输入、输出格式符、输入、输出格式符单精度单精度%f长双精度长双精度 long double第30页/共67页第三十一页,共67页。问题3:怎样(znyng)输入数据?答:scanf函数(hnsh)格式:格式:scanf(格式控制,地址格式控
21、制,地址(dzh)列表列表)由%和格式字符组成。实型数据的格式字符:f由若干个变量地址组成。(&变量名)第31页/共67页第三十二页,共67页。题解题解(tji):#include“stdio.h”void main()float x,y;scanf(,);输入(shr)实型数据存放在变量x中“”%f&x第32页/共67页第三十三页,共67页。问题4:通过(tnggu)什么运算可以将小数四舍五入保留到小数位后两位?答:算术(sunsh)运算第33页/共67页第三十四页,共67页。100123.68123.6712367.812367.4123.678123.6741236812367+0.51
22、2368.312367.9?(int)100y=(int)(x*100+0.5)y=(int)(x*100+0.5)/100 xy=x*100y=x*100+0.5?.?第34页/共67页第三十五页,共67页。题解题解(tji):#include“stdio.h”void main()float x,y;scanf(“%f”,&x);问题4:通过(tnggu)运算以将小数四舍五入保留到小数位后两位?y=(int)(x*100+0.5)/100.第35页/共67页第三十六页,共67页。2.4.22.4.2强制类型转换运算符强制类型转换运算符可以利用强制类型转换运算符将可以利用强制类型转换运算符将
23、一个表达式转换成所需类型。例一个表达式转换成所需类型。例如:如:(double)a (double)a (将将a a转换成转换成doubledouble类型类型)(int)(x+y)(int)(x+y)(将将x+yx+y的值转换的值转换成整型成整型)(float)(5%3)(float)(5%3)(将将5%35%3的值转换的值转换成成floatfloat型型)一般形式一般形式(xngsh)(xngsh)为为(类型名类型名)(表达式表达式)(int)x+y(int)x+y则只将则只将x x转换成整型,然后与转换成整型,然后与y y相相加。加。第36页/共67页第三十七页,共67页。注意:注意:强
24、制强制(qingzh)(qingzh)类型转换时,原类型转换时,原变量类型未变化。变量类型未变化。书写格式书写格式(int)x(int)x不要写成不要写成intint(x)(x)float a=5.1,c;int b;b=a%3;c=a*b;float a=5.1,c;int b;b=(int)a%3;c=a*b注意:强制(qingzh)类型转换运算符优先级高于算术运算符优先级C的值是:1010.2第37页/共67页第三十八页,共67页。练习练习(linx):设:设 x=2.5,a=7,y=4.7 计算下列表达式的值计算下列表达式的值x+a%3*(x+y)%x/4(int)(x+y)%(int
25、)x/4错误错误(cuw)的的表达式表达式正确正确(zhngqu)的表达式的表达式返回=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.7502.5第38页/共67页第三十九页,共67页。问题5:怎样将结果(ji gu)输出?答:printf函数(hnsh)格式:格式:printf(格式控制格式控制(kngzh),输出项表,输出项表)由%和格式字符组成。实型变量的格式字符:f由若干个变量名或者表达式组成。第39页/共67页第四十页,共67页。题解题解(tji):#incl
26、ude“stdio.h”void main()float x,y;scanf(“%f”,&x);y=(int)(x*100+0.5)/100.;printf(“%f”,y);例如:输入一个球的半径(整数),分别例如:输入一个球的半径(整数),分别(fnbi)计算球的周长、截面积和体积,并输出。计算球的周长、截面积和体积,并输出。第40页/共67页第四十一页,共67页。main()float l,s,v;/*对变量(binling)的声明*/scanf(“%d”,&r);/*输入(shr)球的半径*/l=/*圆的周长(zhu chn)*/s=/*圆的截面积*/2*3.1416*r;3.1416*
27、r*r;v=/*球的体积*/4*3.1416*r*r*r/3;#define PI 3.1416PIPIPI3.14符号常量printf(“circumference:%f,area:%f,volum:%fn”,l,s,v);int r;第41页/共67页第四十二页,共67页。2.3.3 2.3.3 2.3.3 2.3.3 字符字符字符字符(z f)(z f)(z f)(z f)型数据型数据型数据型数据一、一、字符常量字符常量C C的字符常量是用单引号括起来的的字符常量是用单引号括起来的一个字符。如一个字符。如aa,xx,dd,?,等都是字符等都是字符常量。常量。C C还允许用一种特殊形式的字
28、符常还允许用一种特殊形式的字符常量,就是量,就是(jish)(jish)以一个以一个“”“”开开头的字符序列头的字符序列,称为转义字符。称为转义字符。例如,例如,n n,它代表一个,它代表一个“换换行行”符。这是一种符。这是一种“控制字符控制字符”,在屏幕上是不能显示的。,在屏幕上是不能显示的。第42页/共67页第四十三页,共67页。转义字符转义字符n n 回车换行回车换行 t t 跳至下跳至下一个制表一个制表(zh bio)(zh bio)位位b b 退格退格 r r 回车不回车不换行换行f f 换页显示换页显示 显示显示 显示显示 ”显显示示”ddd 1-3ddd 1-3位位8 8进制数进
29、制数 xhh 1-2 xhh 1-2位位1616进制数进制数第43页/共67页第四十四页,共67页。二、二、字符变量字符变量字符变量的定义形式字符变量的定义形式(xngsh)(xngsh)如下:如下:charchar变量名表变量名表例如:例如:char c1,c2;char c1,c2;注意只能放一个字符。占用注意只能放一个字符。占用1 1个个字节字节用下面语句可以对用下面语句可以对c1c1、c2c2赋值:赋值:c1=ac1=a;c2=bc2=b;第48页/共67页第四十九页,共67页。三、三、三、三、字符串常量字符串常量字符串常量字符串常量(chngling)(chngling)(chngl
30、ing)(chngling)a a 是什么类型数据是什么类型数据(shj)(shj)?“a”“a”是什么类型数据是什么类型数据(shj)(shj)?注意区分!注意区分!字符串常量:以双引号括起来字符串常量:以双引号括起来(q li)(q li)的字符序列的字符序列例如:例如:“CHINACHINA”,“a a”,“123.45 123.45”第49页/共67页第五十页,共67页。c c c c规定:在每一个字符串的结尾加一个规定:在每一个字符串的结尾加一个规定:在每一个字符串的结尾加一个规定:在每一个字符串的结尾加一个“字符串结束标字符串结束标字符串结束标字符串结束标志志志志”,以便,以便,以
31、便,以便(ybin)(ybin)(ybin)(ybin)系统据此判断字符串是否结束。系统据此判断字符串是否结束。系统据此判断字符串是否结束。系统据此判断字符串是否结束。C C C C规定以字符规定以字符规定以字符规定以字符0000作为字符串结束标志。作为字符串结束标志。作为字符串结束标志。作为字符串结束标志。0000是一是一是一是一个个个个ASCIIASCIIASCIIASCII码值为码值为码值为码值为0 0 0 0的字符,代表一个空操作。的字符,代表一个空操作。的字符,代表一个空操作。的字符,代表一个空操作。c=a;c=a;定义字符定义字符(z f)(z f)数据:数据:char c;cha
32、r c;c=ac=a;c=c=“CHINACHINAc=c=CHINACHINA 对对错错错错错错aa和和“a”“a”的区别的区别(qbi)(qbi):a a 是字符数据,是字符数据,“a a”是字符串数据是字符串数据第50页/共67页第五十一页,共67页。C H I N A 0C H I N A 0一个字符串一个字符串“CHINA”“CHINA”,实际上在内存中所占的,实际上在内存中所占的空间不是空间不是5 5个字节,而是个字节,而是6 6个字节。最后一个字个字节。最后一个字符为符为00。但在对字符串进行处理和操作时,。但在对字符串进行处理和操作时,结束标志结束标志(biozh)0(bioz
33、h)0不参与操作。不参与操作。00字符字符(z f)(z f)是系统自动加上的,表示字是系统自动加上的,表示字符符(z f)(z f)串结束标志串结束标志第51页/共67页第五十二页,共67页。四、对字符四、对字符(z f)数据的输入输出格式符为:数据的输入输出格式符为:%c第52页/共67页第五十三页,共67页。五、五、内存内存(ni cn)(ni cn)中的存储形中的存储形式及其使用方法式及其使用方法例如:字符例如:字符a a、bb的内存的内存(ni cn)(ni cn)形式为:形式为:以该字符以该字符ASCIIASCII码的二进制形式码的二进制形式(xngsh)(xngsh)放到存储单元
34、中。放到存储单元中。字符字符a aASCIIASCII码:码:内存形式:内存形式:97970110000101100001ASCIIASCII码:码:内存形式:内存形式:98980110001001100010字符字符b b字符字符A A内存形式:内存形式:0100000101000001内存形式:内存形式:0100001001000010字符字符B BASCIIASCII码:码:6565ASCIIASCII码:码:6666第53页/共67页第五十四页,共67页。例例2.62.6向字符变量向字符变量(binling)(binling)赋以赋以整数。整数。main()main()char c1
35、char c1,c2;c2;c1=97;c2=98;c1=97;c2=98;printf(%c%cn printf(%c%cn,c1c1,c2);c2);printf(%d%dn printf(%d%dn,c1c1,c2);c2);c1=c1=a a;c2=c2=b b;输出字符输出字符输出整数输出整数定义字符变量定义字符变量注意:注意:%c%c表示表示(biosh)(biosh)什什么含义么含义%d%d表示表示(biosh)(biosh)什什么含义么含义“%c”“%c”是输出字符是输出字符(z(z f)f)时必须使用的格式符。时必须使用的格式符。第54页/共67页第五十五页,共67页。总结:
36、字符变量总结:字符变量(binling)可用整型数据赋值可用整型数据赋值 字符数据可输出字符,亦可输出整数字符数据可输出字符,亦可输出整数第55页/共67页第五十六页,共67页。例例例例2.72.72.72.7大小写字母的转换。(字符数据大小写字母的转换。(字符数据大小写字母的转换。(字符数据大小写字母的转换。(字符数据(shj)(shj)(shj)(shj)运算)运算)运算)运算)main()main()main()main()char c1 char c1 char c1 char c1,c2c2c2c2;c1=a;c2=b;c1=a;c2=b;c1=a;c2=b;c1=a;c2=b;c1
37、=c1-32;c1=c1-32;c1=c1-32;c1=c1-32;c2=c2-32;c2=c2-32;c2=c2-32;c2=c2-32;printf(“%c printf(“%c printf(“%c printf(“%c,%c%c%c%c,c1c1c1c1,c2)c2)c2)c2);总结:字符总结:字符(z f)数据可以进行算术运算,且数据可以进行算术运算,且以字符以字符(z f)的的ASCII码参与运算。码参与运算。程序程序(chngx)结果:结果:A,B第56页/共67页第五十七页,共67页。例题:输入一个小写字母,转换成其对应例题:输入一个小写字母,转换成其对应(duyng)的大写
38、字的大写字母输出。母输出。题解:题解:#inlcude“stdio.h”void main()/*定义变量定义变量*/*输入输入(shr)字母字母*/*字母转换字母转换*/*输出输出*/char c1,c2;scanf(“%c”,&c1);c2=c1-32;printf(“%c”,c2);c1=getchar();putchar(c2);第57页/共67页第五十八页,共67页。练习作业:练习作业:1、字母译码:输入一个小写字母,输出其后的、字母译码:输入一个小写字母,输出其后的第四个字符。第四个字符。(zuoye1.c)例如例如(lr):输入:输入a,输出,输出d;输入输入v,输出,输出z;输
39、入输入y,输出,输出c;2、数字字符与数字之间的转换:输入一个数字、数字字符与数字之间的转换:输入一个数字字符,输出对应的数值。字符,输出对应的数值。(zuoye2.c)例如例如(lr):输入字符:输入字符9,输出数值输出数值9第58页/共67页第五十九页,共67页。字符数据与整型数据的关系字符数据与整型数据的关系1 1、字符变量可以整型数据赋值、字符变量可以整型数据赋值2 2、字符数据可输出、字符数据可输出(shch)(shch)字符,字符,亦可输出亦可输出(shch)(shch)整数整数3 3、字符数据可以进行算术运算,、字符数据可以进行算术运算,且以字符的且以字符的ASCIIASCII码
40、参与运算。码参与运算。下一页第59页/共67页第六十页,共67页。一、一、getchar()作用:从终端接收一个字符作用:从终端接收一个字符(z f),只能接受一个字符,只能接受一个字符(z f),以回车键结束输入。,以回车键结束输入。注:该函数为空参,但括号不可以省略。函数的返注:该函数为空参,但括号不可以省略。函数的返回值即为从键盘回值即为从键盘(jinpn)接收的字符。接收的字符。常用格式:用赋值运算符将该函数的返回值赋值给常用格式:用赋值运算符将该函数的返回值赋值给字符字符(z f)型变量。型变量。例如:例如:char c;c=getchar();注:注:getchar(c);错误的函
41、数使用错误的函数使用补充:字符数据的输入和输出补充:字符数据的输入和输出返回第60页/共67页第六十一页,共67页。补充:字符数据的输入补充:字符数据的输入(shr)和输出和输出二、二、putchar()作用:向终端作用:向终端(zhn dun)输出一个字符。输出一个字符。参数可以为常量、变量参数可以为常量、变量(binling)、表达式或者函数。、表达式或者函数。例如例如 main()char c1=a;putchar(c1);putchar(b);putchar(c1-32););#include“stdio.h”返回第61页/共67页第六十二页,共67页。2.4.32.4.32.4.32
42、.4.3赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式一、赋值运算符一、赋值运算符 “=”作用作用(zuyng):将运算符右边的表达式的值赋值给左边的变量。:将运算符右边的表达式的值赋值给左边的变量。注:运算符左边只能注:运算符左边只能(zh nn)为变量,不能为常量或者表达为变量,不能为常量或者表达式。式。例如:例如:x=5 常量常量5赋给变量赋给变量x y=3*9+6 把表达式的值把表达式的值33 赋给变量赋给变量y 以上以上(yshng)都是正确的都是正确的 5=x x+y=3 都是错误的都是错误的第62页/共67页第六十三页,共67页。二二.复
43、合复合(fh)(fh)的赋值运算符的赋值运算符赋值运算符与双目运算符连接组成(z chn)复合赋值运算符。=与+-*/%连接(linji)形成:+=-=*=/=%=复合赋值运算符例如:a+=51、其作用相当于变量与运算符右边的表达式进行相应的运算后,再将结果赋值给变量本身。1、其作用相当于变量与运算符右边的表达式进行相应的运算后,再将结果赋值给变量本身。上例中:a+=5 就相当于 a=a+51、其作用相当于变量与运算符右边的表达式进行相应的运算后,再将结果赋值给变量本身。上例中:a+=5 就相当于 a=a+5再如:x*=y+8 相当于 x=x*(y+5)2、结合性:右结合3、赋值表达式的值:被
44、赋值的变量的值。第63页/共67页第六十四页,共67页。nn练习练习(linx)(linx):若有:若有 int a=3;int a=3;则下列表达式的值为:则下列表达式的值为:nn1 1、a*=5+3a*=5+3nn等价等价(dngji)(dngji)于:于:a=a*(5+3)a=a*(5+3)所以所以a a的值为的值为24 24 表达式的值为表达式的值为2424nn2 2、a*=a+=5/3a*=a+=5/3nn(1)a+=5/3(1)a+=5/3 相当于相当于 a=a+5/3 a=a+5/3 所以所以(suy)a(suy)a的值为的值为4nn(2)a*=4(2)a*=4 相当于相当于 a
45、=a*4 a=a*4 所以所以a a的值为的值为16第64页/共67页第六十五页,共67页。2.4.52.4.52.4.52.4.5逗号逗号逗号逗号(duho)(duho)(duho)(duho)运算符与表达式运算符与表达式运算符与表达式运算符与表达式1、逗号、逗号(duho)运算符:运算符:,2、逗号表达式:由逗号连接起来的多个、逗号表达式:由逗号连接起来的多个(du)式子式子形式:表达式,表达式,表达式形式:表达式,表达式,表达式注:)自左至右依次求取每个表达式的值,最右边表达式的值即注:)自左至右依次求取每个表达式的值,最右边表达式的值即为整个逗号表达式的值。为整个逗号表达式的值。例如:例如:3+5,4*6,5/3,9%6整个表达式的值为整个表达式的值为32)在所有的运算符中级别最低。第65页/共67页第六十六页,共67页。小结小结(xioji):以上三种运算符的优先级为:以上三种运算符的优先级为:算术算术(sunsh)运算符运算符*/%+-赋值运算符赋值运算符=+=-=*=/=%=逗号逗号(duho)运算符运算符,低低高高练习:练习: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第66页/共67页第六十七页,共67页。
限制150内