Java语言零基础完整基础教程(三)-Java基础20道综合练习题及详细解析) 📅 2026/8/4 22:51:30 Java基础20道综合练习题含答案详细解析题型分布选择8道、填空4道、程序阅读3道、编程5道覆盖前面所有章节知识点适合课后巩固、基础自测。一、单选题8道下列关于JDK、JRE、JVM说法正确的是A. JRE包含JDKB. JVM可以直接运行.java文件C. 开发Java程序必须安装JDKD. JDK JVM 类库答案C解析JDKJRE开发工具JREJVM基础类库JVM只能执行.class字节码不能直接运行源码。下列标识符命名合法的是A. 1nameB. classC. _$ageD. user-name答案C解析不能数字开头、不能用关键字、不能带横杠下划线和$合法。byte b 127; b (byte)(b1);最终b的值为A.128 B.0 C.-128 D.报错答案C解析byte范围-128~127溢出后循环到最小值-128。执行代码int a2; int ba;a和b的值是A.a2,b3 B.a3,b2 C.a3,b3答案B解析后置自增先赋值再自增。int x3,y5; boolean flag (x4)(y6);y最终值为A.5 B.6 C.7答案A解析短路左边false右侧不执行y不变。switch语句不能使用下面哪种类型A.int B.char C.double D.String答案C解析switch支持byte、short、int、char、枚举、String不支持浮点型。Java数组说法错误的是A.数组下标从0开始B.数组长度一旦定义不可改变C.数组元素默认值统一初始化D.数组可以存放不同类型数据答案D解析数组只能存储同一种数据类型元素。封装依靠哪个关键字私有化成员变量A.static B.private C.final D.abstract答案B二、填空题4道Java中8种基本数据类型4整型、2浮点、1字符、1布尔布尔类型取值只有____和____。答案true、false强制类型转换格式________(目标类型)数值。for、while、do-while中____循环一定会至少执行一次。答案do-while子类调用父类构造方法/成员使用____关键字访问当前对象使用____关键字。答案super、this三、程序阅读题3道写出输出结果阅读1publicclassTest1{publicstaticvoidmain(String[]args){inta6;intbaa;System.out.println(b);}}答案15解析a7此时a7a取值7计算后a87815。阅读2publicclassTest2{publicstaticvoidmain(String[]args){for(inti1;i5;i){if(i3)continue;System.out.print(i );}}}答案1 2 4 5解析continue跳过本次循环i3不打印。阅读3publicclassTest3{publicstaticvoidmain(String[]args){int[]arr{10,20,30};try{System.out.println(arr[3]);}catch(Exceptione){System.out.println(异常);}System.out.println(结束);}}答案异常 结束四、编程题5道基础高频实操编程1需求键盘录入一个整数分数使用if多分支完成评级≥90优秀8089良好7079中等60~69及格60不及格。参考代码importjava.util.Scanner;publicclassScoreJudge{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);System.out.print(输入分数);intscoresc.nextInt();if(score90){System.out.println(优秀);}elseif(score80){System.out.println(良好);}elseif(score70){System.out.println(中等);}elseif(score60){System.out.println(及格);}else{System.out.println(不及格);}sc.close();}}编程2需求使用for循环打印九九乘法表。publicclassMultiTable{publicstaticvoidmain(String[]args){for(inti1;i9;i){for(intj1;ji;j){System.out.print(j*ii*j\t);}System.out.println();}}}编程3需求给定数组int[] arr {35,12,77,21,9}查找数组最大值与最小值并打印。publicclassArrayMaxMin{publicstaticvoidmain(String[]args){int[]arr{35,12,77,21,9};intmaxarr[0];intminarr[0];for(inti1;iarr.length;i){if(arr[i]max)maxarr[i];if(arr[i]min)minarr[i];}System.out.println(最大值max最小值min);}}编程4需求定义Person类私有成员变量name、age提供get/set方法set方法做校验年龄0~120非法则提示错误定义show()方法打印个人信息。classPerson{privateStringname;privateintage;//get、setpublicStringgetName(){returnname;}publicvoidsetName(Stringname){this.namename;}publicintgetAge(){returnage;}publicvoidsetAge(intage){if(age0age120){this.ageage;}else{System.out.println(年龄不合法);}}publicvoidshow(){System.out.println(姓名name年龄age);}}//测试类publicclassPersonTest{publicstaticvoidmain(String[]args){PersonpnewPerson();p.setName(张三);p.setAge(20);p.show();p.setAge(200);}}编程5需求随机生成1~100数字简易猜数字游戏循环录入猜测数字直到猜对结束每次提示偏大/偏小。importjava.util.Scanner;publicclassGuessNum{publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);intrandom(int)(Math.random()*1001);while(true){System.out.print(请输入猜测数字);intguesssc.nextInt();if(guessrandom){System.out.println(猜大了);}elseif(guessrandom){System.out.println(猜小了);}else{System.out.println(恭喜猜对);break;}}sc.close();}}拔高拓展3道面试基础小题简述与区别无论左边真假两边都会执行短路与左边false右边不执行开发常用。构造方法特点方法名和类名一致、无返回值、创建对象自动调用、无自定义构造时系统提供默认无参构造。数组和集合区别数组长度固定可存基本类型引用类型集合长度可变只能存储引用数据类型。需要我再出一套难度更高的拔高测试卷20道用来考前摸底吗