数据类型运算符和表达式C语言程序设计第三电子学习教案.pptx

上传人:一*** 文档编号:71936817 上传时间:2023-02-07 格式:PPTX 页数:64 大小:889.73KB
返回 下载 相关 举报
数据类型运算符和表达式C语言程序设计第三电子学习教案.pptx_第1页
第1页 / 共64页
数据类型运算符和表达式C语言程序设计第三电子学习教案.pptx_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《数据类型运算符和表达式C语言程序设计第三电子学习教案.pptx》由会员分享,可在线阅读,更多相关《数据类型运算符和表达式C语言程序设计第三电子学习教案.pptx(64页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、会计学1数据类型运算符和表达式数据类型运算符和表达式C语言程序设计语言程序设计(chn x sh j)第三电子第三电子第一页,共64页。n n掌握C语言的基本数据类型n n掌握标识符、关键字、常量和变量的使用(shyng)n n掌握运算符、表达式以及数据类型之间的转换等n n掌握简单数据的输入输出 第1页/共64页第二页,共64页。2.1 数据类型数据类型n n数据类型概述(i sh)第2页/共64页第三页,共64页。2.1 数据类型数据类型n n整数(zhngsh)类型 n n整数(zhngsh)类型简称整型,整型数据没有小数部分。n n整型可分为:n n基本整型:用int表示。n n短整型

2、:用short int或short表示。n n长整型:用long int或long表示。第3页/共64页第四页,共64页。2.1 数据类型数据类型n n整数(zhngsh)类型第4页/共64页第五页,共64页。2.1 数据类型数据类型n n实型 n n实数类型(lixng)简称实型,有时又称浮点数据类型(lixng)n n包括:n n单精度浮点数类型(lixng):简称浮点类型(lixng),类型(lixng)名为float。n n双精度浮点数类型(lixng):简称双精度类型(lixng),类型(lixng)名为double。n n长双精度类型(lixng):类型(lixng)名为long

3、double。第5页/共64页第六页,共64页。2.1 数据类型数据类型n n实型第6页/共64页第七页,共64页。2.1 数据类型数据类型n n字符(z f)型n n字符(z f)类型的数据简称字符(z f)型数据 n nC语言中用char表示,在内存中占一个字节。n n字符(z f)类型的数据包括计算机所用编码字符(z f)集中的所有字符(z f)。常用的ASCII字符(z f)集,共128个。扩展的ASCII字符(z f)集共256个字符(z f)。n n字符(z f)数据与整型数据是相似的(除了占用的存储空间不同)第7页/共64页第八页,共64页。2.1 数据类型数据类型n n字符(z

4、 f)型第8页/共64页第九页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量 n n 标识符 n n所谓标识符是指程序中的变量、符号常量、数组、函数、类型、文件(wnjin)等对象的名字。n n规则:n n由字母、数字和下划线组成,且第一个字符必须为字母或下划线。n n大小写敏感。如Name和name是两个不同的标识符n n不能使用系统的关键字第9页/共64页第十页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量 建议:不建议使用系统预定义标识符 如define、include、scanf、printf 尽量做到“见名知义”如max、n

5、ame等,不用像abc、a1、a2等标识符。避免(bmin)使用易混字符 1、l、i;0、o;2、z等 第10页/共64页第十一页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n关键字 第11页/共64页第十二页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n 常量 n n指在程序运行中其值不能被改变的量。n n直接(zhji)常量:如整型常量、实型常量、字符型常量、字符串常量等。n n符号常量:用标识符定义的常量。第12页/共64页第十三页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n整型

6、常量 n n十进制整型常量:同数学上的表示方法,如168、-1、65535等。n n八进制整型常量:以0开头,由数字07组成(z chn),如0101、-045等。n n十六进制整型常量:以0 x或0X开头的数字序列表示十六进制数,如0 x12,第13页/共64页第十四页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n注意:n n如要说明是无符号类型则在数据后加u或U、如65535u、168U等。如果说明为长整型,则在数据后面加l或L,如-1L。n n八进制、十进制和十六进制只是整数的不同书写形式,提供多种写法只是为了使用方便,我们可以根据需要选择适当的书写方

7、式。n nC语言中不用二进制形式表示整数。n nC语言中,一般只使用无符号的八进制和十六进制数,而不使用有符号的八进制和十六进制数,因此没有(mi yu)专门的无符号八进制和十六进制标识符。第14页/共64页第十五页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n以下是非法的整型常量:n n09:0开头应该是八进制,但9不是合法的八进制数字(shz)。n n0X6G:0X开头应该是十六进制,但G不是合法的十六进制数字(shz)。n n以下是合法的整型常量:n n00000101:八进制,相当于十进制的65。n n-012:八进制,相当于十进制的-10。n n6

8、5535LU:十进制,无符号长整型。n n0XFF:十六进制,相当于十进制的255。第15页/共64页第十六页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n实型常量 n n实型常量只能(zh nn)用十进制形式表示 n n表示形式:n n小数形式。由数字序列和小数点组成,如3.1415926、-0.15、.15、2.等都是合法的实型常量。n n指数形式。由十进制数加上阶码标志“e”或“E”及阶码组成,如3.14e-4或3.14E-4表示3.1410-4。第16页/共64页第十七页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n

9、n注意:n n字母e或E之前的尾数部分必须有数字,例如E2是不合法的。n ne或E后面的指数部分必须是整数,指数部分无整数或为小数均是错误的,例如5e 和5E-5.5均是不合法的表示。n nC语言中,默认实型常量为double类型(lixng),若有后缀“f”或“F”,则为float类型(lixng)。第17页/共64页第十八页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n字符(z f)常量 n n字符(z f)型常量是由一对单引号括起来的单个字符(z f)构成 n n例如A、b、8 n n字符(z f)AZ的ASCII码值是6590。n n字符(z f)a

10、z的ASCII码值是97122。n n字符(z f)09的ASCII码值是4857。n n空格字符(z f)的ASCII码值是32。第18页/共64页第十九页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n转义字符 第19页/共64页第二十页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n字符串常量字符串常量 n n字符串常量是由一对双引号括起的字符序列,例如字符串常量是由一对双引号括起的字符序列,例如“1234567”“1234567”、“Hello World”“Hello World”等都是字符串常量。等都是字符串常量。

11、n n123101123101共有共有(nn y y u)5u)5个字符占个字符占6 6个字节,其个字节,其中中、101101分别代表一个字符,输出为分别代表一个字符,输出为123A 123A 第20页/共64页第二十一页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n符号常量符号常量(chngling)(chngling)n n【例【例2-12-1】输入圆的半径,计算周长和面积。】输入圆的半径,计算周长和面积。n n#define PI 3.14159#define PI 3.14159n nvoid main()void main()n n float r

