当前位置:网站首页 > Java基础 > 正文

java编程基础课后习题答案



Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解

目录
  • Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解
    • 第一章选择题
      • 1.1 Java与面向对象程序设计简介
        • T4
          • 题面
          • 答案
          • 详解
        • T9
          • 题面
          • 答案
          • 详解
        • T10
          • 题面
          • 答案
          • 详解
        • T11
          • 题面
          • 答案
          • 详解
        • T15
          • 题面
          • 答案
          • 详解
      • 1.2 基本数据类型与表达式
        • T12
          • 题面
          • 答案
          • 详解
        • T14
          • 题面
          • 答案
          • 详解
      • 1.3数组
        • T1
          • 题面
          • 答案
          • 详解
        • T4
          • 题面
          • 答案
          • 详解
      • 1.4算法的流程控制
        • T7
          • 题面
          • 答案
          • 详解
    • 第一章编程练习题(1.5)
      • T1 Pow函数
        • 题面
        • 样例输入:
        • 样例输出:
        • 思考和详解
        • 具体代码
      • T2 哈密顿距离
        • 题面
        • 样例输入:
        • 样例输出:
        • 样例解释:
        • 思考和详解
        • 具体代码
      • T3 组三角形
        • 题面
        • 样例输入:
        • 输出:
        • 样例解释:
        • 思考和详解
        • 具体代码
      • 注:

第一章选择题

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

详解

声明数值型变量有如下规则

数据类型 文字量 十进制数,开头不为;跟十六进制数,如;跟八进制数,如 同上,但后面再跟一个或,如, 数字后跟f或F,如, 后面可选d或D做后缀,如: 或

数值型变量范围如下

类型 说明 长度 最小值 最大值 byte 带符号微整数 8位 -128 127 short 带符号短整数 16位 -215 215-1 int 带符号整数 32位 -231 231-1 long 带符号长整数 64位 -263 java编程基础课后习题答案263-1 float 单精度浮点数 32位 -2-149 (2-2-23)·2127 double 双精度浮点数 64位 -2-1074 (2-2-52)·21023

(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

思考和详解

本题作为这门课程第一个编程题,在提交代码方式上就卡住了我,我在这里分享一下我踩过的坑供大家参考。

  1. 提交代码到oj上时要将之类的包删去,本条对所有评测Java语言的oj均有效[1]

  2. 在一般oj上,我们提交Java代码的要求往往是形如以下[1:1]

    
    
  3. 值得注意的是,在学堂在线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思考和详解

注:


版权声明


相关文章:

  • java语言基础知识总结教学2024-10-13 23:26:04
  • java基础从哪学起2024-10-13 23:26:04
  • java基础单选题2024-10-13 23:26:04
  • java没有基础怎样进公司2024-10-13 23:26:04
  • java基础语言水平2024-10-13 23:26:04
  • 头歌java多线程基础2024-10-13 23:26:04
  • java编程基础期末2024-10-13 23:26:04
  • java 基础常见问题2024-10-13 23:26:04
  • 没有基础怎么做java2024-10-13 23:26:04
  • java 基础公众号2024-10-13 23:26:04