设整型变量x、y、z均为5,则: ① 执行x-=y-z后,x的值为 ② 执行x%=y+z后,x的值为
答案:8 悬赏:0 手机版
解决时间 2021-02-12 14:03
- 提问者网友:wodetian
- 2021-02-11 22:55
设整型变量x、y、z均为5,则: ① 执行x-=y-z后,x的值为 ② 执行x%=y+z后,x的值为
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-02-11 23:24
x的值都为5
x-=y-z的执行过程是这样的,先执行y-z,将y-z的值存进一个临时存贮单元中,然后找到x的存贮单元,用x的值减去临时存贮单元中的值,再将结果存回x的存贮单元中。
x=x-(y-z)与上个式子虽然结果相同,但运算方式不同。先执行y-z,将y-z的值存进一个临时存贮单元中,然后找到x的存贮单元,用x的值减去临时存贮单元中的值,再将结果存入一个临时单元中,最后找到x的存贮单元,将临时存贮单元中的值赋给x。
从运算效率来讲,前一个式子更高些。
x-=y-z的执行过程是这样的,先执行y-z,将y-z的值存进一个临时存贮单元中,然后找到x的存贮单元,用x的值减去临时存贮单元中的值,再将结果存回x的存贮单元中。
x=x-(y-z)与上个式子虽然结果相同,但运算方式不同。先执行y-z,将y-z的值存进一个临时存贮单元中,然后找到x的存贮单元,用x的值减去临时存贮单元中的值,再将结果存入一个临时单元中,最后找到x的存贮单元,将临时存贮单元中的值赋给x。
从运算效率来讲,前一个式子更高些。
全部回答
- 1楼网友:天凉才是好个秋
- 2021-02-12 06:27
都是5.
第一个式子等价于:x=x-(y-z).
第二个式子等价于:x=x%(y+z).
第一个式子等价于:x=x-(y-z).
第二个式子等价于:x=x%(y+z).
- 2楼网友:千杯敬自由
- 2021-02-12 05:13
第一题: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);}
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为假,ab为假,在执行逻辑运算符a>b&&c>a为假,a>b&&c>a‖ab&&c>a‖ab为假,所以a>b&&c>a‖ab的值是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账号。
第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);}
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为假,ab为假,在执行逻辑运算符a>b&&c>a为假,a>b&&c>a‖ab&&c>a‖ab为假,所以a>b&&c>a‖ab的值是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账号。
- 3楼网友:大漠
- 2021-02-12 03:55
① 执行x-=y-z后,x的值为5
② 执行x%=y+z后会出现逻辑错误
因为y-z的值为0,0不能作为除数
② 执行x%=y+z后会出现逻辑错误
因为y-z的值为0,0不能作为除数
- 4楼网友:冷風如刀
- 2021-02-12 02:42
第一题: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);}
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为假,ab为假,在执行逻辑运算符a>b&&c>a为假,a>b&&c>a‖ab&&c>a‖ab为假,所以a>b&&c>a‖ab的值是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;
第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);}
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为假,ab为假,在执行逻辑运算符a>b&&c>a为假,a>b&&c>a‖ab&&c>a‖ab为假,所以a>b&&c>a‖ab的值是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;
- 5楼网友:摆渡翁
- 2021-02-12 01:56
1
y-z=0
x-=0
x=x-0
x=5
2
y+z=10
x%=10
x=x%10=5
y-z=0
x-=0
x=x-0
x=5
2
y+z=10
x%=10
x=x%10=5
- 6楼网友:神的生死簿
- 2021-02-12 01:01
5 5
- 7楼网友:洒脱疯子
- 2021-02-11 23:38
5
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