Java经典笔试题—day05

news2024/12/26 11:14:11

Java经典笔试题—day05

  • 🔎选择题
  • 🔎编程题
    • 🥝统计回文
    • 🥝连续子数组最大和
  • 🔎结尾

🔎选择题

(1)下面的程序 编译运行后,在屏幕上显示的结果是()

public class Test {
	public static void main(String args[]) {
		int x, y;
		x = 5 >> 2;
		y = x >>> 2;
		System.out.println(y);
	}
}

A. 0
B. 2
C. 5
D. 80

A

x : 5(0101) >> 2 => 1(0001)
y : 1(0001) >>> 2 => 0(0000)

(2)以下代码结果是什么?

public class foo {
	public static void main(String sgf[]) {
		StringBuffer a=new StringBuffer("A");
		StringBuffer b=new StringBuffer("B");
		operate(a,b);
		System.out.println(a+"."+b);
	}
	static void operate(StringBuffer x,StringBuffer y) {
		x.append(y);
		y=x;
	}
}

A. 代码可以编译运行,输出“AB.AB”
B. 代码可以编译运行,输出“A.A”
C. 代码可以编译运行,输出“AB.B”
D. 代码可以编译运行,输出“A.B”

C

通过 operate() 方法传入 StringBuffer a, StringBuffer b
x.append(y) 对 x 的值进行了修改, 也就意味着 a 的值进行了修改
y=x, 将 x 的地址赋值给 y, 此时 y 指向了 x, 并不会影响 b 的值

(3)在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()

A. this.A(x)
B. this(x)
C. super(x)
D. A(x)

B

在这里插入图片描述

(4)下面代码的运行结果是()

public static void main(String[] args){
 	String s;
	System.out.println("s="+s);
}

A. 代码编程成功,并输出”s=”
B. 代码编译成功,并输出”s=null”
C. 由于String s没有初始化,代码不能编译通过。
D. 代码编译成功,但捕获到NullPointException异常

C

此处的 String s 是一个局部变量, 未进行初始化不能编译
如果将 String s 改成全局变量, 则输出 “s=null”
在这里插入图片描述

(5)在java7中,下列不能做switch()的参数类型是?

A. int型
B. 枚举类型
C. 字符串
D. 浮点型

D

不能做 switch() 参数的类型包括 1. double 2.float 3. long 4. boolean
能做 switch() 参数的类型包括 1. int 2. char 3.short 4. byte

(6)一个以”.java”为后缀的源文件

A. 只能包含一个类,类名必须与文件名相同
B. 只能包含与文件名相同的类以及其中的内部类
C. 只能有一个与文件名相同的public类,可以包含其他类
D. 可以包含任意类

C

(7)以下代码返回值是什么?

public boolean returnTest() {
	try {
 		return true;
 	}
 	catch (Exception e) {
 
 	}
 	finally {
 		return false;
 	}
}

A. true
B. false

B

最后一定会去执行 finally, 因此返回值是 false

(8)以下()不是合法的标识符?

A. STRING
B. x3x
C. void
D. deSf

C

Java 的标识符由数字, 字母, 下划线( _ ), 美元符号( $ )或人民币符号( ¥ )组成
要求标识符的首位不能是数字, 且关键字不能作为标识符

(9)下列有关JAVA异常处理的叙述中正确的是()

A. finally是为确保一段代码不管是否捕获异常都会被执行的一段代码
B. throws是用来声明一个成员方法可能抛出的各种非运行异常情况
C. final用于可以声明属性和方法,分别表示属性的不可变及方法的不可继承
D. throw是用来明确地抛出一个异常情况

A, B, D

A. finally 通常用于资源的关闭, 所以 finally 是一段一定会被执行的代码
B. throws 可以用于声明非运行异常, 也可以声明运行异常
C. final 声明属性表示该属性不可变, 声明方法表示该方法不可重写
D. throw 用于明确地抛出一个异常

(10)指出以下程序运行的结果是 ( )

public class Example{
 	String str=new String("good");
 	char[]ch={'a','b','c'};
 	public static void main(String args[]){
 		Example ex=new Example();
 		ex.change(ex.str,ex.ch);
 		System.out.print(ex.str+" and ");
 		System.out.print(ex.ch);
 	}
 	public void change(String str,char ch[]){
 		//引用类型变量,传递的是地址,属于引用传递。
 		str="test ok";
 		ch[0]='g';
 	}
}

A. good and abc
B. good and gbc
C. test ok and abc
D. test ok and gbc

B

changes() 方法是引用传递
进入 changes() 方法的形参 str 最初指向的是 “good” 的地址
当执行到 str=“test ok” 时, 形参 str 指向的是 “test ok” 的地址
而实参 str 仍然指向的是 “good” 的地址
ch[0] = ‘g’ 是将 ch 所指向地址的值进行了修改, 即 char[] ch = {‘g’, ‘b’, ‘c’}
但 ch 所指向的对象未发生改变

🔎编程题

🥝统计回文

题目描述

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。
现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。
你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。
如果字符串B插入的位置不同就考虑为不一样的办法。

