24春学期(高起本:1709-2103、专升本/高起专:2003-2103)《Java语言程序设计》在线作业-00002
试卷总分:100 得分:100
一、单选题 (共 25 道试题,共 50 分)
1.下列程序段的输出结果是 public class operatorsandExpressions{ void stringPlus(){ int x=3,y=4,z=5; System.out.println(x+y+z); } }
A.xyz
B.x+y+z
C.12
D.以上均不正确
2.阅读下列代码后 public class Person{ int arr[]=new int[10]; public static void main(String args[]){ System.out.println(arr[1]); } } 正确的说法是
A.编译时将产生错误
B.编译时正确,运行时将产生错误
C.输出零
D.输出空
3.Java中,使用哪个关键字来定义一个接口( )。
A.implements
B.class
C.extends
D.interface
4.设有下面两个类的定义: class Person { class Student extends Person { long id; // 身份证号 int score; // 入学总分 String name; // 姓名 int getScore(){ } retu
A.包含关系
B.继承关系
C.关联关系
D.上述类定义有语法错误
5.以下关于继承的叙述正确的是()。
A.在Java中类只允许单一继承
B.在Java中一个类只能实现一个接口
C.在Java中一个类不能同时继承一个类和实现一个接口
D.在Java中接口只允许单一继承
6.以下哪些修饰符可以使变量对于任何其他类都是不可视的,包括子类?( )
A.private
B.public
C.final
D.abstact
7.若在某一个类定义中定义有如下的方法:abstract void performDial( );该方法属于( )。
A.接口方法
B.最终方法
C.抽象方法
D.空方法
8.以下字符常量中不合法的是()。
A.'@'
B.'&'
C."k"
D.'整'
9.关于以下程序段的说法正确的是 1. public class Myar{ 2. public static void main(String argv[]){ 3. int[]i=new int[5]; 4. System.out.println(i[5]); 5. } 6. }
A.第2行编译出错
B.第4行编译出错
C.编译时产生错误
D.编译时没有产生错误,运行时发生异常
10.执行如下程序代码a=0;c=0; do{ c--; a=a-1; }while(a>0); 后C的值是( )。
A.0
B.1
C.-1
D.死循环
11.如果需要把s="It,is,me"按照","分解,并赋给新的变量s1,下列语句正确的是( )。
A.String s1=new StringTokenizer(s);
B.String s1=new StringTokenizer(s,",");
C.StringTokenizer s1=new StringTokenizer("It,is,me");
D.StringTokenizer s1=new StringTokenizer(s,",");
12.安装JDK时,不需要配置环境变量( )。
A.JAVA_HOME
B.path
C.classpath
D.OS
13.下列程序段的输出结果是 void doublearithmaticOperator(){ System.out.print(9/2); System.out.print(","); System.out.println(5/2.0); }
A.4.5,2.5
B.4,2
C.4.5,2
D.4,2.5
14.关于main方法中的arg[],下列哪个表述是正确且全面的( )。
A.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素是在程序运行时从命令行输入的。
B.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素是在程序编译时从命令行输入的。
C.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素是在程序编译时直接写入txt文件的。
D.main方法中的参数是字符串数组arg[ ],args是命令行参数,字符串数组arg[ ]的元素可以在任何需要的时刻内输入。
15.关于InputStream的描述,下列哪一项是不正确的( )。
A.以字节为单位输入
B.是多个流类的父类
C.StringBufferInputStream是其中一个子类
D.一般不用来处理文件输入
16.能够支持 javadoc 命令的注释语句是()。
A./**...//
B./*...*/
C.//
D./**...*/
17.编译Java application源程序文件将产生相应的字节码文件,这些字节文件的扩展名为
A..java
B..class
C..obj
D..exe
18.下列的变量定义中,错误的是( )。
A.int 6_a;
B.float a;
C.int i=Integer.MAX_VALUE;
D.static int i=100;
19.在 Java 中,由Java编译器自动导入,而无需在程序中用import导入的包是()。
A.java.applet
B.java.awt
C.java.util
D.java.lang
20.以下程序段的输出结果为 class Cruncher{ void crunch(int i){ System.out.println("int version"); } void crunch(String s){ System.out.println("String version"); } public static void main(String args[]){ Cruncher crun=new Cruncher(); char ch='p'; crun.crunch(ch);} }
A.int version
B.String version
C.编译出错
D.编译通过,但产生异常
21.按照 Java 的标识符命名规范,下列表示一个类的标识符正确的是()。
A.Helloworld
B.HelloWorld
C.helloworld
D.helloWorld
22.一个消息包含的内容,不应有( )。
A.消息接收者
B.接受对象应采用的方法
C.指示接受者做何处理
D.方法的参数
23.以下字符常量中不合法的是()。
A.'@'
B.'&'
C."k"
D.'整'
24.下列关于字符串的描述中,错误的是( )。
A.Java语言中,字符串分为字符串常量和字符串变量2种
B.两种不同的字符串都是String类的对象
C.Java语言中不再使用字符数组存放字符串
D.Java Application程序的main()的参数args[]是一个String类
25.关于以下程序的描述正确的是( )。 public class UseArray{ static int arr[] = new int[5]; public static void main(String a[]) { System.out.println(arr[0]); } }
A.编译将产生错误
B.编译时正确,但运行时将产生错误
C.正确,输出0
D.正确,输出?null
二、多选题 (共 10 道试题,共 20 分)
26.关于方法的形参和实参,下列说法错误的是( )。
A.和实参一样,在定义形参时,即被系统分配内存单元,直至程序结束。
B.实参可以是常量、变量、表达式,但是不能是方法。
C.实参和形参在数量上、类型上和顺序上必须严格一致。
D.方法调用中的数据是单向传递的,即形参的值在方法调用结束后传给实参。
27.下列语句中,不属于多分支语句的是( )。
A.if语句
B.switch语句
C.do while语句
D.for语句
28.在Java中,关于封装性的说法中,正确的是( )。
A.是一种信息隐蔽技术
B.使对象之间不可相互作用
C.是受保护的内部实现
D.与类有关,封装的基本单位是对象
29.若有定义 class A{int x,y; static float f(int a){…} float g(int x1,int x2){…}} 及A a1=new A();则下列用法中合法的是( )。
A.g(3,2)
B.f(3)
C.a1.f(4)
D.a1.g(2,5)
30.以下不正确的说法为( )。
A.在不同方法中不可以使用相同名字的变量。
B.实际参数可以在被调方法中直接使用。
C.在方法内定义的任何变量只在本方法范围内有效。
D.在方法内的复合语句中定义的变量只在本方法语句范围内有效。
31.下列关于变量的叙述中正确的是( ) 。
A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被执行时创建
D.局部变量在使用前必须被初始化
32.关于局部变量的作用域,下列说法正确的是( )。
A.主方法中定义的变量只能在主方法中使用,不能在其他方法中使用。
B.形参变量是属于被调方法的局部变量,而实参变量一般是属于主调方法的局部变量。
C.不允许在不同的方法中使用相同的变量名。
D.在复合语句中也可以定义变量,其作用域只在复合语句范围内。
33.关于Java的双字节流,下列哪些是正确的( )。
A.除了一般ASCII字符,很多其他语言比如汉字,一个字都需要至少2个字节存储
B.任何双字节字符不能转化为单字节字符,因为会丢失信息
C.主要是为了将一般字符与其他字符(如汉字字符)统一起来,方便处理
D.若程序使用char存储,任何单字节字符都转化成双字节存储
34.一个对象创建包括的操作中,包含下面的( ) 。
A.释放内存
B.对象声明
C.分配内存
D.调用构造方法
35.以下不正确的描述是( )。
A.方法的定义不可以嵌套,但方法的调用可以嵌套。
B.方法的定义可以嵌套,但方法的调用不可以嵌套。
C.方法的定义和方法的调用均不可以嵌套。
D.方法的定义和方法的调用均可以嵌套。
三、判断题 (共 15 道试题,共 30 分)
36.父类比它的子类的方法更多
37.File类可以作为FileInputStream类的构造方法的参数
38.在Java中,负责对字节代码解释执行的是虚拟机。
39.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
40.只能对一个类的方法进行封装,不能对属性进行封装
41.Java的各种数据类型占用的内存长度固定,与具体软硬件环境无关。
42.在创建对象是必须先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
43.一个子类可以有多个父类,一个父类也可以有多个子类
44.异常是定义了程序中遇到的非致命的错误,而不是编译时的语法错误
45.无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件。
46.在不同的软硬件平台上,Java的各种数据类型所占用的内存长度不同,因此程序的可移植性不强。
47.在Java中一个类只能实现一个接口
48.构造方法是一种特殊的方法,名字与类名一致,但返回类型都为void型。
49.Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。
50.如果catch和finally语句块同时存在,则catch语句块必须位于finally语句块后