java基础知识

更新时间:2024-04-25 20:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、 单项选择题

1. 下列正确的Java的标识符是:( A )。

A. username B. %passwd C. 3d_game D. class 2. 分析下面的程序段,程序的运行结果是: ( D ) public class Example{

public static void main(String args[] ){ int l=0; do{

System.out.println(“Doing it for l is:”+l); }while(--l>0); } }

A. Doing it for l is 3 B. Doing it for l is 1 C. Doing it for l is 2 D. Doing it for l is 0 3. 类的实例方法所表示的是( C )。

A. 那个类的属性 B. 那个类的行为 C.从那个类创建的对象的行为 D都不对 4. main方法是Java Application程序执行的入口点,合法的定义是( B )。

A.public static void main( )

B.public static void main( String args[] ) C.public static int main(String [] arg ) D.public void main(String arg[] )

5. 设int x;下面哪条命令检验x的值是否等于100? ( B )

A.x.equals(100) B.x==100 C.x=100 D.以上所可以

6. 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀即:AB.method( )就可以调用它,该方法头的形式为( A )。

A.static void method( ) B.public void method( )

C.final void method( ) D.abstract void method( ) 7. 设有下面两个类的定义:

class Person { class Student extends Person { long id; // 身份证号 int score; // 入学总分 String name; // 姓名 int getScore(){

} return score;} } 问:类Person和类Student的关系是( C )。

A. 包含关系 B. 关联关系

C. 继承关系 D. 无关系,上述类定义有语法错误 8. 在Java中,执行下面的语句后,c的值为( D )。 String s= \

char c=s.charAt(6);

A. \ B. \ C. 'c ' D. ’a ' 9. 下面哪个是java语言中的关键字?( B )

A. sizeof B.abstract C. NULL D. Native 10. 设int a=3.b=5,分析表达式a++-(--b)的值( A )

A. -1

B. 0

C. 1 D. 都不对

11. 设int x=4,int y=5,int z=6,boolean f=true 逻辑表达式x+y>z&&y==x和f||y+zy的值是( B )

A.false fales B. false true C. true false D. true true 12. 若a的值为3时,下列程序段被执行后,c的值是多少?( C ) c = 1;

if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4; A. 1 B. 2 C. 3 D. 4 13. 执行下列代码后, String[] s=new String[10]; 哪个结论是正确的( B )

A. s[10]为\B. s[9]为 null; C. s[0]为未定义 D. s.length 为11 14. 在Java类中,使用以下( D )声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100;

C. public static int MAX = 100; D. public static final int MAX = 100; 15. 给定Java代码如下所示,在横线处新增下列( A C )方法,是对cal方法的重载。

public class Test{

public void cal(int x, int y, int z) {}

}

A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ }

D. public void cal(int z, int y, int x){ }

16. 在Java中,下面对于构造函数的描述正确的是( D )。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void

C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 17. 下面Java代码的运行结果是( C )。

