收藏 分销(赏)

2023年Java试卷与答案加条程序代码.doc

上传人:二*** 文档编号:4576890 上传时间:2024-09-30 格式:DOC 页数:100 大小:515.04KB 下载积分:5 金币
下载 相关 举报
2023年Java试卷与答案加条程序代码.doc_第1页
第1页 / 共100页
本文档共100页,全文阅读请下载到手机保存,查看更方便
资源描述
考试题型 分为四种: 1、单选题 每小题2分,20个小题共40分 2、判断题 每小题1分,10个小题共10分 3、阅读程序写结果 每小题5分,4小题共20分 4、编程题 3个小题,9分,10分,11分,共30分 提醒各位同学注意,考试采用标准答题卡,单选题和判断题的答案将填涂在答题卡上,考试时记得带2B铅笔和橡皮擦。 考试内容分布: 1、出题范围从第1章到第8章,其中第2章2.5.4位运算、条件运算,5.1.6 for…each,5.4.2 StringBuffer,6.7方法的递归调用,8.5内部类,8.6基本数据类型与包装类不在考核范围,其他都有涉及。 2、重点考核在选择结构、循环结构、数组、对象和类、继承与多态等内容上。 3、强调学生重视基础的同时要学会编写程序 华南农业大学期末考试试卷(A卷) 2023-2023学年第 1 学期  考试科目: Java程序设计 考试类型:(闭卷) 考试    考试时间:  120  分钟 学号 姓名 年级专业 一、单项选择题(本大题共 18 小题,每小题 2 分,共 36 分) 1. 下列关于Java语言的说法,不对的的是________: A. Java是面向对象的高级语言 B. Java是解释型语言,所以执行速度快 C. 一个类被编译成一个.class字节码文献 D. Java程序可以做到“一次编写,随处运营” 2. 下列符合Java程序元素命名习惯的是________。 A. double Radius B. int lengthofarray C. class shape D. final double PI 3. 下列不满足自动类型转换的赋值语句是________。 A.int c = ‘A’; B. long d = 165; C.float b = 26.3; D. double a = 13; 4. 语句int a = 10, b = 20; b += a++; 执行结束后,a和 b的值分别是________。 A. 10,30 B. 11,30 C. 10,31 D. 11,31 5. 下列程序段的输出结果是________。 int m = 4, n = 9; System.out.println(“m + n = ” + m + n); A. m + n = 13 B. m + n = mn C. m + n = m + n D. m + n = 49; 6. 下列关于for和while这两种循环语句的说法,对的的是________ A.两者都是后置检查循环条件 B.循环次数不拟定使用for语句比较好 C.循环条件是布尔型表达式 D.它们之间不能互相嵌套使用 7. 下列程序片段执行后,y的值为________ int x = 4, y = 3; switch(x + 3){case 7: y = 7; case 8: y =8; default: y++;} A. 4 B. 7 C. 8 D. 9 8. 定义二维数组a,不对的的是________ A. double a [3][3]; B. double a[][]; C. double[] a[]; D. double[][] a; 9. 设int[][] b = {{26,53},{24,18,33},{29,81,51},{27,44,92,13}},则________ A. 数组一共有12个元素 B. b[2].length为4 C. b.length为12 D. b[3][2]等于81 10. 下面一段代码的输出结果是________ class Test{ public static void main(String [] args){    int[] a={36,31,0,11,8,13,24,49,33,16}; swap(a,4,8);System.out.println(a[4]);} public static void swap(int[] a, int i, int j){int t = a[i]; a[i] = a[j]; a[j] = t;} } A. 8 B. 33 C. 11 D. 49 11. 关于字符串,下列语句不对的的是________ A. String s = new String(”Olympic game”); B. “Welcome to Guangzhou”.indexOf(‘o’); C. String s = “Great Wall”; s.delete(2,5); D. StringBuffer buffer = new StringBuffer(); buffer.append(“China”); 12. 关于类和对象,下列说法不对的的是________。 A. 类是对象的模板,对象是类的实例 B. 面向对象有四个基本特性:抽象、封装、继承和多态 C. 对象的引用变量只是存放了对象的地址 D. 静态成员方法可以调用实例成员方法 13. 关于类和成员的访问权限,下列说法对的的是________ A. 类A能继承类B的前提是A和B必须在同一个包中 B. 子类不能继承位于不同包中的父类的protected成员 C. 子类不能继承位于同一包中的父类的private成员 D. 子类可以继承位于不同包中的父类的无修饰成员 14. 下列关于继承的哪项叙述是对的________ A. 在java中允许多继承 B. java的单一继承使代码更可靠 C. 在java中一个类不能同时继承一个类和实现一个接口 D. 在java中一个类只能实现一个接口 15. 下列关于父类和子类构造方法,不对的的是________ A. 子类不能继承父类的构造方法 B. 子类构造方法可以调用父类构造方法 C. 子类构造方法的第一条语句必须通过super显式调用父类构造方法 D. 子类构造方法的第一条语句也可以通过this调用本类的重载构造方法 16. 下列关于方法重载和覆盖的描述,不对的的是________ A. 可通过返回值类型来区分是否为重载方法 B. 方法重载可减少记忆方法名称的难度,使程序清楚易读 C. 方法覆盖只能在有继承关系的父子类间 D. 方法覆盖必须保持父类方法的返回值、方法名和形参均不变 17. 下列不是实现多态必须条件的是________ A. 继承 B. 方法重载 C. 方法覆盖 D. 父类引用变量可引用子类对象 18. Object是Java中所有类的祖先类,其中用来比较两个对象内容是否相等的方法是_____ A. equals B.clone C. compare D. toString 得分 1.5CM 二、判断题(本大题共14小题,每小题1分,共14分,对的选A,错误选B) 19. ( )把java源文献编译成class字节码文献的JDK命令是java。 20. ( )Java程序中可包含多个源文献,但每个源文献中只有一个public类。 21. ( )包含main方法的类叫主类,没有主类程序就无法运营。 22. ( )不带标号的continue语句可实现跳出所在的那层循环。 23. ( )方法调用表达式方式适合于有返回值的方法的调用,在调用时实参与形参在 顺序、类型和数量上要匹配。 24. ( )方法覆盖和方法重载都是规定方法同名,因此没有本质区别。 25. ( )静态成员方法与对象无关,所以不会访问实例数据域。 26. ( )访问权限最大的是public成员,最小的是protected成员。 27. ( )this是当前对象的引用,大多数情况下可隐去,但有时需要显式使用。 28. ( )抽象类不能定义对象引用变量,也不能创建对象。 29. ( )抽象类的子类一定是具体类,但实现接口的类不一定是具体类。 30. ( )包可以解决命名冲突,不同包中可以包含同名的类。 31. ( )在Java源文献中,把自己的类装入某个包中所使用的关键字是import,把库中 的类导入到源文献的关键字是package。 32. ( )this可用来调用本类的重载方法,super可用来调用父类的覆盖方法。 得分 1.5CM 三、程序阅读题(本大题共4小题,每小题5分,共20分) 说明:阅读下面的程序,并写出程序的运营结果。 1. public class Test{ public static void main(String [] args){ int[] a = {36,21,50,78,19,89,74,33,46,68}; int m = a[0], n = 0; for(int i=1;i<10;i++) if (m < a[i]){m = a[i]; n = i;} System.out.printf (“m = %d,n = %d\n”, m, n); } } 2. public class Stat{ public static void main(String args[ ]){ int n=0; String s=”The 30th Olympic games is held in London last summer.”; for (int i=0;i<s.length();i++) if (s.charAt(i)==’m’) n++; System.out.println(n); } } 3. class Person{ public Person() {System.out.println(“Person()”); } } class Teacher extends Person{ public Teacher(){this(“Teacher(String)”); System.out.println(“Teacher()”);} public Teacher(String s){System.out.println(s);} } public class Faculty extends Teacher{ public Faculty(){System.out.println("Faculty()");} public static void main(String[] args) {Faculty fa = new Faculty();} } 4. public abstract class Animal { public abstract void sound(); } class Dog extends Animal{ public void sound(){System.out.println(“Woof woof”);} } class Cat extends Animal{ public void sound(){System.out.println(“Miiaooww”);} } class PetCat extends Cat{ public void sound(){System.out.println(“Miaomiao”);} } public class Test { public static void main(String[] args) { Animal[] a = {new Dog(),new Cat(),new PetCat()}; for(int i=0;i<a.length;i++){a[i].sound();} } } 得分 1.5CM 四、编写程序题(本大题共3小题,共30分) 1. 编写程序. 求出2~200间所有素数之和并输出。(9分) 2. 编写程序. 如下给定一个3行4列的三位整数数表(即每个元素为int型三位十进制整数),找出这12个三位数中,数字之和最大的那个数及其所在的行和列并输出(数字之和的含义:如第0行第0列的259这个数,其数字之和就是2+5+9=16)。(10分) 259 132 799 113 332 262 209 863 807 301 684 343 3. 定义一个类来描述公司雇员,类命名为Employee,具体规定如下:(11分) (1)数据域: id表达工号,类型为int;name表达姓名,类型为String;salary表达工资,类型为double。 (2)构造方法: 默认构造一个Emplyee对象时,id/name/salary默认值分别为0/””/0.0;也可以在构 造Employee对象时通过参数指定数据域初始值。 (3)定义各数据域相应的访问器和修改器。 (4)对象描述器,设对象的输出形式为:工号:XXX,姓名:XXX,工资:XXX。 (5)定义一个按雇员工资定级别的方法:int level(),返回值为级别数,具体规定为: salary <5000, 3级 5000≤salary<8000, 2级 salary≥8000, 1级 华南农业大学期末考试参考答案(A卷) 一、单项选择题(本大题共 18 小题,每小题 2 分,共 36 分) 1 2 3 4 5 6 7 8 9 B D C B D C D A A 10 11 12 13 14 15 16 17 18 B C D C B C A B A 1.5CM 二、判断题(本大题共14小题,每小题1分,共14分,对的选A,错误选B) 19 20 21 22 23 24 25 B A A B A B A 26 27 28 29 30 31 32 B A B B A B A 三、程序阅读题(本大题共4小题,每小题5分,共20分) 评分细则:1-2题错误没有分,3-4题每答错一行扣一分 1. m=89,n=5 2. 4 3. Person() Teacher(String) Teacher() Faculty() 4. Woof woof Miaomiao Miiaooww 1.5CM 三、编写程序题(本大题共3小题,共30分) 1. (9分) public class Test { +1 public static void main(String[] args) { +1 int s = 0; for(int i=2;i<=10;i++){ if(isPrime(i)) s+=i; } +3 System.out.println("2~200间所有素数之和为:"+s); +1 } static boolean isPrime(int a){ boolean b = true; for(int i=2;i<a;i++) if(a%i == 0){b = false; break;} return b; } +3 } 2. (10分) public class Test { +1 public static void main(String[] args) { int[][] a = {{259,132,799,113},{332,262,209,863},{227,301,684,343}}; +1 int max = 0,r=0,c=0; +1 for(int i=0;i<3;i++) for(int j=0;j<4;j++){ int t = dsum(a[i][j]); if(max<t){max = t;r = i;c = j;} } +3 System.out.printf("数字和最大的数是:%d,位于数表的第%d行第%d列\n",a[r][c],r,c); } +1 static int dsum(int m){ int s = 0; while(m!=0){s+=m%10; m=m/10; } return s; } +3 } 3. (11分) class Employee { +0.5 private int id; private String name; private double salary; +1.5 Employee(){ id = 0; name = ""; salary = 0.0; } +1 Employee(int id,String name,double salary){ this.id = id; this.name = name; this.salary = salary; } +1 public double getId(){return id;} public String getName(){return name;} public double getSalary(){return salary;} +1.5 public void setId(int id){this.id = id;} public void setName(String name){this.name = name;} public void setSalary(double salary){this.salary = salary;} +1.5 public String toString(){ return "工号:" + id + ",姓名:" + name +",工资:" + salary;} +1 public int level(){ int l; if(salary<5000.0) l = 3; else if(salary>=5000.0 && salary<8000.0) l = 2; else l = 1; return l; } +3 } 华南农业大学期末考试试卷(A卷) 2023-2023学年第 1 学期  考试科目: Java程序设计 考试类型:(闭卷)考试    考试时间: 120  分钟 学号 姓名 年级专业 题号 一 二 三 总分 得分 评阅人 考试说明:所有答案必须填写在答卷上,考试结束时答卷和试卷都上交。 得分 一、单项选择题(本大题共 25 小题,每小题 2 分,共 50 分) 1. 下列有关Java程序的说法中对的的是________: A. 由于Java程序是解释执行的,所以执行前不需要进行编译 B. 一个.java源程序编译后将产生一个.class的字节码文献 C. 安装了JDK后,安装程序会自动配置系统的环境变量path和classpath D. 面向对象的解释型高级编程语言 2. 下列为合法变量名的是________。 A. false B. 0xabc C. iStudent D. cow’s 3. 对于构造方法,下列叙述不对的的是________。 A. 构造方法是类的一种特殊函数,它的方法名必须与类名相同 B. 构造方法没有返回值类型 C. 子类不仅可以继承父类的无参构造函数,也可以继承父类的有参构造函数。 D. 子类在创建构造方法是必须把调用父类构造方法放在第一条语句 4. 下列关于接口的说明对的的是________。 A. 接口和抽象类是同一回事 B. 一个类不可以实现多个接口 C. 接口间不能有继承关系 D. 实现一个接口必须实现接口的所有方法 5. Java为移动设备提供的平台是________。 A.J2ME  B.J2SE  C.J2EE  D.JDK5.0 6. 下列语句中,属于多分支语句的是________。 A.if语句  B.switch语句  C.do while语句  D.for语句 7. 在Java中,存放字符串常量的对象属于________类对象。 A. Character B. String C. StringBuffer D. Char 8. 下列关于继承的哪项叙述是对的________。 A. 在java中允许多继承 B. 在java中一个类只能实现一个接口 C. 在java中一个类不能同时继承一个类和实现一个接口 D. java的单一继承使代码更可靠 9. 给出如下代码: class Test{    private int m;    public static void fun() { // some code... } } 如何使成员变量m 被函数fun()直接访问? 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 10. System和Math类在哪个包中________。 A. java.io B. java.lang C. java.awt D. java.util 11. 能从循环语句的循环体中跳出的语句是________。 A. for 语句 B. break 语句 C. while 语句 D. continue语句 12. 若类中某方法进行重载,可以区分这重载方法的手段是 ________。 A. 它们的返回值类型的不同 B. 它们的名称的不同 C. 它们的参数表的不同 D. 它们的修饰符不同 13. 下列关于接口的说法哪个是对的________。 A. 接口和抽象类是同一回事; B. 一个类不可以实现多个接口; C. 接口间不能有继承关系; D. 实现一个接口必须实现接口的所有方法。 14. 下列关于main()方法说法对的的是________。 A. public修饰类中可以没有main()方法; B. main()方法中重要完毕所有对象的创建; C. public修饰的类有多个时,main()方法就有多个; D. main()方法头的定义可以根据情况随意修改。 15. 以下数据类型定义对的的是________。 A.boolean b = 0; B. char s = ‘\t’; C.byte b = -268; D. float f = 2.5e3. 16. 在一个应用程序中有如下定义:int a[]={1,2,3,4,5,6,7,8,9,10}; 为了打印输出数组a的最后一个元素,下面对的的代码是________。 A. System.out.println(a[10]); B. System.out.println(a[9]); C. System.out.println(a[a.length]); D. System.out.println(a(9)); 17. 定义二维数组a,不对的的是________。 A. int[][] a; B. int a[][]; C. int[] a[]; D. int[3][3] a; 18. 下列关于抽象类的说法哪个对的________。 A. 绝对不能用抽象类去创建对象; B. 某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法; C. 抽象类中不可以有常量; D. 可以用private修饰抽象类。 19. 下列关于方法覆盖不对的的是________。 A. 方法覆盖和方法重载都是定义相同方法名的方法,本质上是一致的; B. 方法覆盖只能发生在子类对父类的继承中; C. 方法覆盖充足体现了Java语言的多态性; D. 方法返回值类型不同时也能实现方法覆盖。 20. 关于Java的包叙述不对的的是________。 A. 不同包中的类不允许有相同的名称 B. 同一包中的类不允许有相同的名称 C. 包是用于组织类与接口的机制 D. 可以通过import语句将包中的类加载到程序中 21. Java中所有类的父类是________。 A. Father; B.Object; C. Lang; D. ClassFather; 22. 下列程序段的输出结果是________。 int data = 0; char k = ‘a’, p = ‘f’; data = p – k; System.out.println(data); A. 0; B. a; C. f; D. 5; 23. 在使用interface声明一个接口时,只可以使用________修饰符修饰该接口。 A. private B. protected C. private protected D. public 24. 下面________方法是public void example(){...}的重载方法? A. public void example(){...} B. public int example(){...} C. public void example2(){...} D. public int example(int m, float f){...} 25. 下列叙述中,对的的是________。 A. Java语言的标记符是区分大小写的  B. 源文献名与public类名可以不相同 C. 源文献名其扩展名为.jar D. 源文献中public类的数目不限 得分 1.5CM 二、程序阅读题(本大题共4小题,每小题5分,共20分) 说明:阅读下面的程序,并写出程序的运营结果。 1. public class StringTest{ public static void main(String [] args){ String s = new String ("Hello"); modify(s); System.out.println(s); } public static void modify (String s){ s += "world!"; } } 2. import java.io.* ; public class ABC { public static void main(String args[ ]) { int i ; int a[] = { 11,22,33,44,55,66,77,88,99 }; for ( i = 0 ; i <= a.length / 2 ; i ++ ) System.out.print( a[i] +a[a.length-i-1]+" "); System.out.println(); } } 3. class Person{ public Person() { System.out.println(“Person()”); } } class Employee extends Person{ public Employee(){ this(“call Employee(String)”); System.out.println(“Employee()”); } public Employee(String s) { System.out.println(s); } } class Faculty extends Employee{ public Faculty(){ System.out.println(“Faculty()”); } } 4. class ICCard extends Card{ public void show(){ System.out.println(“this is ICCard!”); public void show(s){ super.show(); this.show(); System.out.println(s); } } class Card { public void show(){ System.out.println(“this is Card!”); } } class Test { public static void main(String[] args) { ICCard ic = new ICCard(); ic.show(“Test ICCard!”); } } 得分 1.5CM 三、编写程序题(本大题共3小题,每小题10分,共30分) 1. 编写程序输入两个整数,并输出这两个数的所有公约数。(10分) 2. 编写程序读入10个单精度浮点型值,按照从小到大的顺序输出来。(10分) 3. 考虑二维坐标系的点,定义一个描述点的类,命名为Point。(10分) 具体规定如下: (1)每个点由双精度类型的横坐标x和纵坐标y描述;规定对该类的数据域进行合理的封装。 (2)默认构造一个Point对象时,横、纵坐标均为0;也可以在构造一个Point对象时通过参数指定横、纵坐标。 (3)定义一个求两点间距离的方法,方法头为: public double distance(Point otherPoint) (4)设定对象的输出形式为:(x, y)。 华南农业大学期末考试试卷(A卷) 2023-2023学年第 1 学期  考试科目: Java程序设计 考试类型:(闭卷)考试    考试时间: 120  分钟 学号 姓名 年级专业 题号 一 二 三 四 总分 得分 评阅
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服