当前位置: 首页 > news >正文

笔试强训(十)

目录

  • 一、选择题
  • 二、编程题
    • 2.1 密码强度等级
      • 2.1.1 题目
      • 2.1.2 题解
    • 2.2 井字棋
      • 2.2.1 题目
      • 2.2.2 题解

一、选择题

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

public class Test2 {
    public  int add(int a,int b){
        try{
            return a+b;
        }catch (Exception e ){
            System.out.println("catch语句块");
        }finally {
            System.out.println("finally 语句块");
        }
        return 0;
    }

    public static void main(String[] args) {
        Test2 test2=new Test2();
        System.out.println(test2.add(9, 34));
    }
}

//执行结果:
finally 语句块
43

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

class  A{
    private String a="aa";
    public  void methodB(){
       String b="bb";
       final String c="cc";
    }
}
//答案:堆区、栈区、栈区

a 是属于全局变量,也是实例成员变量,我们知道实例是通过new 关键字生成的,是放在堆上的,故变量a也出存储在堆中
b,c都是方法中的局部变量,存储在栈中

(3)下列代码的输出结果是什么()

   public static void main(String[] args) {
            try{
                int i=100/0;
                System.out.println(i);
            }catch (Exception e){
                System.out.print(1);
                throw new RuntimeException();
            }finally {
                System.out.println(2);
            }
        System.out.println(3);
    }
//输出结果:12

在这里插入图片描述
(4)关于下面这段代码叙述正确的是(C)

   public static void main(String[] args) {
       byte b1=1,b2=2,b3,b6;
       final byte b4=4,b5=5;
       b6=b4+b5;
       b3=b1+b2;
        System.out.println(b3+b6);
    }

A.输出结果:13
B.语句:b6=b4+b5; 编译出错
C.语句: b3=b1+b2; 编译出错
D.运行时抛出异常
在这里插入图片描述
(5)下面这段代码的输出结果是()

 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;
    }
   
//执行结果:AB,B   

二、编程题

2.1 密码强度等级

2.1.1 题目

在这里插入图片描述

2.1.2 题解

题目本身不难,只要细心一些就好

import java.util.*;

public class Main {
     public static int lengthScore(String str){
        if(str.length()>=8){
            return 25;
        }else if(str.length()>=5 && str.length()<=7){
            return 10;
        } else {
            return 5;
        }
    }
    public static  int letterScore(String str){
       int min=0;
       int max=0;
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)>='a' && str.charAt(i)<='z'){
                min++;
            }
            if(str.charAt(i)>='A' && str.charAt(i)<='Z'){
                max++;
            }
        }
        if(min!=0 && max!=0){
            return 20;
        }
        if(min==0 && max==0){
            return 0;
        }
        if(min!=0 || max!=0){
            return 10;
        }
        return 0;
    }
    
    public static int numScore(String str){
        int count=0;
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)>='0' && str.charAt(i)<='9'){
                count++;
            }
        }
        if(count>1){
            return 20;
        }else if(count==1){
            return 10;
        }else {
            return 0;
        }
    }
    public static int signScore(String str){
        int count=0;
        for(int i=0;i<str.length();i++){
            if((str.charAt(i)>=0x21 && str.charAt(i)<=0x2F)||
              (str.charAt(i)>=0x3A && str.charAt(i)<=0x40)||
              (str.charAt(i)>=0x5B && str.charAt(i)<=0x60)||
              (str.charAt(i)>=0x7B && str.charAt(i)<=0x7E)){
                count++;
            }
        }
        if(count>1){
            return 25;
        }else if(count==1){
            return 10;
        }else {
            return 0;
        }
    }
  public static void main(String[] args){
      
      Scanner scanner=new Scanner(System.in);
      String str=scanner.nextLine();
      //String str="Jl)M:+";
      int sum=0;
      int sumLength=lengthScore(str);
      int sumLetter=letterScore(str);
      int sumNum=numScore(str);
      int sumSign=signScore(str);
      sum=sumLength+sumLetter+sumNum+sumSign;
      if(sumLetter==20 && sumNum>0 && sumSign>0){
          sum+=5;
      }else if(sumNum>0 && sumLetter>0 && sumSign>0){
          sum+=3;
      }else if(sumLetter>0 && sumNum>0){
          sum+=2;
      }
      if(sum>=90){
          System.out.println("VERY_SECURE");
      }else if(sum>=80){
          System.out.println("SECURE");
      }else if(sum>=70){
          System.out.println("VERY_STRONG");
          
      }else if(sum>=60){
          System.out.println("STRONG");
          
      }else if(sum>=50){
          System.out.println("AVERAGE");
          
      }else if(sum>=25){
          System.out.println("WEAK");
          
      }else if(sum>=0){
          System.out.println("VERY_WEAK");  
      }
  }   
}

