下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章数据类型、运算符和表达式、21世纪大学精品规划教材、Hanent定理、C语言的基本数据类型确定标识符、关键字、常量和变量用法确定运算符、表达式和数据类型之间的转换等简单数据的输入输出、2.1数据类型、2.1.1数据类型概览、2整数可分为:预设整数:显示为int。短整数:显示为短int或短。长:长int或长。2.1数据类型、2.1.2整数类型、2.1数据类型、2.1.3实数类型缩写实数类型或浮点数据类型。单精度浮点类型:缩写浮点类型,类型名称为float。双精度类型:double类型的缩写。长双精度类型:类型名称为长双精度。2.1数据类型、2.1.3实数、2.1数据类型、2.1.4字符类型
2、数据缩写字符类型数据c语言中使用char,在内存中占用一个字节。字符类型的数据包括计算机使用的编码字符集中的所有字符。常用的ASCII字符集,共128个。扩展的ASCII字符集共256个字符。文字数据类似于整数数据(占用存储空间除外)。2.1数据类型、2.1.4字符类型、2.2标识符、常量和变量、2.2.1标识符是程序中的变量、符号常量、数组、函数、类型、类型规则:由字母、数字和下划线组成,第一个字符必须是字母或下划线。对大小写敏感。Name和name建议不要使用预定义的系统标识符,例如关键字、2.2标识符、常量和变量(其中系统不能用作两个不同的标识符),因为define、include、sc
3、anf、printf等。不要使用混合字符1、l、I,例如max、name。0,o;2、z等、2.2标识符、常量和变量、关键字、2.2标识符、常量和变量、2.2.2常量表示在程序运行过程中不能更改值的量。直接常数:整数常数、实数常数、文字常数、字串常数等。符号常数:定义为识别码的常数。2.2标识符、常量和变量、整数常量十进制常量:168、-1、65535等的数学表示法。八进制常数:以0开头,由数字07组成,例如0101、-045等。十六进制常数:以0 x或0X开头的数字序列表示十六进制数,如0 x12、2.2标识符、常数和变量。在数据后添加u或u以说明无符号类型(例如65535u、168U等)。
4、如果说明为long,请在数据后添加l或l(例如-1L)。八进制、十进制、十六进制只是整数的徐璐其他书写形式,提供多种写法只是为了方便使用,所以我们可以根据需要选择合适的书写方式。在c语言中,整数不是以二进制形式表示的。在c语言中,通常只使用无符号的八进制和十六进制,不使用有符号的八进制和十六进制,因此没有无特殊符号的八进制和十六进制标识符。2.2标识符、常量和变量,以下是无效的整数常量:09: 0必须以八进制数开头,但9不是有效的八进制数。0x6g:0x必须以十六进制数开头,但g不是有效的十六进制数。以下是有效的整数常数:000000101:八进制,相当于十进制65。-012:八进制,相当于十
5、进制-10。65535LU:十进制数,无符号长整数。0XFF:十六进制,相当于十进制255。2.2标识符、常量和变量以及实数常量实数常量只能用十进制表示法表示:小数形式。数字序列和小数(例如3.1415926、-0.15、 15、2)。等)组成的都是合法的实数常数。金志洙格式。由十进制数和代码标志“e”或“e”和代码组成。例如,3.14e-4或3.14E-4表示3.1410-4。、2.2标识符、常量和变量以及:字符E或E之前的结尾必须包含数字。例如,E2是非法的。E或E后面的金志洙部分必须是整数。金志洙部分没有整数或小数时都是错误的表示(例如,5e和5E-5.5都是错误的表示)。在c语言中,默
6、认实数常量为double类型,如果后缀为“f”或“f”,则默认实数常量为float类型。2.2标识符、常量和变量以及字符常量文字常量由单引号括起来的单字符对组成(例如,A、B、8字符AZ的ASCII代码值为6590)。文字az的ASCII代码值为97122。字符09的ASCII代码值为4857。空格字符的ASCII代码值为32。2.2标识符、常量和变量、转义符、2.2标识符、常量和变量以及字符串常量字符串常量是用一对双引号括起来的字符序列(例如,“1234567”、“Hello World”等)。123101共5个字符,占6个字节。其中101分别表示一个字符,输出为标识符123A、2.2、常量
7、和变量。符号常量示例2-1输入圆的半径并计算周长和面积。# define pi 3.14159 void main()float r、c、s;Scanf(%f,2.2标识符、常量和变量,2.2.3变量在程序运行期间可以更改存储值的量称为变量。必须用标识符描述变量。这称为变量名。变量名和内存单元地址之间存在映射关系,程序可以通过变量名称寻址来访问存储的数据。2.2标识符、常量和变量、变量的定义和说明数据类型变量名称1、变量名2、变量名n;Int i、j、k;float x;长a、b、c;四个基本元素:名称、类型、初始值和范围、2.2标识符、常量和变量以及变量名为标识符之一。变量的数据类型可以是基
8、本数据类型,也可以是复杂数据类型。变量的范围指示变量在程序中定义的范围,即变量名在代码区域中是否有意义。必须为变量指定初始值。未赋值变量的初始值取决于存储库类型,静态存储的变量自动为零。否则,将随机初始化。2.2标识符、常量和变量以及将初始值分配给变量的两种方法变量说明直接分配称为变量初始化的初始值,如int a=10、b=9、c=6。float x=3.0;y=1.0;z=2.0;使用赋值语句指定初始值,例如float x;X10.0、2.2标识符、常量和变量:编译系统根据定义的类型将相应的存储设备分配给每个变量。变量存储设备地址为“int I;c=A;I=c;Printf(c=%d,c=%
9、cn,c,c);Printf(i=%d,i=%cn,I,I);C=c 32Printf(c=%cn,C):C=0 X80;Printf(c=%c,c=%dn,c,c);2.2标识符、常量和变量、溢出和舍入错误数据的溢出char c=127c=c 1;2.2标识符、常量和变量以及示例2-3数据溢出。# include void main()char c=127;朗利=2147483647;Unsigned UCUnsigned long uliPrintf(c=%d,li=%ldn,c,Li);c=c 1;Li=Li 1;Printf(c=%d,li=%ldn,c,Li);C=127 100Li
10、=2147483647 100Printf(c=%d,li=%ldn,c,Li);Uc=127 100Uli=2147483647 100Printf(uc=%d,uli=%ldn,uc,uli);Printf(uc=%u,uli=%lun,uc,uli);2.2标识符、常量和变量、实数数据的错误整数存储除溢出外没有错误。实际数据用有限的存储设备存储大范围的实际数字,因此有效数字有尾部数量限制,实际计算和参考可能会有很多问题。2.2标识符、常量和变量,示例2-4显示实际数据中的错误。#include void main() float x,y;X=1234567890000000000.0Y=
11、x 0.12345/*如果代数加上小数,则忽略小数*/printf(x=%f,y=%fn,x,y);X=3.1415926y=x-0.0001;/*小数有效位加1有效*/printf(x=%.3f,y=%.3fn,x,y);Y=x 0.0000005/*小数中的无效位加1也无效*/printf(x=%.7f,y=%.7fn,x,y);2.3运算符和表达式、类13 45运算符、2.3运算符和表达式、2.3运算符和表达式以及学习运算符需要注意以下问题运算符的功能:运算符和操作数是与操作数(包括常量、变量、函数调用等)的操作数(单眼、双眼、三木)的关系。寻找运算元的类型(例如,剩馀运算子%需求运算元
12、为整数)。合并方向操作符的优先级。计算结果中数据类型运算符连接操作数的表达式称为表达式。2.3运算符和表达式、2.3.1算术运算符和算术表达式(加)、-(减)、*(乘)、/(除)、%(铸模或剩馀运算符)。连接方向为从左到右的双目运算符%(模数)运算符仅用于整数变量或整数常量的运算。结果a%b将a除以b的馀数,剩下的符号就等于被除数(例如,7%3的值为1;17%-3的结果是2。-19%4的结果是-3。-,*,/运算符的两个操作数可以是整数或实数。/(除法)运算符、除以两个整数的数据时的除法运算、2.3运算符和表达式、强制类型转换(显式转换)运算符: (类型)例如:(double) a (int)
13、 (x y)(显式转换ff变量的实际类型),2.3运算符和表达式,示例2-5显示强制类型转换。# include void main()int I;float f;F=3.1415926Printf(i=%d,f=%fn,I,f);I=(int)f;Printf(i=%dn,I);f=5/3;Printf(f=%fn,f);f=(float)5/3;Printf(f=%fn,f);Printf(f=%dn,f);/*实数*/printf(i=%fn,I)作为整数输出。/*整数会意外输出*/、2.3运算子和表示式。自增量减法运算符:和单目运算符,右联合目标必须是变量前缀运算int i=5,j。j
14、=I;j等于6。后缀运算int i=5,j;j=I;j等于5。2.3运算符和表达式,示例2-6以下程序输出I,J的值:#include void main() int i=5,j;J=I IPrintf(i=%d,j=%dn,I,j);I=5;j=(I)(I)(I)(I);Printf(i=%d,j=%dn,I,j);I=5;Printf(i=%d,i=%dn,I,I);Printf(i=%dn,I);I=5;Printf(i=%d,i=%dn,I,I);Printf(i=%dn,I);I=5;j=6;Printf(i j=%d,j=%dn,i j,j);Printf(i=%d,j=%dn,I
15、,j);I=5;j=6;Printf(i j=%d,j=%dn,i j,j);Printf(i=%d,j=%dn,I,j);2.3运算符和表达式,说明:左侧是TC下方的执行结果,右侧是VC下方的执行结果。区别在于,在printf函数输出中,VC下的后续参数的后缀J,I仅在处理完所有参数后才起作用,而在TC中,后缀的自增加和自减会影响该参数前的参数处理。2.3运算符和表达式、2.3.2赋值运算符和赋值表达式变量=表达式=是赋值运算符,与等号不同(等号为=)。右接合int a、b;A=b=100连续分配,只有最后一个阶段有效。示例:int a;A=100A=200赋值运算符的优先级较低(高于逗号运
16、算符),因此表达式通常不需要括号。例如,a=2 5/3就像a=(2 5/3)赋值操作构建一个可以将值赋给其他变量的表达式一样。例如:a=b=100实际上等于a=(b=100)。2.3运算符和表达式,复合赋值运算符=、-=、*=、/=、%=、=、int b=2;计算表达式2 sqrt(1.0 a)*b /2。解决方法:2 sqrt(1.0a)* b/2 2 2 sqrt(4.0)* b/2 2 2 2.0 * 2/2 2 4.0/2 2 2 2 2 . 0 4.0,2.3运算符和表达式,2.3.4逗号# include void main()int a;Printf (1 2 3 4 5=% dn,(a=1,a=a2,a=a3,a=a4,a=a5);Printf(a=%dn,a);2.4数据类型转换,2.4.1类型转换概述不同类型数据的存储长度和存储方式不同,通常不能直接混合。为了提高编程效率和提高应用程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国纳米材料在漂洗添加剂中的应用前景评估
- 2025-2030中国矿泉水水源地保护与开发利用政策研究报告
- 2025-2030中国牙科种植体表面处理技术与临床效果评估报告
- 工厂统计工作制度
- 工程每日工作制度
- 市场安保工作制度
- 市爱卫会工作制度
- 帮助工作制度
- 干部住户工作制度
- 平安边界工作制度
- 2026年ipmpd级考试试题
- 2026年浙江机电职业技术学院单招职业技能考试备考试题带答案解析
- 义务教育道德与法治课程标准日常修订版(2022年版2025年修订)
- 2026年商丘学院单招(计算机)测试备考题库必考题
- 2025年卫生管理初级师考试真题及答案
- 企业信息系统维护手册与模板
- (2025年)政工师职称考试题库及答案
- 残疾人证核发与管理
- 安全员题库宝破解版及答案解析
- 《政务信息系统运行维护费用定额测算方法》
- 2025-2030胎教音乐对婴儿脑波影响的医学测量技术发展
评论
0/150
提交评论