12、,c,s;float r,c,s;n n scanf(%f,&r);scanf(%f,&r);n n c=2*PI*r;c=2*PI*r;n n s=PI*r*r;s=PI*r*r;n n printf(r=%f,c=%f,s=%fn,r,c,s);printf(r=%f,c=%f,s=%fn,r,c,s);n n 第21页/共64页第二十二页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n 变量n n在程序运行过程中,其存储(cn ch)的值可以被改变的量称为变量 n n变量必须通过标识符进行说明,称为变量名。n n变量名和内存单元地址存在映射关系,程序可以

13、通过变量名寻址,从而访问其存储(cn ch)的数据。第22页/共64页第二十三页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n变量的定义和说明n n数据类型 变量名1,变量名2,变量名n;n nint i,j,k;n nfloat x;n nlong a,b,c;n n4个基本要素:名字(mng zi)、类型、初值和作用域 第23页/共64页第二十四页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n变量名为标识符的一种。n n变量的数据类型可以是基本数据类型,也可以是复杂数据类型。n n变量的作用域是指变量在程序中有定义的范

14、围,即该变量名在某段代码区域(qy)是否有意义。n n变量需要赋初值。没有被赋值的变量其初值取决于存储类型,静态存储的变量将自动为0,否则被随机初始化。第24页/共64页第二十五页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n变量赋初值的两种方式 n n变量说明(shumng)时直接赋初值,称为变量的初始化,如:n nint a=10,b=9,c=6;n nfloat x=3.0,y=1.0,z=2.0;n n用赋值语句赋初值,如:n nfloat x;n nx10.0;第25页/共64页第二十六页,共64页。2.2 标识符、常量标识符、常量(chnglin

15、g)与与变量变量n n注意:n n编译系统将对每一个变量根据它被定义的类型(lixng)分配相应的存储单元。变量存储单元地址可用“&变量名”求得。n n可以用长度运算符sizeof()求出任意类型(lixng)变量存储单元的字节数。n n编译系统根据变量被定义的类型(lixng)检查该变量进行运算的合法性。n n如果没有给变量赋初始值,普通变量将存储随机值,直到给它赋值为止。第26页/共64页第二十七页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n整型数据(shj)的存储 n nC语言中的整型数据(shj)分为有符号和无符号两大类 n nunsigned i

