第七届全国信息技术应用水平大赛模拟题
JAVA程序设计
注:模拟题题量总计82道,其中单选题60道,每道题1分;多选题20道,每道题2分;综合操作题2道,每道题25分。试卷满分为150分,完成时间为180分钟。此模拟题仅供参考,具体题型、题量、分值分配与试题难度以实际预赛题为准。
单选题(共60题,每题1分,共60分)
1. Java语言具有许多优点和特点,其中能反映Java程序在不同操作系统下都可以运行的特点是()。
A、安全性
B、多线程
C、跨平台
D、可移植
2. Java语言的类型属于()。
A、面向对象语言
B、面向过程语言
C、汇编语言
D、形式语言
3. Java虚拟机指的是()。
A、由Java语言操作的家用设备(通常是一个漂亮的小烤箱)
B、运行Java程序所需的硬件设备
C、Java源代码的编译器
D、Java字节代码的解释程序
4. 关于Java中的CLASSPATH环境变量,下列说法不正确的是()。
A、CLASSPATH是一个目录列表
B、编译器用它来搜索各自的类文件
C、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中
D、解释器用它来搜索各自的类文件
5. 下列关于Java语言的描述不正确的是()。
A、Java语言开发的程序与平台无关,用Java语言开发的程序可以在不同的操作系统下运行
B、任何语言开发的程序都与开发平台有关,用Java语言开发的程序,无法在不同操作系统平台下运行
C、在使用变量的时候,Java采用自动方法动态分配内存,退出程序后,该变量也就自动从内存消失
D、Java采用完全面向对象的程序设计方法,它的封装性使程序安全性更高
6. Java语言有多种实现机制,下列属于垃圾回收机制的技术是()。
A、字节编译
B、内存跟踪
C、语法检查
D、堆栈上/下溢检查
7. 在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。
A、源,HTML
B、HTML,字节代码
C、字节代码,源
D、源,字节代码
8. Java源文件和编译后文件的扩展名分别为()。
A、.class和.java
B、.class和.class
C、.java和.class
D、.java和.javaw
9. 运行以下代码,并在命令行输入:java MyProg good morning,则输出结果是()。
public class MyProg {
public static void main(String argv[])
{
System.out.println(argv[0]);
}
}
A、myprog
B、good
C、morning
D、Exception raised: "java.lang.ArrayIndexOutOfBoundsException: 2"
10. 假定有变量定义: int k=7,x=12; 则下列选项中值为3的表达式是()。
A、x%=(k%=5)
B、x%=(k-k%5)
C、(x%=k)-(k%=5)
D、x%=k-k%5
11. 设 String s = "story"; 下列选项中的语句书写正确的是()。
A、s = s - "books";
B、char c = s[1];
C、int len = s .length;
D、s += "books";
12. 执行完代码int[ ] x = new int[25];后,下列选项说明正确的是()。
A、x[0]为1
B、x[24]未定义
C、x[24]为0
D、x[0]为空
13. 阅读下列代码,下列选项说法正确的是()。
public class Person
{
static int arr[] = new int[10];
public static void main(String args[]) {
System.out.println(arr[1]);
}
}
A、编译时将产生错误
B、编译时正确,运行时将产生错误
C、输出零
D、输出空
14. 设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是()。
A、把x和y按从大到小排列
B、交换x和y中的值
C、无确定结果
D、把x和y按从小到大排列
15. 阅读下列代码,其执行后的正确结果是()。
public class Test2 {
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main(String[] argv) {
int i = 0;
for (foo(’B’); foo(’A’) && (i < 2); foo(’C’)) {
i++;
foo(’D’);
}
}
}
A、ABDCBDCB
B、ABCDABCD
C、编译错误
D、BADCADCA
16. 下列关于变量的叙述错误的是()。
A、实例变量是类的成员变量
B、在方法中定义的局部变量在该方法被执行时创建
C、类变量用关键字static声明
D、局部变量在使用前不需要被初始化
17. 编译并运行下面的Java程序,将产生的结果是()。
class A{
int var1 = 3;
int var2;
public static void main(String[] args) {
int var3 = 5;
A a = new A();
System.out.println(a.var1 + a.var2 + var3);
}
}
A、0
B、4
C、8
D、15
18. 编译和运行下面代码后显示的结果是()。
public class Test3 {
public static void main(String argv[]) {
Test3 inc = new Test3();
int i = 3;
inc.fermin(i);
i = i--;
System.out.println(i);
}
void fermin(int i) {
i--;
}
}
A、编译错误
B、2
C、3
D、0
19. 下列有关整型的最终属性 i 的定义正确的是()。
A、static int i;
B、final i;
C、static final int i=50;
D、final float i=1.2f;
20. 下列整型数据类型中,需要内存空间最少的是()。
A、short
B、long
C、int
D、byte
21. 编译和运行下面代码时显示的结果是()。
public class ThisConstructorCall {
public ThisConstructorCall(String s) {
System.out.println("s = " + s);
}
public ThisConstructorCall(int i) {
this("i = " + i);
}
public static void main(String args[]) {
new ThisConstructorCall("String call");
new ThisConstructorCall(47);
}
}
A、s = String call
s = i = 47
B、String call
s = i
C、s = String call
i = 47
D、String call
s = i = 47
22. Java应用程序的 main 方法中有以下语句,则其输出结果是()。
int[] x = { 2, 3, -8, 7, 9 };
int max = x[0];
for (int i = 1; i < x.length; i++) {
if (x[i] < max)
max = x[i];
}
System.out.println(max);
A、2
B、-8
C、7
D、9
23. 在switch(expression)语句中,expression的数据类型不能是()。
A、int
B、char
C、double
D、short
24. 当下列程序执行时,其输出结果是()。
int i = 9;
switch (i) {
default:
System.out.println("default");
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
case 2:
System.out.println("two");
}
A、default
B、zero
C、default, zero
D、没有输出结果
25. 如下代码的执行结果是()。
boolean m = true;
if ( m == false )
System.out.println("False");
else
System.out.println("True");
A、False
B、True
C、None
D、An error will occur when running
26. 在Java语言中,不允许作为类及类成员的访问限制修饰符的是()。
A、public
B、static
C、private
D、protected
27. set collection 遇到重复元素时的处理方式是()。
A、试图添加一个重复的元素时,会抛出一个异常
B、编译的时候,重复的元素会导致错误
C、一个set可以包含重复元素
D、试图添加一个重复的元素时,重复元素将不能被加入
28. 当类的成员只能在同一个类中调用,那么应该加的访问权限修饰符为()。
A、private
B、protected
C、friendly
D、public
29. 下列说法正确的是()。
A、final修饰的变量,在程序中可对这个变量的值进行更改
B、abstract可修饰类、属性、方法
C、定义抽象方法需有方法的返回类型、名称、参数列表和方法体
D、final 可修饰类、属性、方法
30. 下面不属于Java关键字的是()。
A、new
B、private
C、sealed
D、transient
31. 下面程序运行之后,变量x的值是()。
......
//swap方法的声明
public static void swap(int a,int b){
int t=a;
a=b;
b=t;
}
//main方法
public static void main(String args[]){
int x=3;
int y=2;
swap(x,y);
}
A、2
B、3
C、4
D、6
32. 下列有关构造函数描述正确的是()。
A、所有类都必须定义一个构造函数
B、构造函数必须有返回值
C、构造函数必须访问类的非静态成员
D、构造函数可以初始化类的成员变量
33. 不使用static修饰符限定的方法称为成员方法,下列有关成员方法的说法错误的是()。
A、成员方法可以直接调用父类的成员方法
B、成员方法可以直接调用父类的类方法
C、成员方法不可以直接调用其他类的成员方法
D、成员方法可以直接调用本类的类方法
34. 已知A类被打包在packageA,B类被打包在packageB,且B类被声明为public,有一个成员变量x被声明为protected控制方式。C类也位于packageA包,且继承了B类,则以下说法正确的是()。
A、A类的实例不能访问到B类的实例
B、A类的实例能够访问到B类一个实例的x成员
C、C类的实例不能访问到B类的实例
D、C类的实例可以访问到B类一个实例的x成员
35. 在Java中,用package语句说明一个包时,该包的层次结构必须()。
A、与文件的结构相同
B、与文件大小相同
C、与文件类型相同
D、与文件目录的层次相同
36. Java中用于定义接口的关键字是()。
A、import
B、package
C、class
D、interface
37. 关于类继承的说法,正确的是()。
A、Java 类允许多继承
B、接口和类都不允许多继承
C、接口和类都允许多继承
D、Java接口允许多继承
38. 设有下面两个类的定义:
class Person
{ long id; // 身份证号
String name; // 姓名
}
class Student extends Person
{ int score; // 入学总分
int getScore(){ return score; }
}
问:类Person和类Student的关系是()。
A、包含关系
B、关联关系
C、继承关系
D、无关系,上述类定义有语法错误
39. 下面两个文件位于相同目录下,编译运行后会出现的情况是()。
//File P1.java
package MyPackage;
class P1{
void afancymethod(){
System.out.println("What a fancy method");
}
}
//File P2.java
public class P2 extends P1{
public static void main(String argv[]){
P2 p2 = new P2();
p2.afancymethod();
}
}
A、两个文件都可以编译,P2运行输出“What a fancy method”
B、两个文件P1编译成功,P2编译时报错误
C、两个文件都可以编译,P2运行时报错误
D、两个文件都不能编译
40. 下面的程序段执行后输出的结果是()。
StringBuffer buf = new StringBuffer("China2008");
buf.append("Beijing");
buf.insert(5, "@");
System.out.println(buf.toString());
A、Beijing@China2008@
B、@China2008
C、ChinaBeijing@2008
D、China@2008Beijing
41. 仔细分析下面程序,其正确的输出结果是()。
publicclass Test1 {
public static void changeStr(String str) {
str = "1234";
}
public static void main(String[] args) {
String str = "welcome";
changeStr(str);
System.out.println(str);
}
}
A、welcome
B、welcome1234
C、1234
D、1234welcome
42. 分析下面的HTML部分代码:
<APPLET code=file_name
width=60
height=60>
</APPLET>
下列选项可以替代文件名以正确装载运行Hello类小程序的是()。
A、"Hello.bytecode"
B、"Hello.applet "
C、"Hello.class "
D、"Hello.java"
43. 下列有关Applet小程序和Application应用程序的描述,正确的是()。
A、小程序内必须有main()方法
B、小程序必须包含main()方法,而独立程序的父类一定是Applet
C、两者都必须有main()方法
D、独立程序必须包含main()方法,而Applet小程序的父类一定是Applet
44. 任何一个Applet开始执行时必然会被自动调用三个方法,这三个方法被调用的顺序依次是()。
A、init start paint
B、start paint init
C、paint start init
D、init paint start
45. 下面程序代码正确的排列顺序是()。
(1)import java.applet.*;
(2)ex12_9_a()
(3)package myclasses;
(4)public class ex12_9 extends java.applet.Applet{}
A、1、2、3、4
B、1、3、2、4
C、3、1、4、2
D、1、3、4、2
46. 下面属于applet的安全限制的选项是()。
①applet不能运行任何本地可运行程序
②禁止加载本地库或方法
③禁止读、写本地计算机的文件系统
④禁止向提供applet之外的任何主机建立网络连接
⑤不能读取所有系统信息
A、①②③⑤
B、①②④⑤
C、①②③④
D、②③④⑤
47. 下列选项中,布局管理器中的按钮位置有可能会根据Frame的大小改变而改变的是()。
A、FlowLayout
B、CardLayout
C、GridLayout
D、BorderLayout
48. 假设正在为应用系统设计一个图形用户界面(GUI),下列选项中最有可能用来表示标题的组件是()。
A、Button
B、Label
C、TextField
D、Checkbox
49. 下列选项是用于在GridLayout中的特定区域中放置多个组件的容器的是()。
A、Applet
B、Rectangle
C、Button
D、Panel
50. Java中不存在的布局方式是()。
A、顺序布局(FlowLayout)
B、边界布局(BorderLayout)
C、中央布局(CenterLayout)
D、网络布局(GridLayout)
51. setLayout()方法使用的参数类型是()。
A、Graphics
B、Graphics2D
C、LayoutManager
D、Layout
52. 显示区域为20列的单行文本输入区构造方法是()。
A、tf1=new TextField("",20);
B、tf2=new TextField(20,"");
C、tf3=new TextArea("",20);
D、tf4=new TextArea(20,"");
53. 下列Java常见事件类中,属于键盘事件类的是()。
A、InputEvent
B、KeyEvent
C、MouseEvent
D、WindowEvent
54. 分析下面的Java程序段,其输出结果为()。
public class Yy {
public static void main(String[] args) throws Exception {
try {
throw new Exception();
}
catch(Exception e){
System.out.println("Caught in main()");
}
System.out.println("nothing");
}
}
A、Caught in main()
nothing
B、Caught in main()
C、nothing
D、没有任何输出
55. 在代码中使用catch(Exception e)的好处是()。
A、只会捕获个别类型的异常
B、忽略一些异常
C、捕获try块中产生的所有类型的异常
D、执行一些程序
56. 当方法遇到异常又不知如何处理时,下列做法正确的是()。
A、捕获异常
B、抛出异常
C、声明异常
D、嵌套异常
57. 作为类中新线程的开始点,线程的执行是从()方法开始的。
A、public void start()
B、public void run()
C、public void int()
D、public static void main(String args[])
58. 过滤字节输出流类都是()抽象类的子类。
A、FilterOutputStream
B、Dataoutput
C、DataOutputStream
D、InflateroutputStream
59. 下列说法正确的是()。
A、字节流中的数据以16位字节为单位进行读写
B、字符流中的数据以16位字符为单位进行读写
C、InputStream和OutputStream是字符流的两个顶层父类
D、Reader和Writer是字节流的两个顶层抽象父类
60. 下列关键字不是用来控制对类成员访问的是()。
A、default
B、protected
C、public
D、private
多选题(共20题,每题2分,共40分)
1. public static void main方法的参数描述正确的有()。
A、String args[]
B、Strings args[]z
C、String[] args
D、String args
2. 下列选项中,能有效地描述浮点数的有()。
A、float foo = -1;
B、float foo = 1.0;
C、float foo = 42;
D、float foo = 2.02f;
E、float foo = 3.03d;
F、float foo = 0x0123;
3. 下列语句中,可以创建数组实例的有()。
A、int[] ia = new int [15];
B、float fa = new float [20];
C、String[] ca ={"我","们","的","祖国"};
D、Object oa = new float[20];
E、int ia [][] = (4, 5, 6) (1, 2, 3)
4. 下列选项代码正确的有()。
A、int i=0;
if (i) {
System.out.println("OK");
}
B、boolean b=true;
boolean b2=true;
if(b==b2) {
System.out.println("OK");
}
C、int i=1;
int j=2;
if (i==1 || j==2)
System.out.println("OK");
D、int i=1;
int j=2;
if(i==1 &| j==2)
System.out.println("OK");
5. 下面关于Java语言中实例方法和类方法的说法,正确的有()。
A、实例方法可以直接通过类名调用
B、类方法可以直接通过类名调用
C、实例方法可以操作实例变量也可以操作类变量
D、类方法只能操作类变量
6. 下列表达式等价的选项为()。
A、3/2
B、3*4
C、3<2
D、3<<2
E、3*2^2
F、3<<<2
7. 下面有关变量及其作用域的叙述正确的有()。
A、在方法里面定义的局部变量在方法结束后可以继续使用
B、局部变量只在定义它的方法内有效
C、在方法外面定义的变量(即实例变量)在对象被构造时创建
D、在方法中定义的方法的参变量只要该对象被使用就一直存在
8. 在下面代码中,x为()时输出结果为“out2”。
switch(x){
case 1:System.out.println("out1");break;
case 2:
case 3:System.out.println("out2");break;
default:System.out.println("end");
}
A、1
B、2
C、3
D、default
9. 已知如下代码:
public class Test {
public static void main(String arg[]) {
int i = 5;
do {
System.out.println(i);
} while (--i > 5);
System.out.println("完成");
}
}
其执行后的输出包含()。
A、5
B、4
C、6
D、完成
E、None
10. 在Java中,下面关于包的陈述正确的有()。
A、包的声明必须是源文件的第一句代码
B、可以将多个源文件中的类放在同一个包中
C、只有公共类才能放在包中
D、包的声明必须紧跟在import语句的后面
11. 创建一个类,来存储唯一的对象元素,元素不需要保持特定顺序,但是必须唯一。最能满足这种要求的接口有()。
A、Set
B、List
C、HashSet
D、Vector
E、Map
12. 下列选项中演示了继承关系(is a)的有()。
A、interface Component{ }
class Container extends Component{ }
B、class Father { }
class son extends Father { }
C、public class Species{ }
public class Animal{private Species species;}
D、abstract class Colorable { }
class Shape extends Colorable { }
E、interface Person { }
public class Employee implements Person{ }
13. 下列关于String类和StringBuffer类的说法正确的有()。
A、String类是不可变类,一个String对象所包含的字符串内容永远不会被改变
B、如果对字符串中的内容经常进行操作,特别是内容要修改时,应使用StringBuffer
C、StringBuffer类是可变类,一个StringBuffer对象所包含的字符串内容可以被添加或修改
D、字符串缓冲区支持可变的字符串
14. 下列方法中,属于Applet基本方法的有()。
A、init()
B、run()
C、main()
D、start()
E、stop()
15. 下面关于布局管理器说法正确的有()。
A、布局管理器用来管理组件放置在容器中的位置和大小
B、不是每个容器都有一个布局管理器
C、使用布局管理器可以使JAVA生成的图形用户界面具有平台无关性
D、布局管理器LayoutManager本身是一个接口,通常使用的是实现了该接口的类
16. 如下选项中可以从WindowEvent获取事件源的方法有()。
A、getFrame()
B、getID()
C、getSource()
D、getWindow()
17. 在Java中有事件适配器的事件监听器包括()。
A、MouseListener
B、KeyListener
C、ActionListener
D、ItemListener
E、WindowListener
18. 下列关于Java语言中线程的说法正确的有()。
A、内置支持多线程机制
B、一个程序中的主类不是Thread的子类,该类也没有实现Runnable接口,则这个主类运行不能控制主线程的休眠
C、要在程序中实现多线程,必须导入类:import java.lang.Thread;
D、一个线程创建并启动后,它将执行自己的run( )方法,如果通过派生Thread类实现多线程,则需要在子类中重新定义run( )方法,把需要执行的代码写入run( )方法中;如果通过实现Runnable接口实现多线程,则要编写接口中的抽象方法——run( )方法的方法体
19. 可用于定义新线程类的方法有()。
A、implement the Runnable interface
B、add a run() method in the class
C、create an instance of Thread
D、extend the Thread class
20. 创建一个向文件“file.txt”追加内容的输出流对象的语句有()。
A、FileOutputStream out=new FileOutputStream("file.txt", true);
B、OutputStream out=new FileOutputStream("file.txt", "append");
C、OutputStream out=new FileOutputStream("file.txt");
D、FileOutputStream out=new FileOutputStream(new file("file.txt"));
E、OutputStream out=new FileOutputStream(new File("file.txt"),true);
综合操作题(共2题,每题25分,共50分)
- 1、编写一个Java应用程序,在其中编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法,并给出计算实根的过程。
2、有500个小朋友拉成一个圆圈,从其中一个小朋友开始依次编号1-500,从1号小朋友开始循环1-3报数,数到3的小朋友就退出。编写一个Java应用程序,计算出最后一个小朋友的号码。 |