JAVA语言基础 复习题
(课程代码 252243)
public class Person{
static int arr[ ] = new int[5];
public static void main(String a[ ])
{
System.out.println(arr[0]); }
}
A、编译时将产生错误
B、编译时正确,运行时将产生错误
C、输出空
D、输出空输出零
int[ ] x={125,21,5,168,98};
int max=x[0];
for(int i=1;i<x.length;i++){
if(x[i]> max)
max =x[i];
}
System.out.println(max);
A、125 B、5 C、98 D、168
1).
2 ).public class Interesting{
3). //do sth
4).}
A、import java.awt.*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }
a = Integer.parseInt(“12”);
b = Integer.valueOf(“12”).intValue( );
下述说法正确的是( D )。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
ReturnType method(byte x, double y)
{
return (short) x/y*2;
}
A、byte B、short C、int D、double
String s = new String("abcdefg");
for (int i=0; i<s.length(); i+=2){
System.out.print(s.charAt(i));
}
A、aceg B、ACEG C、abcdefg D、abcd
A、2 7 8 12 35 B、12 35 8 7 2
C、35 12 8 7 2 D、8 7 12 35 2
File f = new File(填代码处);
file =new FileReader(f);
in=new BufferedReader(file);
A、 "./a.txt" B、"c:\\my\\a.txt"
C、 "../my/a.txt" D、"c:\ my\a.txt"
String s="12345#aaa#bbb#67890";
int n=s.indexOf("#");
int k=s.indexOf("#",n+1);
int m=s.indexOf("#",k+1);
String s2=s.substring(m+1);
System.out.println(s2);
A、123456 B、67890 C、aaa D、bbb
Hashtable hashtable=new Hashtable( );
hashtable.put("x","12345");
hashtable.put("y","67890");
hashtable.put("a","abcde");
System.out.println(hashtable.get("a"));
A、a B、abcde C、12345 D、67890
A、new; B、public ; C、super ; D、this ;
A、 88102335 ; B、 25103388; C、 53321088 ; D、 88331052 ;
int x=0;
int y=3;
switch(y){
case 1:x++;
case 2:x++;x++;
case 3:x++;x++;x++;
case 4:x+=4;
}
A、10 ; B、6 ; C、7; D、3 ;
String s1 = "abc";
String s2 = new String("abc");
String s3 = "abc";
String s4 = new String("abc");
A、 1 ; B、 4 ; C、 2 ; D、 3;
public class Bground extends Thread{
public static void main(String argv[ ])
{
Bground b = new Bground( );
b.run();
}
public void start( )
{
for (int i = 0; i <10; i++){
System.out.println("Value of i = " + i); } }
}
A、 运行时错误,Thread类中的run方法没有定义 ;
B、 编译错误,Thread类中的run方法没有定义 ;
C、 编译无错,打印0到9 ;
D、 编译无错,不打印任何值;
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “ + ((x>4) ? 99.9 :9)); }
}
A、输出结果为:value is 99.99 ; B、输出结果为:value is 9.0;
C、编译错误 ; D、输出结果为:value is 9 ;
public class Increment{
public static void main(String args[ ]){
int c;
c = 2;
System.out.print(c);
System.out.print(c++);
System.out.println(c); }
}
A、2 2 2 ; B、2 2 3; C、3 4 4 ; D、2 3 3 ;
public class myprog{
public static void main(String argv[ ])
{
System.out.println(argv[2]); }
}
A、 myprog ;
B、 Exception raised: "java.lang.ArrayIndexOutOfBoundsException: 2";
C、 good ;
D、 morning ;
import java.io.*;
import java.util.*;
public class foo{
public static void main (String[ ] args){
String s;
System.out.println("s=" + s); }
}
输出结果应该是( B )。
A、 代码得到编译,但捕获到 NullPointException异常 ;
B、 由于String s没有初始化,代码不能编译通过;
C、 代码得到编译,并输出“s=null” ;
D、 代码得到编译,并输出“s=” ;
public class Person{
static int arr[ ]=new int[10];
public static void main(String a[ ]){
System.out.println(arr[1]);
}
}
A、编译时将发生错误 B、编译时正确但是运行时出错
C、输出为0 D、输出为null
class A
{ int i;
static String s;
void method1( ) { }
static void method2( ) { }
}
A、System.out.println(a.i); B、a.method1( );
C、A.method1( ); D、A.method2( );
public class X{
public static void main(String [ ] args){
String names[]=new String[5];
for(int x=0; x<args.length; x++) names[x]=args[x];
System.out.println(names[2]);}
}
命令行执行:java X a b命令后,其输出结果是下面哪一个?
A、names B、b C、null D、运行出现异常
class Aclass
{
void go( )
{ System.out.println("Aclass"); }
}
public class Bclass extends Aclass
{
void go()
{ System.out.println("Bclass"); }
public static void main(String args[ ]) {
Aclass a=new Aclass( );
Aclass a1=new Bclass( );
a.go();
a1.go();
}
}
以上程序运行结果是:( C )
A、Aclass Aclass B、Bclass Bclass
C、Aclass Bclass D、Bclass Aclass
public class hellotest
{ { System.out.println("hello."); }
public static void main(String[ ] args) {
new hellotest( );
new hellotest( );
new hellotest( );
}
}
A、0 B、1 C、3 D、2
boolean a=false;
boolean b=true;
boolean c=(a&&b)&&(!b);
int result=c==false?1:2;
A、c: true; result:2; B、c: false; result:1;
C、c: true; result:1; D、c: false; result:2;
class Empty{ }
public class ObjectTest{
public static void main(String[ ] args) {
Empty em=new Empty( );
}
}
以下错误的结论是( B )。
A、类Empty非空,有一个默认的构造方法
B、类Empty是空的,既没有成员变量也没有成员方法
C、类Empty中有一个构造方法Empty()
D、类Empty能够被继承
public class A {
public static void main (String[ ] args) {
A a=new B( );
a.test( );
}
void test( ) {
System.out.print ("A"); }
}
class B extends A {
void test( ) {
super.test( );
System.out.println("B"); }
}
A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。
B、代码可以编译运行,并输出结果:AB
C、代码可以编译运行,并输出结果:A。
D、子类B定义了与父类A中同名的方法test,java中称为方法的重载
public class T1 {
public static void main (String[ ] args) {
T 1 a=new T1( );
a.method(8);
a.method(1.2f);
}
void method(float i) {
System.out.println("float: "+i);
}
void method(long i) {
System.out.println("long: "+i); }
}
A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。
B、程序可以编译运行,输出结果为:long: 8 float: 1.2
C、程序可以编译运行,输出结果为:float: 1.2 long: 8
D、程序中定义的两个参数不同的method方法称为方法重栽。
Person p;
Teacher t;
Student s;
p, t and s are all non-null.
If (t instanceof Person) {
s = (Student)t;
}
这个语句导致的结果是( B )
A、将构造一个Student对象。
B、表达式合法。
C、编译时非法。
D、编译时合法而在运行时可能非法。
public class abc
{
public static void main(String args [ ])
{
AB s = new AB("Hello!","I love JAVA.");
System.out.println(s.toString( ));
}
}
class AB {
String s1;
String s2;
public AB(String str1, String str2)
{
s1 = str1;
s2 = str2;
}
public String toString( )
{
return s1+s2;
}
}
写出程序的运行结果。
运行结果:Hello! I love JAVA.
public class abc
{
public static void main(String args[ ])
{ int i, s = 0 ;
int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };
for ( i = 0 ; i < a.length ; i ++ )
if ( a[i]%3 = = 0 ) s += a[i] ;
System.out.println("s="+s);
}
}
写出程序的运行结果。
运行结果:s = 180
int a[ ] = { 1, 2, 3, 4, 5 };
void out( ) {
for (int j = 0; j < a.length; j++)
System.out.print(a[j] + "");
}
public static void main(String[ ] args) {
MyClass my = new MyClass( );
my.out( );
}
}
写出程序的运行结果。
输出结果为12345。
public class TestString
{
public static void main(String args[ ])
{
StringC s = new StringC ("cool","java");
System.out.println(s); }
}
class StringC {
String s1;
String s2;
StringC( String str1 , String str2 )
{
s1 = str1; s2 = str2; }
public String toString( )
{
return s1+s2;}
}
写出程序的运行结果。
输出结果为 cooljava 。
public First()
{
aMethod(); }
public void aMethod()
{
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( ); }
}
写出程序的运行结果。
写出输出结果。inSecondclass
void testOverload( int i )
{
System.out.println(“int”); }
void testOverload(String s)
{
System.out.println(“String”); }
public static void main(String args[ ])
{
OverloadDemo a=new OverloadDemo ( );
char ch=’x’;
a.testOverload(ch); }
}
写出程序的运行结果。
int
public static void main(String args[ ]) {
float x,y;
x = Float.parseFloat(args[0]);
if(x<1)
y = x;
else if(1<=x&&x<10)
y = 2*x-1;
else
y = 3*x-11;
System.out.println(y); }
}
写出程序的运行结果。
10.0
{
void go( )
{ System.out.println("Aclass"); }
}
public class Bclass extends Aclass
{
void go( )
{
System.out.println("Bclass");
}
public static void main(String args[ ]) {
Aclass a=new Aclass( );
Aclass a1=new Bclass( );
a.go( );
a1.go( ); }
}
写出程序的运行结果。
Aclass
Bclass
class Dog {
private String name;
private int age;
public int step;
Dog(String s, int a) {
name = s;
age = a;
step = 0;
}
public void run(Dog fast) {
fast.step++; }
}
public static void main(String args[ ]) {
Test11 a = new Test11( );
Dog d = a.new Dog("Kate", 5);
d.step = 35;
d.run(d);
System.out.println(" " + d.step); }
}
写出程序的运行结果。
36
参考答案:String不是最基本的数据类型,而是一个对象。
Java基本类型有:
布尔型:boolean
字符型:char
整数型:byte、short、int、long
浮点数型:float、double
参考答案:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法
参考答案:error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
参考答案:
(1)不同对象的实例变量将分配不同的内存空间,实例变量则属性独有,改变某一个对象的值不影响其他对象;而所有对象的类变量占用同一块内存空间,类变量是所有对象共有的,改变其中一个对象的值,其他对象得到的就是改变后的结果。
(2)类变量在类被加载到内存是就为其分配内存空间,而实例变量在使用new创建对象时,才为其分配内存空间;
(3)类变量可以通过对象和类名访问,而实例变量只能通过对象访问。
(4)类变量通过static关键字修饰,实例变量不需要。
参考答案:
相同点:
都不能被实例化
都必须通过其他类实现才能使用
不同点:
抽象类是类,其中可包含变量及(抽象、非抽象)方法的定义
接口实质并不是类,其中只包含类常量及抽象方法的定义
参考答案:
抽象方法:
用abstract来修饰一个方法时,该方法叫抽象方法,只有方法声明,没有方法体。
特点:
抽象方法必须被重写
抽象方法只有声明,不能有实现
定义了抽象方法的类必须是抽象类
参考答案:
(1) 为对象分配内存空间,对域变量进行默认初始化。
(2) 绑定构造方法,将new对象中的参数传递给构造方法的形式参数。
(3) 调用this或者super,二者必居其一,不能同时存在。
(4) 进行域变量的显示初始化。
(5) 执行当前构造方法中的程序代码。
参考答案:
封装:利用类将数据与方法绑定在一起,数据被保存在类的内部,系统只有通过被授权的方法才能够访问数据。
继承:java是通过extends关键字来实现,在定义类的时候使用extends关键字指
明新定义类的父类,在两个类之间建立继承关系。
多态:多态是指一个程序中同名的不同方法共存的情况。
参考答案:
(1)Java把程序运算中可能遇到的错误分为两类:一类是非致命的错误,可以通过修正后还可以继续运行,这种错误称为异常;另外一类则是致命错误,即系统遇到了十分严重的错误,不能简单的恢复,这就是致命错误,需要操作系统才能处理。 (2)异常处理的程序的一般结构是:
try{…}
catch(异常类型 e)
{…}
catch(异常类型 e)
{…}
Finally
{…}
参考答案:
public class Program1 {
public static void main(String[] args){
int n=1;
while(true){
System.out.println("请输入你想查询的月数(第"+n+"次查询):");
Scanner in = new Scanner(System.in);
int month = in.nextInt();
if (month==0){
System.out.println("您已退出。");
break;}
System.out.println("第"+month+"个月兔子的对数为:"+f(month) +"。");
System.out.println();
n++;
}
}
private static int f(int month){
if (month==1||month==2){
return 1; }
return f(month-1)+f(month-2);
}
}
参考答案:
public class lianxi41 {
public static void main (String[] args) {
int i,m,j=0,k,count;
for(i=4;i<10000;i+=4)
{ count=0;
m=i;
for(k=0;k<5;k++)
{
j=i/4*5+1;
i=j;
if(j%4==0)
count++;
else break;
}
i=m;
if(count==4)
{System.out.println("原有桃子 "+j+" 个");
break;}
}
}
}
参考答案:
import java.util.*;
public class lianxi48 {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int num=0,temp;
do{
System.out.print("请输入一个4位正整数:");
num = s.nextInt();
}while (num<1000||num>9999);
int a[]=new int[4];
a[0] = num/1000; //取千位的数字
a[1] = (num/100)%10; //取百位的数字
a[2] = (num/10)%10; //取十位的数字
a[3] = num%10; //取个位的数字
for(int j=0;j<4;j++)
{
a[j]+=5;
a[j]%=10; }
for(int j=0;j<=1;j++)
{ temp = a[j];
a[j] = a[3-j];
a[3-j] =temp; }
System.out.print("加密后的数字为:");
for(int j=0;j<4;j++)
System.out.print(a[j]); }
}