16、nt a=65,b=65535;int a=65,b=32767,c=-1;第27页/共64页第二十八页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n补码(complement)n n假设(jish)int型整数a占2字节,16位二进制数 第28页/共64页第二十九页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n2字节(z ji)的int型整数的补码第29页/共64页第三十页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n负数的转换步骤(bzhu)如下:n n32768n n取绝对值,如|

17、-32768|等于32768n n216-|a|,如216-|-32768|等于65536 32768 等于 32768n n转换成二进制,如10000000 00000000(32768等于215)第30页/共64页第三十一页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n补码形式还原成十进制的步骤正好(zhngho)相反 n n11111111 11111110n n转换成十进制:65534n n216-65534 65536-65534 2n n加负号 -2第31页/共64页第三十二页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变

18、量变量n n实型数据(shj)的存储 字符字符(z f)数据的存储与使用数据的存储与使用 第32页/共64页第三十三页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量【例【例2-22-2】演示字符】演示字符(z f)(z f)数据的存储和引用。数据的存储和引用。#include#include void main()void main()char c;char c;int i;c=A;int i;c=A;i=c;i=c;printf(c=%d,c=%cn,c,c);printf(c=%d,c=%cn,c,c);printf(i=%d,i=%cn,i,i);print

19、f(i=%d,i=%cn,i,i);c=c+32;c=c+32;printf(c=%cn,c);printf(c=%cn,c);c=0 x80;c=0 x80;printf(c=%c,c=%dn,c,c);printf(c=%c,c=%dn,c,c);第33页/共64页第三十四页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n溢出(y ch)与舍入误差 n n数据的溢出(y ch)n nchar c=127;c=c+1;第34页/共64页第三十五页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量【例【例2-32-3】演示】演示(y(

20、y nsh)nsh)数据的溢出。数据的溢出。#include#include void main()void main()char c=127;char c=127;long li=2147483647;long li=2147483647;unsigned uc;unsigned uc;unsigned long uli;unsigned long uli;printf(c=%d,li=%ldn,c,li);printf(c=%d,li=%ldn,c,li);c=c+1;li=li+1;c=c+1;li=li+1;printf(c=%d,li=%ldn,c,li);printf(c=%d,l

21、i=%ldn,c,li);c=127+100;c=127+100;li=2147483647+100;li=2147483647+100;printf(c=%d,li=%ldn,c,li);printf(c=%d,li=%ldn,c,li);uc=127+100;uc=127+100;uli=2147483647+100;uli=2147483647+100;printf(uc=%d,uli=%ldn,uc,uli);printf(uc=%d,uli=%ldn,uc,uli);printf(uc=%u,uli=%lun,uc,uli);printf(uc=%u,uli=%lun,uc,uli)

22、;第35页/共64页第三十六页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量n n实型数据的误差 n n整数存储除了溢出以外(ywi)是没有误差的。n n实型数据由于是用有限的存储单元存储较大范围的实型数,有效数字是有尾数限制的,在实际计算和引用中会有很多问题。第36页/共64页第三十七页,共64页。2.2 标识符、常量标识符、常量(chngling)与与变量变量【例【例2-42-4】演示实型数据的误差。】演示实型数据的误差。#include#include void main()void main()float x,y;float x,y;y=x+0.12345

23、;/*y=x+0.12345;/*大数大数(d sh)(d sh)加上一个小数,小数被忽略加上一个小数,小数被忽略*/*/printf(x=%f,y=%fn,x,y);printf(x=%f,y=%fn,x,y);x=3.1415926;x=3.1415926;y=x-0.0001;/*y=x-0.0001;/*小数的有效位加小数的有效位加1 1有效有效*/*/printf(x=%.3f,y=%.3fn,x,y);printf(x=%.3f,y=%.3fn,x,y);y=x+0.0000005;/*y=x+0.0000005;/*小数的无效位加小数的无效位加1 1也无效也无效*/*/print

