0.0723

五煦查题

快速找到你需要的那道考题与答案

中国大学Java程序设计A课后答案(mooc2023课后作业答案)

28 min read

中国大学Java程序设计A课后答案(mooc2023课后作业答案)

第1讲 Java语言与面向对象的中国程序设计

Week1 测试

1、Java的大学三大平台不包括
A、JavaSE
B、程序JavaEE
C、设计JavaME
D、课c课Android

2、后答后作Java出现于哪年
A、案m案1990
B、业答1995
C、中国2000
D、大学2005

3、程序Java的设计开发工具是
A、JavaAPI
B、课c课JDK
C、后答后作JRE
D、案m案JVM

4、面向对象语言的特点包括:
A、封装
B、继承
C、多态
D、难维护

5、Java相关的网站包括
A、java.sun.com
B、https://www.oracle.com/technetwork/java/index.html
C、java.com
D、jcp.org

6、Java的运行环境叫JRE

7、JDK包括JRE及开发工具

8、JRE包括JVM及API

9、Java是跨平台的语言

10、Java是一种面向对象的语言

11、Java不直接使用指针

12、Java的垃圾回收要由程序员自己来进行

13、Java有丰富的库供我们调用

14、java程序编译的结果(class文件)中包含的是实际机器的CPU指令

第2讲 简单的Java程序

Week2 测试

1、main()的写法是public void main(String[]arg)

2、public类名与文件同名

3、package名与路径同名

4、import表示导入

5、编译程序的基本命令是javac

6、运行程序时java后面跟的是文件名

7、path表示前者是命令(javac及java)的路径

8、path是所要引用的类的路径

9、在javac及java命令行上使用-classpath (或-cp)选项可以引用别的库

10、可以使用jar来打包程序

11、可以使用javadoc来生成文档

12、文档注释是用/** */

week2互评作业

1、输入圆的半径,计算圆的面积,然后把面积的值输出。(注意所使用的数据类型)。运行效果如图所示。

第3讲 数据运算、流控制和数组

Week3 测试

1、数据类型决定数据的存储方式和运算方式

2、Java中的数据类型分为两大类

3、String属于引用类型

4、Java中引用类型在赋值时,复制的是对象实体。

5、Java中的char是一个字节。

6、Java中的long是4个字节。

7、3.14是float型。

8、0b0001是二进制写法。

9、534L表示长整数。

10、Java中没有无符号数。

11、Java中非零即真。

12、Java是大小写敏感的语言。

13、按惯例,类名首字母大写,变量名首字母小写。

14、字符串连接运算符其实是用append来实现的。

15、^表示乘方运算。

16、15/4的结果是3.75。

17、&表示短路与运算。

18、>>>表示无符号右移。

19、书写表达式要少用或不用括号。

20、javap –c命令可以反汇编代码。

21、程序的三种基本流程是顺序、分支、循环。

22、Java中可以在任一表达式后面加分号构成表达式语句。

23、case后面可以跟变量。

24、循环语句有三种写法。

25、循环一般有五个要素。

26、do.while循环至少执行一次。

27、break及continue后面可以跟一个语句标号。

28、增强的for语句可以方便地遍历数组。

29、数组都有一个属性length。

30、main()的写法是public void main(int argc, String[]argv)

31、声明数组时可以直接指定数组的大小。

32、数组都是引用类型。

33、数组元素都会隐式初始化。

week3互评作业

1、通过键盘输入长度为5的int型数组赋值,并求得数组中元素的最大值及最大值的位置。 请注意代码风格:类名、变量名的命名,以及必要注释等等; 请上传压缩后的源代码文件(为防上传失败,请同时把代码贴到文本框中)。 评分标准: 使用了数组(2分); 使用两个for语句(3分); 使用if语句(2分); 算法正确(3分)。

week3互评作业

1、输入一个三位十进制数,对其每一位进行筛选,逆序组合后输出,运行结果见附件。

第4讲 类、包和接口

Week4 测试

1、类(class)是组成Java程序的基本要素。

2、类将变量与函数封装到一个类中。

3、方法(method)是类的功能,是用函数来表示的。

4、构造方法(constructor )与类名同名。

5、如果没有定义任何构造方法,系统会自动产生一个构造方法。

6、new表示新建并初始化一个对象。

7、方法重载(overloading)是指多个方法有相同的名字。

8、方法重载是多态(polymorphism)的一种方式。

9、一个类只能有一个直接父类。

10、继承可以实现代码重用,提高开发效率和可维护性。

11、Java中的继承是通过extends关键字来实现的。

