Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解
- Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解
- 第一章选择题
- 1.1 Java与面向对象程序设计简介
- T4
- 题面
- 答案
- 详解
- T9
- 题面
- 答案
- 详解
- T10
- 题面
- 答案
- 详解
- T11
- 题面
- 答案
- 详解
- T15
- 题面
- 答案
- 详解
- T4
- 1.2 基本数据类型与表达式
- T12
- 题面
- 答案
- 详解
- T14
- 题面
- 答案
- 详解
- T12
- 1.3数组
- T1
- 题面
- 答案
- 详解
- T4
- 题面
- 答案
- 详解
- T1
- 1.4算法的流程控制
- T7
- 题面
- 答案
- 详解
- T7
- 1.1 Java与面向对象程序设计简介
- 第一章编程练习题(1.5)
- T1 Pow函数
- 题面
- 样例输入:
- 样例输出:
- 思考和详解
- 具体代码
- T2 哈密顿距离
- 题面
- 样例输入:
- 样例输出:
- 样例解释:
- 思考和详解
- 具体代码
- T3 组三角形
- 题面
- 样例输入:
- 输出:
- 样例解释:
- 思考和详解
- 具体代码
- 注:
- T1 Pow函数
- 第一章选择题
第一章选择题
Tip:选择题部分我只针对部分我出错的或我认为有价值的题目在此整理。
1.1 Java与面向对象程序设计简介
T4
题面
面向对象技术给软件发展带来的益处有:
(1) 一个设计好的类,可以在后续开发中被部分或者全部的重复使用
(2) 每个类可以作为一个独立单元进行测试维护,大量代码来源于成熟可靠的类库,因此开发新程序时的新增代码明显减少,使程序更加可靠
(3) 有利于提高用户对类的修改和数据的控制,使得开发更加便捷。
A(1) (2) (3)
B(1) (2)
C(1) (3)
D(2) (3)
答案
B
详解
笔者不知道这个题目(3)为什么不对,先放在这以后学的过程中再体会(逃
T9
题面
Java的主要优点是()(多选)
A直接操作内存,功能强大
B一次编译,到处运行
C纯面向对象的语言
D可以通过拖拽的方式快速开发用户界面
答案
BC
详解
RT
T10
题面
下面有关JAVA代码安全性的叙述错误的是()
A字节码校验器加载查询执行所需的所有类
B运行时由解释器执行代码
C运行时,字节码被加载,验证,然后在解释器中执行
D类加载器通过分离本机文件系统的类和从网络导入的类增加安全性
答案
A
详解
思考.jpg(笔者查了一下也不是很清楚,mark一下以后学到的时候回来看)
T11
题面
下面说法正确的是()
A JAVA程序的源文件名称与主类的名称相同,后缀可为.java或者.txt
B JDK的编译命令为java
C一个JAVA源程序编译后,可能产生几个字节码文件
D在DOS命令行下编译好字节码文件后,只需输入程序名即可运行该程序
答案
C
详解
A选项后缀应为.java
B选项编译命令应为javac
C选项正确
D选项显然不正确
T15
题面
设HelloWord的代码为:
下面说法正确的是:
A HelloWord.java无法通过编译,因为main方法的声明方式不对
B HelloWord.java可以通过编译,但是运行该程序会出现异常,不会打印HelloWorld
C HelloWord.java可以通过编译,但是无法运行,因为该文件没有public类
D HelloWord.java可以通过编译并正常运行,结果输出hello world
答案
B
详解
笔者查了一下资料,不是很清楚,先mark住(逃
1.2 基本数据类型与表达式
T12
题面
在某个main()方法中有以下代码:
下面哪个说法是正确的()
A 声明了1个基本类型变量和2个引用变量
B 声明了2个基本类型变量和2个引用变量
C 声明了2个基本类型变量和3个引用变量
D 声明了3个基本类型变量和3个引用变量
答案
C
详解
以笔者目前掌握知识来看,声明了两个引用变量;声明了一个引用变量;和分别声明了一个基本类型变量。
Tip: Java中的基本类型变量有
T14
题面
关于数据类型的声明,以下声明正确的是:
A(1)(3)(4)(5)
B(3)(5)
C(2)(3)(6)
D(1)(5)(6)
答案
B
详解
声明数值型变量有如下规则
数值型变量范围如下
(1):超出范围,错。
(2):型变量末尾跟或,不是。
(3):正确。
(4):声明为整型,不是整型,错。
(5):正确。
(6):型变量末尾跟或,不跟。
1.3数组
T1
题面
(1) 数组可以动态初始化
(2) 数组可以赋值给Object类型的对象
(3) 数组创建以后,其长度可以修改
(4) 数组可以调用Object类的所有方法
A (1)(2)(3)(4)
B (1)(2)(4)
C (2)(3)(4)
D (2)(4)
答案
B
详解
java中数组的长度不可以改变。java中的数组的定义就是相同类型,固定长度的一组数据,一旦被初始化,长度不可更改。
Tip:底层原理笔者还不是很清楚,但是考虑到C和Java的相似性,数组应该也是申请一块连续的空间,所以这样的话数组的长度如果再更改就不合适了。
T4
题面
关于二维数组的创建,以下做法正确的是:
A (1)(2)(3)
B (1)(2)
C (1)(3)
D (1)
答案
B
详解
(1):声明数组的引用的同时指明元素的个数并且分配内存空间。
(2):二维数组的本质是一维数组再多一维,我们允许这样操作。
(3):语法仅允许出现在定义数组变量时使用,如果数组变量已经创建了,之后再修改它,就不能使用这种语法了。
1.4算法的流程控制
T7
题面
下面关于switch语句错误的是:
A 在同一个switch语句中,case后的值可以相同
B 没有break语句,也能编译运行
C default语句可有可无
D switch语句中表达式的值可以是String类型
答案
A
详解
case后跟的值不可以相同,否则会报错,有逻辑问题。
第一章编程练习题(1.5)
T1 Pow函数
题面
实现x的n次方,x为类型为double,n的类型为int. 给定输入为x n, 输出x的n次方结果。
样例输入:
0.2
5
样例输出:
0.00032
思考和详解
本题作为这门课程第一个编程题,在提交代码方式上就卡住了我,我在这里分享一下我踩过的坑供大家参考。
-
提交代码到oj上时要将之类的包删去,本条对所有评测Java语言的oj均有效[1]。
-
在一般oj上,我们提交Java代码的要求往往是形如以下[1:1]
-
值得注意的是,在学堂在线oj中,提交的代码应当以如下两种形式之一呈现[1:2]
当没有输入时
当有输入时
即,学堂在线oj特别地要求删去public[1:3]。
具体代码
T2 哈密顿距离
题面
两个整数的哈密顿距离定义为两个数二进制位的个数。给定两个32位整数,M,N,输出M和N的哈密顿距离。输入以空格切分。
样例输入:
3 4
样例输出:
3
样例解释:
3的二进制为011, 4的二进制为100,不同位的个数为3。
思考和详解
本题按照题意模拟即可,可能需要补码相关知识,建议没学习前置课程《C语言程序设计》的同学自学相关内容。(Tip:位运算基础题目中可能会反复利用到本题循环中的工具变量,没接触过相关知识的同学可以留意一下)
具体代码
附:T1思考和详解
T3 组三角形
题面
给定一个长度为N的非负整数数组,现在以数组中的三个数为边长,组成一个三角形,计算能组成三角形的个数。输入为2行,第一行为N,第二行为N个整数,输出为三角形个数
样例输入:
4
2 2 3 4
输出:
3
样例解释:
2,3,4(第一个2),2,3,4(第二个2),(2,2,3)
思考和详解
本题可直接采用最朴素的思路:三重循环遍历每组数据,若某组数据均满足两边之和大于第三边则为所需。
具体代码
附:T1思考和详解
注:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/26465.html