24、f(x=%.7f,y=%.7fn,x,y);printf(x=%.7f,y=%.7fn,x,y);第37页/共64页第三十八页,共64页。2.3 运算符与表达式运算符与表达式n n13类45个运算符 第38页/共64页第三十九页,共64页。2.3 运算符与表达式运算符与表达式第39页/共64页第四十页,共64页。2.3 运算符与表达式运算符与表达式n n学习运算符要注意以下几方面问题 n n运算符的功能。n n运算符与操作对象即操作数(包括常量、变量、函数调用等)的关系:n n操作数的个数(单目、双目、三目)。n n求操作数的类型(如求余运算符%要求操作数是整型)。n n结合方向(fngxin

25、g)n n运算符的优先级。n n运算结果的数据类型n n运算符连接操作数形成的式子叫表达式。第40页/共64页第四十一页,共64页。2.3 运算符与表达式运算符与表达式n n算术运算符与算术表达式算术运算符与算术表达式 n n+(加)、(加)、-(减)、(减)、*(乘)、(乘)、/(除)、(除)、%(取模,或称求余运算符)。(取模,或称求余运算符)。n n双目运算符,结合方向均为从左到右。双目运算符,结合方向均为从左到右。n n%(取模)运算符仅用于整型变量(取模)运算符仅用于整型变量(binling)(binling)或整型常量的运算,或整型常量的运算,a%ba%b结果为结果为a a除以除以

26、b b的余数,余数的符号与被除数相同,如:的余数,余数的符号与被除数相同,如:7%37%3的值为的值为1 1;17%-317%-3的结果为的结果为2 2;-19%4-19%4的结果为的结果为-3-3。n n+、-、*、/运算符的两个操作数既可以是整数,也可以是实数。运算符的两个操作数既可以是整数,也可以是实数。n n/(除法)运算符,当对两个整型的数据相除时为整除操作(除法)运算符,当对两个整型的数据相除时为整除操作第41页/共64页第四十二页,共64页。2.3 运算符与表达式运算符与表达式n n强制类型转换(显式转换)运算(yn sun)符:(类型)n n例如:n n(double)a n

27、n(int)(x+y)n n(float)5/3 n n表达式一定要加括号(因强制类型转换是单目运算(yn sun),优先级高),例如上面最后一个表达式中只是将5转变成float型,而不是将5/3转变成float型。n n若对变量实型显式转换,将得到新类型的一个值,原变量的类型及其存储值均不变。第42页/共64页第四十三页,共64页。2.3 运算符与表达式运算符与表达式【例【例2-52-5】演示强制】演示强制(qingzh)(qingzh)类型转换。类型转换。#include#include void main()void main()int i;int i;float f;float f;f

28、=3.1415926;f=3.1415926;printf(i=%d,f=%fn,i,f);printf(i=%d,f=%fn,i,f);i=(int)f;i=(int)f;printf(i=%dn,i);printf(i=%dn,i);f=5/3;f=5/3;printf(f=%fn,f);printf(f=%fn,f);f=(float)5/3;f=(float)5/3;printf(f=%fn,f);printf(f=%fn,f);printf(f=%dn,f);/*printf(f=%dn,f);/*实数按整型数方式输出实数按整型数方式输出*/*/printf(i=%fn,i);/*p

29、rintf(i=%fn,i);/*整型按实数方式输出整型按实数方式输出*/*/第43页/共64页第四十四页,共64页。2.3 运算符与表达式运算符与表达式n n自增自减运算符:+和 n n单目运算符,右结合n n作用对象必须是变量(binling)n n前缀运算n nint i=5,j;j=+i;j等于6。n n后缀运算 n nint i=5,j;j=i+;j等于5。第44页/共64页第四十五页,共64页。2.3 运算符与表达式运算符与表达式【例【例2-62-6】输出】输出(shch)(shch)下面程序中下面程序中i i、j j的值。的值。#include#include void main

