Java习题单选题
1.下列语句序列执行后,k 的值是( )
int m=3, n=6, k=0;
while( (m++) < ( -- n) ) ++k;
A) 0 B) 1 C) 2 D) 3
2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )
A) i = i + 2 B) a[0] = 7;
C) i++ - --j; D) a(0) = 66;
3.Java语言的类间的继承关系是( )
A) 多重的 B) 单重的 C) 线程的 D) 不能继承
4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为
i += i - 1;
A) 10 B) 121 C) 11 D) 100
5.下列选项中,用于在定义子类时声明父类名的关键字是( )
A)interface B) package C) extends D) class
6.若已定义 byte[ ] x= {11,22,33,-66}
其中0≤k≤3,则对x数组元素错误的引用是( )
A) x[5-3] B) x[k] C) x[k+5] D) x[0]
7.下列语句序列执行后,ch1 的值是( )
if(ch1 + 2 < ch2 ) ++ch1;
A) ‘A' B) ‘B' C) ‘C' D) B
8.下列语句序列执行后,i 的值是( )
int i=8, j=16;
if( i-1 > j ) i--; else j--;
A) 15 B) 16 C) 7 D) 8
9.下列语句序列执行后,k 的值是( )
int i=10, j=18, k=30;
switch( j - i )
{ case 8 : k++;
case 9 : k+=2;
case 10: k+=3;
default : k/=j;
}
A) 31 B) 32 C) 2 D) 33
10.下面语句执行后,i 的值是( )
for( int i=0, j=1; j < 5; j+=3 ) i=i+j;
A) 4 B) 5 C) 6 D) 7
11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( )
A) x > y || x > z B) x != y
C) z > ( y + x ) D) x < y & ! ( x < z )
12.下列语句序列执行后,i的值是( )
int i=16;
do { i/=2; } while( i > 3 );
A) 16 B) 8 C) 4 D) 2
13.以下由 for 语句构成的循环执行的次数是( )
for ( int i = 0; true ; i++) ;
A) 有语法错,不能执行 B) 无限次
C) 执行1次 D) 一次也不执行
14.定义类头时能使用的修饰符是( )
A) private B) static C) abstract D) protected
15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,
正确的switch语句是( )
A) switch (x + y) B) switch ( ch + 1 )
{ ...... } { ...... }
C) switch ch D) switch ( a + b );
{ ...... } { ...... }
16. 下列最终属性 i 的定义中,正确的是( )
A) static final int i=100; B) final int i=1.2;
C) final i='w'; D) final char i;
17. 下列类定义中,不正确的是
A) class x { .... }
B) class x extends y { .... }
C) static class x implements y1,y2 { .... }
D) public class x extends Applet { .... }
18. 设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是
A) static x x1; B) public x x1=new x(int 123);
C) y x1; D) x x1=x( );
19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是( )
A) x( int m){ ... } B) void x( int m){ ... }
C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... }
20. 下列方法定义中,正确的是
A) int x( ){ char ch='a'; return (int)ch; }
B) void x( ){ ...return true; }
C) int x( ){ ...return true; }
D) int x( int a, b){ return a+b; }
21. 用于定义类成员的访问控制权的一组关键字是( )
A) class, float, double, public
B) float, boolean, int, long
C) char, extends, float, double
D) public, private, protected
22. 不能构成循环的语句是
A) for 语句 B) while 语句 C) switch 语句 D) do__while 语句
23、函数重载是指 ()
A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的函数名字不同,但形参的个数或类型相同
D.两个以上的函数取相同的函数名,并且函数的返回类型相同
24、指出下列程序运行的结果( )
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″);
System.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
25、构造方法何时被调用( )
A.类定义时 B.创建对象时
C.调用对象方法时 D.使用对象的变量时
26、在异常处理中,如释放资源、关闭文件、关闭数据库等由( )来完成
A.try子句 B.catch子句
C.finally子句 D.throw子句
27、运行下列程序的结果是( )
abstract class MineBase{
abstract void amethod();
static int i;
}
public class Mine extends MineBase
{
public static void main(String argv[]){
int[] ar=new int[5];
for(i=0;i System.out.println(ar[i]);
}
}
A.打印5个0 B.编译出错,数组ar[]必须初始化
C.编译出错,Mine应声明为abstract D.出现IndexOutOfBoundes的例外
28、在Java中,不属于整数类型变量的是( )
A.double B.long
C.int D.byte
29、Java虚拟机的执行过程有多个特点,下列哪个特点不属于JVM执行特点( )
A.多线程 B.动态连接
C.异常处理 D.异步处理
30、当方法遇到异常又不知如何处理时,下列哪种说法是正确的( )
A.捕获异常 B.抛出异常
C.声明异常 D.嵌套异常
31、Java程序的执行过程中用到一套JDK工具,其中java.exe是指( )
A.Java文档生成器 B.Java解释器
C.Java编译器 D.Java类分解器
32、Java变量中,以下不属于复合类型的数据类型是( )
A.类 B.字符型
C.数组型 D.接口
33、11.在Java中,负责对字节代码解释执行的是
A、垃圾回收器 B、虚拟机 C、编译器 D、多线程机制
34、下列叙述中,正确的是
A、Java语言的标识符是区分大小写的 B、源文件名与public类名可以不相同
C、源文件名其扩展名为.jar D、源文件中public类的数目不限
35、下列属于合法的Java标识符是
A、_cat B、5books C、+static D、-3.14159
36、在 Java 中,表示换行符的转义字符是
A、\n B、\f C、'n' D、\dd
37、在 Java 中,由Java编译器自动导入,而无需在程序中用import导入的包是
A、java.applet B、java.awt C、java.util D、java.lang
38、在 Java 中,用 package 语句说明一个包时,该包的层次结构必须是
A、与文件的结构相同 B、与文件目录的层次相同
C、与文件类型相同 D、与文件大小相同
40、下列构造方法的调用方式中,正确的是
A、按照一般方法调用 B、由用户直接调用
C、只能通过 new 自动调用 D、被系统调用
41、.int 型 public 成员变量 MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是
A、public int MAX_LENGTH=100 B、final int MAX_LENGTH=100
C、public const int MAX_LENGTH=100 D、public final int MAX_LENGTH=100
42、下列关于线程优先级的说法中,正确的是
A、线程的优先级是不能改变的 B、线程的优先级是在创建线程时设置的
C、在创建线程后的任何时候都可以设置 D、B 和 C
43、下列代码中,将引起一个编译错误的行是
1)public class Test{
2) int m,n;
3) public Test(){}
4) public Test(int a){m=a;}
5) public static void main(String args[]){
6) Test t1,t2;
7) int j,k;
8) j=0;k=0;
9) t1=new Test();
10) t2=new Test(j,k);
11) }
12) }
A、第3行 B、第5行 C、第6行 D、第10行
44、下列的哪个赋值语句是正确的
A.char a=12; B.int a=12.0; C.int a=12.0f; D.int a=(int)12.0;
45、
下列的哪个赋值语句是不正确的
A.float f = 11.1; B.double d = 5.3E12; C.float d = 3.14f ; D.double f=11.1E10f;
46、下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?
A.private B.无修饰符 C.public D.protected
47、给出下列代码,如何使成员变量m 被方法fun()直接访问
class Test
{
private int m;
public static void fun()
{
..
}
}
A.将private int m 改为protected int m B.将private int m 改为 public int m
C.将private int m 改为 static int m D.将private int m 改为 int m
48、已知有下列类的说明,则下列哪个语句是正确的
public class Test
{
private float f = 1.0f;
int m = 12;
static int n=1;
public static void main(String arg[])
{
Test t = new Test();
}
}
A.t.f; B.this.n; C.Test.m; D.Test.f;
49、在oneMethod()方法运行正常的情况下,程序段将输出什么?
public void test()
{
try { oneMethod();
System.out.println("condition 1");
} catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("condition 2");
} catch(Exception e)
{
System.out.println("condition 3");
} finally
{
System.out.println("finally");
}
}
A.condition 1 B.condition 2 C.condition 3 D.condition 1 finally
50、下列常见的系统定义的异常中,哪个是输入、输出异常?
A.ClassNotFoundException B.IOException
C.FileNotFoundException D.UnknownHostException
51、下列方法中哪个是执行线程的方法?
A.run() B.start() C.sleep() D.suspend()
52、下列哪个选项的java源文件代码片段是不正确的?
A.package testpackage;
public class Test{ }
B.import java.io.*;
package testpackage;
public class Test{ }
C.import java.io.*;
class Person{ }
public class Test{ }
D.import java.io.*;
import java.awt.*;
public class Test{ }
二、填空题:(每空1分)
1. 构造函数_______有返回值。
2. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为________和 __________两种具体类型。
3. 创建类对象的运算符是_______。
4. 当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是_____________ 。
5. 在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__________。
6. 定义类就是定义一种抽象的____________,它是所有具有一定共性的对象的抽象描述。
7. 在Java语言中,使用_____、______等技术,实现软件重用。
8. 表达式3/6 * 5的计算结果是________ 。
9.下面是一个类的定义:
public class ____________
{
int x, y;
Myclass ( int i, _______) // 构造函数
{
x=i;
y=j;
}
}
10.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。
import java.io.*;
public class MyClass
{
public static void main(String args[ ])
{
if( args.length !=___)
for(int i=0; i < args.length; i++)
System.out.println(___________);
else System.out.println(没有命令行参数);
}
}
12. Java的复合数据类型有 : 类、数组和_______等。
13. 表达式3/6 * 5的计算结果是________ 。
14.定义初值为10的10次方的长整型变量 lvar 的语句是:____________________
15. 顺序结构、分支结构(或称选择结构)、____________是结构化程序设计的三种基本流程控制结构。
16. 以下方法 m 的功能是求两参数之积的整数部分。
int m ( float x, float y )
{ __________________; }
17. Java 源程序文件编译后产生的文件称为________文件,其扩展名为 _________
18、面向对象方法中,类的实例称为____。答案:对象
19、ava 源文件中最多只能有一个____类,其他类的个数不限。
20、在 Java 中所有实现的多维数组,实际上是由一维数组构成的____。
三、程序分析:
1. 下面是一个排序的程序:
import java.io.*;
public class Test56_Sort
{
public static void main(String args[ ])
{
int[] a={42,99,5,63,95,36,2,69,200,96};
System.out.println(排序前的数据序列:);
ShowArray(a);
Sort(a);
System.out.println(排序后的数据序列:);
ShowArray(a);
}
public static void Sort(int[] x)
{
int w;
for(int i=1; i<x.length; i++)
{
for(int j=0; j<x.length-1; j++)
if(x[j]>x[j+1])
{ w=x[j]; x[j]=x[j+1]; x[j+1]=w; }
}
}
public static void ShowArray(int b[])
{
for(int i=0; i<b.length; i++)
System.out.print(b[i] +" ");
System.out.println( );
}
}
问题: 如果将方法Sort( )中的一对注释符()去掉,程序输出的结果是什么?
2. 请写下程序的输出结果:
public class Test52
{
String str1=Hello, Java world! \t;
String str2=Hello, students! ;
public static void main(String args[])
{
System.out.print(str1);
System.out.println(str2);
}
}
输出结果:
3. 请写下程序的输出结果:
public class T2_4 {
public static void main(String[] args)
{
int i,j;
char c='*';
for(i=0;i<5;i++)
{
for(j=0;j<=i;j++)
System.out.print("* ");
System.out.println();
}
}
}
输出结果:
4、请写下程序的输出结果:
public class ex2_2
{
public static void main (String args[ ] )
{
int x , y ;
byte b = 6;
float z = 1.234f ;
double w = 1.23;
boolean flag;
x = 12 ;
y = 300;
flag=x>y;
System.out.println("x>y=="+flag);
flag=z>w;
System.out.println("z>w=="+flag);
}
}