版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章数据类型及其输入输出第1页,课件共46页,创作于2023年2月本节重点数据类型常量与变量第2页,课件共46页,创作于2023年2月引入——数据类型1、数据是程序处理的基本对象。2、程序中数据分为变量或常量。3、每个变量或常量都有确定的数据类型。4、每种数据类型都有确定的存储长度、取值范围及允许的操作。5、程序中所有数据必须指定其数据类型。第3页,课件共46页,创作于2023年2月常量常量:是指常数或其值不能被改变的量。
分为直接常量和符号常量1、直接常量:如:12,123.5,1.23E7,‘a’,‘8’,‘A’,“hello”,“a”第4页,课件共46页,创作于2023年2月常量的类型1、整型常量有三种表示方法:十进制整数123,-784
八进制整数0123=
十六进制整数
)83()123(108=)291()123(12301016==x常量分为:整型常量、实型常量、字符常量、字符串常量第5页,课件共46页,创作于2023年2月2、实型常量,也称浮点数。
两种表示方法:(1)十进制小数形式由数字和小数点组成(必须有小数点)1.123,3.1415;(2)指数形式123e5,123E5都表示123×105但是1.23E7为规范化的指数形式。输出指数形式的数据时,按规范化的指数形式输出。第6页,课件共46页,创作于2023年2月3、字符常量(Characterconstants)由一对单引号括起的单个字符,称为字符常量。如:‘a’,‘9’,‘+’
在内存中,字符数据并不是把字符本身放到内存单元中,而是将该字符的相应ASCII码放到存储单元中。
第7页,课件共46页,创作于2023年2月A6501000001a9701100001ASCII二进制如:有两个字符型数据‘A’和‘a’第8页,课件共46页,创作于2023年2月4、字符串常量(StringLiterals)由一对双引号括起的字符序列称为字符串常量,例如:“Howdoyoudo?”“china”C规定以字符‘\0’作为字符串结束的标志。在内存中所占字节数为:实际字符个数+1如字符串常量“china”在内存中存储形式如下:chin\0a第9页,课件共46页,创作于2023年2月数据类型基本数据类型构造类型其它类型整型int字符型char实型枚举类型单精度型float双精度型double数组结构体共用体指针类型空类型
第10页,课件共46页,创作于2023年2月变量1、定义:其值可以改变的量称为变量。变量必须先定义后使用。2、变量的定义、赋值(初始化)
<类型>
<变量名表>;(中间记得留空格)intsum;chara,b;floatr,s,l;doublef,n,c;
第11页,课件共46页,创作于2023年2月3、对变量名的要求。变量名要做到“见名知意”,不要使用简单的字符作变量名,以增加程序的可读性。变量名一般用小写字母表示,长度与所用系统有关(<8,<32)。一般建议不大于8个字符。变量的命名规则:
1、只能由字母、数字、下划线三种字符组成2、第一个字符必须为字母或下划线判断一下:sum,max,_class,sum_a234sum¥123.4a>c
合法标识符非法标识符第12页,课件共46页,创作于2023年2月变量的类型变量分为:整型变量、实型变量、字符型变量1、整型变量基本类型:用int标识,在内存中占2个字节。例如:inta,b;intf;修饰符unsigned(无符号数)
signed(有符号数)
第13页,课件共46页,创作于2023年2月2、实型变量类型(内存中字节数)有效数字float(4字节)6~7位
double(8字节)15~16位
longdouble(16字节)18~19位定义方法:(单精度)float变量名
(双精度)double变量名例如:floatarea;doublet;第14页,课件共46页,创作于2023年2月3、字符型变量①定义方法:char变量名列表charc1,c2,c3;②取值范围--ASCII码字符集中的字符。charc1,c2;
c1=‘e’;
c2=3;例如:字符变量的赋值及运算注意:区别:‘a’“a”第15页,课件共46页,创作于2023年2月定义了变量后,变量并没有值,需要给部分变量赋值。赋值的方法:(1)通过赋值号=例如:①inti;i=9;/*先定义整型变量i,然后赋初值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;变量赋值第16页,课件共46页,创作于2023年2月(2)通过输入函数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演示第17页,课件共46页,创作于2023年2月#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);}输入时:125785
ab23.456,612.97例2:第18页,课件共46页,创作于2023年2月数据输出1、printf()函数格式:printf(“格式控制字符串”,输出项列表);功能:将输出项按给定的控制格式输出到输出屏幕上。第19页,课件共46页,创作于2023年2月#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);}输出结果是:
a,97,__aA65_65123.456001,123.46_,__123.4560例1:第20页,课件共46页,创作于2023年2月本节重点掌握运算符的使用确定表达式的类型、值不同类型的数据的转换第21页,课件共46页,创作于2023年2月运算符一、运算符:能够完成某种操作(运算)的符号。
二、根据运算符的运算对象(操作数)的多少,运算符可分为:①单目(一元)运算符i++
--n②双目(二元)运算符a+bd/e③三目(三元)运算符x>y?x+3:y*9(条件运算符)第22页,课件共46页,创作于2023年2月优先级运算符操作数结合性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左
右第23页,课件共46页,创作于2023年2月算术运算符
1、分类双目运算符+加-减*乘/除%求余单目运算符-负号运算++自增--自减双目运算符:
“/”如果是两个整型数相除,取整;如有一个为实数时,其意义就是实数除,结果为double型。5/2=25/2.0=2.5
“%”取余数,只能对整数取余数,不能对浮点数取余数。运算结果的符号与左操作数相同。5%2=1-35%8=-335%-8=3第24页,课件共46页,创作于2023年2月2、自增操作符和自减操作符格式:++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)
第25页,课件共46页,创作于2023年2月main(){inti,j,k;i=3;j=i++;k=++i;printf(“i=%d,j=%d,k=%d\n”,i,j,k);}范例:输出结果:i=5,j=3,k=5第26页,课件共46页,创作于2023年2月3、在表达式中如果有2个以上的“+”或“-”连写在一起,则编译器首先识别前面两个+或-为自增或自减操作符。例如:在使用自增或自减运算符时注意如下几个问题:1、自加或自减运算只能用于变量,不能用于常量或表达式;错误:25++(i+j)++2、-i++,只能理解为-(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第27页,课件共46页,创作于2023年2月赋值运算符和赋值表达式1、赋值运算符:=
使用方法:变量名=表达式;赋值运算时先计算右边表达式的值,然后将右边表达式的值赋给左边变量,并以此值作为整个赋值表达式的值。(1)赋值运算的优先级为第14级,次低。如:inti,j;j=6;i=3+5%2;/*先计算3+5%2,得到4,然后将4赋给i*/。
第28页,课件共46页,创作于2023年2月(2)理解以下两赋值表达式的含义:y=5;
n=5;x=y;
n=n+1;第29页,课件共46页,创作于2023年2月2、复合赋值运算算术复合赋值运算符:+=、-=、*=、/=、%=位复合赋值运算符:&=、|=、^=、>>=、<<=一般形式:
变量☆=表达式;
等价于:
变量=变量☆表达式;
☆代表任一双目算术运算符或位运算符。复合赋值运算先进行所带运算,再进行赋值运算。复合赋值运算的优先级同赋值运算。第30页,课件共46页,创作于2023年2月例如:(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)右结合第31页,课件共46页,创作于2023年2月关系运算符和关系表达式一、关系运算符有:<、>、<=、>=、==、!=<、<=、>、>=的优先级相同,==、!=的优先级相同,前者的优先级高于后者。二、关系表达式的运算结果是逻辑量24+(5>3)c=7>8三、自左向右结合。假设a=5,b=3,c=2表达式a>b>c的值为0四、操作数也可以是字符型数据如:‘a’>’f’第32页,课件共46页,创作于2023年2月
条件运算符和条件表达式一、条件运算符的语法形式:
<表达式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)第33页,课件共46页,创作于2023年2月#include<stdio.h>main(){intx;scanf(″%d″,&x);x>0?printf(″%s″,″正数″):printf(″%s″,″负数″);}例:判断整数的正负。第34页,课件共46页,创作于2023年2月逗号运算符和逗号表达式逗号运算的优先级最低,结合自左向右。
逗号表达式的更一般使用形式为:
表达式1,表达式2,表达式3,……,表达式n;先计算表达式1,再计算表达式2,再计算表达式3,…,再计算表达式n的值,并以此作为整个表达式的值。如:表达式x=a=3,6*x,6*a,a+x的值为6。逗号运算又称顺序求值运算。第35页,课件共46页,创作于2023年2月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);}并不是任何地方出现的逗号都是逗号运算符,例如:printf(“%d%d%d\n”,i,j,k);(是参数分隔符)第36页,课件共46页,创作于2023年2月求字节数运算运算符:sizeof(数据类型标识符)或sizeof(表达式)求字节数运算是单目运算,操作数可以是类型名,也可以是变量、表达式,用以求得相应类型或数据所占的字节数。此运算的优先级与取地址运算优先级相同。例如:sizeof(float)值为4,单精度类型占4个字节sizeof(2*3)值为2,算术表达式2*3是int型第37页,课件共46页,创作于2023年2月数据的类型转换一、系统自动进行的类型转化由系统自动完成类型转换,转换的规则如下:intunsignedlongdouble
↑↑short,charfloat纵向箭头方向表示必定要进行的转换,short型、char型数据必定先转换成int型,float型数据必定先转换成double型,再进行运算。横向箭头方向表示运算对象为不同类型时的转换方向。由低向高转换,int型最低,double型最高。第38页,课件共46页,创作于2023年2月二、赋值时的类型转换(1)将实型数据赋给整型变量时,舍弃实数的小数部分。如:inti;i=1.23;/*结果i的值为1*/(2)将整型数据赋给单、双精度型变量时,数值大小不变,但以浮点形式存储到变量中。
第39页,课件共46页,创作于2023年2月三、强制类型转换强制类型转换通过类型转换运算进行。
格式:(类型名)(表达式)
功能:将表达式的类型强制转换成类型名指定的类型。如:floatx=5.2,y=6.3;intz;z=(int)(x+y);
(int)(x+y)将表达式x+y的值强制转换成整型强制类型转换在将高类型转换为低类型时,数据精度受损,是一种不安全的转换。强制类型转换是暂时性的,一次性的,并不永久改变所转换表达式的类型。
如:
inta=7;doubleb;b=(double)a+5;
(double)a为双精度,a依然为整型量。第40页,课件共46页,创作于2023年2月表达式一、C表达式:由C运算符和运算对象构成的式子。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心力衰竭超滤治疗患者用药依从性提升方案
- 心力衰竭超滤治疗中过敏反应预防与处理方案
- 2026年陕西青年职业学院单招职业倾向性考试题库及答案详解一套
- 2026年重庆海联职业技术学院单招职业适应性考试题库含答案详解
- 2026年苏州托普信息职业技术学院单招职业倾向性测试题库及完整答案详解1套
- 2026年邢台应用技术职业学院单招职业技能测试题库及参考答案详解一套
- 2026年长沙南方职业学院单招职业适应性考试题库及参考答案详解1套
- 2026年钟山职业技术学院单招职业倾向性考试题库及答案详解1套
- 2026年石家庄科技职业学院单招职业倾向性考试题库参考答案详解
- 福安市晓阳镇招聘社区网格员真题附答案详解
- 水生态系统服务价值评估模型与实证研究
- 2025年特岗教师招聘初中信息技术考试题
- 广东省深圳市罗湖区罗湖外国语学校2026届数学高一下期末经典试题含解析
- 2026年医师定期考核人文试题库100道带答案(满分必刷)
- 雨课堂学堂在线学堂云《当代中国社会与文化:大湾区文化景观(暨南)》单元测试考核答案
- GB/T 9706.266-2025医用电气设备第2-66部分:助听器及助听器系统的基本安全和基本性能专用要求
- 班前会安全培训管理制度
- 云南省2026年普通高中学业水平选择性考试调研测试生物试题(含答案详解)
- JJF(京) 165-2025 颗粒物采样器采样物理效率测试规范 荧光微球洗脱法
- 中国人民大学实验室气瓶安全管理实施细则
- 2025-2030中国工业机器人连接器行业市场供需分析及投资评估规划分析研究报告
评论
0/150
提交评论