设整型变量x、y、z均为5,则: ① 执行x-=y-z后,x的值为 ② 执行x%=y+z后,x的值为

 我来答
jslfv15
2010-11-27 · TA获得超过215个赞
知道答主
回答量:262
采纳率:0%
帮助的人:195万
展开全部
第一题:a*=16+(b++)-(++c)等价于a=a* (16+(b++)-(++c)); "()"优先级最高,所以先执行:(b++),在使用b之后,使b加一,因此(b++)=3;(++C),在使用c之前,使C加一,因此(++C)=5。然后将按照加减的结合性."自左向优"计算,因此16+(b++)-(++c)=14;之后 执行a*(16+(b++)-(++c))=28,所以a=28;
第2题:结果应该是1,因为unsigned short类型的数值范围是0到65535,(- -!汗,你可找c\c++程序设计的书,那里可以找到数据类型的数值范围)因为int是范围要大多,又因为signeed是以补码形式存放,而unsigned是全部2进制位都用本身表示自己,所以 程序的输出结果是-1;
第3题:x/y=0.5,但要自动转换成int类型,因此x/y=0 ,所以1.0+x/y的值为1.0;
第4题:x-=y-z等价于x=x-(y-z),用小学的算法计算x-(y-z)=5, x的值为5;
x%=y+z等价于x=x%(y+x),因为x%(y+x)=0.5,又因为x,y都为整形(int),所以x的值为0;
第5题;在此语句中printf("#d&%d\n",(++x+y++),z+2); #d&是字符输出,%d是输出第一个表达式(自左向右),即是(++x+y++),先执行自增运算符++x值为4,(原理看第一题的说明),y++的值为3,所以(++x+y++) =7,所以程序执行结果是#d&7;
第6题:我觉得你这个题目是你抄错题"a=2,b=3,c=4.5,y=1.6,"中的c应该为x,这题是这样的,先执行(int)x=4,(int)=1,再执行(int)x%(int)y=4(注意,这里4是float类型),在执行(float)(a+b)/2=2.5,所以此表达式的值为6.5
第7题:- -!你有抄错题没有?
main()
{int i,j,m,n;
i=8;
j=3;
m=++i;
n=j--;
printf("%d,%d,%d,%d,i,j,m,n);} /*觉得是printf("%d,%d,%d,%d",i,j,m,n); */
m=++i;因此m=9,这里i为9,这个容易理解(第一题);j第一次执行的时候n=j--,这里n=3,j=3;到第2次执行J的时候,即是执行printf("%d,%d,%d,%d,i,j,m,n)语句,这里的j就为2
因此执行结果为:9,2,9,3
第8题:因为a>b>C是真,在C中都用数值1表达真,0表达假,所以m=1,所以表达式m=a>b>c的值是1;
第9题:又抄错题?- -!“b=2”?
先执行!,在执行关系运算符,a>b为真,c>a为假,a<b为假,!c>b为假,在执行逻辑运算符a>b&&c>a为假,a>b&&c>a‖a<b为假,a>b&&c>a‖a<b&&!c>b为假,所以a>b&&c>a‖a<b&&!c>b的值是0;
第10题:答案肯定为0;"设a=3,b=4,c=5,则表达式!(x=a)&&(y=b)&&0的值是"这题你做的出请告诉我,我也不会。(但可以敢肯定的是他的值为0,因为这个表达式的后面那个数据为0)如果将这题这样改写的话“10.设a=3,b=4,c=5,则表达式!(c=a)&&(c=b)&&0的值是”,我就有感觉怎做,首先(c=a)为假,!(c=a)为真,(c=b)为假,!(c=a)&&(c=b)为假,!(c=a)&&(c=b)&&0为假,即是0;
cgcra38
2010-11-25 · TA获得超过465个赞
知道答主
回答量:385
采纳率:100%
帮助的人:260万
展开全部
第一题:a*=16+(b++)-(++c)等价于a=a* (16+(b++)-(++c)); "()"优先级最高,所以先执行:(b++),在使用b之后,使b加一,因此(b++)=3;(++C),在使用c之前,使C加一,因此(++C)=5。然后将按照加减的结合性."自左向优"计算,因此16+(b++)-(++c)=14;之后 执行a*(16+(b++)-(++c))=28,所以a=28;
第2题:结果应该是1,因为unsigned short类型的数值范围是0到65535,(- -!汗,你可找c\c++程序设计的书,那里可以找到数据类型的数值范围)因为int是范围要大多,又因为signeed是以补码形式存放,而unsigned是全部2进制位都用本身表示自己,所以 程序的输出结果是-1;
第3题:x/y=0.5,但要自动转换成int类型,因此x/y=0 ,所以1.0+x/y的值为1.0;
第4题:x-=y-z等价于x=x-(y-z),用小学的算法计算x-(y-z)=5, x的值为5;
x%=y+z等价于x=x%(y+x),因为x%(y+x)=0.5,又因为x,y都为整形(int),所以x的值为0;
第5题;在此语句中printf("#d&%d\n",(++x+y++),z+2); #d&是字符输出,%d是输出第一个表达式(自左向右),即是(++x+y++),先执行自增运算符++x值为4,(原理看第一题的说明),y++的值为3,所以(++x+y++) =7,所以程序执行结果是#d&7;
第6题:我觉得你这个题目是你抄错题"a=2,b=3,c=4.5,y=1.6,"中的c应该为x,这题是这样的,先执行(int)x=4,(int)=1,再执行(int)x%(int)y=4(注意,这里4是float类型),在执行(float)(a+b)/2=2.5,所以此表达式的值为6.5
第7题:- -!你有抄错题没有?
main()
{int i,j,m,n;
i=8;
j=3;
m=++i;
n=j--;
printf("%d,%d,%d,%d,i,j,m,n);} /*觉得是printf("%d,%d,%d,%d",i,j,m,n); */
m=++i;因此m=9,这里i为9,这个容易理解(第一题);j第一次执行的时候n=j--,这里n=3,j=3;到第2次执行J的时候,即是执行printf("%d,%d,%d,%d,i,j,m,n)语句,这里的j就为2
因此执行结果为:9,2,9,3
第8题:因为a>b>C是真,在C中都用数值1表达真,0表达假,所以m=1,所以表达式m=a>b>c的值是1;
第9题:又抄错题?- -!“b=2”?
先执行!,在执行关系运算符,a>b为真,c>a为假,a<b为假,!c>b为假,在执行逻辑运算符a>b&&c>a为假,a>b&&c>a‖a<b为假,a>b&&c>a‖a<b&&!c>b为假,所以a>b&&c>a‖a<b&&!c>b的值是0;
第10题:答案肯定为0;"设a=3,b=4,c=5,则表达式!(x=a)&&(y=b)&&0的值是"这题你做的出请告诉我,我也不会。(但可以敢肯定的是他的值为0,因为这个表达式的后面那个数据为0)如果将这题这样改写的话“10.设a=3,b=4,c=5,则表达式!(c=a)&&(c=b)&&0的值是”,我就有感觉怎做,首先(c=a)为假,!(c=a)为真,(c=b)为假,!(c=a)&&(c=b)为假,!(c=a)&&(c=b)&&0为假,即是0;
如果还没解决你的问题,可以加我百度HI账号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luokun_xhu
推荐于2018-05-27
知道答主
回答量:9
采纳率:0%
帮助的人:8.9万
展开全部
x的值都为5
x-=y-z的执行过程是这样的,先执行y-z,将y-z的值存进一个临时存贮单元中,然后找到x的存贮单元,用x的值减去临时存贮单元中的值,再将结果存回x的存贮单元中。
x=x-(y-z)与上个式子虽然结果相同,但运算方式不同。先执行y-z,将y-z的值存进一个临时存贮单元中,然后找到x的存贮单元,用x的值减去临时存贮单元中的值,再将结果存入一个临时单元中,最后找到x的存贮单元,将临时存贮单元中的值赋给x。
从运算效率来讲,前一个式子更高些。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不想看清0Ey7af
2010-11-27
知道答主
回答量:13
采纳率:0%
帮助的人:4.9万
展开全部
① 执行x-=y-z后,x的值为5
② 执行x%=y+z后会出现逻辑错误
因为y-z的值为0,0不能作为除数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
knife12
2010-11-24 · TA获得超过347个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:316万
展开全部
都是5.

第一个式子等价于:x=x-(y-z).
第二个式子等价于:x=x%(y+z).
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式