12、如果没有extends子句,则该类默认为java.lang.Object的子类。

13、所有的类都是通过直接或间接地继承java.lang.Object得到的。

14、继承关系在UML图中,是用一个箭头来表示子类与父类的关系的。

15、父类的非私有方法可以被子类自动继承。

16、子类也可以重新定义与父类同名的方法,实现对父类方法的覆盖(Override)。

17、使用super访问父类的域和方法。

18、在覆盖父类的方法的同时,使用super可以利用已定义好的父类的方法。

19、子类在构造方法中,可以用super来调用父类的构造方法。

20、在构造方法中,使用super()时,必须放在第一句。

21、子类对象可以被视为其父类的一个对象。

22、如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数。

23、包及子包的定义,实际上是为了解决名字空间、名字冲突。

24、同一包中的各个类,默认情况下可互相访问。

25、Java编译器自动导入包java.lang.*。

26、类的访问控制符或者为public,或者默认。

27、将字段用private修饰,从而更好地将信息进行封装和隐藏。

28、使用setter及getter是一种好的编程习惯。

29、static表示静态的、非实例的、类的。

30、static变量可以表示全局变量。

31、如果一个类被abstract所修饰,说明这个类不能被实例化。

32、final所修饰的方法,是不能被子类所覆盖的方法。

33、final所修饰的变量,是只读量。

34、一个字段被static final两个修饰符所限定时,它可以表示常量。

35、在定义final局部变量时,也必须且只能赋值一次。

36、抽象方法在子类中必须被实现,否则子类仍然是abstract的。

37、一旦某个类中包含了abstract方法,则这个类必须声明为abstract类。

38、在类的声明中用implements子句来表示一个类使用某个接口。

39、接口类型是引用类型。

40、在接口中定义的常量具有public, static, final的属性。

41、一个文件中最多只能有一个package语句。

42、在接口中定义的方法具有public, abstract的特点(Java8以前)。

43、Java8中,在接口中可以有static的方法,也可以有方法体的方法。

44、enum表示枚举。

45、一个类只能实现一个接口。

46、abstract类必须包含abstract方法。

47、接口不能有父接口。

48、java中的enum是整数。

49、final abstract可以同时修饰一个方法。

50、一个文件中最多只能有一个class定义。

51、构造方法是可以继承的。

52、this和super是两个不同的对象。

53、子类不能Overload与父类同名的方法。

54、字段(field)是类的属性,是用函数来表示的。

55、构造方法(constructor )的返回类型是void。

56、作何一个类,系统都会自动产生一个不带参数的构造方法。

57、方法签名(signature)包括参数的类型及参数的名字。

58、private可以修饰类、也可以修饰类的成员(字段、方法)。

59、protected修饰的成员,不能在包中访问,只能在子类中访问。

60、如果省略访问控制符,则表示private。

61、static函数中可以使用this。

62、static函数可以直接使用类名来访问,不能用对象实例来访问。

63、import static可以导入任何一个类。

64、如果一个类被final所修饰,说明这个类不能被实例化。

65、如果一个类被abstract所修饰,说明这个类没有构造方法。

Week4 课堂作业

1、设计一个名为MyPoint的类表示一个具有x坐标和y坐标的点,该类包括: 两个数据域(成员变量)x和y表示坐标; 无参构造方法创建点(0,0); 一个构造方法根据指定坐标创建一个点; distance方法(static修饰)返回MyPoint类型的两个点之间的距离(方法的参数为两个MyPoint对象); distance方法返回从当前点(调用方法的对象)到另一点(方法的参数)之间的距离(方法的参数为一个MyPoint对象); 在主方法中,输入一个点,求距离原点的距离,再输入两点,求两点之间的距离。 PS:成员变量必须由private修饰,且为其定义访问方法

第5讲 深入理解Java语言

Week5 测试

1、局部变量是方法中定义的变量或方法的参变量。

2、局部变量存在于栈中。

3、当方法调用结束,方法中的局部变量就结束其生命了。

4、字段变量可以自动赋初值。

5、main函数也可以写为public static void main( String…argv){ }。

6、不定长参数实际上可以理解为数组。

7、javap –c 命令可以反汇编Java类中的指令。

8、多态是指一个程序中相同的名字表示不同的含义的情况。

9、overload是多态的一种。

10、override及虚方法调用是多态的一种。

11、虚方法调用是由对象实例的类型来动态决定的。

12、虚方法调用可以理解为方法的动态绑定。

13、static,private,final方法不是虚方法。

14、static方法调用是由所声明的变量类型所决定,与实例无关。

