若变量x.y都为float型数,以下表达式中不能正确表达数学关系[x-y]
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 20:42:30
答案A在算术运算中:系统会自动的将低优先级的数向高优先级的数转换赋值运算时:赋值运算符右边的值需要转换为左边变量的类型,左边变量的类型即赋值表达式结果的类型
该题应该选择B答案,因为求余运算符两边的操作数只能是整形变量,不能为float型.另外替你分析一下其他选项:A:++是自增运算符,即x的值先加1后再使用x的值,该值正确.B:略.C:符合运算符,x*=
#includeintmain(){\x05floaty;\x05intx=-3;\x05y=x%2;//y的值是-1\x05printf("%f\n",y);//输出-1printf("%d\n",
inta=x-z;intb=y-z;a
B自增自减运算符是对变量的值加一或是减一,很明显,B不满足.
floatx,y=3.14;这一句只是对y赋值了floatx=y=3.14;这一句直接就是语法错误,没有这种写法,定义变量的时候不可以这么写,因为y是未定义的写成floatx=3.14,y=3.14;
x的值本身是真还是假?若x本身是真!x为假y>0为真假&&真=假(false)若x本身是假!x为真y>0为真真&&真=真(true)
很高兴为你解决问题哈~作为一个从事软件开发的人员,你这种问题在我曾经也是犯过错误的哈在数值类型里面有个优先级关系:一般来讲,占位越长或者精度越高的数据类型的等级越高,当你做运算的时候,系统会自动的将低
答案A改变了数值,显然不对;答案B第三位舍入了可得到的浮点数2位以后没舍掉;答案C先放大百倍接着对三位进行了舍入取整数保证了小数部分舍弃再除百得到两位小数;答案D先除了改变了小数点前的整数值显然错误,
现在看来,只有A是正确的了.只是y输出的不是值,是对应的ASCII字符.再问:选项D为什么不对啊,求解释再答:char型变量只不能用%f输出的,刚才我上机试了一下,除了A其他虽然编译通过,但运行会出错
floatx=3.2;printf("%f,%f",x,++x);
(float)(a+b)/2得到浮点数2.5(int)x%(int)y,因为把x,y强制装换为其实就是3墨2得到int数1结果是3.5
1、选择CA只给y赋值了,x没有赋值B同AD没有这种写法.2、B
就是C因为为了保证小数点后两位,所以必须先乘以100.排除D.第三位四舍五入,就得用类型转换.
Bx+2运算后是一个具体数值而不是变量,++符需要它的左值或右值是一个变量,因此必然产生编译错误
B取余运算只能是2个整数来运算
2.0a=1,a+1,a+=a--逗号表达式的值等于最右一个表达式的值.a=1所以a一开始等于1,最右一个表达式a+=a就是a=a+a;a=1+1;得2float型
运行了,说float可能损失精度,运行有错误.然后我换成double,都是4.2,4.2