Java经典笔试题—day07

news2024/11/24 23:10:39

Java经典笔试题—day07

  • 🔎选择题
  • 🔎编程题
    • 🥝Fibonacci数列
    • 🥝合法括号序列判断
  • 🔎结尾

🔎选择题

(1)Java属于( )

A.操作系统
B.办公软件
C.数据库系统
D.计算机语言

D

(2)类声明中,声明抽象类的关键字是 ( )

A.public
B.abstract
C.final
D.class

B

A. 访问权限修饰符
C. final 表示常量, final 修饰类表示该类不能被继承, final 修饰方法表示该方法不能被重写
D. 声明类的关键字

(3)在使用 interface 声明一个接口时,只可以使用()修饰符修饰该接口

A.private
B.protected
C.默认
D.public

D

修饰接口的修饰符为 public

(4)Math.round(11.5) 等于()

A.11
B.11.5
C.12
D.12.5

C

可以将 Math.round() 方法理解为 4 舍 5 入
在这里插入图片描述

(5)以下对继承的描述错误的是()

A.Java中的继承允许一个子类继承多个父类
B.父类更具有通用性,子类更具体
C.Java中的继承存在着传递性
D.当实例化子类时会递归调用父类中的构造方法

A

允许多个子类(>= 1) 继承一个父类, 不允许一个子类继承多个父类
允许一个类实现多个接口

(6)在 java 中 , 一个类()

A.可以继承多个类
B.可以实现多个接口
C.在一个程序中只能有一个子类
D.只能实现一个接口

B

A. 一个子类只能继承一个父类
C. 一个程序可以有多个子类
D.一个类可以实现多个接口

(7)关于以下程序代码的说明正确的 ( )

class HasStatic{
    private static int x = 100;
    public static void main(String args[ ]){
        HasStatic hs1 = new HasStatic();
        hs1.x++;
        HasStatic hs2 = new HasStatic();
        hs2.x++;
        hs1=new HasStatic();
        hs1.x++;
        HasStatic.x--;
        System.out.println( "x=" +x);
    }
}

A.5行不能通过编译,因为引用了私有静态变量
B.10行不能通过编译,因为x是私有静态变量
C.程序通过编译,输出结果为:x=103
D.程序通过编译,输出结果为:x=102

D

被 static 修饰的成员变量, 表示该类只有这一份, 所以每次 new HasStatic() 产生新的对象时, 并不会影响 x 变量
未被 static 修饰的成员变量, 表示该类可以有多份, 随着每次 new HasStatic() 产生新的对象其值也跟着发生变化
在这里插入图片描述

(8)以下 _____ 不是 Object 类的方法

A.clone()
B.finalize()
C.toString()
D.hasNext()

D

在这里插入图片描述

(9)下面哪一项不是 java 类访问权限控制关键字

A.public
B.this
C.private
D.protected

B

访问权限修饰符 public, protected, default, private
访问权限 public > protected > default > private

(10)Java 语言使用的字符码集是 ( )

A.ASCII
B.BCD
C.DCB
D.Unicode

D

🔎编程题

🥝Fibonacci数列

题目描述

Fibonacci 数列是这样定义的:
F[0] = 0
F[1] = 1
for each i ≥ 2: F[i] = F[i-1] + F[i-2]
因此,Fibonacci 数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在 Fibonacci 数列中的数我们称为 Fibonacci数。给你一个N,你想让其变为一个 Fibonacci 数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为 Fibonacci 数。

输入描述

输入为一个正整数N(1 ≤ N ≤ 1,000,000)

输出描述

输出一个最小的步数变为Fibonacci数

在这里插入图片描述

解题思路

以输入的数字15为例

Fibonacci 数列为 0 1 1 2 3 5 8 13 21

其变成一个 Fibonacci 数的最小步数是2

因为15的左侧是13, 15的右侧是21
15 - 13 = 2, 21 - 15 = 6

于是问题就变为找到输入数字两侧的 Fibonacci 数字
然后返回 Math.min(n - pre, cur - n)

在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            int n = sc.nextInt();
            int time = getNum(n);
            System.out.println(time);
        }
    }

    private static int getNum(int n) {
        if(n < 2) return 0;
        // pre 前一个元素, cur 当前元素, next 下一个元素
        int pre = 0, cur = 1, next = 0;
        while(cur < n) {
            next = pre + cur;
            pre = cur;
            cur = next;
        }
        return Math.min(n - pre , cur - n);
    }
}

📢题目链接
链接: link


🥝合法括号序列判断

题目描述

给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)

在这里插入图片描述

解题思路

