




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章2022/10/311第一节
C语言数据类型简介
第二节基本数据类型第三节运算符与表达式第四节不同类型数据间的转换第二章数据类型、运算符与表达式2§2.1C语言数据类型简介
二、什么是数据结构计算机的别名:数据处理机;数据元素:数据的最小单位;数据结构:数据元素的组织形式.把需要解决的问题用计算机能完全理解的方式描述给计算机。一、什么是程序设计程序设计=数据结构+算法+方法+工具程序设计=编程数据结构包括数据的逻辑结构和物理结构,它关系到软件或程序的复杂程度。数据结构数据类型3数据的描述数据的操作程序类型运算符算法数据结构程序的任务是对数据进行处理,数据是程序处理的对象,而运算符是施加给这些数据的操作。数据和运算符是表达式的基本元素。
§2.2数据与数据类型4三、C语言数据类型§2.1C语言数据类型简介5关于类型的含义存储空间,且采取不同的存储形式。取值范围。操作。
§2.2基本数据类型6按照数据在程序中的取值:值保持不变-----常量x=2*y值随程序运行变化-----变量基本类型整型int字符型char实型(浮点型)
§2.2基本数据类型7一、常量1.在程序运行中,其值保持不变。2.表示方法:整型100,125,-100字符型‘a’,‘b’字符串常量“string”3.符号常量:#用指定的标识符表示某个常量2.2.1常量与变量
§2.2基本数据类型8二、变量3.变量通过变量名标识1.在程序运行中,值发生变化2.必须先定义,再使用inta,b;类型变量名表变量memorya8263变量名和内存中的存储单元相对应。编写程序时通过变量名来存、取存储单元。
§2.2基本数据类型9(1)以字母或下划线开头(2)不能用系统中的关键字作为变量名规定inta,bA123,_b;inta;…..A=5;4.有关变量名的规定(3)变量名中的字母是区分大小写的。sum、stu_name、_age、Lts_1_2、a232
NAMEname表示两个不同的标识符。不提倡大小写混合使用
§2.2基本数据类型10一、整型常量有三种表示形式十进制八进制十六进制1234加前导001234,0125加前导0x0x123,0xffff整型数据包括整型常量和整型变量,
整型数据以二进制补码形式存储例
100、-8、0;010、024;0x38、0X1F2.3.2整型数据
§2.2基本数据类型11二、整型变量
掌握要点1有几种定义形式2每种形式占存储空间的大小3取值范围4输入输出格式
§2.2基本数据类型121.定义形式共七种基本整型长整型短整型无符号整型无符号短整型无符号长整型双长整型
intlongintshortintunsignedint2.占存储空间一个变量4424字节unsignedshortunsignedlonglonglongint248
§2.2基本数据类型13
§2.2基本数据类型类型所占字节数据的范围int4-2147483648~2147483647shortint(short)2-32768~32767longint(long)4-2147483648~2147483647unsignedint(unsigned)40~4294967295unsignedshort20~65535unsignedlong40~4294967295longlongint(longlong)8-9223772036854775808~922377203685477580714int型数的表示范围:存储长度16位二进制(2Byte)
0000000000000001000000000000001101111111111111111000000000000000上面的数再加1是多少?例int型表示数的范围:-32768~327674.输入输出形式:%d,%ld,%x,%o,%u
§2.2基本数据类型15包括实型常量和实型变量一、实型常量有两种表示形式小数指数3e-3实型常量只能用十进制形式表示,不能用八进制和十六进制1e5、1e-3.2、e、.e-032.2.3实型数据用指数表示实型常量的规则:
e或E之前之后必须有数字;指数必须为整数
§2.2基本数据类型161.定义形式共三种单精度双精度长双精度
floatdoublelongdouble2.占存储空间一个变量488字节二、实型变量实型常量不区分单精度和双精度
§2.2基本数据类型173.变量的取值范围4.输入输出形式%f类型长度数的范围有效数字单精度float4
10-38~1038
6---7位双精度double
8
10-308~10308
15--16位长双精度
longdouble
8
10-308~10308
18--19位
§2.2基本数据类型18实型数据在计算机中以指数形式存储,单精度实型变量用一个字节存放指数部分,其余三个字节存数值部分。
7位二进制
23位二进制单精度实型2-23<=|尾数|<=1-2-23尾数指数
§2.2基本数据类型19包括字符型常量和字符型变量一、字符常量1.用单引号包含的一个字符2.只能包含一个字符例‘a’,‘A’,‘1’‘abc’“a”2.2.4字符型数据
§2.2基本数据类型20字符常量定义:用单引号括起来的单个普通字符或转义字符.
字符常量的值:该字符的ASCII码值<转义字符及其含义:转义字符含义\n\v\r\a\‘\ddd\t\b\f\\\“\xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符如‘\101’-----------‘A’‘\012’-----------’\n’‘\376’-----------’’‘\x61’-----------’a’‘\60’-----------’0’‘\483’----------()例:‘A’-------’\101’-------’\x41’--------65<如‘A’——65,‘a’——97,‘0’——48,‘\n’——10如‘a’‘A’‘?’‘\n’‘\101’转义字符:反斜线后面跟一个字符或一个代码值表示例转义字符举例(ch2_001.c,ch2_004.c)
main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}运行结果:(屏幕显示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}运行结果:屏幕显示:=打印机输出:Y21二、字符串常量1双引号内的一串字符“china”2n个字符组成的字符串常量,在内存中占空间为n+1
个字节。china\0字符串结束标记3C
中没有专用的字符串变量“ThisisCstring”串长16“a”串长1“”(空格)串长1“”(不含空格)串长0
§2.2基本数据类型221.定义形式2.占存储空间一个变量1字节三、字符型变量char一个字符变量只能包含一个字符3.输入输出形式%c‘a’
ASCII值为97内存中存储形式011000014.字符型数据在内存中以相应的ASCII值存储
§2.2基本数据类型23在ASCII范围以内,整型数据!main(){charc;c=‘c’;printf(“%c%d”,c,c);}C99?例题目中有多个c,哪些是等价的?运行结果:
§2.2基本数据类型24例如:intadd(inta,intb);voidadd(inta,intb);2.2.5空类型
§2.2基本数据类型25
§2.3运算符与表达式一、运算符运算符运算分量X=5+b*c对数据进行运算的符号被加工的数据+表达式2.3.1C运算符简介算术运算符赋值运算符关系运算符逻辑运算符逗号运算符条件运算符…...
C中运算符共34种26值1.运算符和运算分量构成表达式二.表达式算术表达式赋值表达式关系表达式逻辑表达式逗号表达式条件表达式…...
§2.3运算符与表达式27三.学习运算符应掌握的要点:*运算符的种类与功能*运算符与运算分量的关系个数类型A+B(a>b)
?
a:b目关系不同类型的变量,所允许的操作不同单目运算符双目运算符三目运算符
§2.3运算符与表达式28*优先级:运算符的执行顺序
*结合性:优先级相同时的结合方向*运算结果的类型X=5+8‘a’>100X=a+b*ca+b-c5>7>2a=b=5结果?单目运算符的优先级高于双目运算符单目运算符从右向左结合双目运算符从左向右结合
§2.3运算符与表达式292.4.2算术运算符和算术表达式1.共有5个:+,-,*,/,%2“-”作为负号时为单目单目:-双目:*,/,%双目:+,-4.优先级:
5.结合性:从左向右3.%运算只适用于整型数取模(求余数)a=10%4a的值为2
§2.3运算符与表达式302.4.3自增、自减运算符1.变量自身加(减)1
k=k+1k++先使用变量k的值,再加1++k
先加1,再使用变量k的值
k=k-1k--先使用变量k的值,再减1--k
先减1,再使用变量k
的值
k=3;printf(“%d”,k++);输出3后,k的值为4i=3;printf(“%d”,++i);输出4
§2.3运算符与表达式312.只能用于变量,不能用于表达式和常量3.优先级:高于双目算术运算符4.结合性:从右向左(i+k)++,--3i=3;k=i+++i+++i++;i=?i=3;k=(++i)+(++i)+(++i);
§2.3运算符与表达式32例:
main(){inta,b,s;a=5;b=5;s=a+b;printf(“%d,%d,%d\n”,a,b,s);s=a+++b;printf(“%d,%d,%d\n”,a,b,s);s=++a+b;printf(“%d,%d,%d\n”,a,b,s);s=--a+b;printf(“%d,%d,%d\n”,a,b,s);s=a--+b;printf(“%d,%d,%d\n”,a,b,s);s=a+b;printf(“%d,%d,%d\n”,a,b,s);}
§2.3运算符与表达式33s=a+b;s=a+++b;s=++a+b;s=--a+b;s=a--+b;s=a+b;
a=5,b=55+5=105+5=107+5=126+5=116+5=115+5=10abs55106
5107
51265115
5115510题目分析s
§2.3运算符与表达式342.3.3关系运算符和表达式关系运算符种类:<<===>=>!=结合方向:自左向右优先级别:<<=>>===!=优先级6(高)优先级7(低)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==b<c//a==(b<c)
a=b>c//a=(b>c)关系表达式的值:是逻辑值“真”或“假”,用1和0表示例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0
§2.3运算符与表达式35关系运算注意:例若a=0;b=0.5;x=0.3;
则a<=x<=b的值为0例5>2>7>8在C中是允许的,值为0例inti=1,j=7,a;a=i+(j%4!=0);
则a=2例‘a’>0结果为‘A’>100结果为10
§2.3运算符与表达式36关系运算注意:例注意区分“=”与“==”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);例应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为可改写为:fabs(1.0/3.0*3.0-1.0)<1e-60
§2.3运算符与表达式37ab!a!ba&&ba||b真假真假假假真真逻辑运算符和表达式逻辑运算符种类:!&&||逻辑运算真值表C语言中,运算量:0表示“假”,非0表示“真”,
运算结果:0表示“假”,1表示“真”,真假假假假假真真假假真真真假真真
§2.3运算符与表达式38!(2)&&(11)||(12)高低例a<=x&&x<=b
a>b&&x>ya==b||x==y!a||a>b优先级:结合方向:!:从右向左&&:从左向右||:从左向右//(a<=x)&&(x<=b)//(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)
§2.3运算符与表达式39!(2)&&(11)||(12)高低优先级:结合方向:!:从右向左&&:从左向右||:从左向右例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0‘c’&&‘d’值为1值为0值为1值为1值为1值为1//(5>3)&&2||(8<(4-(!0)))值为1
§2.3运算符与表达式40!(2)&&(11)||(12)高低优先级:结合方向:!:从右向左&&:从左向右||:从左向右短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符<>例a&&b&&c//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值例a||b||c//只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)//结果m=0,n=1
§2.3运算符与表达式41条件运算符与表达式一般形式:expr1?expr2:expr3执行过程功能:相当于条件语句,但不能取代一般if语句例if(a>b)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,a>b?a:b);例求a+|b|printf(“a+|b|=%d\n”,b>0?a+b:a-b);expr1取expr2值取expr3值非0=0例(a==b)?’Y’:’N’(x%2==1)?1:0(x>=0)?x:-x(c>=‘a’&&c<=‘z’)?c-’a’+’A’:c条件运算符可嵌套
如x>0?1:(x<0?-1:0)优先级:13结合方向:自右向左如a>b?a:c>d?c:da>b?a:(c>d?c:d)expr1、expr2、expr3类型可不同,表达式值取较高的类型例x?‘a’:‘b’//x=0,表达式值为‘b’;x‡0,表达式值为‘a’x>y?1:1.5//x>y,值为1.0;x<y,
§2.3运算符与表达式422.3.6赋值运算符赋值表达式1.将一个常量或一个表达式的值赋给一个变量称为赋值x=5y=x+102.可以将一个实型赋给一个整型,或将一个整型赋给一个实型intx,x=5.3;x的值为5floaty,y=5;y的3.赋值运算的优先级比算术运算低4.赋值运算的结合性从右向左X=y=5
§2.3运算符与表达式43说明:结合方向:自右向左优先级:14左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例3=x-2*y;a+b=3;例
floatf;inti;i=10;f=i;则
例inti;i=2.56;//结果i=2;例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表达式值为5,a,b,c值为5//b=5;a=5//表达式值11,c=6,a=11//表达式值10,a=10,b=4,c=6//表达式值5,a=5,b=10,c=244复合赋值运算符和复合赋值表达式赋值运算符两侧出现相同的变量x=x+nx=x-nx=x*nx=x/nx=x%nx+=nx-=nx*=nx/=nx%=n算术运算与赋值运算相结合X与n均为整数x=x+nn为常数x+=n
§2.3运算符与表达式45说明:结合方向:自右向左优先级:14左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例:a=12;a+=a-=a*a例:inta=2;a%=4-1;a+=a*=a-=a*=3;//a=-264等价于a=a+(a=a-(a*a))//a=0等价于a=a+(a=a*(a=a-(a=a*3)))复合赋值运算符和复合赋值表达式46例main(){inta,b,c,d,e;a=2;b=5;c=6;d=10;a+=b;b-=c;c*=d;d/=a;a%=c;printf(“%d,%d,%d,%d\n”,a,b,c,d);
}结果?7,-1,60,1
§2.3运算符与表达式47一、逗号运算符,(表达式1,表达式2,表达式3,……表达式n)用于连接几个表达式二、求解过程顺序求解几个表达式三、优先级逗号运算符的优先级最低四、结合性从左向右五、逗号表达式逗号表达式的值为最后一个表达式的值(表达式n的值)X=(
(a=4*5,a*2),a+6)a为?
20x为?262.3.7逗号运算符
§2.3运算符与表达式48
§2.4不同类型数据间的转换
不同数据类型需先转换成同一类型,然后进行运算方式自动进行-------隐式转换强制进行-------显式转换一、隐式转换(算术转换)级别低的向级别高的转换doublefloatlongunsignedintchar,shortinti;floatf;doubled;longe;表达式:10+’a’+i*f-d/e
的结果为:
double49二、显式转换(强制转换)一般形式:(类型名)(表达式)例(int)(x+y)(int)x+y(double)(3/2)(int)3.6说明:强制转换得到所需类型的中间变量,原变量类型不变例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生
§2.4不同类型数据间的转换
50一、C中的基本数据类型,每一种类型的定义方式(关键字),在存储空间中所占的字节数,存储形式,取值范围。二、C中的运算符的几个要点(功能,与运算分量的关系,优先级,结合性,运算结果的类型)。三、算术运算符中的%只使用在int类型。第二章总结四、自增,自减运算的特点,灵活使用k++,++k。五、复合的赋值运算规则。七、不同类型数据转换时的优先顺序八、单目运算,双目运算的优先级和结合性特点熟记基本概念和规则!51二、补充习题:1、C语言规定,在源文件中,main()的位置:()
A、必须在最开始B、必须在库函数后
C、可以在任意位置D、必须在所有函数最后2、一个C程序的执行是从:()A、从主函数开始,在主函数中结束;B、从第一个函数开始,到最后一个函数结束;C、从主函数开始,到最后一个函数结束;D、从第一个函数开始,到主函数中结束。3、下面选项中,全为不合法的用户标识符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年川南幼儿师范高等专科学校高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年山西管理职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年山西体育职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年宜春职业技术学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 2025年安徽广播影视职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年宁德职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年宁夏民族职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年宁夏体育职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年天津铁道职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- ASNT培训课件教学课件
- 2024年专业技术人员继续教育考试必考100题含答案(完整版)
- 新版人教版高中英语选修一、选修二词汇表
- 江苏省南京市联合体2023-2024学年七年级下学期期中英语试卷
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 2024年中国人保招聘笔试参考题库附带答案详解
- 2024年共青团入团考试题目及答案
- 提高旅游导游服务技能的培训课程
- 展厅维保方案
- 酒店贷款报告
- 小学三年级下册信息技术全册教案
- 铁路机车电工
评论
0/150
提交评论