30、()void main()int i=5,j;j=+i+i+;int i=5,j;j=+i+i+;printf(i=%d,j=%dn,i,j);printf(i=%d,j=%dn,i,j);i=5;j=(+i)+(+i)+(i+);i=5;j=(+i)+(+i)+(i+);printf(i=%d,j=%dn,i,j);printf(i=%d,j=%dn,i,j);i=5;i=5;printf(i+=%d,i+=%dn,i+,i+);printf(i=%dn,i);printf(i+=%d,i+=%dn,i+,i+);printf(i=%dn,i);i=5;i=5;printf(+i=%d,+i

31、=%dn,+i,+i);printf(i=%dn,i);printf(+i=%d,+i=%dn,+i,+i);printf(i=%dn,i);i=5;j=6;i=5;j=6;printf(i+j=%d,j+=%dn,i+j,j+);printf(i+j=%d,j+=%dn,i+j,j+);printf(i=%d,j=%dn,i,j);printf(i=%d,j=%dn,i,j);i=5;j=6;i=5;j=6;printf(i+j=%d,j+=%dn,i+j,+j);printf(i+j=%d,j+=%dn,i+j,+j);printf(i=%d,j=%dn,i,j);printf(i=%d,

32、j=%dn,i,j);第45页/共64页第四十六页,共64页。2.3 运算符与表达式运算符与表达式n n说明:n n左边是TC下的运行结果(ji gu),右边是VC下的运行结果(ji gu)。n n二者不同之处在于printf函数输出时,VC下后面参数的后缀j+、i+是在所有参数处理完毕后才起作用,而TC下,后缀的自增和自减将影响到该参数前面的参数处理。第46页/共64页第四十七页,共64页。2.3 运算符与表达式运算符与表达式n n赋值运算符与赋值表达式赋值运算符与赋值表达式 n n变量变量=表达式表达式 n n“=”“=”是赋值运算符,不同于等号(等号是是赋值运算符,不同于等号(等号是=)

33、。)。n n右结合右结合n nint a,b;a=b=100;int a,b;a=b=100;n n连续赋值,只有最后一步有效。例如:连续赋值,只有最后一步有效。例如:n nint a;a=100;a=200;int a;a=100;a=200;n n赋值运算符的优先级较低(只高于逗号运算符),因此一般情况下表达式无须加括号赋值运算符的优先级较低(只高于逗号运算符),因此一般情况下表达式无须加括号(kuho)(kuho)。例如:。例如:n na=2+5/3 a=2+5/3 相当于:相当于:a=(2+5/3)a=(2+5/3)n n赋值运算可以构成一个表达式,其值可以再赋给其他变量。例如:赋值运

34、算可以构成一个表达式,其值可以再赋给其他变量。例如:n na=b=100;a=b=100;其实相当于:其实相当于:a=(b=100);a=(b=100);第47页/共64页第四十八页,共64页。2.3 运算符与表达式运算符与表达式n n复合赋值运算符 n n+=、-=、*=、/=、%=、=、&=、=和|=n na+=100;等价于a=a+100;n na*=b;等价于a=a*b;n nn n简化程序,使程序精练(jnglin);n n提高编译效率,产生质量较高的目标代码。第48页/共64页第四十九页,共64页。2.3 运算符与表达式运算符与表达式n n算术(sunsh)表达式的书写(-b+sq

35、rt(b*b-4*a*c)/(2*a)设有变量声明设有变量声明(shngmng)float a=3.0;int b=2;计算表达式计算表达式2+sqrt(1.0+a)*b+/2。解:解:2+sqrt(1.0+a)*b+/22+sqrt(4.0)*b+/22+2.0*2/22+4.0/22+2.04.0 第49页/共64页第五十页,共64页。2.3 运算符与表达式运算符与表达式n n逗号逗号(duho)(duho)运算符与逗号运算符与逗号(duho)(duho)表达式表达式 n n(表达式表达式1),(1),(表达式表达式2),(2),(表达式表达式3),(3),(表达式表达式n)n)n n表达

