资源描述
西安优看电子java笔试题答案
资料仅供参考
一 选择题(共30题,选择其中15个解答,每题2分,共30分)
1. 有一段java 应用程序,它的主类名是a1,那么保存它的源文件名能够是(A )
A. a1.java B. a1.class C.a1 D.都对
2. 在创立对象时必须(B )
A.先声明对象,然后才能使用对象
B. 先声明对象,为对象分配内存空间,然后才能使用对象
C. 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D. 上述说法都对
3. 在调用方法时,若要使方法改变实参的值,能够( B)
A. 用基本数据类型作为参数
B. 用对象作为参数
C.A和B都对
D.A和B都不对
4. Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B )
A. 安全性 B. 多线性 C.跨平台 D.可移植
5. 以下声明合法的是(B )
A.default String s; B.public final static native int w( )
C.abstract double d; D.abstract final double hyperbolicCosine( )
6 . 以下标识符中哪项是不合法的(B )A
A.const B.$double C.hello D.BigMeaninglessName
7. 下面哪一个是合法的数组声明和构造语句(C )
A. int[] ages = [100];
B. int ages = new int[100];
C. int[] ages = new int[100];
D. int() ages = new int(100);
8. 下列哪种异常是检查型异常,需要在编写程序时声明 ( B)
A.NullPointerException B.ClassCastException
C.FileNotFoundException D. IndexOutOfBoundsException
9. 一个线程在任何时刻都处于某种线程状态(thread state),例如运行状态、阻塞状态、就绪状态等。一个线程能够由选项中的哪种线程状态直接到达运行状态?(D )
A.死亡状态
B.阻塞状态(对象lock池内)
C.阻塞状态(对象wait池内)
D.就绪状态
10. 下列哪些语句关于Java内存回收的说明是正确的? (B )
A.程序员必须创立一个线程来释放内存
B.内存回收程序负责释放无用内存
C.内存回收程序允许程序员直接释放内存
D.内存回收程序能够在指定的时间释放内存对象
11. 以下选项中循环结构合法的是( C )
A.while (int i<7)GF
{ i++;
System.out.println(“i is “+i);
}
B.int j=3;
while(j)
{
System.out.println(“ j is “+j);
}
C.int j=0;
for(int k=0; j + k !=10; j++,k++)
{
System.out.println(“ j is “+ j + “k is”+ k);
}
D.int j=0;
do{
System.out.println( “j is “+j++);
if (j = = 3) {continue loop;}
}while (j<10);
12. 有以下方法的定义,请选择该方法的返回类型(D )。
ReturnType method(byte x, double y) {
return (short)x/y*2;
}
A.byte B.short C.int D.double
13. 下面哪个函数是public void aMethod(){...}的重载函数?(D )
A、void aMethod( ){...}
B、public int aMethod(){...}
C、public void aMethod ( ){...}
D、public int aMethod ( int m){...}
14. A派生出子类B,B派生出子类C,而且在Java源代码中有如下声明:D
1. A a0=new A();
2. A a1 =new B();
3. A a2=new C();
问以下哪个说法是正确的? ( )
A.只有第1行能经过编译
B.第1、2行能经过编译,但第3行编译出错
C.第1、2、3行能经过编译,但第2、3行运行时出错
D.第1行、第2行和第3行的声明都是正确的
15. 有如下代码段:
1)
2) { if(unsafe()){//do something…}
3) else if(safe()){//do the other…}
4) }
其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( D )
A.public IOException methodName()
B.public void methodName()
C.public void methodName() throw IOException
D.public void methodName() throws IOException
16. 有语句String s=”hello world”; ,以下操作哪个是不合法的?(B )
A.int i=s.length(); B.s>>>=3; C.String ts=s.trim(); D.String t=s+”!”
17. 下列关于Java语言的特点,描述错误的是(C )
A.Java是跨平台的编程语言 B.Java支持分布式计算
C.Java是面向过程的编程语言 D.Java支持多线程
18 下列关于构造方法的叙述中,错误的是(C )
A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明
C.Java语言规定构造方法不能够重载
D.Java语言规定构造方法只能经过new自动调用
19. 关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C )
A.能够被三种类所引用:该类自身、与它在同一个包中的其它类、在其它包中的该类的子类
B.能够被两种类访问和引用:该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
20. 阅读以下代码:
import java.io.*;
import java.util.*;
public class foo{
public static void main (String[] args){
String s;
System.out.println("s=" + s);
}
}
输出结果应该是:(C )
A.代码得到编译,并输出“s=”
B.代码得到编译,并输出“s=null”
C.由于String s没有初始化,代码不能编译经过
D.代码得到编译,但捕获到 NullPointException异常
21. 编译运行以下程序后,关于输出结果的说明正确的是 (B )
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “+ ((x>4) ? 99.9:9));
}
}
A.输出结果为:value is 99.9 B.输出结果为:value is 9
C.输出结果为:value is 9.0 D.编译错误
22. 关于以下程序段,正确的说法是( C )
1. String s1=“a”+“b”;
2. String s2=new String(s1);
3. if(s1= =s2)
4. System.out.println(“= = is succeeded”);
5. if (s1.equals(s2))
6. System.out.println(“.equals() is succeeded”);
A.行4与行6都将执行 B.行4执行,行6不执行
C.行6执行,行4不执行 D.行4、行6都不执行
23. 以下程序的运行结果是:( C )
public class Increment{
public static void main(String args[]){
int c;
c = 2;
System.out.println(c);
System.out.println(c++);
System.out.println(c);
}
}
A.2 2 2 B.2 3 3 C.2 2 3 D.3 4 4
24. 执行语句int i = 1, j = ++i; 后i与j的值分别为(D )。
A.1与1 B.2与1
C.1与2 D.2与2
25. 设x为float型变量,y为double型变量,a为int型变量,b为long型变量, c为char型变量,则表示式x+y*a/x+b/y+c的值为(C)类型。
A.int B .long
C.double D .char
26. 欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( B)
A.ArrayList myList=new Object();
B.List myList=new ArrayList();
C.ArrayList myList=new List();
D.List myList=new List();
27. 指出下列程序运行的结果 (D)
public class Example{
String str=new String("good");
char[] ch = {'a','b','c'};
public static void main(String args[]){
Example ex=new Example();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" and ");
Sytem.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
A. good and abc
B. good and gbc
C.test ok and abc
D.test ok and gbc
28. 运行下列程序, 会产生什么结果 ( D)
public class X extends Thread implements Runnable{
public void run(){
System.out.println("this is run()");
}
public static void main(String args[]) {
Thread t=new Thread(new X());
t.start();
}
}
A.第一行会产生编译错误
B.第六行会产生编译错误
C.第六行会产生运行错误
D.程序会运行和启动
29. File类是IO包中唯一表示磁盘文件信息的对象,它定义了一些与平台无关的方法来操纵文件。经过调用File类提供的各种方法,我们能够创立、删除文件、重命名文件、判断文件的读写权限及是否存在,设置和查询文件的最近修改时间等。下面的代码片段实现的是什么功能?(B )
File file = new File("C:\\test.dat");
if (file.exists()) {
file.delete();
}
A.创立C:\test.dat。
B.删除C:\test.dat。
C.打开C:\test.dat文件输出流。
D.移动C:\test.dat
30. list是一个ArrayList的对象,哪个选项的代码填写到//todo delete处,能够在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?(B )
Iterator it = list.iterator();
int index = 0;
while (it.hasNext()){
Object obj = it.next();
if (needDelete(obj)) { //needDelete返回boolean,决定是否要删除
//todo delete
}
index ++;
}
A.list.remove(obj);
B.list.remove(index);
C.list.remove(it.next());
D.it.remove();
二 论述题(每题5分,共10分)
1. 什么是事件、事件源和事件监听器?简述使用事件监听器进行事件处理的过程。
2. 面向对象的特征有哪些方面?
三 编程题(共10题,选择其中5道解答,每题12分,共60分)
1. 打印出1000以内所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
2. 输入两个正整数m和n,求其最大公约数和最小公倍数。
/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* /
3. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
4. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
5. 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?
6. 输入三个整数x,y,z,请把这三个数由小到大输出。
7. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
8. 利用递归方法求5!。
public class JieCheng {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = in.nextInt();
System.out.println(n + "!=" + f(n));
}
static long f(int n) {
if (n == 1)
return 1;
else
return n * f(n - 1);
}
}
9. 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
10. 输入10个数,对这10个数进行排序
public static void main(String args[]) {
int [] array=new int[10];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length-1; j++) {
if(array[i]>array[j]){
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
}
展开阅读全文