www.5615.net > 已知FloAt A 2 int B 3

已知FloAt A 2 int B 3

1 答案分别是 4 和 02 题目中少了一个b,应该是 float a=2;int b=3;3 sizeof(a*b)的值是 4 因为 a*b的结果是 float型,已验证,不是double型,这一点我也感到惊奇 而在32位机器验证 float和double都是4个字节,所以结果是44 2/5的结果是0 因为整型除以整型结果还是整型

3.5

计算顺序: 1. a+b =5 2. (float)5 = 5.0 3. 5.0/2 = 2.5 4. (int)x = 3 5. (int)y = 2 6. 3%2 = 1 7. 2.5+1=3.5 其中45步我不是很确定,不记得强制转换是不是会四舍五入,即使四舍五入,取余数也是1,最终答案还是3.5

C语言代码如下:#include <stdio.h>#define Pi 3.14 void main() { int a=3,b=2; float c=2.5; printf("%0.5f\n",(float)(a+b)/3+(int)c); }输出(float)(a+b)/3+(int)c的值(保留五位小数):3.66667 运算过程:首先计算a+b的值,得5,再转换为单精度类型,然后除以3,得1.66666……,接着c的值强制转换为整型数2,2+1.66666……=3.66666……≈3.66667.所以(float)(a+b)/3+(int)c的值(保留五位小数)为3.66667.

24字节在vc里面一个float变量占4个字节,a[2][3]包含6个float型变量,故占字节数为:4*6=24(字节)

a、b 都是整形对a+b的值进行强制类形转换成浮点型.(float)(a+b)/2 浮点型除以整形,这里含有隐式类型转换,隐式类型转换是向上转换的,当整形和浮点型进行运算时,整形要自动转成浮点型再进行运算,结果为浮点型. int a=2,b=3; (float)(a+b)/2=2.5

#include<stdio.h> int main() { int a=2,b=3,x=3.9,y=2.3; float result; result = (float)(a+b)/2+(int)x%(int)y; printf("%f",result); getchar(); return 0; }

答案应该选B 表达式前半部分a+b完成后转化成浮点数,所以结果为2.5,后半部分为取整后取模,结果为1

结果:①7.5 ②2

float)(a+b)/2得到浮点数2.5(int)x%(int)y,因为把x,y强制装换为其实就是3墨2得到int数1结果是3.53.5(float)(a+b)/2+(int)x%(int)y= (float)(2+3)/2+(int)3.5%(int)2.5= (float)(5)/2+3%2= 5.0/2 + 1= 2.5 +1= 3.5

友情链接:jamiekid.net | lhxq.net | xmlt.net | ppcq.net | knrt.net | 网站地图

All rights reserved Powered by www.5615.net

copyright ©right 2010-2021。
www.5615.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com