数据类型及其输入输出(共48张PPT)精选_第1页
数据类型及其输入输出(共48张PPT)精选_第2页
数据类型及其输入输出(共48张PPT)精选_第3页
数据类型及其输入输出(共48张PPT)精选_第4页
数据类型及其输入输出(共48张PPT)精选_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章数据类型及其输入输出第一页,共48页。本节重点(zhòngdiǎn)数据类型常量(chángliàng)与变量第二页,共48页。引入——数据类型1、数据是程序处理的基本对象。2、程序中数据分为(fēnwéi)变量或常量。3、每个变量或常量都有确定的数据类型。4、每种数据类型都有确定的存储长度、取值范围及允许的操作。5、程序中所有数据必须指定其数据类型。第三页,共48页。常量(chángliàng)常量:是指常数(chángshù)或其值不能被改变的量。分为直接常量和符号常量1、直接常量:如:12,123.5,1.23E7,‘a’,‘8’,‘A’,“hello”,“a”第四页,共48页。常量(chángliàng)的类型1、整型常量(chángliàng)有三种表示方法:十进制整数123,-784

八进制整数0123=

十六进制整数

)83()123(108=)291()123(12301016==x常量分为(fēnwéi):整型常量、实型常量、字符常量、字符串常量第五页,共48页。i=3+5%2;第三十八页,共48页。补充:课本21页转义字符的使用(shǐyòng)及其含义。常量(chángliàng)的类型(单精度)float变量名

(双精度)double变量名②双目(二元)运算符a+bd/e先计算表达式1,再计算表达式2,再计算表达式3,…,再计算表达1、数据是程序处理的基本对象。①算术(suànshù)表达式,如a+b*2.正确:a+++b一、系统自动进行的类型转化{错误:++不是双目运算符例如:字符变量的赋值及运算第二十七页,共48页。2、实型常量,也称浮点数。

两种表示方法:(1)十进制小数形式由数字和小数点组成(必须有小数点)1.123,3.1415;(2)指数(zhǐshù)形式123e5,123E5都表示123×105但是1.23E7为规范化的指数(zhǐshù)形式。输出指数(zhǐshù)形式的数据时,按规范化的指数(zhǐshù)形式输出。第六页,共48页。3、字符常量(Characterconstants)由一对(yīduì)单引号括起的单个字符,称为字符常量。如:‘a’,‘9’,‘+’

在内存中,字符(zìfú)数据并不是把字符(zìfú)本身放到内存单元中,而是将该字符(zìfú)的相应ASCII码放到存储单元中。

第七页,共48页。A6501000001a9701100001ASCII二进制如:有两个(liǎnɡɡè)字符型数据‘A’和‘a’第八页,共48页。4、字符串常量(StringLiterals)由一对双引号括起的字符序列称为字符串常量,例如:“Howdoyoudo?”“china”C规定(guīdìng)以字符‘\0’作为字符串结束的标志。在内存中所占字节数为:实际字符个数+1如字符串常量“china”在内存中存储形式如下:chin\0a第九页,共48页。数据类型基本数据类型构造类型其它类型整型int字符型char实型枚举类型单精度型float双精度型double数组结构体共用体指针类型空类型

第十页,共48页。变量(biànliàng)1、定义:其值可以改变的量称为(chēnɡwéi)变量。变量必须先定义后使用。2、变量的定义、赋值(初始化)<类型><变量名表>;(中间记得留空格)intsum;chara,b;floatr,s,l;doublef,n,c;

第十一页,共48页。3、对变量名的要求(yāoqiú)。变量名要做到“见名知意”,不要使用简单的字符作变量名,以增加程序的可读性。变量名一般用小写字母表示,长度与所用系统有关(<8,<32)。一般建议不大于8个字符。变量的命名规则:1、只能由字母、数字、下划线三种字符组成2、第一个字符必须为字母或下划线判断一下:sum,max,_class,sum_a234sum¥123.4a>c合法(héfǎ)标识符非法(fēifǎ)标识符第十二页,共48页。变量(biànliàng)的类型变量分为:整型变量、实型变量、字符型变量1、整型变量基本类型:用int标识(biāozhì),在内存中占2个字节。例如:inta,b;intf;修饰符unsigned(无符号数)signed(有符号数)

第十三页,共48页。2、实型变量类型(内存(nèicún)中字节数)有效数字float(4字节)6~7位

double(8字节)15~16位

longdouble(16字节)18~19位定义方法:(单精度)float变量名

(双精度)double变量名例如(lìrú):floatarea;doublet;第十四页,共48页。3、字符型变量①定义方法:char变量名列表(lièbiǎo)charc1,c2,c3;②取值范围--ASCII码字符集中的字符。charc1,c2;

c1=‘e’;

c2=3;例如:字符变量的赋值及运算注意:区别(qūbié):‘a’“a”第十五页,共48页。定义了变量后,变量并没有值,需要给部分变量赋值。赋值的方法:(1)通过赋值号=例如:①inti;i=9;/*先定义整型变量i,然后(ránhòu)赋初值9*/②floatr=1.5;/*定义实型变量r的同时,赋其初值1.5*/③charanswer=‘y’;④也可以使被定义的变量的一部分赋初值。如inta,b,c=5;表示定义a,b,c为整型变量,并且对c进行初始化,使c值为5。注意:如对几个变量同时赋初值为5,应写成inta=5,b=5,c=5;或者inta,b,c;a=b=c=5;不能写成:inta=b=c=5;变量(biànliàng)赋值第十六页,共48页。(2)通过(tōngguò)输入函数scanf()格式:scanf(“格式控制字符串”,输入项列表);功能:将输入屏幕上的数一一对应的赋给输入项列表中的变量。例1:#include<stdio.h>main(){inta,b,c,d;floatt;charch;scanf("%d%d",&a,&b);scanf("%d%d",&c,&d);scanf("%f,%c",&t,&ch);}用VC演示第十七页,共48页。#include<stdio.h>main(){inta,b;charch1,ch2;floatf,r;scanf(“%d%d”,&a,&b);scanf(“%c%c”,&ch1,&ch2);scanf(“%f,%f”,&f,&r);}输入(shūrù)时:125785ab,例2:第十八页,共48页。数据(shùjù)输出1、printf()函数格式(géshi):printf(“格式(géshi)控制字符串”,输出项列表);功能:将输出项按给定的控制格式(géshi)输出到输出屏幕上。第十九页,共48页。#include<stdio.h>main(){charch=’a’;inta=65;floatx=123.456;printf(”%c,%d,%3c\n”,ch,ch,ch);printf(”%c%d%3d\n”,a,a,a);printf(”%f,%-7.2f,%10.4f\n”,x,x,x);}输出(shūchū)结果是:a,97,__aA65_65例1:第二十页,共48页。本节重点(zhòngdiǎn)掌握运算符的使用确定(quèdìng)表达式的类型、值不同类型的数据的转换第二十一页,共48页。运算符一、运算符:能够完成某种操作(运算)的符号(fúhào)。二、根据运算符的运算对象(操作数)的多少,运算符可分为:①单目(一元)运算符i++--n②双目(二元)运算符a+bd/e③三目(三元)运算符x>y?x+3:y*9(条件运算符)第二十二页,共48页。优先级运算符操作数结合性1()[]->.左右2!~-++--&*sizeof1右左3*/%2左右4+-2左右5<<>>2左右6<<=>=>2左右7==!=2左右8&2左右9^2左右10|2左右11&&2左右12||2左右13?:3右左14=*=/=+=……<<=>>=2右左15,2左右第二十三页,共48页。算术(suànshù)运算符1、分类双目运算符+加-减*乘/除%求余单目运算符-负号运算++自增--自减双目运算符:“/”如果是两个整型数相除,取整;如有一个为实数时,其意义就是实数除,结果为double型。5/2=25/2.0=2.5

“%”取余数,只能对整数(zhěngshù)取余数,不能对浮点数取余数。运算结果的符号与左操作数相同。5%2=1-35%8=-335%-8=3第二十四页,共48页。2、自增操作符和自减操作符格式(géshi):++i,i++--i,i--作用:是使自变量i的值加1或减1,相当于i=i+1或i=i-1。前置自增或前置自减操作:表示先修改操作数使之增1或减1,然后取修改后的操作数的值作为表达式的值。后置自增或后置自减操作:表示在表达式中先取操作数的值,然后再将操作数值增1或减1。例如:inti=3,j;j=i++;j的值为3(首先将i的原值赋给j,然后i自身再加1)j=++i;j的值为4(i自身先加1,然后再将加1后的值赋给j)第二十五页,共48页。②取值范围--ASCII码字符集中的字符。但是1.1、数据是程序处理的基本对象。一、系统自动进行的类型转化printf(“%d”,j);printf(”%f,%-7.c=a+++b;强制类型转换在将高类型转换为低类型时,数据精度受损,是一种不安全(ānquán)的转换。如有一个为实数时,其意义就是实数除,结果为double型。②应写成(a+b)/(c+d)*e+f。3、每个变量或常量都有确定的数据类型。intx;第三十四页,共48页。scanf(″%d″,&x);<、>、<=、>=、==、!=5%2=1-35%8=-335%-8=324+(5>3)c=7>8main(){inti,j,k;i=3;j=i++;k=++i;printf(“i=%d,j=%d,k=%d\n”,i,j,k);}范例(fànlì):输出(shūchū)结果:i=5,j=3,k=5第二十六页,共48页。3、在表达式中如果有2个以上的“+”或“-”连写在一起,则编译器首先识别前面两个(liǎnɡɡè)+或-为自增或自减操作符。例如:在使用自增或自减运算符时注意如下(rúxià)几个问题:1、自加或自减运算只能(zhīnénɡ)用于变量,不能用于常量或表达式;错误:25++(i+j)++2、-i++,只能(zhīnénɡ)理解为-(i++)。因为(-i)++为表达式,表达式是不能自加自减的。i=3;

j=-i++;printf(“%d”,j);输出结果应为-3,而不是是-4。inta=1,b=5,c;c=a+b;c=a+++b;c=a++b;正确:c=6错误:++不是双目运算符正确:a+++b第二十七页,共48页。赋值运算符和赋值表达式1、赋值运算符:=使用方法:变量名=表达式;赋值运算时先计算右边表达式的值,然后将右边表达式的值赋给左边(zuǒbian)变量,并以此值作为整个赋值表达式的值。(1)赋值运算的优先级为第14级,次低。如:inti,j;j=6;i=3+5%2;/*先计算3+5%2,得到4,然后将4赋给i*/。

第二十八页,共48页。(2)理解以下(yǐxià)两赋值表达式的含义:y=5;n=5;x=y;n=n+1;第二十九页,共48页。2、复合赋值运算算术(suànshù)复合赋值运算符:+=、-=、*=、/=、%=位复合赋值运算符:&=、|=、^=、>>=、<<=一般形式:变量☆=表达式;等价于:变量=变量☆表达式;☆代表任一双目算术(suànshù)运算符或位运算符。复合赋值运算先进行所带运算,再进行赋值运算。复合赋值运算的优先级同赋值运算。第三十页,共48页。例如(lìrú):(1)inta=3;a+=2;等价于a=a+2(2)floatx=1.2,y=2.1;y*=x+3.4;等价于y=y*(x+3.4)(3)inta=1,b=2;b/=a+=1;等价于b=b/(a=a+1)右结合第三十一页,共48页。关系(guānxì)运算符和关系(guānxì)表达式一、关系运算符有:<、>、<=、>=、==、!=<、<=、>、>=的优先级相同(xiānɡtónɡ),==、!=的优先级相同(xiānɡtónɡ),前者的优先级高于后者。二、关系表达式的运算结果是逻辑量24+(5>3)c=7>8三、自左向右结合。假设a=5,b=3,c=2表达式a>b>c的值为0四、操作数也可以是字符型数据如:‘a’>’f’第三十二页,共48页。条件(tiáojiàn)运算符和条件(tiáojiàn)表达式一、条件运算符的语法形式(xíngshì):<表达式1>?<表达式2>:<表达式3>解释为:<条件表达式>?<条件为真时的表达式>:<条件为假的表达式>例如:x=a<b?a:b;//将a,b中较小数赋x二、结合方向“自右向左”a>b?a:c>d?c:d相当于a>b?a:(c>d?c:d)第三十三页,共48页。#include<stdio.h>main(){intx;scanf(″%d″,&x);x>0?printf(″%s″,″正数(zhèngshù)″):printf(″%s″,″负数″);}例:判断整数(zhěngshù)的正负。第三十四页,共48页。逗号(dòuhào)运算符和逗号(dòuhào)表达式逗号运算的优先级最低,结合自左向右。逗号表达式的更一般使用形式为:表达式1,表达式2,表达式3,……,表达式n;先计算表达式1,再计算表达式2,再计算表达式3,…,再计算表达式n的值,并以此(yǐcǐ)作为整个表达式的值。如:表达式x=a=3,6*x,6*a,a+x的值为6。逗号运算又称顺序求值运算。第三十五页,共48页。main(){inti,j,k;i=1,j=2,k=3;printf(“%d%d%d\n”,i,j,k);}main(){inti,j,k;i=1;j=2;k=3;printf(“%d%d%d\n”,i,j,k);}并不是任何地方出现的逗号都是逗号运算符,例如(lìrú):printf(“%d%d%d\n”,i,j,k);(是参数分隔符)第三十六页,共48页。求字节数运算(yùnsuàn)运算符:sizeof(数据类型标识符)或sizeof(表达式)求字节(zìjié)数运算是单目运算,操作数可以是类型名,也可以是变量、表达式,用以求得相应类型或数据所占的字节(zìjié)数。此运算的优先级与取地址运算优先级相同。例如:sizeof(float)值为4,单精度类型占4个字节(zìjié)sizeof(2*3)值为2,算术表达式2*3是int型第三十七页,共48页。数据(shùjù)的类型转换一、系统自动进行的类型转化由系统自动完成类型转换,转换的规则如下:intunsignedlongdouble↑↑short,charfloat纵向(zònɡxiànɡ)箭头方向表示必定要进行的转换,short型、char型数据必定先转换成int型,float型数据必定先转换成double型,再进行运算。横向箭头方向表示运算对象为不同类型时的转换方向。由低向高转换,int型最低,double型最高。第三十八页,共48页。二、赋值时的类型转换(1)将实型数据赋给整型变量时,舍弃实数的小数部分。如:inti;i=1.23;/*结果i的值为1*/(2)将整型数据赋给单、双精度(jīnɡdù)型变量时,数值大小不变,但以浮点形式存储到变量中。

第三十九页,共48页。三、强制类型转换强制类型转换通过类型转换运算进行。格式:(类型名)(表达式)功能:将表达式的类型强制转换成类型名指定的类型。如:floatx=5.2,y=6.3;intz;z=(int)(x+y);(int)(x+y)将表达式x+y的值强制转换成整型强制类型转换在将高类型转换为低类型时,数据精度受损,是一种不安全(ānquán)的转换。强制类型转换是暂时性的,一次性的,并不永久改变所转换表达式的类型。如:inta=7;doubleb;b=(double)a+5;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论