我刚才用VC++ 2010 测试了一下,果然是你说的这个答案。我调式了一下,看了一下运行的过程。下面给你解释一下:
其实关键是这句:
i=l=f=d=8/5
这里等号总是先算最右边, 8/5 两个整数相除,默认结果也是整数,所以就是 10。这个10依次赋值给左边的那些数,并且会自动类型匹配。所以就会出现你看到的结果了。
要想得到 16,可以改成这样:
i=l=f=d=(double)8/5
结果就是1,1,16,16 了。
答案:
空1:s=0;
空2:for(i=1;i<=n; i+=2)
空3:for(j=1;j<=i;j++)
空4:f=j;
变量在定义后,里面的值不一定是0,不同的电脑系统值是不一样的,所以空1要先对s初始化,赋初值0。
程序中的i是用来标志式中的1、3、5这些数字都有一个特性,后裔隔壁前一个加2,所以空2天上for(i=1;i<=n; i+=2)
由于阶乘是从1累乘到数本身,所以阶乘的判断条件是j<=i,及第三空为:for(j=1;j<=i;j++)。
由于阶乘是一个累乘,所以第四空用f=j;
完整的代码及vc60的运行如下图:
扩展资料:
对于看结果补充程序的题目,答题技巧很重要,总结了三步走的经验:
第一步对题目深入理解,分析需要用到的变量。
第二步先不看给出的代码,根据题目要求自己大概书写一遍实现的代码。
第三步看代码题目代码,并知道每个变量的作用。
java50提供自动装箱拆箱,Integer与int不需强转,程序会自动转换,long和Long也是一样
所以,可以这么干
Long
l1
=
100L;
long
l2
=
l1;
int
i1
=
(int)l2;
Integer
i2
=
i1;
另一种根据Integer的api有IntegervalueOf()和new
Integer();可以接受int或者String类型
把Long类型转换成int或者String类型就可以了
Long
l1
=
100L;
String
str
=
l1toString();
Integer
i1
=
IntegervalueOf(str);
Integer
i2
=
new
Integer(str);
int
i3
=
i2;
以上就是关于下列程序段的输出结果是 int i; long l; float f; double d; i=l=f=d=8/5; printf("%d,%ld,%3.1f,%3.1f\n"全部的内容,包括:下列程序段的输出结果是 int i; long l; float f; double d; i=l=f=d=8/5; printf("%d,%ld,%3.1f,%3.1f\n"、【程序填空】下面的程序是求1!+3!+5!+……+n!的和,程序中有4个 空,填空使程序完整。、Java中怎么将Long类型转换成Integer或int类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)