资源描述
Java语言程序设计期末复习题
一、选择题
1、 变量定义错误的是。 (D)
A) int a; B) double b=4.5; C) boolean b=true; D)float f=9.8;
2、 列数据类型的精度由高到低的顺序是:(B)
a)float,double,int,long
b)double,float,int,byte
c)byte,long,double,float
d)double,int,float,long
3、 执行完下列代码后, (A)
int a=3;
char b='5';
char c=(char)(a+b);
c的值是?
A)’8’ b)53 c)8 d)56
4、 Unicode是一种_____________(C)
A) 数据类型 B)java包 C)字符编码 D)java类
5、 6+5%3+2的值是___________(D)
A)2 B)1 C) 9 D)10
6、 下面的逻辑表达式中合法的是__________(C)
A)(7+8)&&(9-5) B)(9*5)||(9*7) C)9>6&&8<10 D)(9%4)&&(8*3)
7、 java语言中,占用32位存储空间的是__________。(D)
a) long,double
b) long,float
c) int,double
D) int,float
8、 假设int a=1,b=2,c=3,以下语句正确的是___________。(D)
a) c=c/float(a//b) b) c=c/((float a)/b)
c) c=(float)c/(a/b) d) c= c/(int)(a/(float)b)
9、 2|3&5的值是________________。(C)
A)1 B)2 C)3 D)5
10、指出下列正确的语句: (D)
A) byte i = 389;
B) long lv = i*3+4.5;
C)
int x = 87L;
D) long l = 10;
11、编译和运行下面的应用程序,屏幕输出的结果是( D )。
public class Test {public static void main(String args[]) {
A a=new A("aaaaa"); A.B b=a.new B();
System.out.println(a.outStr+b.inStr); }}
class A { String outStr;
public A(String s) { outStr=s; }
public class B { public String inStr="bbbbb"; }}
A) aaaaa B)ababa C) bbbbb D) aaaaabbbbb
12、当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 interrupt() 方法中断它时,抛出的异常类型是( C )。
A) IOException B) RuntimeException
C) InterruptedException D) ClassNotFoundException
13、以下是应用程序中定义的静态方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是 ( B )。
static void printBinary(int i) {System.out.print(i + "的2进制数表示为:\t");
for(int j = 31; j >=0; j--)
if(((1 << j) & i) != 0)
System.out.print("1");
else
System.out.print("0");
System.out.println(); }
A) 00000000000000000000000000000001 B) 00000000000000000000000000000010
C) 00000000000000000000000000001111 D) 00000000000000000000000000000000
14、下面语句的功能是( A )。
RandomAccessFile raf2 = new RandomAccessFile("1.txt","rw" );
A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。
B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。
C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。
D) 以上说法都不对。
15、下面的程序编译运行后,输出的结果是( D ).
import java.util.Arrays;
public class Test { public static void main(String[] unused) {
String[] str = {"ZZZ", "AAA","BBB","CCC"}; Arrays.sort(str);
int index=Arrays.binarySearch(str,"ZZZ"); System.out.println(index); }}
A) 0 B) 1 C)2 D)3
16、下面的程序段的功能是( D )。
File file1=new File("d:\\xxx\\yyy\\zzz");
file1.mkdirs();
A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录: e:\xxx\yyy\zzz
C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对
17、下面的程序编译运行后输出的结果是( A )。
public class Test { public static void main(String args[]) {
X a=new X( ) {public void showX() { System.out.println(a*b);}};
a.showX(); }}
class X { int a=5,b=3;
public void showX() { System.out.println(a+b); } }
A) 15 B) 8 C) 5 D) 3
18、应用程序的main方法中有以下语句,则输出的结果是 ( B )。
String s="xxxxxxxxxxxxxxx#123#456#zzzzz";
int n=s.indexOf("#"); k=s.indexOf("#",n+1);
String s2=s.substring(n+1,k);System.out.println(s2);
A)123456 B)123 C) xxxxxxxxxxxxxxx D) zzzzz
19、关于下面的程序Test.java说法正确的是( D )。
public class Test { String x="1"; int y;
public static void main(String args[]) { int z=2; System.out.println(x+y+z); }}
A)3 B)102 C) 12 D)程序有编译错误
20、应用程序的main方法中有以下语句,则输出的结果是 ( A )。
double x=8765.12345;
DecimalFormat form1 = new DecimalFormat("0000.00");
System.out.println("x="+form1.format(x));
A)x=8765.12 B)x=8765.12345
C)x=8765.1 D)x=8765.0
21.下列语句序列执行后,m 的值是( C)。
int a=10, b=3, m=5;
if( a==b ) m+=a; else m=++a*m;
A) 15 B) 50 C) 55 D) 5
22.下列语句序列执行后,k 的值是(B )。
int i=4,j=5,k=9,m=5;
if(i>j||m<k) k++; else k--;
A) 5 B) 10 C) 8 D) 9
23.下列语句序列执行后,x 的值是( D )。
int a=2, b=4, x=5;
if( a<--b ) x*=a;
A) 5 B) 20 C) 15 D) 10
24.下列语句序列执行后,b 的值是( B)。
int a=2, b=4;
if( a < - - b ) a*=a;
A) 5 B) 3 C) 15 D) 10
25.下列语句序列执行后,m 的值是( D )。
int i=9, j=8, m=10, n=9;
if( i<j || m - -<n ) i++; else j--;
A) 6 B) 7 C) 8 D) 9
26.下列语句序列执行后,x 的值是( A )。
int a=3, b=4, x=5;
if( ++a<b ) x=x+1;
A) 5 B) 3 C) 4 D) 6
27.下列语句序列执行后,ch1 的值是( B )。
char ch1=’A’,ch2=’W’;
if(ch1 + 2 < ch2 ) ++ch1;
A) ‘A’ B) ‘B’ C) ‘C’ D) B
28.下列语句序列执行后,x 的值是(B )。
int a=3, b=4, x=5;
if( ++a==b ) x=++a*x;
A) 35 B) 25 C) 20 D) 5
29.下列语句序列执行后,k 的值是(C)。
int i=6,j=8,k=10,m=7;
if(i>j||m<k--) k++; else k--;
A) 12 B)11 C) 10 D) 9
30.下列语句序列执行后,k 的值是(C )。
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
31.下列方法定义中,正确的是( D )。
A) int x( int a,b ) { return (a-b); }
B) double x( int a,int b) { int w; w=a-b; }
C) double x( a,b ) { return b; }
D) int x( int a,int b) { return a-b; }
32.下列方法定义中,正确的是( D )。
A) void x( int a,int b ); { return (a-b); }
B) x( int a,int b) { return a-b; }
C) double x { return b; }
D) int x( int a,int b) { return a+b; }
33. 下列方法定义中,不正确的是(D)。
A) float x( int a,int b ) { return (a-b); }
B) int x( int a,int b) { return a-b; }
C) int x( int a,int b ); { return a*b; }
D) int x(int a,int b) { return 1.2*(a+b); }
34. 下列方法定义中,正确的是( A )。
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; }
35. 列方法定义中,方法头不正确的是(D )。
A)public int x( ){ ... }
B)public static int x( double y ){ ... }
C)void x( double d ) { ... }
D)public static x( double a ){ ... }
36 定义类头时,不可能用到的关键字是( B)。
A) class B)private C)extends D)public
37.下列类定义中,不正确的是(C)。
A) class x { .... }
B) class x extends y { .... }
C) static class x implements y1,y2 { .... }
D) public class x extends Applet { .... }
38.下列类头定义中,错误的是( A)。
A)public x extends y {...}
B) public class x extends y {...}
C)class x extends y implements y1 {...}
D)class x {...}
39.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是( D)。
A) float A a; B) public A a=A( );
C) A a=new int( ); D) static A a=new A( );
40.设 A为已定义的类名,下列声明A类的对象a的语句中正确的是(A)。
A) public A a=new A( ); B) public A a=A( );
C) A a=new class( ); D) a A;
41. Java语言的类间的继承关系是( B )。
A) 多重的 B) 单重的 C) 线程的 D) 不能继承
42. 以下关于Java语言继承的说法正确的是( C )。
A)Java中的类可以有多个直接父类 B)抽象类不能有子类
C)Java中的接口支持多继承 D)最终类可以作为其它类的父类
43. 现有两个类A、B,以下描述中表示B继承自A的是(D)。
A) class A extends B B) class B implements A
C) class A implements B D) class B extends A
44. 下列选项中,用于定义接口的关键字是( A)。
A)interface B) implements C) abstract D) class
45. 下列选项中,用于实现接口的关键字是( B)。
A)interface B) implements C) abstract D) class
46. Java语言的类间的继承的关键字是( B )。
A) implements B) extends C) class D) public
47. 以下关于Java语言继承的说法错误的是( A )。
A)Java中的类可以有多个直接父类 B)抽象类可以有子类
C)Java中的接口支持多继承 D)最终类不可以作为其它类的父类
48. 现有两个类M、N,以下描述中表示N继承自M的是(D)。
A) class M extends N B) class N implements M
C) class M implements N D) class N extends M
49. 现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)。
A) class A implements B B) class B implements A
C) class A extends B D) class B extends A
50. 下列选项中,定义抽象类的关键字是( C)。
A)interface B) implements C) abstract D) class
51. 下列选项中,定义最终类的关键字是(D)。
A)interface B) implements C) abstract D) final
52. 下列选项中,哪个是java语言所有类的父类(C)
A)String B) Vector C) Object D) KeyEvent
53. java语言中,用于判断某个对象是否是某个类的实例的运算符是(A)
A)instanceof B) + C) isinstance D) &&
54. 下列选项中,表示数据或方法可以被同一包中的任何类或它的子类访问,即使子类在不同的包中也可以的修饰符是(B)
A)public B) protected C) private D) final
55. 下列选项中,表示数据或方法只能被本类访问的修饰符是(C)
A)public B) protected C) private D) final
二、 填空题
1、以下代码的输出结果是________________。(答案:字母j)
int i=9;
char c=’a’;
char d=(char)(c+i);
System.out.println(d);
2、 面代码执行完后的输出是__________-。(答案:b is:false)
int x=3;
int y=4;
boolean b=true;
System.out.println("b is:"+(b==(y<x)));
3、 表达式(-100%3)的值是_________。(答案:-1)
4、 int x=2,y=4,z=3 则x>y&&z>y的结果是__________________。(答案:false)
5、 写出定义双精度浮点型常量PI,值为3.1415926的语句:_______________________。
(答案: final double PI=3.1415926)
6、 在Java语言中,逻辑常量只有true 和 ___________ 两个值。(答案:false)
7、 表达式1/2*3的计算结果是_________。(答案:0)
8、 执行以下程序段后:a = ________, b = ________ 。(答案:6,18)
int a = 5, b;
b = ++a * 3;
9、 Java中的的字符使用的是 16 位的________________ 编码。(答案:Unicode)
Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 __________两种具体类型。(答案:double)
10.下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空。
public _____ Class1
{
public static void main( String args[] )
{
char c='a';
for (int i=1;i<=26;i++)
{ System.out.print(______); }
}
}
11.下面是一个java应用程序(Application),它的功能是计算 s=1+2+3+...+10 ,请完成程序填空。
public _____ Class1
{
public static void main( String args[] )
{
int s=0;
for (int i=1;i<=10;i++)
{
s+=______;
}
System.out.println("s="+s);
}
}
12.下面是一个java Application 的主类的定义,其功能是输出乘法口诀表第一列,请完成程序填空。
import java.io.*;
public class MyClass
{
public static void main(String[] args)
{
int j=1;
for(int i=1; _______; i++)
{
System.out.println(i+"*"+j+"="+_______);
}
}
}
13. 以下方法fun的功能是求两参数之积。(return a*b)
int fun ( int a, int b ) { __________________; }
14. 以下方法fun的功能是求两参数之积。(return (float)a*b)
float fun ( int a, double b ) { __________________; }
15. 以下方法fun的功能是求两参数的最大值。(return a>b?a:b)
int fun ( int a, int b ) { __________________; }
16. 以下方法m的功能是求两参数之积的整数部分。
(return (int)(a*b))
int m ( float x, float y ) { __________________; }
17. 下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。
(void call)
public ___ paint(Graphics ____)
{ call.drawString("Hello,java!",10,20); }
18.下面方法的功能是判断一个整数是否为偶数,将程序补充完整。(boolean true)
public ________ isEven(int a)
{ if(a%2==0)
return _____;
else
return false;
}
19.同一个类中多个方法具有相同的方法名,不同的_____________称为方法的重载。(参数列表)
20. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量。(隐藏)
21. 属性的隐藏是指子类重新定义从父类继承来的__________。(同名变量或属性)
22. 如果子类中的某个方法的名字、返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(参数列表)
23. Java 仅支持类间的____重继承。(单重)
24. 抽象方法只有方法头,没有________。 (方法体)
25. Java 语言的接口是特殊的类,其中包含______常量和_______方法。(static(静态) ; abstract(抽象))
26. 接口中所有属性均为_________、_________和________的。
(public、static、final)
27. 如果接口中定义了一个方法methodA(),一个属性attA,那么一个类ClassA要实现这个接口的话,就必须实现其中的_______方法。(methodA())
28.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成________的。(抽象的)
29. 如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。(返回值类型)
30. Java 仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承(多重)
三、简答题
1. if选择结构允许程序干什么?
2. 什么是语法错误,请举例说明。
3. 什么是逻辑错误,请举例说明。
4. 为什么程序员要在代码中插入注释?
5. 在if结构的右括号后面紧跟着分号,为什么会导致逻辑错误。
如下程序的输出结果是什么?
四、补充完成程序
1、根据程序中的注释,将下面的应用程序补充完整。
public class A {
public static void main (String[] args) {
A a=new B( );
a.test();
}
void test() {
System.out.print ("A");
}
}
class B ____(1)_____ A{
void test() {
____(2)____;//调用父类的同名方法
System.out.println("B");
}
}
2、下面方法的功能是在命令行打印list对象,请将程序补充完整。
private static void printArrayList(List list) {
Iterator iterator =____(1)____;//得到list的迭代器
while ( iterator.hasNext() )// 迭代器中是否有下一个元素
System.out.println(____(2)____);//显示迭代器中的元素
}
3.下面是一个类的定义,请完成程序填空。(Myclass int j)
public class ____________
{
int x, y;
Myclass ( int i, _______) // 构造方法
{
x=i; y=j;
}
}
4. 下面是一个类的定义,请将其补充完整。(Student String)
class _____
{
String name;
int age;
Student( _____ s, int i)
{
name=s;
age=i;
}
}
5.下面是一个类的定义,请将其补充完整。(myclass static)
class ____________ // 定义名为myclass的类
{
__________ int var=666;
static int getvar()
{ return var; }
}
6.下面程序的功能是通过调用方法max()求给定的三个数的最大值,
请将其补充完整。(max(i1,i2,i3) static)
public class Class1
{
public static void main( String args[] )
{
int i1=1234,i2=456,i3=-987;
int MaxValue;
MaxValue=____________;
System.out.println("三个数的最大值:"+MaxValue);
}
public ______ int max(int x,int y,int z)
{ int temp1,max_value;
temp1=x>y?x:y;
max_value=temp1>z?temp1:z;
return max_value;
}
}
7.下面是一个类的定义,请将其补充完整。(class static)
___________ A
{ String s;
_____ int a=666;
A(String s1) { s=s1; }
static int geta( ) { return a; }
}
6.下面是一个类的定义,完成程序填空。(Youwrite this.x=x;)
public class Youwrite
{
int x;
_______( ) {x=0;}
Youwrite ( int x)
{ _____; }
}
8.下面是定义一个接口ITF的程序,完成程序填空。
(interface abstract )
public _______ ITF
{
public static final double PI=Math.PI;
public ______ double area(double a, double b);
}
9.下面是定义一个接口A的程序,完成程序填空。(final ”;” )
public interface A
{
public static _______ double PI=3.14159;
public abstract double area(double a, double b)_
五、程序设计题
1、编写程序输出以下信息:
**************************
* Welcome To Java! *
**************************
(答案:
public class Test{
public static void main(String[] args){
System.out.println("**************************");
System.out.println("* Welcome To Java! *");
System.out.println("**************************");
}
}
)
2、编写程序计算半径为5的圆的面积,计算公式为:面积=半径*半径*圆周率
(答案:
public class Test{
public static void main(String[] args){
double radius=5.0;
double area;
final double pi=3.14;
area=radius*radius*pi;
System.out.println(area);
}
}
)
3、编写程序将华氏温度78度转换为摄氏温度,转换成的摄氏温度在屏幕上显示出来:
转换公式为:摄氏度=(5/9)*(华氏度-32)
(答案:
public class Test{
public static void main(String[] args){
double hs=78.0;
double cs;
cs=(5.0/9)*(hs-32);
System.out.println(cs);
}
}
)
4、编写程序计算底边长为7、高为3的三角形的面积。
计算公式为:三角形面积=底边长*高/2
(答案:
public class Test{
public static void main(String[] args){
double l=7;
double h=3;
double area=l*h/2;
System.out.println(area);
}
}
)
5.编写程序,实现字母的加密,首先输出原始字母password!,然后将这个一系列原始字母加密,每个字母都变成字母表中其后的5个字符输出。
(答案:
public class Test{
public static void main(String[] args){
char[] c={'p','a','s','s','w','o','r','d'};
for(int i=0;i<c.length;i++){
c[i]=(char)(c[i]+5);
}
for(int i=0;i<c.length;i++){
System.out.print(c[i]);
}
}
}
)
6.编写程序,实现字母C到其对应的AS
展开阅读全文