Java经典笔试题—day10

news2024/10/7 2:17:58

Java经典笔试题—day10

  • 🔎选择题
  • 🔎编程题
    • 🥝井字棋
    • 🥝密码强度等级
  • 🔎结尾

🔎选择题

(1)下列运算符合法的是( )

A.&&
B.<>
C.if
D.:=

A

B. 泛型的标志, 例如 <T>
C. if 表示关键字

(2)下面代码运行结果是( )


public class Test{	
    public int add(int a,int b){	
         try {	
             return a+b;		
         } 
        catch (Exception e) {	
            System.out.print("catch语句块 ");	
         }	
         finally{	
             System.out.print("finally语句块 ");	
         }	
         return 0;	
    } 
     public static void main(String argv[]){ 
         Test test =new Test(); 
         System.out.println("和是:"+test.add(9, 34)); 
     }
}

A.catch语句块 和是:43
B.编译异常
C.finally语句块 和是:43
D.和是:43 finally语句块

C

先去执行 finally, 输出 finally语句块
再去执行 return a+b, 输出 和是: 43
在这里插入图片描述

(3)下列Java代码中的变量a、b、c分别在内存的____存储区存放

class A {
    private String a = "aa";
    public boolean methodB() {
        String b = "bb";
        final String c = "cc";
    }
}

A.堆区、堆区、堆区
B.堆区、栈区、堆区
C.堆区、栈区、栈区
D.堆区、堆区、栈区
E.静态区、栈区、堆区
F.静态区、栈区、栈区

C

a 属于全局变量
b, c 属于局部变量
全局变量和类的实例化存储在
局部变量随着方法存储在栈帧中, 当方法调用结束后, 局部变量也就随之结束

(4)以下声明合法的是 ( )

A.default String s
B.public final static native int w( )
C.abstract double d
D.abstract final double hyperbolicCosine( )

B

A. 默认的访问权限修饰符是什么都不加, 不是 default. 例如 String s, 这就是默认的访问权限修饰符
C. 变量不能被声明为抽象类型
D. 抽象方法默认是需要被重写的, final 修饰代表不能重写, 因此不能这样搭配

(5)在使用super 和this关键字时,以下描述正确的是 ( )

A.在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
B.super()和this()不一定要放在构造方法内第一行
C.this()和super()可以同时出现在一个构造函数中
D.this()和super()可以在static环境中使用,包括static方法和static语句块

A

A. Java 语言规定, 在执行该类构造方法之前必须先执行父类的构造方法, 直到 Object 类的构造方法
B. super() 和 this() 一定要放在构造方法内第一行
在这里插入图片描述
在这里插入图片描述
C. this() 和super() 不可以同时出现在一个构造函数中
在这里插入图片描述
在这里插入图片描述
D.this()和super()不可以在static环境中使用
因为 this() 和 super() 指代的是对象(在构造方法中使用), static 修饰指代的是类

(6)下面代码的输出结果是什么?

public class ZeroTest {
    public static void main(String[] args) {
	    try{
	       int i = 100 / 0;
	       System.out.print(i);
	  	}catch(Exception e){
	       System.out.print(1);
	       throw new RuntimeException();
	  	}finally{
	       System.out.print(2);
	  	}
	    System.out.print(3);
 	}
 }

A.3
B.123
C.1
D.12

D

除法运算中, 要求分母不能为 0
因此 catch() 会捕获到异常, 打印1
最后执行 finally, 打印2
在这里插入图片描述

(7)有代码片段如下:

byte b1=1,b2=2,b3,b6;  
final byte b4=4,b5=6;  
b6=b4+b5;  
b3=(b1+b2);  
System.out.println(b3+b6);

A.输出结果:13
B.语句:b6=b4+b5编译出错
C.语句:b3=b1+b2编译出错
D.运行期抛出异常

C

b4, b5 属于 byte 类型, 当执行到 b4 + b5 时, 遇见 + 号 byte 会升级成 int
但 b4, b5 被 final 所修饰, 因此 b4, b5 仍然是 byte 类型
当执行到 b1 + b2 时, byte 类型的 b1, b2 会升级为 int b1, b2, 因此会发生编译错误
在这里插入图片描述

(8)以下java程序代码,执行后的结果是()

public class Test {	
    public static void main(String[] args) {	
        Object o = new Object() {	
             public boolean equals(Object obj) {	
                 return true;	
         	}	
     	};	
     	System.out.println(o.equals("Fred"));
     }
}

A.Fred
B.true
C.编译错误
D.运行时抛出异常

B

Object 是所有类的父类
Fred 是 String类型, String 类型继承自 Object
因此调用 Object 类的 equals 方法, 返回 true
在这里插入图片描述