15、在构造方法中,如果没有this及super,则编译器自动加上super()。

16、在构造方法在执行时,令所有父类的构造方法都得到调用。

17、在构造方法在执行时,一定会调用Object的构造方法。

18、创建对象时,可以用{ { }}这样的语法来对字段进行赋值。

19、实例初始化,先于构造方法{ }中的语句执行。

20、静态初始化,在第一次使用这个类时要执行。

21、Java中自动进行垃圾回收。

22、系统在回收时会自动调用对象的finalize() 方法。

23、由于finalize()方法的调用时机并不确定,所以一般不用finalize()。

24、try-with-resources语句可以自动执行close()方法。

25、内部类中访问外部类的字段可以用“外部类名.this.字段”的方式。

26、局部类及匿名类可以访问final局部变量。

27、匿名类不取名字,直接用其父类或接口的名字。

28、匿名类在定义时就创建了一个实例。

29、在用new创建内部类实例时,要在 new前面冠以对象变量。

30、匿名类使用父类的构造方法。

31、用到界面的事件处理中可以使用匿名类。

32、匿名类经常用于做方法的参数。

33、多态是在编译时就能确定的。

34、字段是方法中定义的变量或方法的参变量。

35、局部变量可以自动赋初值。

36、对于引用型变量,传递的值复制对象实体。

37、静态初始化,在每次创建对象实例时都会执行一次。

38、实例初始化,先于静态初始化执行。

39、抽象类不能有构造方法。

40、编译器会为所有的类加一个default构造方法,即使用户已定义了构造方法。

41、虚方法调用是指编译时就决定了调用哪个类中的哪个方法。

42、Java中的方法默认不是虚方法,需要用特殊的关键字才能表明是虚方法。

43、Java中使用delete来清除创建的对象。

44、System.gc()方法强制立即执行垃圾回收。

45、内部类中不能访问外部类的private字段及方法。

46、匿名类可以定义构造方法。

测验

1、根据抽签结果答题,下载附件查看

第6讲 异常处理

Week6 测试

1、抛出异常,使用关键字throw。

2、捕获异常,使用关键字catch。

3、Error是Throwable的子类。

4、getCause()可以得到异常的内部原因。

5、RuntimeException及其子类,可以不明确处理。

6、非RuntimeException及其子类,必须明确处理。

7、try-with-resource语句中自动加了close()方法的调用。

8、用户自定义异常类继承自Exception类或某个子Exception类。

9、assert表示断言。

10、assert后面可以跟一个boolean类型的表达式。

11、要使assert起作用,则在运行时,使用选项(-ea,或-enableassertions)。

12、单元测试是保证代码质量的一种手段。

13、现在很多Java集成开发工具都提供了对JUnit的支持。

14、@Test来标注测试函数。

15、assertEqauls表示程序要保证两个参数要相等。

16、程序中的错误通常可以分成三大类:语法错、运行错、逻辑错。

17、语法错可以由编译器发现。

18、运行时错可以由try-catch方式进行处理。

19、程序的调试包括断点、跟踪、监视等手段。

20、catch多个异常时,子类异常要排在父类异常的后面。

21、finally语句是指没有异常出现时要执行的语句。

22、如果有return语句,finally语句应不会执行。

23、逻辑错可以由编译器发现。

24、try-with-resource语句中的close()方法只有当异常发生时才会调用。

25、若父类中的方法声明了throws异常,则子类Override时一定也要throws异常。

26、若父类中的方法声明了throws异常,则子类Override时可以throws更一般的异常。

27、在方法的签名后面用关键字throw来声明该方法会抛出异常。

28、Exception是Throwable的父类。

第7讲 工具类及常用算法

Week7 测试

1、java.lang包是自动import的。

2、JavaSE的源代码是开放的,我们可以阅读。

3、一个类经常需要覆盖toString()方法。

4、任何对象都有toString()方法。

5、任何对象都有wait()及notify()方法。

6、如果不覆盖equals()方法,则equals()方法与==的结果是一样的。

7、String对象中所包装的内容是不可改变的(immutable)。

8、字符串的+运算,实际表示StringBuffer、StringBuiler的append运算。

9、字符串的+运算,实际表示String类的append运算。

10、在循环中用字符串的+运算,要注意效率问题。

11、java.util.StringTokenizer类提供了对字符串进行分割的功能。

12、Date对象的getTime()得到的是一个long长整数。

13、SimpleDateFormat类可以用来解析日期字符串。

14、LocalDateTime 类的parse()方法可以用来解析日期字符串。

15、Collection API中包括List、Set及Map。