2.2 井字棋

2.2.1 题目

在这里插入图片描述

2.2.2 题解

思路:分别判断每一行
每一列和两条对角线是否符合获胜的要求

public class Board {
    public boolean checkWon(int[][] board) {
        int n=board.length;
        int m=board[0].length;
        
        //判断是否某一行有三个连在一起的棋子
        for(int i=0;i<n;i++){
            int sum=0;
            for(int j=0;j<n;j++){
                if(board[i][j]==1){
                    sum+=1;
                }
            }
            if(sum==n){
                return true;
            }
        }
        //判断是否某一列有三个连在一起的棋子
        for(int i=0;i<n;i++){
            int sum=0;
            for(int j=0;j<n;j++){
                if(board[j][i]==1){
                    sum+=1;
                }
            }
            if(sum==n){
                return true;
            }
        }
        //判断正对角线的三个棋子是否连成一排
        int sum=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(i==j){
                    sum+=board[i][j];
                }
            }
            if(sum==n){
                return true;
            }
        }
        sum=0;
        //判断斜对角线的三个棋子是否连成一排
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(i+j==n-1){
                    sum+=board[i][j];
                }
            }
            if(sum==n){
                return true;
            }
        }
        return false;
    }
}

相关文章:

  • 这个 MySQL 问题困扰了我一个月,现在终于把他解决了
  • SOD酶活性测定丨Abbkine超氧化物歧化酶(SOD)活性检测试剂盒
  • 参数解释安捷伦86142B光学分析仪
  • 利用回调函数在driver中收集覆盖率
  • ch05 pointer
  • Java:Kubernetes原生Java与Quarkus
  • 15天深度复习JavaWeb的详细笔记(十二)——综合案例
  • AD生成Gerber及CAM350检查
  • Python数据分析:折线图和散点图的绘制
  • 【Vue2基础】Vue项目搭建及组件使用
  • 艾美捷衣霉素Tunicamycin 化学性质及引用文献
  • 【小样本分割】Self-Support Few-Shot Semantic Segmentation
  • ch01变量和数据结构
  • 五分钟学会一门编程语言?
  • 【Python数据分析 - 11】:DataFrame索引操作(pandas篇)
  • 分享的文章《人生如棋》
  • (三)从jvm层面了解线程的启动和停止
  • export和import的用法总结
  • extract-text-webpack-plugin用法
  • HashMap剖析之内部结构
  • HTML5新特性总结
  • JavaScript 一些 DOM 的知识点
  • java小心机(3)| 浅析finalize()
  • Linux各目录及每个目录的详细介绍
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 基于组件的设计工作流与界面抽象
  • 技术:超级实用的电脑小技巧
  • 爬虫模拟登陆 SegmentFault
  • 如何解决微信端直接跳WAP端
  • 思否第一天
  • ​人工智能书单(数学基础篇)
  • !!Dom4j 学习笔记
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (C语言)球球大作战
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三分钟)速览传统边缘检测算子
  • (十一)手动添加用户和文件的特殊权限
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .NET 8.0 发布到 IIS
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net Remoting常用部署结构
  • .net 按比例显示图片的缩略图
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .Net6 Api Swagger配置
  • .NET企业级应用架构设计系列之开场白
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @31省区市高考时间表来了,祝考试成功
  • [20150629]简单的加密连接.txt
  • [BT]BUUCTF刷题第9天(3.27)
  • [cb]UIGrid+UIStretch的自适应
  • [Effective C++读书笔记]0012_复制对象时勿忘其每一部分