本文部分内容来自“北京尚学堂,本文不做任何商业用途,禁止转载
测试题
第一章 JAVA入门
选择题
- (单选)以下(C)不是Java的特点
- 平台无关性
- 高可靠性和安全性
- 指针运算
- 分布式应用和多线程
- (单选)以下选项中是对一个Java源文件进行正确编译的语句是(D)
- java Test
- java Test.class
- javac Test
- javac Test.java
- (单选)在Java中,源文件Test.java中包含如下代码,则程序编译运行的结果是(B)
public class Test { public static void main(String[] args) { system.out.println("Hello!"); } }
- 输出:Hello!
- 编译出错,提示“无法解析system”
- 运行正常,但没有输出任何内容
- 运行时出现异常
- (单选)有一段Java 程序,其中public类名是A1,那么保存它的源文件名可以是(A)
- A1.java
- A1.class
- A1
- 都不对
- (选2项)以下选项中关于Java跨平台原理的说法正确的是(A,D)
- Java源程序要先编译成与平台无关的字节码文件(.class),然后字节码文件再被解释成机器码运行
- Java语言只需要编译,不需要进行解释
- Java虚拟机是运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的
- Java语言具有一次编译,到处运行的特点,可以在所有的平台上运行
第二章 数据类型与运算符
选择题
- (单选)下方代码中,执行之后a和b的值是(C)
int a = 1; int b = a++;
- 1,1
- 1,2
- 2,1
- 2,2
- (单选)下面的赋值语句中错误的是(A)
- float f = 11.1;
- double d = 5.3E12;
- double d = 3.14159;
- double d = 3.14D;
- (选2项)以下选项中属于合法的Java标识符的是(C,D)
- public
- 3num
- name
- _age
- (选2项)在Java中,下面(A,B)语句能正确通过编译
- System.out.println(1+1);
- char i =2+'2';System.out.println(i);
- String s="on"+'one';
- int b=255.0;
- (选2项)以下Java运算符中优先级别最低的两个选项是(A,C)
- 赋值运算符 =
- 条件运算符 ?=
- 逻辑运算符 |
- 算术运算符 +
编码题
- 输入圆形半径,求圆形的周长和圆形的面积,并将结果输出。
点击查看答案
import java.util.Scanner; //导入Scanner类,用于获取用户输入的内容 public class 第一节 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //使用Scanner类创建对象 System.out.println("请输入圆的半径:"); double r = scanner.nextDouble(); //输入圆的半径 System.out.println("该圆的半径为:" + r); System.out.println("该圆的周长为:" + r*2*3.14); //求圆的周长:半径*2*3.14 System.out.println("该圆的面积为:" + r*r*3.14); //求圆的面积:半径*半径*3.14 } }
- 银行利率表如下表,计算存款10000元,活期1年、活期2年,定期1年,定期2年后的本息合计金额。
利率项目 年利率(%) 活期存款 0.35 三个月定期存款 1.10 半年定期存款 1.30 一年定期存款 1.50 二年定期存款 2.10 点击查看答案
public class 第二节 { public static void main(String[] args) { System.out.println("本金:"+ "10000"); System.out.println("活期1年(本金总计):"+ ((10000*0.35/100)+10000)); //活期1年=(本金*年利率/100)+本金 System.out.println("定期1年(本金总计):"+ ((10000*1.50/100)+10000)); //定期1年=(本金*年利率/100)+本金 System.out.println("活期2年(本金总计):"+ (((10000*0.35/100)*2)+10000)); //活期2年=(本金*年利率/100)*2+本金 System.out.println("定期2年(本金总计):"+ ((10000*2.10/100)*2+10000)); //定期2年=(本金*年利率/100)*2+本金 } }
- 制作一个四位整数密码加密系统,加密规则:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,获得密文。
点击查看答案
import java.util.Scanner; public class 第三节 { public static void main(String[] args) { int password,num1,num2,num3,num4; Scanner scanner = new Scanner(System.in); System.out.println("请输入四位数字密码:"); password = scanner.nextInt(); num1 = (password/1000+5)%10; //(四位密码/1000+5)获得密码第一位加密后的数,取余 num2 = (password%1000/100+5)%10; //(四位密码%1000)获得后三位,除以100获得密码第二位数+5获得密码第二位加密后的数,取余 num3 = (password%100/10+5)%10; //(四位密码%100)获得后两位,除以10获得密码第三位数+5获得密码第三位加密后的数,取余 num4 = (password%10+5)%10; //(四位密码/10+5)获得密码末尾加密后的数,取余 System.out.println("加密密码:" + num4 + num3 +num2 + num1); } }
第三章 控制语句
选择题
- (单选)分析如下Java代码,编译运行的输出结果是(A)
public static void main(String[ ] args) { boolean a=true; boolean b=false; if (!(a&&b)) { System.out.print("!(a&&b)"); }else if (!(a||b)) { System.out.println("!(a||b)"); }else { System.out.println("ab"); } }
- !(a&&b)
- !(a||b)
- ab
- !(a||b)ab
- (单选)给定如下Java代码,编译运行的结果是(A)
public class Test { public static void main(String[] args) { int sum=0; for(int i=1;i<10;i++){ do{ i++; if(i%2!=0) sum+=i; }while(i<6); } System.out.println(sum); } }
- 8
- 15
- 24
- 什么也不输出
- (单选)以下关于方法调用的代码的执行结果是(B)
public class Test { public static void main(String args[]) { int i = 99; mb_operate(i); System.out.print(i + 100); } static void mb_operate(int i) { i += 100; } }
- 99
- 199
- 299
- 99100
- (选2项)下列选项中关于变量x的定义,(B,D)可使以下switch语句编译通过
switch(x) { case 100 : System.out.println("One hundred"); break; case 200 : System.out.println("Two hundred"); break; case 300 : System.out.println( "Three hundred"); break; default : System.out.println( "default"); }
- double x = 100;
- char x = 100;
- String x = "100";
- int x = 100;
- (选2项)以下选项中添加到代码中横线处会出现错误的是(B,D)
public class Test { public float aMethod(float a, float b) { return 0; } }
- public float aMethod(float a, float b, float c) {return 0;}
- public float aMethod(float c, float d) {return 0;}
- public int aMethod(int a, int b) {return 0;}
- private int aMethod(float a, float b) {return 0;}
编码题
- 用while循环分别计算100以内的奇数及偶数的和,并输出。
点击查看答案
public class test { public static void main(String[] args) { int a = 1; int sum = 0; //储存奇数的和 int sum2 = 0; //储存偶数的和 while(a<=100) { if(a%2==0) { //判断a%2==0,余0就是偶数 sum2 += a; //符合条件sum2 = sum2+a }else{ //否则,就是奇数 sum += a; //符合条件sum = sum+a } a++; //a自增,计数 } System.out.println("奇数和:" + sum); System.out.println("偶数和:" + sum2); } }
- 用for循环输出1-1000之间能被5整除的数,且每行输出5个。
点击查看答案
public class test { public static void main(String[] args) { for(int a=1, b=0; a<=1000; a++) { if(a%5==0) { //判断a%5==0,余0就是能被5整除的数 System.out.print(a + "\t"); b++; //b用于计次数,自增 } if(b==5) { //判断b是否达到5次,达到执行if内语句 System.out.println(); //输出空行,达到“每行输出5个”目标 b = 0; //b归零,重新计数 } } } }
- 从键盘输入某个十进制整数数,转换成对应的二进制整数并输出
点击查看答案
import java.util.Scanner; public class test { public static void main(String args[]){ Scanner sc = new Scanner(System.in); System.out.println("请输入一个十进制整数"); int ten = sc.nextInt(); //输入的十进制整数 for(int a=10; a >= 0; a--) { //决定位数 System.out.print(ten >>> a&1); //利用位移 } } }
- 编程求:∑1+∑2+……+∑100
点击查看答案
public class test { public static void main(String args[]){ int sum = 0; for(int a=1; a<=100; a++) { for(int b=1; b<=a; b++) { sum += b; } } System.out.println(sum); } }
- 编写递归算法程序:一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求数列的第40位数
点击查看答案
import java.util.Scanner; public class test { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入需要查找的第几位数:"); int n = input.nextInt(); System.out.println("第" + n + "数是:" + findRegular(n)); } static int findRegular(int n) { if (n <= 2) {//前两个数为1 return 1;// 递归头 } else {//f(n)=f(n-1)+f(n-2) n = findRegular(n - 1) + findRegular(n - 2);// 递归体 } return n; } }
第四章 面向对象
选择题
- (单选)以下语句中关于Java构造方法的说法错误的是(B)
- 构造方法的作用是为创建对象进行初始化工作,比如给成员变量赋值
- 一个Java类可以没有构造方法,也可以提供1个或多个构造方法
- 构造方法与类同名,不能书写返回值类型
- 构造方法的第一条语句如果是super(),则可以省略,该语句作用是调用父类无参数的构造方法
- (单选)在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); } }
- 6
- 34
- 8
- 7
- (单选)分析如下Java程序的代码所示,则编译运行后的输出结果是(C)
public class Test { int count=9; public void count1(){ count=10; System.out.print("count1="+count); } public void count2(){ System.out.print("count2="+count); } public static void main(String[ ] args) { Test t=new Test(); t.count1(); t.count2(); } }
- count1=9; count2=9;
- count1=10;count2=9;
- count1=10; count2=10;
- count1=9; count2=10;
- (单选)使用权限修饰符(B)修饰的类的成员变量和成员方法,可以被当前包中所有类访问,也可以被它的子类(同一个包以及不同包中的子类)访问
- public
- protected
- defalut
- private
- (单选)以下关于继承条件下构造方法执行过程的代码的执行结果是(A)
class Person { public Person() { System.out.println("execute Person()"); } } class Student extends Person { public Student() { System.out.println("execute Student() "); } } class PostGraduate extends Student { public PostGraduate() { System.out.println("execute PostGraduate()"); } } public class TestInherit { public static void main(String[] args) { new PostGraduate(); } }
- execute Person()execute Student()execute PostGraduate()
- execute PostGraduate()
- execute PostGraduate()execute Student()execute Person()
- 没有结果输出
- (单选)编译运行如下Java代码,输出结果是(D)
class Base { public void method(){ System.out.print ("Base method"); } } class Child extends Base{ public void methodB(){ System.out.print ("Child methodB"); } } class Sample { public static void main(String[] args) { Base base= new Child(); base.methodB(); } }
- Base method
- Child methodB
- hild methodB
- 编译错误
- (选2项)在Java中关于静态方法,以下说法中正确的是(A,C)
- 静态方法中不能直接调用非静态方法
- 非静态方法中不能直接调用静态方法
- 静态方法可以用类名直接调用
- 静态方法里可以使用this
- (选2项)下列选项中关于Java中类方法的说法错误的是(A,C)
- 在类方法中可用this来调用本类的类方法
- 在类方法中调用本类的类方法时可直接调用
- 在类方法中只能调用本类中的类方法
- 在类方法中调用实例方法需要先创建对象
- (选2项)在Java中关于abstract关键字,以下说法正确的是(A,B)
- abstract类中可以没有抽象方法
- abstract类的子类也可以是抽象类
- abstract方法可以有方法体
- abstract类可以创建对象
- (选2项)在Java接口中,下列选项中属于有效的方法声明是(A,C)
- public void aMethod( );
- final void aMethod( );
- void aMethod();
- private void aMethod( );
编码题
- 编写Java程序,用于显示人的姓名和年龄。定义一个类Person,该类中应该有两个私有属性: 姓名(name)和年龄(age),定义构造方法用来初始化数据成员。再定义显示 display() 方法将姓名和年龄打印出来,在 main 方法中创建人类的实例然后将信息显示。
点击查看答案
public class 第一节 { public static void main(String[] args) { Person p = new Person(21,"黄泽雨"); p.display(); } } class Person{ private int age; private String name; public Person(int age, String name) { this.age = age; this.name = name; } public void display() { System.out.println("姓名:" + name + "\r\n" + "年龄:"+age); } }
- 定义一个圆类Circle,在类的内部提供一个属性:半径(r),同时提供两个方法:计算面积( getArea())和计算周长(getPerimeter())。通过两个方法计算圆的周长和面积并且对计算结果进行输出。最后定义一个测试类对Circle类进行使用。
点击查看答案
public class 第二节 { public static void main(String[] args) { Circle c = new Circle(); c.getArea(); c.getPerimeter(); } } class Circle{ private double r = 10; public void getArea() { System.out.println("圆的面积=" + (Math.PI*r*r)); } public void getPerimeter() { System.out.println("圆的面积=" + (2*Math.PI*r)); } }
- 构造方法与重载:定义一个网络用户类,信息有用户ID、用户密码、email 地址。在建立类的实例时把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须缺省时email地址是用户 ID加上字符串“@gameschool.com”。
点击查看答案
public class 第三节 { public static void main(String[] args) { WebUser user = new WebUser("hzy",1234); user.login(); } } class WebUser{ private String id,email; private int pwd; public WebUser(String id,int pwd) { this.id = id; this.email = id+"@gameschool.com"; this. pwd = pwd; } public void login(){ System.out.println("您的ID:"+id +"\r\n"+ "您的密码:"+pwd +"\r\n"+ "邮箱:"+email); } }
- 编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。实现思路及关键代码:
- 编写一个圆类Circle,该类拥有1个成员变量radius(私有,浮点型,用来存放圆的半径);2个构造方法(无参、有参);3个成员方法double getArea()(圆的面积)、double getPerimeter()(圆的周长)、void show()(输出圆的半径、周长、面积)
- 编写一个圆柱体类Cylinder,它继承于上面的Circle类,该类拥有1个成员变量double hight(私有,浮点型、圆柱体的高)、1个构造方法、2个成员方法double getVolume()(获取圆柱体的体积)、void showVolume()(将圆柱体的体积输出到屏幕)
点击查看答案
public class 第四节 { public static void main(String[] args) { Cylinder c = new Cylinder(10,5); //直接调用子类对象,同时调用父类对象 c.Show(); c.showVolume(); } } class Circle2{ private double radius; public Circle2(double radius){ this.radius = radius; } public double getArea() { // 获取圆的面积 double area = radius*radius*Math.PI; return area; } public double getPerimeter() { //获取圆的周长 double perimeter = 2*Math.PI*radius; return perimeter; } public void Show() { System.out.println("圆的半径:"+radius +"\r\n"+ "圆的面积:"+getArea() +"\r\n"+ "圆的周长:"+getPerimeter()); } } class Cylinder extends Circle2{ private double hight; public Cylinder(double radius,double hight) { super(radius); this.hight = hight; } public double getVolume() { //获取圆柱体的体积 double volume = getArea()*hight; return volume; } public void showVolume() { System.out.println("圆柱体面积:"+getVolume()); } }
- 编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。可以弹奏的乐器包括二胡、钢琴和琵琶。实现思路及关键代码:
- 定义乐器类Instrument,包括方法makeSound();
- 定义乐器类的子类:二胡Erhu、钢琴Piano、小提琴Violin;
- 定义乐手类Musician,可以弹奏各种乐器play(Instrument i);
- 定义测试类,给乐手不同的乐器让他弹奏。
点击查看答案
public class 第五节 { public static void main(String[] args) { Erhu e = new Erhu(); Piano p = new Piano(); Violin v = new Violin(); Musician m = new Musician(); m.play(e); m.play(p); m.play(v); } } abstract class Instrument{ String sound; abstract public String makeSound(); } class Erhu extends Instrument{ String sound = "二胡声"; public String makeSound(){ return sound; } } class Piano extends Instrument{ String sound = "钢琴声"; public String makeSound(){ return sound; } } class Violin extends Instrument{ String sound = "小提琴声"; public String makeSound(){ return sound; } } class Musician{ public void play(Instrument i) { System.out.println(i.makeSound()); } }
- 编写程序描述影视歌三栖艺人。需求说明:请使用面向对象的思想,设计自定义类,描述影视歌三梄艺人。实现思路及关键代码:
- 分析影视歌三栖艺人的特性:可以演电影,可以演电视剧,可以唱歌
- 定义多个接口描述特性,Movie接口(方法ActMovie)、Teleplay(方法ActTeleplay)、Singer接口(方法sing)
- 定义艺人类实现多个接口
点击查看答案
// 输出结果 大家好,我是周杰伦 我能演电影 我能演电视剧 我会唱歌
public class 第六节 { public static void main(String[] args) { Artist a = new Artist("周杰伦"); a.ArtistName(); a.ActMovie(); a.ActTeleplay(); a.Sing(); } } interface Movie{ void ActMovie(); } interface Teleplay{ void ActTeleplay(); } interface Singer{ void Sing(); } class Artist implements Movie,Teleplay,Singer{ String name; public Artist(String name) { this.name = name; } public void ArtistName() { System.out.println("大家好,我是"+name); } @Override public void ActMovie() { System.out.println("我能演电影"); } @Override public void ActTeleplay() { System.out.println("我能演电视剧"); } @Override public void Sing() { System.out.println("我会唱歌"); } }
© 版权声明
文章版权归作者所有,未经允许请勿转载。