class Penguin { private String name=null; // 名字 private int health=0; // 健康值 private String sex=null; // 性别 public void Penguin() { health = 10; sex = \雄\ System.out.println(\执行构造方法。\ } public void print() { System.out.println(\企鹅的名字是\,健康值是\,性别是\\。\ } public static void main(String[] args) { Penguin pgn = new Penguin(); pgn.print(); } }

A. 企鹅的名字是null,健康值是10,性别是雄。 B. 执行构造方法。

企鹅的名字是null,健康值是0,性别是null。 C. 企鹅的名字是null,健康值是0,性别是null。 D. 执行构造方法。

企鹅的名字是null,健康值是10,性别是雄。 18. 下列选项中关于Java中封装的说法错误的是( D )。 A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括setter方法和getter方法 C. setter方法用于赋值、getter方法用于取值 D. 类的属性必须进行封装,否则无法通过编译

19. 使用Java实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是( C )。 A. 使用赋值和取值方法访问属性 B. 编写常规方法访问属性

C. 在赋值和取值方法中,加入对属性的存取限制

D. 编写main方法创建对象,调用赋值和取值方法访问属性

20. 分析如下所示的Java代码,其中this关键字的意思是( B )。

public class Test { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; //this关键字所在的行 } }

A. name属性 B. Test类的内部指代自身的引用

C. 指所在的方法 D. Test类的对象引用Test类的其他对象21. 在Java中,以下程序编译运行后的输出结果为( D )。

public class Test { int x, y;

Test(int x, int y) { this.x = x; this.y = y; }

public static void main(String[] args) { Test pt1, pt2;

pt1 = new Test(3, 3); pt2 = new Test(4, 4);

System.out.print(pt1.x + pt2.x); } }

A. 6 B. 3 4 C. 8 D. 7

22. 给定一个Java程序Test.java的代码如下所示,编译时,会出现以下( A class Parent { public int count() { // 第1行 return 0; } }

public class Test extends Parent { private int i; public int count() { // 第2行 return i % 9; // 第3行 } }

A. 编译通过 B. 在第1行引发编译错误 C. 在第2行引发编译错误 D. 在第3行引发编译错误

)情况。23. 给定如下一个Java源文件Child.java,编译并运行Child.java,以下结果正确的是(B )。

class Parent1 {

Parent1(String s){

System.out.println(s); } }

class Parent2 extends Parent1{ Parent2(){

System.out.println(\ } }

public class Child extends Parent2 {

public static void main(String[] args) { Child child = new Child(); } }

A. 编译错误:没有找到构造器Child() B. 编译错误:没有找到构造器Parent1() C. 正确运行,没有输出值

D. 正确运行,输出结果为:parent2

24. 给定Java程序Child.java的代码如下所示,则编译运行该类的结果是(class Parent { Parent() {

System.out.println(\ } }

public class Child extends Parent { Child(String s) {

System.out.println(s); }

public static void main(String[] args) { Child child = new Child(\ } }

A. 输出:child B. 输出:child parent

C. 输出:parent child D. 编译错误

25. 分析如下所示的Java代码,则选项中的说法正确的是( C )。

class Parent{ public String name; public Parent(String pName){ this.name = pName; } }

public class Test extends Parent { //1 public Test(String Name){ //2 name=\ super(\ } }

)。

C A. 第2行错误,Test类的构造函数中参数名称应与其父类构造函数中的参数名相同 B. 第3行错误,应使用super关键字调用父类的name属性,改为super.name=\ C. 第4行错误,调用父类构造方法的语句必须放在子类构造方法中的第一行 D. 程序编译通过,无错误

26. 以下关于Object类说法错误的是( B )。

A. 一切类都直接或间接继承自Object类 B. 接口亦继承Object类

C. Object类中定义了toString()方法 D. Object类在java.lang包中) 27. 在Java中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面除了( B )。 A. 子类重写父类的方法 B. 子类重载同一个方法

C. 定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参 数传入方法

D. 运行时,根据实际创建的对象类型动态决定使用哪个方法 28. 给定Java代码如下所示,则编译运行后,输出结果是( C )。

class Parent {

public void count() {

System.out.println(10%3); } }

public class Child extends Parent{ public void count() {

System.out.println(10/3); }

public static void main(String args[]) { Parent p = new Child(); p.count(); } }

A. 1 B. 1.0 C. 3 D. 3.3333333333333335 29. 分析如下Java代码,如果在控制台上输出“B类的test()方法”,则在横线处应填入(D )。

class A {

public void test() {

System.out.println(\类的test()方法\ } }

class B extends A {

public void test() {

System.out.println(\类的test()方法\ }

public static void main(String args[]) { } }

A. A a = new B(); B. A a = new A(); a.test(); a.test();

C. B b = new A(); D. B b = new B(); b.test(); b.test(); 30. 编译运行如下Java代码,输出结果是( )。

class Base { public void method(){ System.out.print (\

} }

class Child extends Base{ public void methodB(){ System.out.print (\ } }

class Sample { public static void main(String[] args) { Base base= new Child(); base.methodB(); } }

A. Base method B. Child methodB C. Base method Child MethodB D. 编译错误 31. 在Java接口中定义常量,下面语法错误的是( D )。

A. static int MALE = 1; B. final int MALE = 1; C. int MALE = 1; D. private int MALE = 1; 32. 在Java接口中,下列选项中属于有效的方法声明是( AB )。 A. public void aMethod(); B. void aMethod();

C. void aMethod(){} D. private void aMethod();

33. 给定如下Java程序代码,在横线处加入( AB )语句,可以使这段代码编译通过。

interface Parent{

public int count(int i); }

public class Test implements Parent { public int count(int i){ return i % 9; }

public static void main(String[] args){ ________________

int i = p.count(20); } }

A. Test p = new Test(); B. Parent p = new Test(); C. Parent p = new Parent(); D. Test p = new Parent(); 34. 给定如下Java代码,其中第( D )行代码有错误。

import java.util.*; public class MapTest { public static void main(String[] args) { List pList = new ArrayList(); pList.add(\第五行 pList.add(\第六行 for (int i = 0; i < pList.size(); i++) { //第七行 String str = pList.get(i); //第八行 System.out.print(str); } } }

A. 五 B. 六 C. 七 D. 八 35. 给定如下Java代码,可以填入横线处的代码是( D )。

import java.util.*; public class Test { public static void main(String[] args) { ________

}

}

list.addLast(\

A. List list = new ArrayList(); B. List list = new List();

C. ArrayList list = new ArrayList(); D. LinkedList list = new LinkedList(); 36. 在Java中,( A )类的对象可被用作堆栈或者队列。

A. LinkedList B. ArrayList C. Collection 37. 阅读下面的Java代码,运行结果描述正确的是( C )。

import java.util.*; public class TestMap{

public statci void main(String[] args){ Map map=new HashMap( ); map.put(“first”,”football”); map.put(“first”,”basketball”); System.out.print(map.get(“first”)); } }

D. HashMap

A. 编译时发生错误 B. 编译通过,运行时发生错误 C. 正确运行,显示basketball D. 正确运行,显示football

38. 给定如下Java代码,实现文件复制功能,其中第( C )行代码有错误。

public class TestIO { public static void main(String[] args) throws Exception { Reader fr = new FileReader(\第三行 Writer fw = new FileWriter(\ char ch[] = new char[1024]; int length = fr.read(ch);//第六行 while (length != -1) { fw.write(ch); //第八行 length = fr.read(ch); } if (null != fr) fr.close(); //第十三行 if (null != fw) fw.close(); } }

A. 三 B. 六 C. 八 D. 十三

二、判断题(错的必须说明理由,否则不得分)

1. 使用package语句可以创建包,创建包的语句应该放在程序的第一句。 ( ) 2. 如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。( ) 3. 程序可以用字符‘*’替代TextField中的每个字符的显示,使不显示具体内容。( ) 4. 一个Java Application程序中可以有一个或多个类,但有且只能有一个包含main方法的主类。( )

5. 有的类定义时可以不定义构造函数,所以构造函数不是必须的。( ) 6. 使用方法length( )可以获得字符串或数组的长度。( )

7. Java是一种计算机语言,只能用来编写嵌入在web网页中运行的Java小程序。( ) 8. 所有的组件都具有三个特性,即属性、方法、事件。( ) 9. 如果程序运行到try块中的某个语句产生了异常,则流程将跳过try块后面的语句,直

接进入try块后面的catch块;如果try块中没有语句产生异常,则在执行完try块中的全部语句后,再进入try块后面的catch块。( ) 10. 判断下面语句组的正确性。( )

int array[]=new int[10]; array[10]=10;

11. Class1类的属性被private修饰符修饰为私有变量,所以方法不能访问它。( ) 12. 当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。( )

13. 使用BorderLayout的容器最多只能放置5个组件,如果要放置更多的组件,则需要使用多层容器( )

14. 一个Java Application程序中可以有一个或多个类,但有且只能有一个包含main方法的主类。( )

15. 所有的鼠标事件都由实现了MouseListener监听接口的监听者来外理。( ) 16. Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err( )

17. 使用方法length( )可以获得字符串或数组的长度。( )

18. Java是一种计算机语言,只能用来编写嵌入在web网页中运行的Java小程序。( ) 19. 如果程序运行到try块中的某个语句产生了异常,则流程将跳过try块后面的语句,直接进入try块后面的catch块;如果try块中没有语句产生异常,则在执行完try块中的全部语句后,再进入try块后面的catch块。( )

20. 文件读写时可能产生输入输出异常,所以需要把完成这些操作的语句放在try-catch结构中。( )

三、填空题

1. JAVA源程序的文件名要求和类名要 。 2. Java程序严格区分 。 3. 方法是JAVA程序的入口。

4. '\\n '的作用是 , '\\t '的作用是 。 5. java中使用关键字 __ ____来定义字符串变量。 6. java中int型变量的取值范围是_____________。

7. 用_____ ______修饰的成员变量和方法被称为私有变量和私有方法。 8. 在同一个类中,同名的不同方法共存的情况称为 。

9. 声明并创建一个数组X包含1.3.5.7四个元素: 。 10. 面向对象三大特征是: 、 、 。 11. java中实现逻辑与的逻辑运算符是___________。 12. java中的赋值运算符是_________。

13. 我们可以使用______ ______语句来引入所需要的类。 14. java中数组的下标是从_______开始的。

15. 使用String类中的length()方法可以获得______ ___________________。

16. 一个Java Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令: 、 。 17. Java的源程序文件的扩展名为 ;Java 的字节码文件的扩展名为 。 18. 设x = 2 ,则表达式 ( x + + ) * 3 的值是 。

四、简答题

1. 如何声明变量、给变量赋值和使用变量?

答:

2. Java中常用的数据类型有哪些?

答:

3. 简述面向对象和基于对象的区别。

答:

4. 算术运算符中“/”和“%”的区别是什么?

答:

5. 数组有哪些特点?

答:

6. 使用数组的四个步骤?

答:

7. 如何实现数组的排序?

答:

8. 什么是类?什么是对象?

答:

9. 如何创建类的对象?

答:

10. Collection、List、Set、Map接口的联系和区别有哪些?

答:

11. ArrayList和LinkedList有什么异同之处?

答:

12. 有哪些遍历集合的方法?

答:

13. 为什么要引入泛型集合?

答:

14. 关键字this和关键字super的特殊作用。

答:

15. 请叙述java中方法重载的含义。

答:

五、编程题

要求:代码规范,有注释,能正确运行出结果,具体评分规则: (1)有标准类名,1分。 (2)定义合适变量,1分 (3)使用main方法,1分。 (4)有关键代码注释,1分。 (5)功能代码,5分 (6)标点符号规范,1分

1. 从控制台输入两个整数数,输出两个数加、减、乘、除、取余的结果。

2. 编写程序,输出斐波那契数列的前10个数。运行结果如图1所示。 提示:斐波那契数列数字排列规律为:1,1,2,3,5,8,13,21??

图1 斐波那契数列运行结果

3. 从控制台输入任意4位整数,输出该数字的各位数字之和。

4. 实现幸运抽奖

抽奖规则:输入一个2位整数,如果等于产生的随机数字即为幸运中奖。

5. 打印倒直角三角形

要求从控制台输入直角三角形的高度,每行“+”符号的数目从下至上依次为1、2、3、4?

6.编写一个程序,由系统随机产生或由用户输入范围在0和255之间的三个整数,把三个整数分别作为R.G.B三种配色的分量配成一个前景色,然后使用该颜色输出彩色字符串“这是彩色的世界”。

5. 打印倒直角三角形

要求从控制台输入直角三角形的高度,每行“+”符号的数目从下至上依次为1、2、3、4?

6.编写一个程序,由系统随机产生或由用户输入范围在0和255之间的三个整数,把三个整数分别作为R.G.B三种配色的分量配成一个前景色,然后使用该颜色输出彩色字符串“这是彩色的世界”。

本文来源:https://www.bwwdw.com/article/qq6p.html

Top