《C程序设计教学做一体化教程_第3章_运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《C程序设计教学做一体化教程_第3章_运算符与表达式.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023/1/221 C程序设计教学做一体化教学做一体化教程耿祥义 张跃平 编著清华大学出版社2023/1/222第第3章章 运算符与表达式运算符与表达式 2023/1/2233 3.1.1 算术运算符与赋值运算符算术运算符与赋值运算符 3 3.1.1.1.1 核心知识点核心知识点1 1算术运算符算术运算符算术运算符:+,-,*,/,%(加、减、乘、除、求余)都是连接两个操作元的二目运算符。*,/和%运算符的级别(3级)高于+和-(4级)。算术运算符结合方向是从左向右。按着ANSI C标准,求余(%)运算符的操作元只能是整型数据。例如,12%7的结果是5,即12除以7的余数是5,-12%7的结
2、果是-5。但是,12.0%7是非法的,因为其中的左操作元12.0不是整数。2 2算算术术表达式表达式 用算术运算符(包括括号)连接起来的符合C语言语法规则的式子称为算术表达式。例如,假设x和y是整型变量,那么-2*x+7*y30+3*(y+15)就是一个算术表达式,而3x+5y就不是算术表达式,正确的写法应当是3*x+5*y。运算精度的规则如下:如果表达式中有浮点数,则按双精度进行运算。即计算结果是double型数据(保留1516位有效数字)。如果表达式中最高精度是long型整数,则按long精度进行运算,即计算结果是long型整数。如果表达式中最高精度低于int型整数,则按int精度进行运算
3、,即计算结果是int型整数。例如,5/2的结果是2,而不是2.5(5.0/2的结果是2.5)。2023/1/2243 3赋值赋值运算符运算符 赋值运算符:“=”是二目运算符,赋值运算符的作用是将赋值符号“=”右侧的值赋给左侧的变量,即“=”左面的操作元必须是变量,不能是常量或表达式。在数学中,x=x+1是错误的(数学中把=看作等号),但是在编程语言中“=”是赋值的意思,x=x+1就是正确的。比如变量x的值是20,那么经过赋值运算x=x+1后,变量x的值就是21了。赋值运算符的级别在所有的运算符中是比较低的(14级,倒数2级),例如,x=x+1相当于x=(x+1)。4 4赋值赋值表达式表达式用赋
4、值符号(包括括号)连接起来的符合C语法规则的式子,称为赋值表达式。例如,假设x和y都是int型变量,那么x=12和y=20都是赋值表达式。赋值表达式的值就是“=”左面变量得到的值。例如,假如a和b是两个int型变量,那么赋值表达式a=-10和b=12的值分别是-10和12。需要注意的是“=”的结合顺序是从右向左,因此表达式a=b=100相当于a=(b=100),即将赋值表达式b=100的值赋给变量a,因此赋值表达式a=b=100的值是100。2023/1/2255 5复合复合赋值赋值运算符运算符 允许在赋值运算符的前面添加一个算术运算符组合出一个复合赋值运算符,例如(假设x是一个变量):x+=
5、100;等价于x=x+100;同样,x*=100+x;等价于x=x*(100+x);尽管,x+=100和x=x+100的效果相同,但x+=100的效率较高,即编译器在生成机器码时,x+=100产生的机器码少于x=x+100产生的机器码。2023/1/2266 6简单简单示例示例 例子1计算了代数表达式:的值。Example3_1.c#includeint main()double a,b,c,d,result;a=10;b=34.56;c=20.88;d=200.98;result=9*a*(b+c)/d;printf(%f,result);return 0;2023/1/227 3 3.1.
6、1.2 2 能力目标能力目标计计算算算算术术表达式的表达式的值值使用使用赋值赋值运算符将算运算符将算术术表达式的表达式的值赋给变值赋给变量。量。8 3 3.1.1.3 3 任务驱动任务驱动-正整数上各个位上的数字正整数上各个位上的数字 1 1任务的主要内容任务的主要内容在 main函 数 中 声 明 一 个 用 于 存 放 正 整 数 的 无 符 号 short型 变 量positiveInteger,以及用于存放正整数的个位、十位、百位、千位和万位上数字的char型变量a1,a2,a3,a4和a5。使用scanf函数让用户从键盘为positiveInteger输入值。依次求出positive
7、Integer中个位、十位、百位、千位和万位上的数字,并将这些数字依次赋值给变量a1,a2,a3,a4和a5。输出a1,a2,a3,a4,a5以及表达式a1+a2+a3+a4+a5的值。将 表 达 式 a5*10000+a4*1000+a3*100+a2*10+a1的 值 赋 值 给 变 量positiveInteger,并输出positiveInteger的值。将 表 达 式 a1*10000+a2*1000+a3*100+a4*10+a5的 值 赋 值 给 变 量positiveInteger,并输出positiveInteger的值。2.2.任任务务模模板板:按着任务核心内容完成模板:将
8、【代码】替换为程序代码。模模板板程程序序的运行效果如图3.1。2023/1/2293.3.任务小结或知识扩展任务小结或知识扩展 模板的参考答案:模板的参考答案:【代码1】:a1=positiveInteger%10;【代码2】:positiveInteger=positiveInteger/10;【代码3】:printf(a1+a2+a3+a4+a5=%dn,a1+a2+a3+a4+a5);【代码4】:printf(a1*a2*a3*a4*a5=%dn,a1*a2*a3*a4*a5);(1)求商与求余求商与求余 为了计算某个整数个位上的数字,只需计算该整数和10求余的结果。那么为了计算十位上的
9、数字,先计算该整数除以10的商,然后再计算该商和10的求余结果,依此类推就可以计算出整数的各个位上的数字。整型数据进行除法运算的结果仍然的是整型数据,例如123/10的结果是12,即123除以10的商是12。123%10的结果是3(123除以10的余数),即123等于12乘以10加3。10(2)注意乘号注意乘号 初学C语言一定要习惯这里的乘法运算符号,初学者经常把6乘以x错误的写成:6x,正确的写法是6*x。(3 3)输出输出%如果准备在printf函数的“输出模式”中输出%,在编写代码时需要键入两个连续的%,例如:printf(你好%);输出的结果是:你好%。11 3 3.1 1.4 4 实
10、实践践环节环节 编写程序输出下列表达式值:A1/2+3+6*4/6。B3+6*(4/6)。C10%3*9。D12+10%(3*9)。(参考代码见附录参考代码见附录A)2023/1/22123.2 自增、自减运算符 2023/1/2213 3 3.2 2.1 1 核心知核心知识识点点 自增、自减运算符:+,-是单目运算符,可以放在操作元之前,也可以放在操作元之后,+,-的操作元必须是变量。1 1前前缀缀自增、自减运算自增、自减运算 当+(-)出现在变量的前面时,称+(-)是+(-)前缀运算。当+(-)前缀运算出现在一个表达式中时,其运算作用是:先自增(自减)后使用。如果+是前缀运算,就首先使变量
11、的值增加1(即执行x=x+1)、如果-是前缀运算,就首先使变量的值减少1(即执行x=x-1),然后变量x的值再参与该表达式的计算。例如,假设声明了两个int型变量x和n:intx,n=10;如果执行:x=+n+12;那么+前缀运算出现在算术表达式“n+12”中,因此变量n的值首先自增1变成11,然后再参与表达式的计算。x=+n+12;的作用等价于下列:n=n+1;x=n+12;2023/1/22142 2后后缀缀自增、自减运算自增、自减运算 当+或-出现在变量的后面时,称+或-后缀运算。当后缀运算出现在一个表达式中时,其运算作用是:让变量x的值先参与该表达式的计算,在表达式的值被计算完毕之后,
12、如果是+后缀运算,就使变量的值增加1(即执行x=x+1),如果是-后缀运算,就使变量的值减少1(即执行x=x-1),即所谓的先使用后自增(自减)。3 3简单简单示例示例例子例子2使用了自增、自减运算符,请注意程序注释的输出结果。example3_2.c#include int main()int a=16,b=10,m,n;m=a+-b;n=+a-b;b-;printf(m=%d,n=%dn,m,n);/输出结果是:m=6,n=8 printf(a=%d,b=%dn,a,b);/输出结果是:a=18,b=9 return 0;2023/1/2215 3 3.2 2.2 2 能力目标能力目标能能
13、简单简单明了地使用自增、自减运算符。明了地使用自增、自减运算符。16 3 3.2 2.3 3 任务驱动任务驱动编写程序,模拟冰块溶解于水。冰块放入盛有水的容器中后,容器中物质的重量等于冰与水的重量之和,但每隔1分钟后,冰的重量减少一个单位,水的重量增加一个单位。冰块放入盛有水的容器3分种后,输出容器所盛的物质的重量,以及容器中冰块的重量和水的重量。1 1任务的主要内容任务的主要内容 在main函数中声明两个无符号的short型变量:water和ice,其值分别表示水和冰块的重量。在main函数中声明一个无符号的short型变量weight,用于存储水和冰块的重量之和。模拟1分钟后容器中冰块和水
14、的重量之和以及冰块的重量和水的重量,即计算water与ice的和,并把结果存放到weight中,而且要保证计算结束后water的值自动增加1、ice的值自动减少1。继续模拟2分钟后、3分中后容器中冰块和水的重量之和以及冰块的重量和水的重量。2.2.任任务务模模板板:按着任务核心内容完成模板:将【代码】替换为程序代码。模模板板程程序序的运行效果如图3.2。2023/1/22173.3.任务小结或知识扩展任务小结或知识扩展 模板的参考答案:模板的参考答案:【代码1】:weight=water+ice-;【代码2】:weight=water+ice-;【代码3】:weight=water+ice-;
15、避免在表达式中出避免在表达式中出现过现过多的自增、自减运算符多的自增、自减运算符 尽管自增、自减运算符有较高的效率,但使用+和-运算符时,尽量避免过于“聪明”地使用它们,否则不利于代码的阅读。目前的软件不仅注重代码的效率,也非常注重代码的维护。例如,假设声明了变量i和y:inti=2,y;如果执行:y=i+*i;那么,y的值是4,i的值是3(i先参与计算再自增)。显然,阅读:y=i+*i;的难度大于:y=i*i;i=i+1;尽管y=i+*i;的效率更高,但是,对于目前的处理器,i+*i带来的效率几乎可以忽略。编写C程序尽量避免在表达式中出现过多的自增、自减运算符,以简练、可读性强为最佳。18
16、3 3.2 2.4 4 实实践践环节环节 编写程序,要求声明变量i和y:int i=2,y;执行:y=i+*i;输出y和i的值。(参考代码见附录参考代码见附录A)2023/1/22193 3.3 3关系与逻辑运算符 3 3.3 3.1.1 核心知识点核心知识点1 1关系关系运算符运算符当程序需要比较两个数值的大小关系时,就需要使用关系运算符。关系运算符的意义如下:l=相等l!=不等l大于l=大于或等于l=小于或等于关系运算符是使用频率非常高的一个运算符,基本信息见表3.1。2023/1/22202 2关系表达式关系表达式 用关系运算符(包括括号)连接起来的符合C语法规则的式子称为关系表达式。例
17、如,假设x和y都是int型变量,那么x=9都是关系表达式。关系表达式的值要么是1、要么是0,当关系表达式表达的关系成立时值为1,否则为0。例如,关系表达式:1 2 3的值是1,因为关系运算符的结合顺序是从左到右,所以1 2 3的计算顺序相当于:(1 2)3。关系表达式:-3 -2 -1的值是0(注意不是1),因为-3 -2 -1的计算顺序相当于:(-3 -2)-2的结果是0,因为“=”的级别低于“”,-1=-1 -2的计算顺序相当于:-1=(-1 -2),而不是(-1=-1)-2。不要将相等关系运算符:“=”和赋值运算符:“=”相混淆,比如,假设x是一个int型变量,其值是-10,那么关系表达
18、式x=1的值是0,而赋值表达式x=1的值是1。2023/1/22213 3逻辑逻辑运算符运算符 C语言分别使用“&”、“|”和“!”表示逻辑代数中的“与”、“或”和“非”三种逻辑运算。C语言用非0的数表示“真”,用0表示“假”。“&”、“|”是双目运算符,“!”是单目运算符。逻辑运算符基本信息见表3.2。2023/1/22224 4逻辑逻辑表达式表达式 当两个操作元都是非零数时,&运算结果是1,否则是0。当两个操作元都是零时,|运算结果是0,否则是1。当操作元是非零时,!运算结果是0,否则是1。例如:-5&3的结果是1。5 4&9 4)&(9 3&1 3)&(1 12|19 12)|(19 8
19、))。10 9|3 2的结果是0(相当于(10 9)|(3 2))。!8的结果是0。!8的结果是1(!的结合顺序是从右向左)。逻辑运算符“&”和“|”也称作短路逻辑运算符。对于op1&op2,当op1的值是“假”时(值是0),“&”运算符在进行运算时不再去计算op2的值,直接就得出op1&op2的结果是0(假);当op1的值是“真”时,就需要继续计算op2的值,才能最后计算出op1&op2的结果。对于op1|op2,当op1的值是“真”时,“|”运算符在进行运算时不再去计算op2的值,直接就得出op1|op2的结果是1(真);当op1的值是“假”时,就需要继续计算op2的值,才能最后计算出op
20、1|op2的结果。2023/1/22235.5.简单简单示例示例例子3计算了几个关系和逻辑表达式的值,请注意程序注释的输出结果。example3_3.c#include int main()int a=1,b=5,c=5,x=0;int rusult;rusult=a+bc&b=c;printf(result=%dn,rusult);/result=1 rusult=-a&b+c|b-c;printf(result=%dn,rusult);/result=0 rusult=(x=10)&(x=100);printf(result=%d,x=%dn,rusult,x);/result=1,x=1
21、00 rusult=(x=-10)|(x=0);printf(result=%d,x=%dn,rusult,x);/:result=1,x=-10 return 0;2023/1/2224 3 3.3 3.2 2 能力目标能力目标能使用关系运算符表达数据之能使用关系运算符表达数据之间间的大小关系。的大小关系。能使用能使用逻辑逻辑运算符表达数据之运算符表达数据之间间的的逻辑逻辑关系。关系。25 3 3.3 3.3 3 任务驱动任务驱动1 1任务的主要内容任务的主要内容 对于整型变量x,用关系和逻辑表达式表达下述内容:x是负数。x在-10和-20之间。x大于100或者x小于10。x20并且是3的倍
22、数。x能被3或5整除。x能被5整除但不能被3整除。输入x的值,程序输出上述表达式的值。2.2.任任务务模模板板:按着任务核心内容完成模板:将【代码】替换为程序代码。模模板板程程序序的运行效果如图3.3。2023/1/22263.3.任务小结或知识扩展任务小结或知识扩展 模板的参考答案:模板的参考答案:【代码1】:printf(表达式x=-20&x=-20&x20)&(x%3=0)的值:%dn,(x20)&(x%3=0);【代码3】:printf(表达式(x%5=0)&!(x%3=0)的值:%dn,(x%5=0)&!(x%3=0);(1)(1)运算符的级别和结合性运算符的级别和结合性 对于32+
23、22+24-102+22)+(2-1)的结果是1)。(2)(2)避免逻辑错误避免逻辑错误 需要注意的是,当我们要表达一个变量x的值是否在某个范围的时候,比如小于-1且大于-5时,不要使用表达式:-5x-1,因为,当x的值是-3的时候,表达式:-5x-1的值是0(假),应当使用表达式:-5x&x-5&-1x,显然当x的值是-3时,这两个表达式的值都是1(真)。(3)(3)增强代码的可读性增强代码的可读性在表达式中尽量避免出现难以阅读的计算顺序,提倡使用小括号达到您的计算顺序的目的,以便增强代码的可读性。例如,对于3+710-1,尽管加减的运算级别高于关系运算符,但(3+7)(10-1)的可读性更
24、好。27 3 3.3 3.4 4 实实践践环节环节 实践实践1 1 (参考代码见附录参考代码见附录A A)有如图3.4所示意的电路图。用整型变量表示一个开关的状态,当整型变量的值是非0时表示开关是“开”,当整型变量的值是0时表示开关是“关”。程序使用scanf语句输入整型变量的值,即输入各个开关的状态。程序用逻辑表达式表示电路通,即逻辑表达式的值是1表示电路通。实践实践2 2:编写程序,在main函数中声明3个int型变量x,y,z,并使用scanf函数为这3个int型变量输入值,然后程序计算并输出下列表达式的值:Ax+y&z-y。Bxyyz。Cx-x&y-y|z-z。D(x-x)&y-y。2
25、023/1/22283 3.4 4类型转换运算符 3 3.4 4.1.1 核心知识点核心知识点1 1类类型型转换转换运算符运算符 类型转换运算符的格式是:(类型)类型转换运算符是单目运算符,操作元是数值型数据,例如:(float)12的结果 是 12.0(保 留 67位 有 效 数 字)。(int)45.98的 结 果 是 45。(double)(int)68.89的结果是68.0(保留1516位有效数字)。#include int main()int a=11;double b=12.98,c,d;printf(%f,%dn,(float)a,(int)b);/输出:11.000000,12
26、 c=(int)b+0.5;printf(%fn,c);/输出:12.500000 d=(int)(b+0.5);printf(%fn,d);/输出:13.000000 return 0;3简单简单示例示例例例子子4中使用了类型转换运算符,请注意程序注释的输出结果。2注意事注意事项项需要注意的是,类型转换运算符的级别是2级,因此,(int)15.9+0.1的 结 果 是15.1,即相当于:(int)15.9)+0.1,而(int)(15.9+0.1)的结果才是16。2023/1/2229 3 3.4 4.2 2 能力目标能力目标 使用类型转换运算符将一种基本类型数据转换为另一种基本类型数据。3
27、0 3 3.4 4.3 3 任务驱动任务驱动对浮点数进行四舍五入1 1任务的主要内容任务的主要内容 输出浮点数对第1位小数实施四舍五入的结果。输出浮点数对第2位小数实施四舍五入的结果。输出浮点数对第3位小数实施四舍五入的结果。2.2.任任务务模模板板:按着任务核心内容完成模板:将【代码】替换为程序代码。模模板板程程序序的运行效果如图3.5。2023/1/22313.3.任务小结或知识扩展任务小结或知识扩展 模板的参考答案:模板的参考答案:【代码1】:result=(int)(number+0.5);【代码2】:result=(int)(number*10+0.5);【代码3】:(int)(nu
28、mber*100+0.5);(1)(1)关于四舍五入关于四舍五入 为了实现四舍五入,只需要将浮点数据加上0.5,再将结果进行int型转换运算即可。但需要注意的是,类型转换运算符的级别是2级,因此,(int)15.9+0.5的 结 果 是 15.5,即 相 当 于:(int)15.9)+0.5,而(int)(15.9+0.5)的结果才是16。(2)(2)关于优先级别关于优先级别 C的表达式就是用运算符连接起来的符合语法规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。例如,xy&!z相当于(xy)&(!z)。没有必要去记忆运算符的优先级别,在编写程序时尽量的使用括号()运算符号(级别是
29、最高级:一级)来实现想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。运算符的结合性决定了并列的相同级别运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3相当于(8-5)+3;逻辑非运算符!的结合性是右到左,!x 相当于!(!x)。32 3 3.4 4.4 4 实实践践环节环节 编写程序,模拟使用不同交通工具托运行李的费用。具体要求如下:用火车在托运行李时以千克为单位计算费用(12元/kg),忽略重量中的小数部分,即忽略不足1千克之部分。用汽车在托运行李时以千克为单位计算费用(22元/kg),将重量中的小数部分的百克部分进行四舍五入,即将不足1千克之部分进行四舍五入。用飞机在托运行
30、李时以千克为单位计算费用(132元/kg),将重量中的小数部分的十克部分进行四舍五入,即将不足1百克之部分进行四舍五入。用double型变量weight存放用户的行李重量,用charge存放托运费用,程序使用scanf语句输入weight的值,该值被认为是以公斤为单位的行李之重量,然后程序将分别计算出用火车、汽车和飞机托运行李的费用。(参考代码见附录A)2023/1/22333 3.5 5 位运算符 3 3.5 5.1.1 核心知识点核心知识点整型数据在内存中以二进制的形式表示,比如一个int型变量在内存中占4个字节共32位,int型数据7的二进制表示是:00000000 00000000 0
31、0000000 00000111左面最高位是符号位,最高位是0表示正数,是1表示负数。负数采用补码表示,比如-8的补码表示是:111111111 111111111 1111111 11111000对于一个或多个字节组成的数据,按从左向右的顺序,称左面第一位是最高位,右面第一位是最低位。为了表述上的方便,从低位到高位依次编号。在许多文献中,将最低位编号为0,即从右向左,依次称作位0,位1,位2,位3。本书在叙述上也遵守这个习惯,比如,说某数据的位0是1,就是指该数据的最低位的值是1,说某数据的位1是0,是指从右向左数,该数据的第二位的值是0。当然,有时候为了简化叙述,也会按从左向右(高到低)来
32、叙述有关内容,比如,“数据从高至低的第二位的值是1”也是很清楚的叙述。1 1“按位与按位与”运算运算 按位与运算符&是双目运算符,对两个整型数据a,b按位进行&运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位都是1,则c的该位是1,否则是0。如果b的精度高于a,那么结果c的精度和b相同。例如:a:00000000000000000000000000000111&b:10000001101001011111001110101011c:000000000000000000000000000000112“按位或按位或”运算运算 按位或运算符|是双目运算符,对两个整型数据a,b按位
33、进行“|”运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位都是0,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b相同。3“按位非按位非”运算运算“按位非”运算符“”是单目运算符,对一个整型数据a按位进行“”运算,运算结果是一个整型数据c。运算法则是:如果a对应位是0,则c的该位是1,否则是0。2023/1/22344 4“按位异或按位异或”运算运算 “按位异或”运算符“”是双目运算符,对两个整型数据a,b按位进行“”运算,运算结果是一个整型数据c。运算法则是:如果a,b两个数据对应位相同,则c的该位是0,否则是1。如果b的精度高于a,那么结果c的精度和b
34、相同。由异或运算法则可知:aa=0,a0=a。因此,如果ab结果是c,那么cb结果就是a,也就是说,“”的逆运算仍然是“”,即abb等于a。5左移位运算符左移位运算符左移位运算的符号为。是双目运算符。左移位运算符左侧的操作元称为被移位数,右侧的操作数称为移位量,操作数必须是整型类型的数据。例如:intx=7;x的内存表示是:00000000 00000000 00000000 00000111 00000000 00000000 00000000 00000111可以对整x进行左移位运算。例如(移位量是1),x1得到的结果是:00000000 00000000 00000000 0000111
35、0 00000000 00000000 00000000 00001110设a是一个被移位的整型数据,n是位移量。a,是双目运算符。假设a是一个被移位的整型数据,n是位移量。an运算的结果是通过将a的所有位都右移n位,每右移一位,右边的低阶位被移出丢弃,并用0或1填充左边的高位。a是正数时用0填充,是负数时用1填充。2023/1/22367简单简单示例示例例例子子5中中利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再解密。2023/1/2237 3 3.5 5.2 2 能力目标能力目标 能使用位运算处理整型数据能使用位运算处理整型数据。38 3 3.5 5.3 3 任务驱动任务驱动
36、位清零。对于数据a:01100111想将数据a的位1(右向左数的第二位,加下划线的数字)以以外外的的位清零,那么就可以让a与掩码MASK:00000010做“&”运算即可,即执行:a=a&MASK1 1任务的主要内容任务的主要内容 将63,3557的位2以外的位清零。然后再输出清零后的数据的值。取掩码MASK的位2是1,其余位都是0(掩码MASK是4)(对于整数n,如果表达式n&MASK=MASK为“真”,那么整数n的位2是1)。2.2.任务模板:任务模板:仔细阅读模板代模板代码码,理解掩码MASK的作用。3.3.任务小结或知识扩展任务小结或知识扩展 当需要将一个数据a的某些位清零时,只要取掩码MASK满足:对应清零的位是0,其余位是1即可。然后进行如下操作即可:a=a&MASK;39 3 3.5 5.4 4 实实践践环节环节 将63,3557的位2和位0以外的位清零。然后再输出清零后的数据的值。(参考代码见附录(参考代码见附录A A)2023/1/2240小结小结l 掌握各种运算符的格式和运算法则。表达式就是用运算符连接起来的符合语法规则的式子。运算符的优先级决定了表达式中运算执行的先后顺序。例如,xy&!z相当于(x12的值都是不可预测的。