16、List会记录元素的保存顺序。

17、Map记录的是键-值对的集合。

18、Dictionary记录的是键-值对的集合。

19、Hashtable记录的是键-值对的集合。

20、Stack的主要方法包括push及pop等。

21、Map的主要实现包括HashMap及TreeMap。

22、Set的主要实现包括HashSet及TreeSet。

23、List的主要实现包括LinkedList及ArrayList。

24、Queue的主要实现包括LinkedList。

25、LinkedList类同时实现了List及Queue。

26、Vector类大体相当于ArrayList。

27、Hashtable类大体相当于HashMap。

28、for-each语句可以用于所有的Collection及数组。

29、for-each语句可以用于所有的Iterable对象。

30、使用binarySearch之前先要进行排序。

31、使用Arrays类及Collections类的方法可以进行排序。

32、sort方法中的比较器可以用Lambda表达式。

33、一般在覆盖时,要同时覆盖hashCode、equals方法。

34、遍试的基本模式是在循环中用判断。

35、迭代的基本模式是while(){ x=f(x); }。

36、递归是自己调用自己。

37、回溯是常用的算法之一。

38、TreeMap的底层是用TreeSet实现的。

39、Java8中的time api也是在java.util包中。

40、Stack的 push方法表示出栈。

41、Queue的主要方法包括push及pop等。

42、LinkedList的offer()方法表示出队列。

43、Calendar对象的getTime()得到的是一个long长整数。

44、Set会记录元素的保存顺序。

45、String a = "Hello"; 则执行a.replace("e","f")后a的内容为"Hfllo"。

46、String a = "aaa"; 则执行a.concat("bbb")后a的内容为"aaabbb"。

47、String a = "abcdef"; 则a.substring(1,3)的结果为"bcd"。

48、String 与数组一样,有一个属性叫length。

49、String a = "abcdef"; 则a.charAt(3)的结果为'c'。

50、由于字符串的内部化,"abc" == new String("abc")为true。

51、StringBuffer与StringBuidler是相似的,但StringBuffer是JDK1.5以后的。

52、for-each语句可以用于所有的Enumerable对象。

53、Hashtable是Properties的子类。

54、equals()方法与==的含义是一样的。

55、Integer I = 5 实际表示Integer I = new Integer(5)。

Week7 互评作业

1、做一个简单的银行、账户演示程序。 (1)定义一个账户类,包含用户名、密码、余额等属性、存钱、取钱等方法(4分)。 (2)定义一个银行类,包含银行名、账户列表等属性,开账户、查账户的功能。账户列表可以使用集合相关的类,如ArrayList,最好同时使用泛型(4分)。 (3)定义一个测试类及main函数,在其中创建一个银行,开设一些账号,模拟存钱、取钱、显示余额等(2分)。

第二次实验考试

1、要求:根据抽签结果完成要求题目,将完成的文件以附件形式上传。 题目1:编写一个程序,将一个字符串s尾部的m个字符移动到该字符串首部,例如字符串s为“abcdccutsoft”,m为8,则程序执行完毕后的结果为“ccutsoftabcd”。 题目2:输入一个字符串,请判断是否满足身份证基本要求,并返回具体的生日yyyy-mm-dd。如果输入数据有误,请输出0000-00-00。基本要求是:a)必须是18位;b) 前面位数必须是数字,最后一位可以是数字或小写字母;c) 日期是存在的。输入样例53010219900508011x,输出样例:1990-05-08

第11讲 网络、多媒体和数据库编程

期末测试

1、在Eclipse中可以引用第三方的库。

2、使用数据库管理的数据具有共享性、独立性、完整性等优点。

3、关系型数据库中主要以二维表的形式表示数据。

4、SQL是操作数据库的标准语言。

5、SQL中表示查询是select语句。

6、SQL中表示删除是delete语句。

7、SQL中update语句表示修改记录。

8、SQL中create table语句可以创建一个表。

9、SQL中语句可以创建一个表。

10、JDBC中Connection表示连接。

11、JDBC中Statement表示语句。

12、JDBC中用Class.forName()来注册驱动程序。

13、使用PreparedStatement比Statement更安全一些。

14、在数据库应用中要将用户输入的参数放入到SQL语句中。

15、JTable需要数据模型来决定要显示的数据。

16、JDBC中RecordSet表示结果集。

17、SQL中delete语句可以删除一个表。

18、SQL中add语句表示增加记录。

19、线程体的本质是run()方法。

20、自定义线程类可以继承Thread或实现Runnable接口。

第三次实验考试

1、考试要求见附件