(9)执行以下程序后的输出结果是()

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

A.A,A
B.A,B
C.B,B
D.AB,B

D

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

(10)下面所示的java代码,运行时,会产生()类型的异常

int Arry_a[] = new int[10];
System.out.println(Arry_a[10]);

A.ArithmeticException
B.NullPointException
C.IOException
D.ArrayIndexOutOfBoundsException

D

数组下标越界异常

🔎编程题


🥝井字棋


题目描述

给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成排的及获胜(及井字棋规则),返回当前玩家是否胜出。

在这里插入图片描述

解题思路

根据题意进行简单模拟即可
不要想复杂

朴素解法

枚举每一行, 判断该行是否连成排
枚举每一列, 判断该列是否连成排
枚举对角线, 判断该对角线是否连成排

在这里插入图片描述

public boolean checkWon(int[][] board) {
        // write code here
        // 判断行
        for(int i = 0; i < 3; i++) {
            if(board[i][0] + board[i][1] + board[i][2] == 3) return true;
        }
        // 判断列
        for(int i = 0; i < 3; i++) {
            if(board[0][i] + board[1][i] + board[2][i] == 3) return true;
        }

        // 判断对角线
        if(board[0][0] + board[1][1] + board[2][2] == 3) return true;
        if(board[0][2] + board[1][1] + board[2][0] == 3) return true;

        return false;
}

📢题目链接
链接: link


🥝密码强度等级


题目描述

密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。

一、密码长度:

5 分: 小于等于4 个字符
10 分: 5 到 7 字符
25 分: 大于等于8 个字符

二、字母:

0 分: 没有字母
10 分: 密码里的字母全都是小(大)写字母
20 分: 密码里的字母符合”大小写混合“

三、数字:

0 分: 没有数字
10 分: 1 个数字
20 分: 大于1 个数字

四、符号:

0 分: 没有符号
10 分: 1 个符号
25 分: 大于1 个符号

五、奖励(只能选符合最多的那一种奖励):

2 分: 字母和数字
3 分: 字母、数字和符号
5 分: 大小写字母、数字和符号

最后的评分标准:

>= 90: 非常安全
>= 80: 安全(Secure)
>= 70: 非常强
>= 60: 强(Strong)
>= 50: 一般(Average)
>= 25: 弱(Weak)
>= 0:  非常弱(Very_Weak)

对应输出为:

VERY_SECURE
SECURE
VERY_STRONG
STRONG
AVERAGE
WEAK
VERY_WEAK

请根据输入的密码字符串,进行安全评定。

