已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java 程序设计基础课后习题参考答案 第 2 章 1. 关于 Java Application 的入口方法 main()的检验: main()方法的参数名是否可以改变? main()方法的参数个数是否可以改变? 该方法名是否可以改变? 参考答案:(1)main() 方法的参数名可以改变。(2)main()方法的参数个数不可以 改变。(3)该方法名不可以改变。 2. 当一个程序没有 main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有 main()方法是,是可以编译通过的,但是不能给运 行,因为找不到一个主函数入口。 3. 下列语句能否编译通过? byte i = 127; byte j = 128; long l1 = 999999; long l2 = 9999999999; 参考答案:byte i 和 long l1 可以编译通过。而 byte j 和 long l2 超出自身数据 类型范围,所以编译失败。 4. 下列语句能否编译通过? float f1 = 3.5; float f2 = 3.5f; 参考答案:java 中浮点型的数据在不声明的情况下都是 double 型的,如果要表 示一个数据是 float 型的,必须在数据后面加上 “F”或“f”;因此,float f1 无法编 译通过。 5. 验证 int 和 char,int 和 double 等类型是否可以相互转换。 参考答案:(1)char 类型可以转换为 int 类型的,但是 int 类型无法转换为 char 类型的;(2)int 可以转换为 double 类型的,但是 double 类型无法转换为 int 类 型的。 6. 计算下列表达式,注意观察运算符优先级规则。若有表达式是非法表达式, 则指出不合法之处且进行解释。 (1) 4+5 = 6*2 (2) (4=5)/6 (3) 9%2*7/317 (4) (4+5)=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中 (4=5)将 5 赋值给 4 是不合法的。 7. 下列()是合法的 Java 标识符。 (1) Counter1 (2) $index, (3) name-7 (4) _byte (5) larray (6) 2i (7) try (8) integer 参考答案:Java 标识符由数字,字母和下划线 (_),美元符号($)组成。在 Java 中是区分大小写的。而且还要求首位不能是数字。最重要的是,Java 关键 字不能当作 Java 标识符。因此, (1)、(4)、(5)、(8)是合法标识符。 8. 下列各项中定义变量及赋值不正确的是() (1) int I = 32; (2) float f = 45.0; (3) double d = 45.0; 参考答案:(2)不正确,选项(2) 定义 float 类型时必须在数据后面加上“F”或“f”。 9. Java 语言中,整型常数 123 占用的存储字节数是() (1) 1 (2) 2 (3) 4 (4) 8 参考答案:正确选项是(3), Java 语言中,默认整型数占用 4 个字节数。 10. 以下代码的编译运行结果是 public class Test public static void main(String args) int age; age = age + 1; System.out.println(“the age is “ + age); (1) 编译通过,运行无输出 (2) 编译通过,运行结果为 “the age is 1” (3) 编译通过但运行时出错 (4) 不能通过编译 参考答案:(4)为正确选项。Java 在使用变量前应该先初始化。 11. 写出下列表达式的运行结果 (1) 6+33 a = i; (先 i = i + 1,再使用 i 的值) ,而 a = i+,相当于 a = i; i=i+1; (先使用 i 的值,再 i = i + 1) 。 2. 写出下面表达式的结果 (1)5/3 (2)5/3.0 (3)5%3 (4)5%-3 参考答案: (1)1 (2)1.6666666666666667 (3)2 (4)2 3. 考虑如下的 Test.java,并指出错误原因。 程序清单:Test.java class Test public static void main(String args) byte b = 5; b = (b 2); System.out.println(b); 参考答案:b=(b-2);错误,在进行 b-2 时,运算结果类自动提升为 int,而 b 是 byte 类型,编译的时候会报错,因为存在高类型数据向低类型数据转化的风险。 而 byte b=5;是正确的,因为在编译的时候就能够确定 5 在 byte 允许的范围内, 虚拟机在编译时做了一定的优化处理。 4. 考虑一下对于 ifelse语句,还有没有更简洁的写法。 例如:if( x 0 ) y = x; else y = -x; 可以简写成什么? 参考答案:y=x0?x:-x; 5. 给定 N,编程实现打印 N*N 的乘法表。 参考答案: public static void main(String args) int a = 0, b = 0, c = 0; for(int i=0; i=0)“); if (read.hasNextInt() n = read.nextInt(); if (n = 0; i-) for (int j = 1; j i; j-) if (arrayj arrayj - 1) t = arrayj; arrayj = arrayj - 1; arrayj - 1 = t; /* 输出排序后的数组元素 */ for (i = 0; i 100) throw new Exception(M + “ is too large“); System.out.println(“Exiting try block“); catch (Exception e) System.out.println(“ERROR: “ + e.getMessage(); 如果 someValue 等于 1000,写出上面代码段的输出结果。 参考答案: Entering try block ERROR: 1000 is too large 10. try块中有一个 return 语句,那么紧跟在这个 try 块后的 finally 块中的代码 会不会被执行,什么时候被执行,在 return 之前还是之后?请举例说明。 参考答案:如果 try 块中没有异常产生,最后一条语句使用 “return”直接返回或 者 catch 块中使用“return”直接返回,finally 代码块也会执行。例如: public class FinallyBeforeReturn public static void main(String args) try int division = 2; int result = 1 / division; /try 块中的 return 语句,此处在异常产生之后,不会执行 return; catch (ArithmeticException e) System.out.println(“进入 catch 块“); e.printStackTrace(); /catch 块中的 return,异常产生时就会执行 return; finally System.out.println(“使用 return 之后,finally 仍然会执行“); 程序在执行过程中,没有异常产生(当除数为 0 时会产生 ArithmeticException 异常,输出 “进入 catch 块”信息) ,不会进入 catch 块执行输 出语句。在 try 块中结束位置使用了“return;”语句直接从方法返回,此时是在 try 块中,所以在方法返回前一定会进入 finally 中执行代码,结果就是输出信息“使 用 return 之后,finally 仍然会执行”。 11. 请简述 Java 中 error 和 exception 的区别。 参考答案:二者的区别:Error 类定义了在通常环境下不希望被程序捕获的异常, 表示系统错误比较严重无法恢复的情况。Error 类对象是由 Java 虚拟机生成并 抛出,例如内存不足、堆栈溢出等情况,这种异常一旦出现意味着虚拟机内部 出现严重问题,它们通常是致命性的错误,不是程序可以控制的,程序不应该 捕获并尝试恢复。 Exception 类定义了由应用程序抛出的异常,这些异常是可以被用户程序捕 获的。Exception 异常分为:运行时异常(RuntimeException)和预期异常 (Checked Exception) 。 12. 请简述 final 和 finally 的区别。 参考答案: final 是 Java 中的关键字,具有“无法改变”或者“ 终态的 ”含义,它可以修饰非抽 象类、非抽象类成员变量和方法。用 final 修饰的类不能被继承;用 final 修饰的方法不 能被覆盖;用 final 修饰的成员变量表示常量,值一旦给定就无法改变;final 修饰的对象引 用表示该引用不能在指向其它的对象,但是对象本身的成员变量的值是可以改变的。 finally 用于异常处理, finally 语句块是在同一个 try/catch 语句组中必须执行的部分。 13. 请写出下面程序的输出结果: public class Exp public static void main(Stringargs) Exp exp = n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园文化创新项目评选与奖励机制
- 混凝土搅拌站操作人员技能提升方案
- 高三英语第三次模拟考试解析
- 市区污水处理厂及配套管网建设项目技术方案
- 2025年产品设计与用户体验试卷及答案
- 旧城旧村改造项目节能评估报告
- 光纤传感技术在长距离输水管道中的应用研究
- 印染污水处理厂项目节能评估报告
- 内科护理基础试题及答案
- 中层干部竞争上岗动员大会讲话稿范文
- (新教材)2025年秋期部编人教版一年级上册语文 第3课 雪地里的小画家 课件
- 2025广东深圳市宝安区建筑工务署第二批招聘员额制人员6人笔试考试备考试题及答案解析
- 施工现场环境保护管理制度及管理措施
- 蛋糕店食品安全管理规章制度
- 养老院年度工作总结报告
- (2025年)保健食品试题(附答案)
- 2025江西九江德安中寰电力建设有限公司招聘2人笔试考试备考题库及答案解析
- 医学糖尿病基本知识医学专题课件
- 重症医学科体温管理措施培训
- 北师大版五年级数学上册期中测试卷(带答案)
- 大赢CNC48操作手册
评论
0/150
提交评论