c语言第2讲基本数据类型与表达式.ppt

上传人:max****ui 文档编号:11494900 上传时间:2020-04-25 格式:PPT 页数:49 大小:711.50KB
返回 下载 相关 举报
c语言第2讲基本数据类型与表达式.ppt_第1页
第1页 / 共49页
c语言第2讲基本数据类型与表达式.ppt_第2页
第2页 / 共49页
c语言第2讲基本数据类型与表达式.ppt_第3页
第3页 / 共49页
点击查看更多>>
资源描述
第2讲C语言的基本数据类型与表达式,2.1C语言的基本数据类型2.2常量与变量2.3运算符与表达式2.4数据类型转换,一、数据类型概述,本讲中将对基本类型中的前三类进行介绍和学习。,2.1C语言的基本数据类型,变量:指以标识符为名字,其值可以改变的量。,在学习各种数据类型之前,我们先简单了解一下常量和变量的概念。,常量:指在程序运行中,其数值不能被改变的量。,变量代表计算机内存中的某一存储空间,变量的类型决定了该存储空间的长度和其中存放数据的编码方式及存储格式。变量的类型也决定了该存储空间中存放数据的数据形式和取值范围。,*八进制的数码范围为07;018*十六进制的数码除了数字09外,还使用英文字母af(或AF)表示1015。如:0 x1e,注意!,二、整型(采用定点整数的存储格式,只能表示纯整数),1、整型常量:,(1)十进制形式:与数学上的整数表示相同;例如:12,-100,0(2)八进制形式:在数码前加数字0;例如:012=1*81+2*80=10(十进制)(3)十六进制形式:在数码前加0X(数字0和字母X)。例如:0 x12=1*161+2*160=18(十进制),举例,在16位操作系统中,一般用字节表示一个int型变量,且long型(字节)int型(字节)short型(字节)。在VC+6.0环境中,用4字节表示一个int型变量,且long型(字节)int型(4字节)short型(字节)。查看变量的字节数,即其长度,使用函数sizeof(类型名),2、整型变量的分类:,根据数据所占的存储长度的不同分为:int、short、long;同样存储长度的数据又分unsigned、signed;故可组合出六种类型。,3、整型变量的值域:,由机器中数据的存储长度决定,2、实型变量的分类及值域:关键字字节数取值范围精度(位)float43.410-383.410387double81.710-3081.71030815,注意,三、实型,1、常量:(1)十进制小数形式:由数字和小数点组成;例如:3.4,4.,.3。(2)指数形式:“十进制小数”+“e(或E)”+“十进制数整数”。例如:12.5e-6表示12.510-6。,小数点不能单独出现;0.0.e或E的两边必须有数,且其后面必须为整数;如:6E0.2e5,字符形式功能n换行t横向跳格b退格r回车反斜杠字符单引号字符ddd8进制数表示的ASCII码对应的字符xhh16进制数表示的ASCII码对应的字符,四、字符类型,1、常量:(1)用单引号括起来的一个字符;如:A、1、?等。注意(1)数值0、字符0、字符0的区别(2)大小写对应字母的ASCII值相差32(A为65,a为97)(2)用单引号括起来的由反斜杠()引导的转义字符。,4、字符串常量:是用一对双引号括起来的字符序列。注意:每个字符串的后面都有一个0结束符。如:“SHANGHAI”,“AbcdeFGHijk”,“Howareyou”。,注意,a与“a”的区别strlen()与sizeof()的区别,例如:字符A的ASCII码为:65D(十进制)=41H(十六进制)=101Q(八进制)字符A可以表示为A、x41、101。,2、字符型变量的分类:char和unsignedchar;,3、值域(字符型可参与数学运算,也可看成一种一字节的整型变量)每个字符型数据在内存中占一个字节;包括ASCII字符表中的所有字符(可显示字符和非显示字符)。,举例,一、常量与符号常量常量是指在程序运行中,其数值不能被改变的量。常量又可分为直接常量和符号常量。,2.2常量与变量,120、0120、072;0 xFFFF、0 x1e;120L,200L;长整型常量3.14、5.12E-6;a、#、n、101;099、12f、0 xg、48EA;E-6、6.4E+4.8;changsha、+?ab;、p、ab;,1、直接常量:是在程序中直接引用的数据。,请判断这些常量正确与否:,定义形式:#define标识符常量数据例如:#definePI3.14159在程序预处理时,凡是出现标识符PI的地方都将用数据3.14159来替换。如:2*2.3*PI就等价于2*2.3*3.14159。,变量是指以标识符为名字,其值可以改变的量。变量代表计算机内存中的某一存储空间,该存储空间中存放的数据就是变量的值。在同一程序块中,变量不能被重复定义。使用变量时必须“先定义,后使用”。,2、符号常量是用标识符来表示一个数据;在程序不能给它赋值。,二、变量,2、变量初始化在定义变量的同时给变量一个初始值。,注意,inta=5,b=3;inta=b=c=3;inta,b,c;a=b=c=3;,例如:inta,b,c;floatx,y;charc1,c2;或intc1,c2;定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。,#includemain()intx,y,z,w;/*定义x,y,z,w为整型变量*/unsignedintk;/*定义k为无符号整型变量*/x=10;y=-20;k=30;z=x+k;w=y+k;printf(“x+k=%d,y+k=%dn”,z,w);,例2-1:,程序运行结果为:x+k=40,y+k=10,变量根据作用域的不同可分为局部变量和全局变量,根据存储方式的不同可分为静态存储变量和动态存储变量,这些我们将在后面详细介绍。,1、以下合法的字符型常量是Ax13B081C65Dn2、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是Ac=(c-A)%26+aBc=c+32Cc=c-A+aDc=(A+c)%26-a3.以下选项中,合法的一组C语言数值常量是A)028B)12.C).177D)0 x8A.5e-30Xa234e1.510,000.0 xf4.5e00abc3.e54.以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定5.以下选项中不属于字符常量的是A)CB)CC)xCCD)072,实验内容,实验二题目2:完成从键盘输入一个10以内的数字,在屏幕上输出这个数字的3次方。题目3:从键盘上输入两个数字,在屏幕上输出这两个的加减乘除的结果。,在数学里当多个运算符一起组成一个表达式时,我们规定了优先级(先乘除后加减)和结合规则(从左至右)。同样,在C语言中,我们也规定了每个运算符的结合规则及运算符之间的优先级。,2.3运算符与表达式,运算符:就是表示某种运算功能的符号。按操作功能运算符大致可分为:算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符、逗号运算符以及位运算符等。,表达式:是由操作数和运算符组成的序列。如:1+2*3-4、35-7、a=b%2等都是C语言中的表达式。,下面分类介绍各种运算符:,%(取余)(注意:取余运算的操作数只能是整数,结果的符号与被除数相同),一、算术运算符和算术表达式,1、运算符+(加):3+4、+3-(减):3-5、-5*(乘):3*5/(除):5/2、5.0/2(注意,此二种形式,结果不同),5%3的值为2;-5%3的值为-2;5%(-3)的值为2;-5%(-3)的值为-2;12.3%3若a%b的结果为0,则有a能被b整除,2、算术表达式用算术运算符和括符将操作数连接起来的式子。优先级:()*、/、%+、-结合性:从左至右;表达式的值:数值型(int、long、unsigned、float、double);,例如:已知:floata=2.0;intb=6,c=3;求解:a*b/c-1.5+a+fabs(-5)=?,floata=2.0;intb=6,c=3;a*b/c-1.5+a+fabs(-5),12.0/3,5,4.0-1.5,2.5+97(int),99.5+5,104.5,思考inta=1,b=2;表达式a/b+3的结果是多少?,等价于:j=i;i+;所以i的值为4,j的值为3,等价于:i+;j=i;所以i的值为4,j的值为4,(1)i=3;j=i+;(2)i=3;j=+i;,3、自增与自减运算符(+、-),+i,-i:使用之前使i的值增1(或减1);,i+,i-:使用之后使i的值增1(或减1);,分析下面几种情况中i与j的值:,当+、-不与其他运算符混合使用时,+i与i+都等价于i=i+1,-i与i-都等价于i=i-1,如:i=2;j=-i+;求执行完这两句后i与j的值分别是多少,结合性:自右至左。,分析:“+”与”-“是同优先级,且都高于“=”按结合规则,等价于:j=-(i+);结果:i的值为3,j的值为-2。,再看几个例子:如:设i=3,k=(i+)+(i+)k=i=,设a=3,b=(+a)+(+a)b=a=,10,5,题盘练习,(1)例题:1-3。运算符/及%的应用(函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a的十位数和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。)(2)作业:2-3;3-3;4-3;51-3;53-3;72-3;88-3;4-2;5-2;注意:掌握两个数的输入方法!,1、6种关系运算符:=!=2、关系表达式:用关系运算符将表达式连接起来的式子优先级:(=)(=!=)结合性:自左至右;表达式的值:若为真,则结果为1;若为假,则结果为0。,35值为:32值为:设x=-2;-3x-1值为:设x=1;2x4值为:,例如,二、关系运算符和关系表达式,求如下关系表达式的值:,0,0,0,1,算术运算符优先级高于关系运算符3+(43)*4值为:3+4floatb=3.5;!a()!(a0)()(a0)(),例如,0,1,1,0,0,0,1,1,0,0,0,1,例如表达式运算如下:,混合优先级:!高算术运算符关系运算符b=1;c=a+执行后:a为,b为,c为。,逻辑或优化和逻辑与优化:,在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。,1,1,0,(2)a=1;b=1;c=0;d=-a|b-|(c=b+3);执行后:a为,b为,c为,d为。,0,0,0,1,例如:(1)n是小于m的偶数:(2)year是闰年:(能被4整除但不能被100整除,或能被400整除),逻辑表达式一般用于控制语句中的条件:,nmprintf(%d,0x关系max=ab?a:b求max的值,max的值为5,例如:aby表达式y=a=4,b=5,a+by=(a=4,b=5,a+b)y=(a=4,b=5),a+by=a=(4,b=5),a+b,4,5,4,9,4,5,9,9,4,5,9,5,5,5,5,10,形式有三种:sizeof变量名sizeof(变量名)sizeof(类型名)结果为整型数。,inta;floatx;printf(“%d,%d”,sizeofa,sizeofx);printf(“%d,%d”,sizeof(int),sizeof(float);以上两个printf语句结果均为,例如,3、求字节运算符:sizeof作用:求得变量或某种数据类型所需的字节数。,4,4,4,4,C语言允许整型、实型、字符型数据进行混合运算。有3种转换方式:自动转换、赋值转换和强制转换。一、类型自动转换,2.4数据类型转换,特点:由数值存储位数少的向多的转换;整型向实型转换!操作数为相同类型的不转换,仍取原类型,特别注意此时可能带来的错误!,intx=2;floaty=1.6;charc=A;则:c+1/x*y=,例如,charc=68.5;printf(“%c”,c);,65(int)+0(int)*1.6(float),65(float),二、赋值转换在赋值时将赋值符右边值的类型转换成与其左边变量类型一致的类型。,有下列几种情况:(1)实型整型(字符型):去掉小数部分;,(2)整型(字符型)实型:补足有效位;,floatf=23;23.000007位doublef=A;65.000000000000015位,例如:inta=2,b=5;floatx=4.4;则有:表达式结果b/a(float)b/a(float)(b/a)(int)x%a+x(int)x%(a+x),三、强制类型转换形式:(类型名)表达式强制类型转换时,得到所需类型的中间变量,原来变量的类型不会改变。,2,2.5,2.0,4.4,2006-9,1、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A.+x,y=x-Bx+1=yCx=x+10=x+yDdouble(x)/102、以下关于逻辑运算符两侧运算对象的叙述中正确的是A只能是整数0或1B只能是整数0或非0整数C可以是结构体类型的数据D.可以是任意合法的表达式3、若有定义intx,y;并以正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是A(x-y)0)B(x-y)0)D(x-y)=0)4、有以下程序main()intx,y,z;x=y=1;z=x+,y+,+y;printf(%d,%d,%dn,x,y,z);A2,3,3B2,3,2C.2,3,1D2,2,1,2006-9,5、有以下程序main()inta=0,b=0;a=10;/*给a赋值b=20;/*给b赋值*/printf(a+b=%dn,a+b);/*输出计算结果*/A.a+b=10Ba+b=30C30D出错6、以下选项中,值为1的表达式是A1-0B.1-0C1-0D0-07、设有定义:floatx=123.4567;,则执行以下语句的输出结果是()printf(%fn,(int)(x*100+0.5)/100.0);,123.460000,注意:0的ASCII值为48,依次类推,8、以下程序运行后的输出结果是()main()intm=011,n=11;printf(%d%dn,+m,n+);9、以下程序运行后的输出结果是()main()intx,a=1,b=2,c=3,d=4;x=(ax)?x:d;printf(%dn,x);,1011,1,2007-4,1、若有代数式以下正确表示该代数式的C语言表达式是Asqrt(abs(nx+ex)Bsqrt(fabs(pow(n,x)+pow(x,e)C.sqrt(fabs(pow(n,x)+exp(x)Dsqrt(fabs(pow(x,n)+exp(x)2、设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是A.k+Bk+=1C+kDk+13、有以下程序,其中%u表示按无符号整数输出main()unsignedintx=0 xFFFF;printf(%un,x);程序运行后的输出结果是A-1B.65535C32767D0 xFFFF4、以下选项中,当x为大于1的奇数时,值为0的表达式是Ax%2=1Bx/2Cx%2!=0D.x%2=0,注意:考虑的是表达式的值,不是变量k的值,2007-4,5、执行以下程序后的输出结果是main()inta=10;a=(3*5,a+4);printf(a=%dn,a);6、以下程序后的输出结果是#includemain()printf(“%dn”,strlen(“IBMn0121”);(请注意转义字符)7、已定义charch=$;inti=1,j;执行j=!ch2.设有条件表达式:(EXP)?i+:j-,则以下表达式中(EXP)完全等价的是A)(EXP=0)B.)(EXP!=0)C)(EXP=1)D)(EXP!=1),a=14,9,1,2007-9,3.已有定义:charc;程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c)B.)A=c=ZC)A=2后b的值为【6】。3.设变量已经正确定义为整型,则表达式n=i=2,+i,i+的值为【7】。注意逗号表达式外有无括号的问题。,0,3,2010-3,1.若有定义:doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句的是()Aa=a+,i+;Bi=(a+k)=(i+k);C.i=a%11;Di=!a;2.以下关于C语言数据类型使用的叙述中错误的是A若要准确无误差的表示自然数,应使用整数类型B若要保存带有多位小数的数据,应使用双精度类型C如要处理如“人员”信息等还能有不同类型的相关数据,应自定义结构体类型D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型3.若a是数值类型,则逻辑表达式(a=1)|(a!=1)的值是A.1B0C2D不知道a的值,不能确定4.设x为int型变量,请写出一个关系表达式,用以判断x同时为3和7的倍数时,关系表达式的值为真x%3=0&x%7=0,题库练习,四舍五入:66-3(强制类型转换)条件表达式:50-1,笔试课后作业,笔试模拟试卷:第一套题选择题17填空题6,7第二套题选择题13,14,15,16填空题6,7第三套题选择题13,14,15,16,17第四套题选择题:14,16,17,18,19填空题6,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!