例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:

  • 在A的第一个字母之前: “baba” 不是回文
  • 在第一个字母‘a’之后: “abba” 是回文
  • 在字母‘b’之后: “abba” 是回文
  • 在第二个字母’a’之后 “abab” 不是回文
    所以满足条件的答案为2

输入描述

每组输入数据共两行。 第一行为字符串A 第二行为字符串B 字符串长度均小于100且只包含小写字母

输出描述

输出一个数字,表示把字符串B插入字符串A之后构成一个回文串的方法数

在这里插入图片描述

解题思路

枚举
将字符串 B 分别插入到 字符串 A 的(0 ~ n) 上
判断当前拼接的字符串是不是回文串

import java.util.Scanner;
//统计回文
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while(scan.hasNextLine()) {
            String a = scan.nextLine();
            String b = scan.nextLine();
            int ret = 0;
            //枚举
            for (int i = 0; i <= a.length(); i++) {
                StringBuilder s = new StringBuilder(a).insert(i,b);
                if(isSame(s.toString()))
                    ret++;
            }

            System.out.println(ret);
        }
    }

    //判断是否是回文串
    private static boolean isSame(String s) {
        char[] chs = s.toCharArray();
        int left = 0,right = chs.length - 1;
        while(left < right) {
            if(chs[left++] != chs[right--])
                return false;
        }
        return true;
    }
}

📢题目链接
链接: link


🥝连续子数组最大和

题目描述

一个数组有 N 个元素,求连续子数组的最大和。
例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3

输入描述

输入为两行。
第一行一个整数n(1 <= n <= 100000),表示一共有n个元素
第二行为n个数,即每个元素,每个整数都在32位int范围内。
以空格分隔。

输出描述

所有连续子数组中和最大的值。

在这里插入图片描述

解题思路

以 -6, -3, 7, -1, 2为例

设置一个变量为 sum, 初始值为 nums[0], 记录当前连续子数组中和的最大值
设置一个变量为 max, 初始值为 nums[0], 每次比较 max 和 sum 的结果, 记录整体连续子数组中和的最大值

sum = -6, max = -6

下标为1时, sum = -3, max = -3, 当前的连续子数组从下标为1开始, 而不是下标为0开始了
下标为2时, sum = 7, max = 7, 当前的连续子数组从下标为2开始, 而不是下标为1开始了
下标为3时, sum = 6, max = 7, 当前的连续子数组依旧从下标为2开始
下标为4时, sum = 8, max = 8, 当前的连续子数组依旧从下标为2开始

import java.util.Scanner;
//连续子数组最大和
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while(scan.hasNextInt()) {
            int n = scan.nextInt();//n个元素
            int[] nums = new int[n];
            for(int i = 0; i < n; i++) nums[i] = scan.nextInt();

            getMax(nums, n);
        }
    }

    private static void getMax(int[] nums, int n) {
        int max = nums[0], sum = nums[0];
        for (int i = 1; i < n; i++) {
            sum = Math.max(sum + nums[i], nums[i]);
            max = Math.max(sum, max);
        }
        System.out.println(max);
    }
}

📢题目链接
链接: link


🔎结尾

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

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

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

相关文章

使用敏捷开发工具做敏捷需求管理流程

上一篇我们介绍了如何管理产品路线图&#xff0c;这一篇我们介绍下如何管理产品Backlog。 史诗故事通常都是比较大的故事&#xff0c;所以我们需要将史诗故事规划到产品Backlog中&#xff0c;以便让团队在产品Backlog中对史诗故事进行拆分&#xff0c;将其拆解为更小的用户故事…

Kubernetes对象之PersistentVolume,PersistentVolumeClaim和StorageClass

前面我们学习了Kubernetes中的Volume&#xff0c;我们可以发现前文中的Volume&#xff08;无论何种类型&#xff09;和使用它的Pod都是一种静态绑定关系&#xff0c;在Pod定义文件中&#xff0c;同时定义了它使用的Volume。在这种情况下&#xff0c;Volume是Pod的附属品&#x…

linux安装redis服务

linux环境采用centos7 1.下载redis安装包 官网下载地址&#xff1a;https://redis.io/download/ 2.安装redis依赖 yum install -y gcc tcl3.上传安装包并解压 tar -xzf redis-6.2.12.tar.gz4.编译安装 进入目录下并安装 cd redis-6.2.12 make && make install默认…

Python 密码破解指南:15~19

协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【OpenDocCN 饱和式翻译计划】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 收割 SB 的人会被 SB 们封神&#xff0c;试图唤醒 SB 的人是 SB 眼中的 SB。——SB 第三定律 十五、…

基于springboot会员制医疗预约服务管理信息系统

开发技术介绍 Java语言简介 Java是由SUN公司推出&#xff0c;该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称&#xff0c;也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景&#xff…

APP多版本并行更新方案

目录 App为什么要更新版本更新类型分析应该如何解决升级样式的收集表结构 App为什么要更新版本 任何一款APP都不可能完美&#xff0c;功能也不可能完善&#xff0c;需要不断迭代更新完善APP。例如&#xff1a;随着业务的不断发展而叠加的功能、产品发展到一定程度需要大改版提升…