36、式表达式n n的值就是整个逗号的值就是整个逗号(duho)(duho)表达式的值。表达式的值。n n【例【例2-72-7】演示逗号】演示逗号(duho)(duho)表达式。表达式。n n#include#include n nvoid main()void main()n n n nint a;int a;n nprintf(1+2+3+4+5=%dn,printf(1+2+3+4+5=%dn,(a=1,a=a+2,a=a+3,a=a+4,a=a+5);(a=1,a=a+2,a=a+3,a=a+4,a=a+5);n nprintf(a=%dn,a);printf(a=%dn,a);n n 第5

37、0页/共64页第五十一页,共64页。2.4 数据数据(shj)类型转换类型转换n n类型转换概述 n n不同类型数据的存储长度和存储方式不同,一般不能直接混合运算(yn sun)。为了提高编程效率,增加应用的灵活性,C语言允许不同数据类型相互转换。n n不同数据类型的差异n ndouble比float高级。n n实数比整数高级。n n整数中长的比短的高级,如:longintshortcharn n无符号(unsigned)比有符号(signed)高级第51页/共64页第五十二页,共64页。2.4 数据数据(shj)类型转换类型转换 数据类型转换产生的效果 数据类型级别的提升与降低 符号位扩展与

38、零扩展 截去高位产生数值的变化(binhu)丢失精度 实数转换成整数时,由于截去小数将丢失精度。double型转换成float型时,有效数字减少(四舍五入),精度丢失。long型转换成float型时,由原来可达10位整数变成只有7位有效数字,精度丢失,但由于数的范围扩大了,数据类型从较低级提升到较高级 第52页/共64页第五十三页,共64页。2.4 数据数据(shj)类型转换类型转换n n 自动类型转换 n nfloat在运算时自动转换成double。n nchar和short在运算时自动转换成int。n nint和unsigned混合(hnh)运算时,将int转换成unsigned数据。n

39、nint或unsigned与long混合(hnh)运算时,都转换成long数据。n nint、unsigned、long与浮点型数据混合(hnh)运算时,都转换成double 第53页/共64页第五十四页,共64页。2.4 数据数据(shj)类型转换类型转换n n赋值类型转换赋值类型转换 n n赋值运算时,如果赋值运算符两侧的类型(指基本类型)不一致,系统自动将表达式的值转换成变赋值运算时,如果赋值运算符两侧的类型(指基本类型)不一致,系统自动将表达式的值转换成变量的类型存到变量的存储单元量的类型存到变量的存储单元(cn ch(cn ch dn yun)dn yun)中中 n n整型数据赋给实

40、型变量时,数值上不发生任何变化。如:整型数据赋给实型变量时,数值上不发生任何变化。如:n nfloat f;f=100;float f;f=100;n n实型数据赋给整型变量时,小数部分将被舍弃。如:实型数据赋给整型变量时,小数部分将被舍弃。如:n nint a=3.1415;/*int a=3.1415;/*内存中变量内存中变量a a的值为的值为3*/3*/n n短的有符号整型数据赋给长整型变量时,需要进行符号位扩展。短的有符号整型数据赋给长整型变量时,需要进行符号位扩展。n n短的无符号的整型数据赋给长整型变量时,需要进行短的无符号的整型数据赋给长整型变量时,需要进行0 0扩展。扩展。n

41、n则则i i的值为的值为-1-1。第54页/共64页第五十五页,共64页。2.4 数据数据(shj)类型转换类型转换n n长整型数据赋给短的整型变量时,有可能(knng)溢出。如:n nchar c=321;n n溢出后c的值为A。n n同长度有符号整型数据赋给无符号整型变量时,数据将失去符号位功能。如:n nunsigned char c=-1;n n则c的值为255。n n同长度无符号整型数据赋给有符号整型变量时,数据将得到符号位功能。如对于16位int:n nint i=65535u;第55页/共64页第五十六页,共64页。2.4 数据数据(shj)类型转换类型转换n n强制(qingz

42、h)类型转换 n n强制(qingzh)类型转换的格式为:n n(类型名)(表达式)n n强制(qingzh)类型转换用于不能自动转换的情况。例如:n n(int)5.0%3 /*实型数据求余运算*/n n(int)(f+0.5)/*第一位小数的四舍五入算法*/n n(int)(f*10+0.5)/10.0/*第二位小数的四舍五入算法*/第56页/共64页第五十七页,共64页。2.5 程序程序(chngx)举例举例【例【例2-82-8】编写程序将输入的华氏温度转换】编写程序将输入的华氏温度转换(zhu(zhu nhun)nhun)为摄氏温度,为摄氏温度,输出结果精确到小数点后两位。转换输出结果

