第一范文网 - 专业文章范例文档资料分享平台

习题集

来源:用户分享 时间:2025/5/20 7:15:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

参考答案

上述代码的第二行处,会出现编译错误。

原因是10000000008是个整数直接量,整数的直接量的类型默认为int类型,而直接写出的整数10000000008超过了int的表达范围,所以会出现编译错误。

7 通过代码计算一段程序运行的时间

参考答案

以下代码的功能为计算1累加到1000000的所耗的时间,代码如下所示:

1. public static void main(String[] args) { 2. //开始时间

3. long startTime = System.currentTimeMillis(); 4. //计算从1加到1000000的和 5. int sum = 0;

6. for (int i = 1; i <= 1000000; i++) { 7. sum+=i; 8. }

9. //结束时间

10. long endTime = System.currentTimeMillis(); 11. //输出耗时

12. System.out.println(\耗时:\+(endTime-startTime)+\毫秒

\); 13. }

上述代码中,使用了JDK提供的 System.currentTimeMillis() 方法,该方法返回1970年1月1日零点到此时此刻所经历的毫秒数,其数据类型为long,经常用于计时操作。

另外,计算从1加到1000000的和的代码,了解即可,后续课程中会讲解到for循环的。

8 指出下面程序的运行输出结果

1. double width = 6.0; 2. double length = 4.9;

3. System.out.println(width - length);

参考答案

上述代码的输出结果为:1.0999999999999996。

上述代码的运行结果存在舍入误差问题。由于计算机内部采用2进制,人使用10进制,不是每一个2进制的小数都可以用10进制为表示的。2进制系统中无法精确的表示1/10,就好像十进制系统中无法精确的表示1/3一样。所以,2进制表示10进制会有一些舍入误差,对于一些要求精确运算的场合会导致代码的缺陷。

9 指出下面程序的输出结果

1. char ascii=98;

2. System.out.println(ascii);

参考答案

上述代码的输出结果为:b

原因是如果把0~65535范围内的一个int整数直接量赋给char类型变量,系统会自动把这个int类型整数当成char类型来处理。本题中,说明系统自动把整数类型98当成char类型来处理,处理的结果为b。98是b的unicode码。

10 指出下面程序中的编译错误,并更正

1. byte b1=10; 2. byte b2=20; 3. byte b3=b1+b2;

参考答案

上述代码在第三行会出现编译错误,原因是b1+b2的结果为int类型。更正后的代码如下:

1. byte b1=28; 2. byte b2=20; 3. int b3=b1+b2;

或者,使用强制类型转换,将int类型结果转换为byte类型,代码如下所示:

1. byte b1=10; 2. byte b2=20;

3. byte b3=(byte)(b1+b2);

11 指出下面程序的运行输出结果

1. int a = 1, b = 10; 2. int c1 = a++; 3. int c2 = ++b;

4. System.out.println(\ + a + \b=\ + b + \c1=\ + c1 + \c2=\

+ c2);

参考答案

输出结果为:

1. a=2, b=11, c1=1, c2=11

上述代码中,“int c1 = a++;”表示先将a的值1作为表达式a++的值,然后a再自加,故a的值为2,最后,将a++表达式的值1赋值给c1,c1的值为1;

“int c2 = ++b”表示先将b的值自加,然后将b的值作为++b表达式的值赋给c2,故b的值为11,c2的值也为11。

12 指出下面程序的运行输出结果

1. int i = 100, j = 200;

2. boolean b1 = (i > j) && (i++ > 100); 3. System.out.println(b1); 4. System.out.println(i);

参考答案

上述代码的输出结果为:

1. false 2. 100

原因是对于“&&”,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数是什么最后的结果一定是false。本题中(i>j)的结果为false,因此不会去计算(i++>100),所以变量b1的结果为false,i不会在自身的基础上加1,值为100。

13 完成收银柜台收款程序V1.0

搜索更多关于: 习题集 的文档
习题集.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9906o8la2n3ef8l93ttd_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top