注:
字母:a-z, A-Z
数字:0-9
符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)
!"#$%&'()*+,-./ (ASCII码:0x21~0x2F)
:;<=>?@ (ASCII码:0x3A~0x40)
[]^_` (ASCII码:0x5B~0x60)
{|}~ (ASCII码:0x7B~0x7E)

提示:
1 <= 字符串的长度<= 300

输入描述

输入一个string的密码

输出描述

输出密码等级

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

解题思路

根据题意进行简单模拟即可

//密码强度等级
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextLine()) {
            //输入的string密码
            String str = scan.nextLine();
            String safeGrade = safeGrade(str);
            System.out.println(safeGrade);
        }
    }

    private static String safeGrade(String str) {

        int ret = 0;
        ret += getLen(str);

        int character = getCharacter(str);
        int num = getNum(str);
        int asc = getAsc(str);
        ret += character + num + asc;

        //字母和数字
        if (character != 0 && num != 0) {
            if (asc == 0) {
                ret += 2;
            } else {//字母,数字和符号
                if (character != 20) {
                    ret += 3;
                } else {//大小写字母,数字和符号
                    ret += 5;
                }
            }
        }
        return func(ret);
    }


    private static String func(int ret) {
        if (ret >= 90) return "VERY_SECURE";
        else if (ret >= 80) return "SECURE";
        else if (ret >= 70) return "VERY_STRONG";
        else if (ret >= 60) return "STRONG";
        else if (ret >= 50) return "AVERAGE";
        else if (ret >= 25) return "WEAK";
        else return "VERY_WEAK";
    }

    //判断长度
    private static int getLen(String str) {
        int n = str.length();
        if (n <= 4) {
            return 5;
        } else if (n <= 7) {
            return 10;
        } else {
            return 25;
        }
    }
    //判断字母
    private static int getCharacter(String str) {
        //flg1 --> 小写字母 flg2 --> 大写字母
        boolean flg1 = false, flg2 = false;

        char[] chs = str.toCharArray();
        int n = chs.length;
        for (char c : chs) {
            if (c >= 'A' && c <= 'Z') {
                flg1 = true;
            }
            if (c >= 'a' && c <= 'z') {
                flg2 = true;
            }
        }

        if (!flg1 && !flg2) return 0;
        if (flg1 && flg2) return 20;
        return 10;
    }
    //判断数字
    private static int getNum(String str) {
        char[] chs = str.toCharArray();
        int ret = 0;

        for (char c : chs) {
            int x = c - '0';
            if (x >= 0 && x <= 9) ret++;
        }

        if (ret == 0) return 0;
        return ret == 1 ? 10 : 20;
    }
    //判断符号
    private static int getAsc(String str) {
        char[] chs = str.toCharArray();
        //0x21 ~ 0x2F (33 ~ 47)
        //0x3A ~ 0x40 (58 ~ 64)
        //0x5B ~ 0x60 (91 ~ 96)
        //0x7B ~ 0X7E (123 ~ 126)
        int ret = 0;
        for (char c : chs) {
            int x = c;
            if (x >= 33 && x <= 47) ret++;
            else if (x >= 58 && x <= 64) ret++;
            else if (x >= 91 && x <= 96) ret++;
            else if (x >= 123 && x <= 126) ret++;
        }

        if (ret == 0) return 0;
        return ret == 1 ? 10 : 25;
    }
}

📢题目链接
链接: link


🔎结尾

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

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

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

相关文章

【iOS】—— AFNetworking源码学习

AFNetworking 文章目录 AFNetworkingAFHTTPSessionManager *sessionManager [AFHTTPSessionManager manager];请求过程1、调用请求序列化类中的requestWithMethod方法进行序列化处理2、调用dataTaskWithRequest来生成一个datatask任务 AFURLSessionMangerAFHTTPSessionManagerU…

Linux服务器--基线检查

Linux服务器--基线检查 一、前言二、口令策略2.1 检查项—密码策略2.2 检查项—密码生存期2.3 检查项—检查密码生存期是否作用于每个用户 三、账号管理3.1 检查项—禁止存在UID相同的用户3.1 检查项—禁止存在空密码的帐户 四、认证授权4.1 检查项—登陆失败处理 五、文件权限…

Pytroch 模型权重初始化

目录 1 概念 2 权值初始化方法 2.1 常数初始化 2.2 均匀分布初始化 2.3 正态分布初始化 2.4 Xavier 均匀分布 2.5 Xavier 正态分布 2.6 kaiming 均匀分布 2.7 kaiming 正态分布 2.8 单位矩阵初始化 2.9 正交初始化 2.10 稀疏初始化 2.11 狄拉克δ函数初始化 3 py…

STC15通过内部BandGap电压值测量ADC外部输入电压

STC15通过内部BandGap参考电压值测量ADC通道外部输入电压 📜内部 BandGap参考电压值获取方式: 🎬通过VOFA图形化显示ADC值 🔧vofa+工具下载地址:https://www.vofa.plus/🌿验证对象:IAP15F2K61S2🌿时钟频率:11.0592MHz🌿波特率:115200🔖在通过STC-ISP烧录程序…

XSS攻击以及java应对措施

文章目录 一. XSS攻击介绍1. 前端安全2. xss攻击简介3. xss的攻击方式 二. java应对xss攻击的解决方案1. 强制修改html敏感标签内容2. 利用过滤器过滤非法html标签 一. XSS攻击介绍 1. 前端安全 随着互联网的高速发展&#xff0c;信息安全问题已经成为企业最为关注的焦点之一…

大脑的故事

婴⼉的神经元是相互独⽴的、未连接的。在⼈⽣的头两年&#xff0c; 随着⼤脑细胞接收感觉信息&#xff0c;它们异常迅速地连接起来。 每⼀秒就有多达 200万个新连接&#xff08;突触&#xff09;在婴⼉的⼤脑⾥形成。两岁时&#xff0c;⼩孩⼦拥有超过 100万亿个突触&#xff…

版本发布 | 科东软件Intewell-Win V2.1.0 release版本正式发布

Intewell是由科东软件自主研发的工业嵌入式实时操作系统&#xff0c;具有高实时&#xff0c;确定性、高安全、高可靠、虚拟化等特点。Intewell系统源自于1990年诞生的“道”操作系统&#xff0c;至今已有30多年历史&#xff0c;已在多种严苛环境下运行检验&#xff0c;广泛商用…

springboot+java超市收银管理系统idea

考虑到实际生活中在超市 POS 收银管理方面的需要以及对该系统认真的分析&#xff0c;将系统权限按管理员和员工这两类涉及用户划分。 Spring Boot 是 Spring 家族中的一个全新的框架&#xff0c;它用来简化Spring应用程序的创建和开发过程。也可以说 Spring Boot 能简化我们之…

mmFormer:用于脑肿瘤分割的不完全多模态学习的多模态医学Transformer

文章目录 mmFormer: Multimodal Medical Transformer for Incomplete Multimodal Learning of Brain Tumor Segmentation摘要本文方法Hybrid Modality-Specific EncoderModality-Correlated EncoderConvolutional DecoderAuxiliary Regularizer 实验结果 mmFormer: Multimodal …

Kali-linux使用假冒令牌

使用假冒令牌可以假冒一个网络中的另一个用户进行各种操作&#xff0c;如提升用户权限、创建用户和组等。令牌包括登录会话的安全信息&#xff0c;如用户身份识别、用户组和用户权限。当一个用户登录Windows系统时&#xff0c;它被给定一个访问令牌作为它认证会话的一部分。例如…

师从英国两院院士|生物医学科研人员获CSC资助赴剑桥大学访学

L老师拟申报CSC公派访问学者项目&#xff0c;希望到欧洲TOP学校&#xff0c;师从知名教授&#xff0c;在自己的研究基础上取得进一步的进展和突破。最终我们获得世界名校剑桥大学的邀请函&#xff0c;导师是英国皇家科学学会及英国医学科学院两院院士&#xff0c;凭借这份硬气十…

【SAP Abap】X-DOC:SE18/19 - SAP第四代增强概念理解

【SAP Abap】X-DOC&#xff1a;SE18/19 - SAP第四代增强概念理解 1、Tcode2、概念3、增强选项类型4、增强实现类型5、增强操作方式6、增强选项与增强实现关系7、增强实施建议 1、Tcode SE18&#xff1a;Business Add-Ins: Definitions&#xff08;增强点定义/查看&#xff09;…

云平台电子班牌系统源码

越来越多的教育单位加入了数字化校园和智慧校园建设行列。在不断探究、建设和实施的过程中&#xff0c;建立强大的、高扩展性的智慧教育管理平台被众多学校和教育单位所认同。智慧班牌是电子班牌信息发布系统的数据呈现端&#xff0c;也是智慧平台数据的采集工具之一。通过智慧…

EtherCAT运动控制器在数控加工手轮随动中的应用之C++

本文以正运动技术具备专用手轮接口的运动控制器ZMC408CE为例&#xff0c;介绍手轮、手轮的作用及原理、控制器手轮接口接线以及手轮程序配置。 上节讲解了使用正运动basic语言进行手轮应用配置&#xff0c;本节主要讲解C调用API函数库接口实现手轮配置。 01 手轮作用及原理 …

第一个gin程序

一、下载并安装gin go get -u github.com/gin-gonic/gin二、第一个gin程序 package mainimport "github.com/gin-gonic/gin"func sayHello(c *gin.Context) {// 返回给客户端一个JSON格式的数据&#xff0c;其中HTTP状态码为200&#xff0c;表示处理成功c.JSON(200…

成功的产品经理,应该了解一定的开发知识

产品经理在互联网产品开发中扮演着协调和推动的重要角色。然而&#xff0c;由于产品经理没有直接的实际权力&#xff0c;与开发团队合作时可能会遇到各种挑战。当你给开发人员分配任务时&#xff0c;他们可能会找各种借口推脱工作。 在项目开发中&#xff0c;所有成员必须共同…

【C++】详解STL中的list及其与vector的比较

目录 一、list的介绍及其使用1、list的介绍2、list的使用2.1 list的构造2.2 list iterator的使用3、list的元素访问接口4、list的调节器6、list的迭代器失效 二、list的模拟实现及反向迭代器1、模拟实现list2、list的反向迭代器 三、list和vector的比较 一、list的介绍及其使用…

142. 环形链表 II Python

文章目录 一、题目描述示例 1示例 2示例 3 二、代码三、解题思路 一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#x…

bug记录:遇到的tinycudann编译的N种错误

1. 编译成功&#xff0c;但是import tinycudann报错找不到DLL 编译成功&#xff0c;但是import tinycudann的时候&#xff0c;报错&#xff1a; 开始打断点&#xff0c;搜索电脑文件&#xff0c;发现_75_c.py应该是存在的&#xff0c;但就是读不到。 发现其所在的文件夹名称…

自定义组件间通信-2

目录 一、 父子组件间通信的3种方式 二、属性绑定&#xff0c;父-> 子 三、事件绑定&#xff0c;子-> 父 四、获取组件实例 一、 父子组件间通信的3种方式 属性绑定&#xff1a;用于父组件向子组件的指定属性设置设置数据&#xff0c;仅能设置JSON兼容的数据事件绑定&…