43、精确到小数点后两位。转换(zhu(zhu nhun)nhun)公式为:公式为:C=5/9*(F 32)C=5/9*(F 32)#include void main()float temprature;printf(Input F:);scanf(%f,&temprature);temprature=(temprature-32)*5/9;printf(C=%.2fn,temprature);第57页/共64页第五十八页,共64页。【例【例【例【例2-92-9】汽车在有里程标志的公路上行进。输入开始和结束】汽车在有里程标志的公路上行进。输入开始和结束】汽车在有里程标志的公路上行进。输入开始和结束

44、】汽车在有里程标志的公路上行进。输入开始和结束(jish)(jish)的里程及时间(以时、分、秒输入),的里程及时间(以时、分、秒输入),的里程及时间(以时、分、秒输入),的里程及时间(以时、分、秒输入),计算并输出平均速度(公里数计算并输出平均速度(公里数计算并输出平均速度(公里数计算并输出平均速度(公里数/小时)小时)小时)小时)#include#include main()main()int StartPost,EndPost;int StartPost,EndPost;int StartHour,StartMinute,StartSecond;int StartHour,StartMi

45、nute,StartSecond;int EndHour,EndMinute,EndSecond;int EndHour,EndMinute,EndSecond;int ElapsedTS,ElapsedHour,ElapsedMinute,ElapsedSecond;int ElapsedTS,ElapsedHour,ElapsedMinute,ElapsedSecond;double ElapsedTime,Velocity;int Distant;double ElapsedTime,Velocity;int Distant;printf(Input StartPost:);scanf(

46、%d,&StartPost);printf(Input StartPost:);scanf(%d,&StartPost);printf(Input Begin Time:);printf(Input Begin Time:);scanf(%d,%d,%d,&StartHour,StartMinute,&StartSecond);scanf(%d,%d,%d,&StartHour,StartMinute,&StartSecond);printf(Input EndPost:);scanf(%d,&EndPost);printf(Input EndPost:);scanf(%d,&EndPost)

47、;printf(Input End Time:);printf(Input End Time:);scanf(%d,%d,%d,&EndHour,&EndMinute,&EndSecond);scanf(%d,%d,%d,&EndHour,&EndMinute,&EndSecond);第58页/共64页第五十九页,共64页。ElapsedTS=(EndHour*3600+EndMinute*60+EndSecond)(StartHour*ElapsedTS=(EndHour*3600+EndMinute*60+EndSecond)(StartHour*3600+StartMinute*60+S

48、tartSecond);ElapsedHour=ElapsedTS/3600;3600+StartMinute*60+StartSecond);ElapsedHour=ElapsedTS/3600;ElapsedMinute =ElapsedTS%3600/60;ElapsedMinute =ElapsedTS%3600/60;ElapsedSecond=ElapsedTS%60;ElapsedSecond=ElapsedTS%60;ElapsedTime=ElapsedHour+ElapsedMinute/60.0+ElapsedTime=ElapsedHour+ElapsedMinute/

49、60.0+ElapsedSecond/3600.0;ElapsedSecond/3600.0;Distant=EndPost-StartPost;Distant=EndPost-StartPost;Velocity=Distant/ElapsedTime;Velocity=Distant/ElapsedTime;printf(Distant is:%dn,Distant);printf(Distant is:%dn,Distant);printf(Elapsetime is:%d Hour%d Minute%d Secondn,printf(Elapsetime is:%d Hour%d Mi

50、nute%d Secondn,ElapsedHour,ElapsedMinute,ElapsedSecond);ElapsedHour,ElapsedMinute,ElapsedSecond);printf(Velocity is:%f km/hourn,Velocity);printf(Velocity is:%f km/hourn,Velocity);第59页/共64页第六十页,共64页。n nC C语言的数据类型。语言的数据类型。n nC C语言的数据类型有语言的数据类型有4 4类:基本类型、构造类型、指针类型和空类型。类:基本类型、构造类型、指针类型和空类型。n n基本数据类型包括整型

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理工具

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com