座号: 软件设计师Java认证考试测试卷
if(a>0) if(a>3) c = 2; else c = 3; else c = 4;
注意事项:用蓝、黑色钢笔答题。保持卷面整洁。 A.1 B. 2 C. 3 D. 4
得阅11、以下程序的运行结果是( )。BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 分 卷人 public class Increment{
public static void main(String args[]) { 一、单项选择题(从A、B、C、D四个选项中选择最恰当的一个每
int a; 小题1.5分,共45分)
a = 6; 1、关于Java语言叙述错误的是( )。CCCCCCCCCCCCCCCCCCCCCCCCCC
: 场 考 题 答 要 不 内 : 线 号 考 封 密 : 级 班 : 名 姓 A.Java语言具有跨平台性 B.Java是一种面向对象的语言
C.Java语言中的类可以多继承 D.Java的垃圾收集机制自动回收程序已不再使
用的对象
2、main方法是Java Application程序执行的入口点,关于main方法的方法头,以下合法的是
( )。BBBBBBBBBBBBBBBBBBBBBBBBBB
A.public static void main( ) B.public static void main( String ar
[] )
C.public static int main(String [] args ) D.public void main(String args[] )
3、关于Java中数据类型叙述正确的是( )。BBBBBBBBBBBBBBBBBBBBBBBB
A.整型数据在不同平台下长度不同 B.boolean类型数据只有2个值,true和false
C.数组属于简单数据类型 D.Java中的指针类型和C语言的一样
4、Java语言具有许多优点和特点,下列选项中, ( )反映了Java程序并行机制的特点。
BBBBBBBBBBBBBBBBBBBBBBBBB
A.安全性 B.多线程 C.跨平台 D.可移植
5、用来导入已经定义好的包或者类的语句是( )。BBBBBBBBBBBBBBBBBBBBBB
A. main B. import C. public class D. class
6、下列描述中,错误的是( )。AAAAAAAAAAAAAAAAAAAAAAAAAA
A. Java要求编程者管理内存 B. Java的安全性体现在多个层次上
C. Applet要求在支持Java的浏览器上执行 D. Java有多线程机制 7、以下语句有语法错误的是( )。AAAAAAAAAAAAAAAAAAAAAAAA A.int x=1;y=2;z=3; B.for (int x=10,y=0;x>0;x++); C.while (x>5); D.for(; ;); 8、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA A.static void method( ) B.public void method( ) C.final void method( ) D.abstract void method( ) 9、Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB)个比特位。 A.8 B.16 C.32 D.64 10、若a的值为3时,下列程序段被执行后,c的值是( )。CCCCCCCCCCCCCCCCCCCC c = 1; 弟1页/(共10页) System.out.print(a); System.out.print(a++); System.out.print(a); } } A.666 B. 667 C. 677 D. 676 12、下列选项中关于Java中super关键字的说法正确的是( )。AAAAAAAAAAAAAAAAA A. super关键字是在子类对象内部指代其父类对象的引用 B. super关键字不仅可以指代子类的直接父类,还可以指代父类的父类 C. 子类通过super关键字只能调用父类的方法,而不能调用父类的属性 D. 子类通过super关键字只能调用父类的属性,而不能调用父类的方法 13、对于构造函数,下列叙述错误的是( )。BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB A. 构造函数是类的一种特殊函数,它的方法名必须与类名相同。 B. 构造函数的返回类型只能是void型。 C. 构造函数的主要作用是完成对类的对象的初始化工作。 D. 一般在创建新对象时,系统会自动调用构造函数。 ??14、以下有关类继承的叙述中,正确的是( D )。AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性 B.子类只能继承父类的方法,不能继承父类的属性 C.子类只能继承父类的非私有属性,不能继承父类的方法 D.子类不能继承父类的私有属性 15、在Java语言中,不允许使用指针体现出的Java特性是( )。DDDDDDDDDDDDDDDD
A. 可移植性 B. 解释执行 C. 健壮性 D. 安全性 16、下列语句中,属于多分支语句的是( )。BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB A. if语句 B. switch语句 C. for语句 D. While语句 17、设有下面的一个类定义:
class AA { static void Show( ){ System.out.println(\"我喜欢Java!\"); } }
弟2页/(共10页)
class BB {
void Show( ){ System.out.println(\"我喜欢C++!\"); } }
若已经使用AA类创建对象a和BB类创建对象b,则下面(CCCCCCCCCCC)方法调用是正确的。
A. a.Show( ) B. AA.Show( ); b.Show( ) BB.Show( ); C. AA.Show( ); D. a.Show( ); b.Show( ); BB.Show( );
18、如要抛出异常,应用下列( )子句。BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB A.catch B. throw C. try D. finally
19、void 的含义是( )。CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC A.方法体为空 B.定义的方法没有形参
C.定义的方法没有返回值 D.方法的返回值不能参加算术运算
20、下面( )不是java语言中的关键字。BBBBBBBBBBBBBBBBBBBBBBBBBBBB A.long B.sizeof C.instanceof D.const
21、以下关于布局的说法,错误的是( )。BBBBBBBBBBBBBBBBBBBBBBBBBB A.BorderLayout是边框布局,它是窗体的默认布局 B.null是空布局,它是面板的默认布局
C.FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列, 一行排满之后就转到下一行继续从左至右排列
D.GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件
22、在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是( )。CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
A.bookTypeList.add(\"小说\"); B. bookTypeList.get(\"小说\"); C. bookTypeList.contains(\"小说\"); D. bookTypeList.remove(\"小说\"); 23、要串行化某些类的对象,这些类就必须实现( )。AAAAAAAAAAAAAAAAAAAAAAAAA
A.Serializable接口 B. java.io.Externalizable接口 C. java.io.DataInput接口 D. DataOutput接口
24、在Java Applet程序用户自定义的Applet子类中,常常重载( )方法在Applet的界面中显示文字、图形和其它界面元素。DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
A.start( ) B. stop( ) C. init( ) D. paint( ) 25、下面语句的作用是( )。DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD Vector MyVector = new Vector(100,50);
A.创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50 B.创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50
C.创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增 第3页/共10页 D.创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增。
26、在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用( )类的对象来实现。AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
A.Label B. Button C. TextArea D. TextField
27、当Frame改变大小时,放在其中的按钮大小不变,则使用如下(AAAA)布局方式。 A. FlowLayout B. CardLayout C. BorderLayout D. GridLayout 28、下面( )不是String类提供的合法的方法。CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
A.equals(String) B. trim() C. append() D. indexOf() 29、Swing与AWT的区别不包括( )。
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
A.Swing是由纯Java实现的轻量级构件 B.Swing没有本地代码
C.Swing不依赖操作系统的支持 D.Swing支持图形用户界面
30、下列javaDoc注释正确的是( )。CCCCCCCCCCCCCCCCCCCCCCCCCCCCC A./*我爱北京天安门*/ B. //我爱北京天安门*/ C. /**我爱北京天安门*/ D. /*我爱北京天安门**/ 二、填空题(每空1分,共 10分)
1、当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是 n%13==0?true:false 。
2、顺序执行以下两条语句的输出结果是 10 。 String s = \"我喜欢学习Java!\"; System.out.println(s.length( ));
3、据程序的构成和运行环境的不同,Java源程序分为两大类: APPLICATION 程序和 APPLET 程序。
4、如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生 4 个文件名与类名相同而扩展名为 .class 的字节码文件。
5、顺序结构、分支结构(或称选择结构)、 循环结构 是结构化程序设计的三种基本流程控制结构。
6、表达式3/6 * 5的计算结果是 0 。
7、在Java程序中,通过类的定义只能实现 单一 继承,但通过接口的定义可以实现 _____多_____继承。
三、判断题(每题1分,共 10分。请在括号内,对你认为正确的打√,错误的打×)。 1、即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参函数,函数体为空。( √ )
2、抽象方法所在的类必须是抽象类。( √ )
3、Java中使用run启动一个线程。( × ) 4、Java的标识符不可以以数字开头。( √ )
5、调用this 或super构造方法的语句必须放在第一条语句。( × ) 6、Java只能采取ODBC驱动连接数据库。( × )
7、Java中进行按钮事件处理的是ActionListener接口。( √ )
第4页/共10页
座号: 8、Java中父类的对象可以调用其子类对象的任何方法。( × ) 9、在同一个类中定义的重载构造函数可以相互调用。( √ )
10、final类不但可以用来派生子类,也可以用来创建final类的对象。( × ) 四、程序阅读题(每题4分,共20分) 1、写出以下程序的运行结果。 public class Test{
public static void main(String[] args) { ClassB cb1=new ClassB(1); ClassB cb2=new ClassB(1); } for ( i =0 ; i : 场 考 题 答 要 不 内 : 线 号 考 封 密 : 级 班 : 名 姓 if(cb1==cb2){ System.out.println(\"cb1==cb2\"); } else { System.out.println(\"cb1!=cb2\"); } } } class ClassB { int x; ClassB(int x){this.x=x; } } 输出:cb1!=cb2 2、写出以下程序的运行结果。 public class TestArray{ public static void main(String args[ ]){ int i ,j ; int a[ ] = {1,3,2,5,4}; for ( i = 0 ; i < a.length-1; i++ ) { int k = i; for ( j = i ; j < a.length ; j++ ) if ( a[j]>a[k] ) k = j; int temp =a[i]; a[i] = a[k]; a[k] = temp; 弟5页/(共10页) 3、阅读以下程序: public class Test4{ public static void main(String[] args) { String s; char c; int upper,lower; upper=lower=0; s=args[0]; for (int i=0;i 若在命令行输入:java Test4 hotJAVA,则输出为 4,3 4、写出以下程序的运行结果。 class First{ public First(){ aMethod(); } public void aMethod(){ 弟6页/(共10页) System.out.println(\"in First class\"); } } public class Second extends First{ public void aMethod(){ System.out.println(\"in Second class\"); } public static void main(String[ ] args){ new Second( ); } } 输出 in Second class 5、写出以下程序的运行结果。 class StaticTest { static int x=1; int y; StaticTest() { y++; } public static void main(String args[ ]){ StaticTest st=new StaticTest(); System.out.println(\"x=\" + x); System.out.println(\"st.y=\" + st.y); st=new StaticTest(); System.out.println(\"x=\" + x); System.out.println(\"st.y=\" + st.y); } { x++;} } 输出: x=2 st.y=1 x=3 st.y=1 五、编写程序(15分): 1、编写一个完整的Java Application 程序。包含接口ShapeArea,类Rectangle、Test,具体要求如下: 第7页/共10页 (1)接口ShapeArea: 包括以下接口方法: double getArea():求一个形状的面积 double getPerimeter ():求一个形状的周长 (2)类Rectangle:实现ShapeArea接口,并有以下属性和方法: 属性 width: double型,表示长方形的宽度 height:double型,表示长方形的长度 方法 Rectangle(double w, double h):构造函数 toString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”(3)Test类作为主类要完成测试功能 生成Rectangle对象,调用对象的toString方法,输出对象的描述信息 (1) public interface ShapeArea { //计算面积 double getArea(); //计算周长 double getPerimeter(); } (2) public class Rectangle implements ShapeArea{ //宽 public double width; //长 public double height; Rectangle(double w, double h){ this.width=w; this.height=h; } @Override public double getArea() { return width*height; } @Override public double getPerimeter() { return (width+height)*2; } public String toString(){ double area = getArea(); double perimeter = getPerimeter(); String s 第8页/共10页 = 座号: \"width=\"+width+\+height+\+perimeter+\+area; return s; } } (3) public class Test { public static void main(String[] args){ Rectangle r = new Rectangle(1.0,2.0); System.out.println(r.toString()); : 场 考 题 答 要 不 内 : 线 号 考 封 密 : 级 班 : 名 姓 } } 2、编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。(10分) import java.util.Scanner; public class MyClass { public static void main(String[] args) { Scanner scn = new Scanner(System.in); int num[] = new int[10]; System.out.println(\"输入\" + num.length + \"个整数:\"); for (int i = 0; i < num.length; i++) { try { System.out.print(\"第\" + (i + 1) + \"个整数:\"); num[i] = Integer.parseInt(scn.nextLine()); } catch (Exception e) { System.out.print(\"输入不正确,请重新输入\"); i--; } } int max = 0, min = 0; for (int i = 0; i < num.length; i++) { if (num[i] > num[max]) { max = i; } if (num[i] < num[min]) { min = i; } } System.out.println(\"最大值为第\" + (max + 1) + \"个整数\" + num[max]); System.out.println(\"最小值为第\" + (min + 1) + \"个整数\" + num[min]); } } 弟9页/(共10页) 弟10页/(共10页) 因篇幅问题不能全部显示,请点此查看更多更全内容