【源码解析】Redisson分布式限流器RRateLimiter源码分析

前面已经写了一篇Redisson的分布式限流的使用&#xff0c;Redisson分布式限流的简单实践&#xff0c;对其中的原理很好奇。 一、使用 // 1、 声明一个限流器 RRateLimiter rateLimiter redissonClient.getRateLimiter(key);// 2、 设置速率&#xff0c;5秒中产生3个令牌 rat…

如何把软件从C盘移到D盘?

​为什么要把软件从C盘移到D盘&#xff1f; C盘是安装操作系统的系统分区。虽然很多用户在安装系统的时候会给C盘分配了大量的磁盘空间&#xff0c;但是大多数用户会发现C盘很快就会无缘无故的被占满。这是为什么呢&#xff1f;这主要是由于大多数三方程序默认安装在C盘造成…

安科瑞5G智慧水务能效管理平台在九江环境治理中的应用

摘要&#xff1a;当下&#xff0c;以数字孪生为主的数字技术愈发成熟&#xff0c;为使得长江水环境治理能够“长治久安”&#xff0c;上海院在长江大保护先行先试城市九江城中水环境治理中启用了智慧水务先进理念&#xff0c;搭建了基于数字孪生技术的智慧水务平台。通过数字孪…

Vue 页面列表中部门类型根据层级缩进显示 ASCII 160

如上图, 部门类型都是一长溜, 没有根据级别进行缩进. 修改的时候尝试了在类型字段前面加了空格(ASCII-32), tab制表符(ASCII-09), 但是加载的时候都被去掉了,没有起作用. 然后就想这找个特殊空格试下,类似于CF中的空白用户名. 后来查了下ASCII码表发现还有挺多的, 不过经过测试…

U-boot常用命令(一)

信息查询命令 bdinfo&#xff0c;查看板子信息。 可以得到DRAM的起始地址和大小、启动参数保存起始地址、波特率、sp&#xff08;堆栈指针&#xff09;起始地址信息。 printenv输出环境变量信息&#xff0c;uboot 也支持 TAB 键自动补全功能&#xff0c;输入“print” 然后按…

STL-deque容器

双端数组&#xff0c;可以对头端进行插入删除操作 deque 容器和 vecotr 容器有很多相似之处&#xff0c;比如&#xff1a; deque 容器也擅长在序列尾部添加或删除元素&#xff08;时间复杂度为O(1)&#xff09;&#xff0c;而不擅长在序列中间添加或删除元素。deque 容器也可…

web自动化测试进阶篇01 ——— 策略模式的实践与技巧

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

【rust】| 02——语法基础_变量(不可变?)和常量

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础_变量(不可变?)和常量 文章目录 1. 变量1.1 变量的定义1.2 试验变量的不可变特性 2. 常量2.1 常量的定义 3. 覆盖(同名变量)3.1 修改已定义变量的数据类型3.2 1…

第5章 负载均衡

第5章 负载均衡 5.1 proxy_pass详解 在nginx中配置proxy_pass代理转发时&#xff0c;如果在proxy_pass后面的url加/&#xff0c;表示绝对根路径&#xff1b;如果没有/&#xff0c;表示相对路径&#xff0c;把匹配的路径部分也给代理走。 假设下面四种情况分别用 http://192.…

深度学习与文本聚类:一篇全面的介绍与实践指南

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

vivado手写ROM改IP核

一、引言 手写了一个ROM&#xff0c;用于ADC或者DAC的寄存器配置。DAC出来的波形总是有两个对称的小肩膀&#xff0c;找不到原因。时序没有报错&#xff0c;但是有延迟。之前听同事说他们也遇到过这样的问题&#xff0c;是时序问题。所以&#xff0c;我也想试一下&#xff…

杂谈系列:唐高祖~开元通宝

唐高祖李渊&#xff08;566年12月 &#xff0d;635年6月 &#xff09;&#xff0c;字叔德。中国唐朝开国皇帝&#xff08;618年6月18日&#xff0d;626年9月4日在位&#xff09;。 作为唐朝开国的帝王&#xff0c;史学界对李渊的评价不一。有观点认为他优柔失断&#xff0c;赏罚…

源码级别讲解 redis 底层数据结构

redis 底层数据结构 Redis作为Key-Value存储系统&#xff0c;数据结构如下&#xff1a; Redis没有表的概念&#xff0c;Redis实例所对应的db以编号区分&#xff0c;db本身就是key的命名空间。 比如&#xff1a;user:1000作为key值&#xff0c;表示在user这个命名空间下id为10…

二叉树的层级遍历以及[NOIP2015 普及组] 扫雷游戏、有效时间的数目

一、二叉树的层级遍历 二叉树的层级遍历看着比其他遍历简单&#xff0c;但是我感觉实施起来却比其他遍历难&#xff0c;它主要是通过队列实现的 比如在这样的一颗二叉树中 我没先将a入队 队列&#xff1a;a 当a出队的时候就将它的左儿子和右儿子入队 队列&…