首页 常量变量运算符

常量变量运算符

举报
开通vip

常量变量运算符null第二章 数据描述第二章 数据描述预备知识 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式null2.0 预备知识 计算机中数的表示及进制转换 数码、基数与权 数码:表示数的符号 基数:数码的个数及进位的规则 权:每一位所具有的值 数制<>null各种进制之间的转换 二进制、八进制、十六进制转换成十进制 方法:按权相加<>null各种进制之间的转换(整数) 二进制、八进制、十六进制转换成十进制 方法:按权相加十进制转换成二进制、八进制、十六进制方法:连续除以基,从低到高记录余数,直至商为0null...

常量变量运算符
null第二章 数据描述第二章 数据描述预备知识 数据类型 常量与变量 不同类型数据间的转换 运算符和 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式null2.0 预备知识 计算机中数的表示及进制转换 数码、基数与权 数码:表示数的符号 基数:数码的个数及进位的规则 权:每一位所具有的值 数制<>null各种进制之间的转换 二进制、八进制、十六进制转换成十进制 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 :按权相加<>null各种进制之间的转换(整数) 二进制、八进制、十六进制转换成十进制 方法:按权相加十进制转换成二进制、八进制、十六进制方法:连续除以基,从低到高记录余数,直至商为0nullnull二进制与八进制之间的转换 二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 八进制转换成二进制:用3位二进制数代替每一位八进制数例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 ~ 0 001 ~ 1 010 ~ 2 011 ~ 3 100 ~ 4 101 ~ 5 110 ~ 6 111 ~ 7<>null二进制与十六进制之间的转换 二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 十六进制转换成二进制:用4位二进制数代替每一位十六进制数例 (11010101111101)2=(0011,0101,0111,1101)2=(357D)16例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)20000 ~ 0 0001 ~ 1 0010 ~ 2 0011 ~ 3 0100 ~ 4 0101 ~ 5 0110 ~ 6 0111 ~ 7 1000 ~ 8 1001 ~ 9 1010 ~ A 1011 ~ B 1100 ~ C 1101 ~ D 1110 ~ E 1111 ~ F<>null字节和位 内存以字节为单元组成 一个字节一般由8个二进制位组成 每个二进位的值是0或1 每个字节有一个地址<>null数值的表示方法——原码、反码和补码 原码:最高位为符号位,其余各位为数值本身的绝对值 反码: 正数:反码与原码相同 负数:符号位为1,其余位对原码取反 补码: 正数:原码、反码、补码相同 负数:最高位为1,其余位为原码取反,再对整个数加1<>null负数补码转换成十进制数:最高位不动,其余位取反加1例 补码:11111001 取反:10000110 加1: 10000111=-7<>null2.1 数据类型 数据类型总表<>数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作null基本数据类型<>整型字符型实型有无说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:null2.2 常量与变量 标识符 定义:用来标识变量、常量、函数等的字符序列 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线 大小写敏感 不能使用关键字 长度:最长32个字符 命名原则: 见名知意 不宜混淆 如l与1, o与0例:判断下列标识符号合法性 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char a>b _above $123 Int Char<>M.D.John3days#33char$123a>bnull 一般用大写字母 是宏定义预处理命令,不是C语句 直接常量: 整型常量 实型常量 字符常量 字符串常量如 #define PRICE 30常量 定义:程序运行时其值不能改变的量(即常数) 分类: 符号常量:用标识符代表常量 定义格式: #define 符号常量 常量>>>><>例 符号常量举例 #define PRICE 30 main() { int num,total; num=10; total=num*PRICE; printf("total=%d",total); }运行结果:total=300null整型常量(整常数) 三种形式: 十进制整数:由数字0~9和正负号表示.如 123,-456,0 八进制整数:由数字0开头,后跟数字0~7表示.如0123,011 十六进制整数:由0x开头,后跟0~9,a~f,A~F表示. 如0x123,0Xff<例 12 与 12L例 30000 为int型 65536 为long int 型整型常量的类型 根据其值所在范围确定其数据类型 在整常量后加字母l或L,认为它是long int 型常量 在整常量后加字母u或U,认为是unsigned int型常量问题: 0123 = ( )10 0x123 = ( )10 0Xff = ( )10-12345u则先转换成起补码53191,再按无符号数存储 -12345的原码是 10110000 00111001 转换为补码是 11001111 11000111 再转换为无符号数是53191 null实型常量(实数或浮点数) 表示形式: 十进制数形式:(必须有小数点) 如0.123, .123, 123.0, 0.0, 123. 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5 <实型常量的类型 默认double型 在实型常量后加字母f或F,认为它是float 型null字符常量 定义:用单引号括起来的单个普通字符或转义字符. 字符常量的值:该字符的ASCII码值如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\060’ -----------’0’ ‘\483’ ----------()例: ‘A’-------’\101’-------’\x41’--------65<如 ‘A’——65, ‘a’——97, ‘0’——48 , ‘\n’——10如 ‘a’ ‘A’ ‘3’ ‘\n’ ‘\101’转义字符:反斜线后面跟一个字符或一个代码值表示例 转义字符举例 main() { printf("\101 \x42 C\n"); printf("I say:\"How are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'"); }运行结果:(屏幕显示) A B C I say:”How are you?” \C Program\ Turbo ‘C’null<字符常量与字符串常量不同字符串常量 定义:用双引号(“”)括起来的字符序列 存储:每个字符串尾自动加一个 ‘\0’ 作为字符串结束标志null变量 概念:其值可以改变的量 变量名与变量值 变量定义的一般格式: 数据类型 变量1[,变量2,…,变量n];<>变量初始化:定义时赋初值 例: int a,b,c; float data;决定分配字节数 和数的表示范围合法标识符例: int a=2,b,c=4; float data=3.67; char ch=‘A’; int x=1,y=1,z=1; int x=y=z=1;变量的使用:先定义,后使用例1 int student; stadent=19; //Undefined symbol ‘statent’ in function main 例2 float a,b,c; c=a%b; //Illegal use of floating point in function main 变量定义位置:一般放在函数开头null整型变量 整型数据在内存中的存放形式 整型数据在内存中是以二进制形式存放的,每一个整型数据在内存中占2个字节,而且以补码形式表示 <>例:int a; /* 定义a为整型变量 */ a=10; /* 给a赋以整数10 */ 它的二进制形式为1010,则它的存放情况为: 00000000 00001010例:int a; /* 定义a为整型变量 */ a= -10; /* 给a赋以整数-10 */ 取-10的原码为:10000000 00001010 取反为:11111111 11110101 再加1得-10的补码为:11111111 11110110 null整型变量的分类 有符号基本整型 [signed] int 无符号基本整型 unsigned [int] 有符号短整型 [signed] short [int] 无符号短整型 unsigned short [int] 有符号长整型 [signed] long [int] 无符号长整型 unsigned long [int] <>null整型变量的定义 一般放在一个函数的开头部分的声明部分 整型数据的溢出main( ) {int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); }<>例 main() { int a,b,c,d; unsigned u; a=12; b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 32767,-32768null实型变量 实型数据在内存中的存放形式 一个实型数据一般在内存中占4个字节(32位)。一个实型数据分为小数部分和指数部分。实型变量的分类 例 float a; a=111111.111; /* a=111111.1*/ double b; b=111111.111; /* b=111111.111*/<>null实型数据的舍入误差 由于实型数据的存储单元是有限的,能提供的有效数字也是有限的,有效数字以外的数字将被舍去,由此产生误差。<>例 main() { float a,b; a=123456.789e5; /*a=12345678900*/ b=a+20; /*b=12345678920*/ printf(“%f,%f”,a,b); } 12345678848.000000,12345678848.000000null字符型变量 字符变量用来存放字符常量,只能放一个字符,在内存中只占一个字节,不能放字符串。 字符变量存放字符ASCII码。 字符型数据和整型数据是通用的,可以直接进行算术运算,可以互相赋值。<>没有字符串变量,用字符数组存放null例 #define PRICE 12.5 main() { int num=3; float total; char ch1,ch2=‘D’; total=num*PRICE; ch1=ch2-‘A’+‘a’; printf(“total=%f,ch1=%c\n”,total,ch1); }运行结果: total=37.500000, ch1=dnull2.3不同类型数据间的转换 隐式转换 什么情况下发生 运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式 函数调用转换------实参与形参类型不一致时转换<>运算转换规则:不同类型数据运算时先自动转换 成同一类型null<>null显式转换(强制转换) 一般形式:(类型名)(表达式) 例 (int)(x+y) (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变 例 main() { float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); } 结果:x=3.600000,i=3精度损失问题<>null2.4 运算符和表达式<>null学习运算符应注意: 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型 <>null算术运算符和表达式 基本算术运算符: + - * / % 结合方向:从左向右 优先级: - ---->* / % -----> + - (2) (3) (4) 说明: “-”可为单目运算符时,右结合性 乘号用“*”表示,不能省略 两整数相除,结果为整数 %要求两侧均为整型数据 例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2<>例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()nullnull自增、自减运算符++ -- 作用:使变量值加1或减1 种类: 前置 ++i, --i (先执行i+1或i-1,再使用i值) 后置 i++,i-- (先使用i值,再执行i+1或i-1)例 j=3; k=++j; j=3; k=j++; j=3; printf(“%d”,++j); j=3; printf(“%d”,j++); a=3;b=5;c=(++a)*b; a=3;b=5;c=(a++)*b; <>//k=4,j=4//k=3,j=4//4//3//c=20,a=4//c=15,a=4null自增、自减运算符++ -- 作用:使变量值加1或减1 种类: 前置 ++i, --i (先执行i+1或i-1,再使用i值) 后置 i++,i-- (先使用i值,再执行i+1或i-1)说明: ++ -- 不能用于常量和表达式,如5++,(a+b)++ ++ --结合方向: 自右向左 优先级:- ++ -- ------>* / % ----->+ - (2) (3) (4)例 -i++  -(i++) i=3; printf(“%d”,-i++); //-3 例 -i++ i=3; printf(“%d”,-i++); 例 i=3; printf(“%d,%d”,i,i++); 4,3null赋值运算符和表达式 简单赋值运算符 符号: = 格式: 变量标识符=表达式 作用:将一个数据(常量或表达式)赋给一个变量复合赋值运算符 种类:+= -= *= /= %= 含义:变量名 op= 表达式 表示:变量名 =变量名 op 表达式<>例 a=3; d=func(); c=d+2;null说明: 结合方向:自右向左 优先级: 14 左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例 3=x-2*y; a+b=3;例 float f; int i; i=10; f=i; 则 f=10.0例 int i; i=2.56; //结果i=2;例: a=b=c=5 a=(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=2null说明: 结合方向:自右向左 优先级: 12 左侧必须是变量,不能是常量或表达式赋值表达式的值与变量值相等,且可嵌套赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型例: a=12; a+=a-=a*a例: int a=2; a+=a*=a-=a*=3; <>//a=-264 等价于a=a+(a=a-(a*a))//a=0 等价于a=a+(a=a*(a=a-(a=a*3)))null逗号运算符和表达式 形式:表达式1,表达式2,……表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值(即最后一个表达式的值) 用途:常用于循环for语句中例 a=3*5,a*4 a=3*5,a*4,a+5 例 x=(a=3,6*3) x=a=3,6*a 例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c); <>//a=15,表达式值60//a=15,表达式值20//赋值表达式,表达式值18,x=18//逗号表达式,表达式值18,x=3//1,2,3//3,2,3null逗号运算符和表达式 形式:表达式1,表达式2,……表达式n 结合性:从左向右 优先级: 15 逗号表达式的值:等于表达式n的值 用途:常用于循环for语句中例: #include main() { int x,y=7; float z=4; x=(y=y+6,y/z); printf("x=%d\n",x); }运行结果:x=3<>null关系运算符和表达式 关系运算符 种类:< <= == >= > != 结合方向:自左向右 优先级别:例 c>a+b //c>(a+b) a>b!=c //(a>b)!=c a==bc //a=(b>c) 关系表达式的值:是逻辑值“真”或“假”,用1和0表示例 int a=3,b=2,c=1,d,f; a>b (a>b)==c b+cb f=a>b>c<>//表达式值1//表达式值1//表达式值0//d=1//f=0null关系运算注意:<>例 若a=0; b=0.5; x=0.3; 则 a<=x<=b的值为 0例 5>2>7>8在C中是允许的, 值为0例 int i=1, j=7,a; a=i+(j%4!=0); 则a=2例 ‘a’>0 结果为 ‘A’>100 结果为10null关系运算注意:例 注意区分“=”与“= =” int a=0,b=1; if(a = =b) printf(“a equal to b”); else printf(“a not equal to b”);例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0==1.0 结果为 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-60null逻辑运算符和表达式 逻辑运算符 种类: ! && || 逻辑运算真值表C语言中,运算量: 0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, 1表示“真”, <>null例 a<=x && x<=b a>b&&x>y a==b||x==y !a||a>b 优先级:结合方向:<>// (a<=x) && (x<=b) //(a>b)&&(x>y)//(a==b)||(x==y)//(!a)||(a>b)null优先级:结合方向:例 a=4;b=5; !a a&&b a||b !a||b 4&&0||2 5>3&&2||8<4-!0 ‘c’&&‘d’<>值为1值为0值为1值为1值为1值为1//(5>3)&&2||(8<(4-(!0))) 值为1null优先级:结合方向:短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符<>例 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=1null条件运算符与表达式 一般形式: expr1 ? expr2 : expr3 执行过程 功能:相当于条件语句,但不能取代一般if语句例 求 a+|b| printf(“a+|b|=%d\n”,b>0?a+b:a-b);例 (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:d  a>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
本文档为【常量变量运算符】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
最新资料
资料动态
专题动态
is_860153
暂无简介~
格式:ppt
大小:913KB
软件:PowerPoint
页数:0
分类:其他高等教育
上传时间:2013-03-24
浏览量:26