Java基础期末试水练习题

    科技2024-10-15  20

    文章导航

    `Java期末考`复习脑图选择题编程基础题

    个人同名博文地址: https://dhbxs.club/posts/45c3582a.html

    Java期末考

    复习脑图

    选择题


    以下哪个不是Java的原始数据类型( B ) A、int B、Boolean C、float D、char

    若需要定义一个类域或类方法,应使用哪种修饰符?( A ) A、static B、package C、private D、public

    给出下面代码,关于该程序以下哪个说法是正确的?( C )

    public class Person{ static int arr[] = new int[5]; public static void main(String a[]){ System.out.println(arr[0]);  } }

    A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空

    以下哪个关键字可以用来对对象加互斥锁?( B ) A、transient B、synchronized C、 serialize D、static

    以下代码段执行后的输出结果为( A )

    int x =3int y =10; System.out.println(y%x);

    A、 -1 B、2 C、1 D、3

    有以下程序片段,下列哪个选项不能插入到行1。( D )

    public class Interesting{ //do sth }

    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都是整数类型变量并且值相等。

    类Parent、Child定义如下:

    public class Parent { public float aFun(float a, float b) throws IOException { } } public class Child extends Parent{ }

    将以下哪种方法插入行6是不合法的。( A ) A、float aFun(float a, float b){ } B、public int aFun(int a, int b)throws Exception{ } C、public float aFun(float p, float q){ } D、public int aFun(int a, int b)throws IOException{ }

    在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。 A、private B、protected C、private protected D、public

    有以下方法的定义,请选择该方法的返回类型( D )。

    ReturnType method(byte x, double y){ return (short) x/y*2; }

    A、byte B、short C、int D、double

    关于以下代码段的说法正确的是( D )

    String s="abcde"; StringBuffer s1=new StringBuffer("abcde"); if(s.equals(s1)) s1=null; if(s1.equals(s)) s=null;

    A、第1行编译错误,String的构造器必须明确调用 B、第3行编译错误,因为s与s1有不同的类型 C、编译成功,但执行时在第5行有异常抛出 D、编译成功,过程中也没有异常抛出

    下列程序段执行后的结果是( A )。

    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) ab

    有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( A ). A) 2 7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 35 2

    下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( C )。

    File f = new File(填代码处); file =new FileReader(f); in=new BufferedReader(file);

    A) “/1.txt” B) “…/my/1.txt” C) “c:\\my\\1.txt” D) “c:\ my\1.txt”

    应用程序的main方法中有以下语句,则输出的结果是 ( A )。

    String s1=new String("abc"); String s2=new String("abc"); boolean b1=s1.equals(s2); boolean b2=(s1==s2); System.out.print(b1+" "+b2);

    A)true false B) false true C) true true D)false false

    应用程序的main方法中有以下语句,则输出的结果是 ( B )。

    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

    下面程序段执行后b的值是( B )。

    Integer integ =new Integer(9)boolean b = integ instanceof Object;

    A) 9 B) true C) 1 D) false

    应用程序Test.java的源程序如下,在命令行键入: java Test aaa bb c 回车后输出的结果是 ( D )。

    public class Test { public static void main(String args[]) { int k1=args.length; int k2=args[1].length(); System.out.print(k1+" "+k2); } }

    A) 3 2 B)1 2 C) 1 3 D) 3 3

    应用程序的main方法中有以下语句,则输出的结果是 ( )。

    int b[][]={{1}, {2,2}, {2,2,2}}; int sum=0; for(int i=0;i<b.length;i++) { for(int j=0;j<b[i].length;j++) { sum*=b[i][j]; } } System.out.println("sum=" + sum);

    A) 32 B)11 C) 2 D) 3 执行结果是0

    应用程序的main方法中有以下语句,则执行后输出的结果是 ( 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

    程序Test.java编译运行后输出的结果是( A )。

    public class Test { String s1="java"; public static void main(String args[]) { int z=2; Test t=new Test(); System.out.println(t.s1+z); } }

    A) java2 B)2 C)没有输出结果 D)java

    应用程序的main方法中有以下语句,则输出的结果是 ( A )。

    String s1="0.5", s2="12"; double x=Double.parseDouble(s1); int y=Integer.parseInt(s2); System.out.println(x+y);

    A) 12.5 B) 120.5 C) 12 D) “12.5”

    以下哪个方法用于定义线程的执行体? ( C ) A、 start() B、init() C、run() D、synchronized()

    有如下代码段:

    { if(unsafe()){//do something...} else if(safe()){//do the other...} }

    其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( D ) A、public IOException methodName() B、public void methodName() C、public void methodName() throw IOException D、public void methodName() throws IOException

    编译并运行以下程序,以下描述哪个选项是正确的( D )

    class A{ protected boolean equals(){ return super.equals();} }

    A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错

    有语句String s=“hello world”; ,以下操作哪个是不合法的?( B ) A、int i=s.length(); B、s>>>=3; C、String ts=s.trim(); D、String t=s+"!";

    给出如下代码:

    class Test{   private int m;   public static void fun() {      // some code\...\    } }

    如何使成员变量m 被函数fun()直接访问?( C ) 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

    Java application中的主类需包含main方法,main方法的返回类型是什么?( void )

    设有下面两个赋值语句:

    a = Integer.parseInt("123"); b = Integer.valueOf("123").intValue();

    下述说法正确的是( D )。 A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。 C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。

    关于以下application的说明,正确的是( C )。

    class StaticStuff{ static int x; static { x+=5} public static void main(String args[ ]{ System.out.println("x=" + x); } static { x/=5;} }

    A、4行与9行不能通过编译,因为缺少方法名和返回类型 B、9行不能通过编译,因为只能有一个静态初始化器 C、编译通过,执行结果为:x=1 D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化

    有程序片段如下,以下哪个表示式的结果为true?( B )

    Float s=new Float(0.1f); Float t=new Float(0.1f); Double u=new Double(0.1);

    A、s==tB、s.equals(t) C、u.equals(s) D、t.equals(u)

    编程基础题


    编写一个Java程序在屏幕上输出"你好!"。

    package exam; /** * @ClassName Exam1 * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 1:22 * @Version 1.0 **/ public class Exam1 { public static void main(String[] args) { System.out.println("你好!"); } }

    编写一个Java程序,用if-else语句判断某年份是否为闰年。

    package exam; import java.util.Scanner; /** * @ClassName exam2 * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 1:32 * @Version 1.0 **/ public class Exam2 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入年份:"); int year = in.nextInt(); if (year % 4 == 0 && year % 100 != 0){ System.out.println(year + "是闰年"); }else if (year % 400 == 0){ System.out.println(year + "是闰年"); }else{ System.out.println(year + "不是闰年"); } } }

    编写一个Java程序在屏幕上输出1!+2!+3!+…+10!的和。(p64,例2-2)

    package exam; /** * @ClassName Exam3 * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 1:42 * @Version 1.0 **/ public class Exam3 { public static int factorial(int n){ int multiply = 1; for (int i = n; i > 0; i--){ multiply *= i; } return multiply; } public static void main(String[] args) { int sum = 0; for (int i = 10; i > 0; i--){ sum += factorial(i); } System.out.println(sum); } }

    定义一个表示学生信息的类Student,要求如下:

    (1)类Student的成员变量: ​ sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。 (2)类Student带参数的构造方法: ​ 在构造方法中通过形参完成对成员变量的赋值操作。 (3)类Student的方法成员: ​ getNo():获得学号; ​ getName():获得姓名; ​ getSex():获得性别; ​ getAge()获得年龄; ​ getJava():获得Java 课程成绩 ​ 根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。

    package exam4; /** * @ClassName Student * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 2:01 * @Version 1.0 **/ public class Student { private String sNo; private String sName; private String sSex; private int sAge; private int sJava; public String getsNo() { return sNo; } public void setsNo(String sNo) { this.sNo = sNo; } public String getsName() { return sName; } public void setsName(String sName) { this.sName = sName; } public String getsSex() { return sSex; } public void setsSex(String sSex) { this.sSex = sSex; } public int getsAge() { return sAge; } public void setsAge(int sAge) { this.sAge = sAge; } public int getsJava() { return sJava; } public void setsJava(int sJava) { this.sJava = sJava; } public void setAll(String sNo, String sName, String sSex, int sAge, int sJava) { setsNo(sNo); setsName(sName); setsSex(sSex); setsAge(sAge); setsJava(sJava); } @Override public String toString() { return "{" + "学号'" + sNo + '\'' + ", 姓名'" + sName + '\'' + ", 性别'" + sSex + '\'' + ", 年龄" + sAge + ", Java成绩" + sJava + '}'; } public static int[] bubbleSort(int[] array) { if (array.length == 0) { return array; } for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - 1 - i; j++) { if (array[j + 1] < array[j]) { int temp = array[j + 1]; array[j + 1] = array[j]; array[j] = temp; } } } return array; } public static void main(String[] args) { Student s1 = new Student(); Student s2 = new Student(); Student s3 = new Student(); Student s4 = new Student(); Student s5 = new Student(); s1.setAll("001", "甲", "男", 18, 100); s2.setAll("002", "乙", "女", 19, 99); s3.setAll("003", "丙", "男", 18, 98); s4.setAll("004", "丁", "女", 19, 99); s5.setAll("005", "戊", "男", 18, 100); System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(s4); System.out.println(s5); double total = 5.0; double avg = (s1.getsJava() + s2.getsJava() + s3.getsJava() + s4.getsJava() + s5.getsJava()) / total; System.out.printf("平均成绩: %.2f\n", avg); int[] score = {s1.getsJava(), s2.getsJava(), s3.getsJava(), s4.getsJava(), s5.getsJava()}; int[] sortScore = bubbleSort(score);; System.out.println("Java最高成绩:" + sortScore[sortScore.length - 1] + " Java最低成绩:" + sortScore[0]); } }

    题目:判断101-200之间有多少个素数,并输出所有素数。

    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。

    package exam; /** * @ClassName Exam5 * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 2:43 * @Version 1.0 **/ public class Exam5 { public static void main(String[] args) { boolean isPrime = true; int total = 0; for (int i = 101; i <= 200; i++){ double temp = Math.sqrt(i); for (int j = 2; j < temp; j++){ if (i % j == 0){ isPrime = false; break; } } if (isPrime){ System.out.println(i); total++; } isPrime = true; } System.out.println("共有素数" + total + "个"); } }

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

    package exam; /** * @ClassName Exam6 * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 3:10 * @Version 1.0 **/ public class Exam6 { public static void main(String[] args) { int min = 100; int max = 1000; for (int i = min; i < max; i++){ int ge = i % 10; int shi = i / 10 % 10; int bai = i / 100; if (Math.pow(ge,3) + Math.pow(shi,3) + Math.pow(bai,3) == i){ System.out.println(i); } } } }

    题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

    在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。

    package exam; import java.util.Scanner; /** * @ClassName Exam7 * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 3:22 * @Version 1.0 **/ public class Exam7 { public static int max(int a,int b){ return (a > b)?a:b; } public static int min(int a,int b){ return (a < b)?a:b; } public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入第一个正整数:"); int n1 = in.nextInt(); System.out.println("请输入第二个正整数:"); int n2 = in.nextInt(); int Multiply = n1 * n2; int min = min(n1,n2); int max = max(n1,n2); int greatestCommonDivisor; int leastCommonMultiple; while (min != 0){ int temp = max % min; max = min; min = temp; } greatestCommonDivisor = max; System.out.println("最大公约数:" + greatestCommonDivisor); leastCommonMultiple = Multiply / greatestCommonDivisor; System.out.println("最小公倍数:" + leastCommonMultiple); } }

    题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    package exam; import java.util.Scanner; /** * @ClassName Exam8 * @Description TODO * @Author 17235 * @Date 2020/6/3 下午 4:59 * @Version 1.0 **/ public class Exam8 { public static void scanStatistics(String a) { char[] array = a.toCharArray(); //字母个数 int letter = 0; //空格个数 int space = 0; //数字个数 int num = 0; //其他字符 int character = 0; for (int i = 0; i < array.length; i++) { array[i] = a.charAt(i); if (63 <= array[i] && array[i] <= 90 || 97 <= array[i] && array[i] <= 122) { letter++; } else if (48 <= array[i] && array[i] <= 57) { num++; } else if (array[i] == 32) { space++; } else { character++; } } System.out.print("英文字母个数:" + letter + " 空格个数:" + space + " 数字个数:" + num + " 其他字符个数:" + character); } public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入一串字符:"); String a = in.nextLine(); scanStatistics(a); } }
    Processed: 0.032, SQL: 8