解法1

  • 题目要求合法的括号串只能由括号组成, 因此先对长度进行判断, 如果长度为奇数, return false;
  • 遍历字符串, 如果遇到的不是 ‘(’ 或者 ‘)’ , return false;
  • 将字符串中的字符存储到栈中, 遇到 ‘)’ 判断当前的栈顶元素是否为 ‘(’ , 如果是就弹出
  • 最后判断栈中的元素是否为空
    • 为空, 代表合法
    • 不为空, 代表不合法
public static boolean chkParenthesis(String A, int n) {
        // write code here
        //奇数直接false
        if((n & 1) == 1) return false;
        char[] chs = A.toCharArray();

        Deque<Character> stack = new ArrayDeque<>();
        for (int i = 0; i < n; i++) {
            char c = chs[i];
            //只能由括号组成
            if(c != '(' && c != ')') return false;

            if(!stack.isEmpty() && c == ')' && stack.peekLast() == '(') {
                stack.pollLast();
                continue;
            }

            stack.push(c);

        }
        return stack.isEmpty();
 }

解法2

  • 题目要求合法的括号串只能由括号组成, 因此先对长度进行判断, 如果长度为奇数, return false;
  • 遍历字符串, 如果遇到的不是 ‘(’ 或者 ‘)’ , return false;
  • 定义一个变量 int cnt
    • 当遇到 ‘(’ 时, cnt++
    • 当遇到 ‘)’ 时, cnt–
    • 如果 cnt < 0 , return false;
    • 因为面对任何一个合法的括号序列, 一定是先出现 ‘(’ 再出现 ‘)’ , 也就说明了 cnt 的个数始终 >= 0
public static boolean chkParenthesis(String A, int n) {
        if((n & 1) == 1) return false;
        int cnt = 0;
        for (char c : A.toCharArray()) {
            if(c != '(' && c != ')') return false;
            if(c == '(') cnt++;
            if(c == ')') cnt--;
            if(cnt < 0) return false;
        }
        return true;
}

📢题目链接
链接: link


🔎结尾

创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据Doris(十八):Properties配置项和关于ENGINE

文章目录 Properties配置项和关于ENGINE 一、Properties配置项 二、关于ENGINE Properties配置项和关于ENGINE 一、Properties配置项 在创建表时,可以指定properties设置表属性,目前支持以下属性: replica

Kali-linux系统指纹识别

现在一些便携式计算机操作系统使用指纹识别来验证密码进行登录。指纹识别是识别系统的一个典型模式&#xff0c;包括指纹图像获取、处理、特征提取和对等模块。如果要做渗透测试&#xff0c;需要了解要渗透测试的操作系统的类型才可以。本节将介绍使用Nmap工具测试正在运行的主…

前端面试题汇总大全 -- 持续更新!

文章目录 一、html 系列 ⭐⭐⭐⭐⭐1、H5新增特性和css3新增特性&#xff1f;2、什么是HTML5&#xff0c;以及和HTML的区别是什么&#xff1f;3、说说你对 Dom 树的理解&#xff1f;4、跨域时怎么处理 cookie&#xff1f;5、说说你对 SSG 的理解&#xff1f;6、从输入url&#…

Azure API 管理缺陷突出了 API 开发中的服务器端请求伪造风险

微软最近修补了其 Azure API 管理服务中的三个漏洞&#xff0c;其中两个漏洞启用了服务器端请求伪造 (SSRF) 攻击&#xff0c;这些攻击可能允许黑客访问内部 Azure 资产。 概念验证漏洞用于突出开发人员在尝试为自己的 API 和服务实施基于黑名单的限制时可能犯的常见错误。 W…

JQuery 详细教程

文章目录 一、JQuery 对象1.1 安装和使用1.2 JQuery包装集对象 二、JQuery 选择器2.1 基础选择器2.2 层次选择器2.3 表单选择器 三、JQuery Dom 操作3.1 操作元素3.1.1 操作属性3.1.2 操作样式3.1.3 操作内容 3.2 添加元素3.3 删除元素3.4 遍历元素 四、JQuery 事件4.1 ready 加…

C/C++每日一练(20230513) 二叉树专场(7)

目录 1. 翻转二叉树 &#x1f31f; 2. 二叉树的最小深度 &#x1f31f; 3. 填充每个节点的下一个右侧节点指针 &#x1f31f;&#x1f31f; 附&#xff1a;二叉树的序列化与反序列化 &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一…

消息队列中间件介绍

消息队列介绍 消息队列中间件是大型系统中的重要组件&#xff0c;已经逐渐成为企业系统内部通信的核心手段。它具有松耦合、异步消息、流量削峰、可靠投递、广播、流量控制、最终一致性等一系列功能&#xff0c;已经成为异步RPC的主要手段之一。 目前常见的消息中间件有Active…

知名高校博士:我改了这2个地方,一开始被秒拒的论文很快就成功发表了~

手稿被拒后&#xff0c;你会怎么做&#xff1f;是直接换期刊重投&#xff0c;还是先仔细修改下论文呢&#xff1f; 伊利诺伊大学博士Sara E. Skrabalak分享了自己在论文被秒拒后&#xff0c;修改了文章部分内容就成功发表的经验。我们来看看她到底做了哪些修改吧 ~ Sara E. Sk…

Java技术总结

Java技术总结 1.高并发1.什么是高并发2.如何提升系统的并发能力3.常见的互联网分层架构整个系统各层次的水平扩展&#xff0c;又分别是如何实施的呢&#xff1f;4.分层水平扩展架构实践5.总结 2.Java 线程的 5 种状态1.新建状态(New):2.就绪状态(Runnable):3.运行状态(Running)…

【企业信息化】第1集 免费开源ERP: Odoo 16 CRM客户关系管理系统

文章目录 前言一、概览二、使用功能1.加快销售速度2.销售线索3.机会4.客户5.高效沟通6.报告7.集成 三、总结 前言 世界排名第一的免费开源ERP: Odoo 16 CRM客户关系管理系统。真正以客户为中心的CRM。 一、概览 获得准确预测 使用可操作数据&#xff0c;以做出更好的决定。 获…

Java --- redis7之缓存预热+雪崩+穿透+击穿

目录 一、缓存预热 二、缓存雪崩 三、缓存穿透 3.1、解决方案 3.1.1、空对象缓存或者缺省值 3.1.2、Goolge布隆过滤器Guava解决缓存穿透 四、缓存击穿 4.1、危害 4.2、解决方案 4.3、模拟百亿补贴活动案例 一、缓存预热 场景&#xff1a;MySQL有N条新记录&#xff…

基于Java的班级管理系统的设计与实现(论文+源码)_kaic

摘 要 伴随着信息技术不断的飞速发展&#xff0c;信息技术给现在的生活也在带来翻天覆地的变化。信息时代的到来已经成为一种趋势&#xff0c;人类的发展历史正在进入到一个新的时代。信息技术已经在生活中的各个领域得到普及以及被应用。班级管理在信息技术发展之前一直都是…

金子数量——c++

金子数量 Description 某地区有n条(编号依次为1到n)互不交叉的道路&#xff0c;每条道路上都有m个数字&#xff0c;其中能被8整除的数称为金子数&#xff0c;这个数字表示其重量。 如下表是3条道路&#xff0c;每条道路中有5个数的一种可能情况。 苏海想在n条道路中走一条金子…

[架构之路-195]-《软考-系统分析师》- MVC、MVP、MVVM架构各自的优缺点

目录 一、MVC 1.1 MVC的基本结构 1.2 MVC的工作流程 1.3 MVC的优缺点 二、MVP 2.1 MVP的基本结构 2.2 MVP的工作流程 2.3 MVP的优缺点 三、MVVM 3.1 MVVM的基本结构 3.2 MVVM的工作流程 3.3 MVVM的优缺点 前言&#xff1a; MVC&#xff1a;一个controller对应多个v…

Windows SSH远程连接Linux服务器 - 无公网IP内网穿透

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…

学系统集成项目管理工程师(中项)系列02_文件和标准

1. 文件 1.1. 2020 年 4 月&#xff0c;中共中央国务院颁发《关于构建更加完善的要素市场化配置体制的意见》首次将数据作为一种新型的生产要素置入文件 1.1.1. 【21下选01】 1.2. 2021 年印发的 5G 应用扬帆行动计划(2021-2023)的通知到 2023 年&#xff0c;我国 5G 应用发…

数列合并C语言

已知两个不同长度的降序排列的数列&#xff08;假设序列的长度都不超过5&#xff09;&#xff0c;请编程将其合并为一个数列&#xff0c;使合并后的数列仍保持降序排列。 【提示】假设两个降序排列的数列分别保存在数组a和数组b中&#xff0c;用一个循环&#xff0c;从前往后依…

利用 Amazon API Gateway 和 Amazon Lambda 处理 Cloudfront 的内容请求

概述 国内 Amazon Cloudfront 目前不支持 Lambdaedge 功能&#xff0c;不能实现基于 CDN 的 A/B 测试、rewrite、redirect、token 认证和产生 response 等功能&#xff0c;本文介绍如何利用 API Gateway 和 Lambda 实现 Lambdaedge 的功能。下面实验介绍通过 request header 参…

HttpClient5如何进行代理

文章目录 说明原始HttpClient代理HttpClient总结 说明 在这篇文章中会对HttpClient5如何进行代理进行说明&#xff0c;我的HttpClient版本是5.2.1。在进行代理之前请先准备好代理服务器。 原始HttpClient 下面是没有进行代理设置的代码&#xff0c;尝试去访问openai接口 Tes…

GPT-1面试题

简介 1、GPT-1 是什么&#xff1f;它是基于什么模型的&#xff1f; GPT-1 是一种用于自然语言处理的机器学习模型&#xff0c;它是基于 Transformer 架构的。它是 OpenAI 在 2018 年发布的第一个 GPT 模型&#xff0c;有 1.17 亿个参数&#xff0c;比之前的语言模型有了显著的…