【笔试训练】统计回文

news2024/11/23 17:17:22

一、单选

1、以下代码结果是什么()

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方法中给x拼接一个y的值,那么a的值就是AB,将x赋值给y表示的是将对象地址传给了y,y=x表示的是让y指向了其他对象。所以b的值没有变化,所以最终结果为AB.B

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

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


答案:B

this.只能是类中的普通方法和属性,不能是构造方法,想要在类A的其他构造方法中调用这个构造方法使用的是this(x).

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

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

 A. 代码编程成功,并输出”s=”

B. 代码编译成功,并输出”s=null”

C. 由于String s没有初始化,代码不能编译通过。

D. 代码编译成功,但捕获到NullPointException异常


答案:C

这个s变量由于是在方法中,所以他是一个局部变量,Java中想要使用局部变量,就必须先给变量初始化。

4、以下代码的返回值是()

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

     }finally{
         return false;
     }
}

A. true           B. false


答案:B

按照我们正常的思维程序遇到return就结束了,但是由于是try-catch,finally是一定会被执行的,最后执行的是finally中的代码,所以程序的输出结果为false.

5、指出以下程序运行的结果是

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

这个题和第一个题类似,引用类型传参,传递的是对象的地址,并不是对象的值。所以change方法中对对象的值做出的改变,会影响到方法外部的对象,但是change方法中str对象表示的意思为修改了形参str的执行,而不是修改对象中的值,并没有改变外部str的值。ch数组中将0下标位置的值修改为g,所以程序的最终输出结果为good and gbc.

二、多选 

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

A. finally是为确保一段代码不管是否捕获异常都会被执行的一段代码

B. throws是用来声明一个成员方法可能抛出的各种非运行异常情况

C. final用于可以声明属性和方法,分别表示属性的不可变及方法的不可继承

D. throw是用来明确地抛出一个异常情况


答案:ABD

final修饰方法表示这个方法不能被重写,而不是被继承。

三、 统计回文

题目描述

 题目解析

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       String str1 = scan.nextLine();
       String str2 = scan.nextLine();
       //1、向str1中插入字符串str2。但是不能直接在str1字符串中插入,会导致str1发生改变
        //我们需要创建一个变量,使这个变量等于str1的值,对这个变量中的值进行修改
        int count = 0;
        //这里i能够等于str1的长度,是因为插入元素的时候,也可以插入到字符串的末尾
        for (int i = 0; i <= str1.length(); i++) {
            StringBuffer str3 = new StringBuffer(str1);
            str3.insert(i,str2);
            //2、逆置字符串str3
            StringBuffer str4 = new StringBuffer(str3);
            str4.reverse();
            //3、判断逆置前后字符串是否相同
            if(str4.toString().equals(str3.toString())){
                count++;
            }
        }
        System.out.println(count);
    }
}

 代码讲解:

  • 第一次创建StringBuffer对象是因为要创建一个新的对象,对新的对象进行操作,如果使用String来创建一个变量指向str1的话,只是将str1的地址传给了它,修改的对象还是str1所指向的对象。
  • 第二此创建新的StringBuffer对象是因为reverse方法操作的是,调用它的对象,不会返回新的对象,我们需要将逆置的对象的值与没有逆置的进行对比,判断是否为回文串。
  • 第3步时判断两个字符串是否相等,为什么不直接使用equals进行比较,还要调用toString方法。这是因为StringBuffer类中没有equals方法,我们需要使用toString方法将StringBuffer类型的对象转换成String类型的对象。

 

 

 


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

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

相关文章

Python IDE

Python IDE 本文为大家推荐几款款不错的 Python IDE&#xff08;集成开发环境&#xff09;&#xff0c;比较推荐 PyCharm&#xff0c;当然你可以根据自己的喜好来选择适合自己的 Python IDE。 PyCharm PyCharm 是由 JetBrains 打造的一款 Python IDE。 PyCharm 具备一般 Pyt…

plsql设置id自增

plsql如何设置id自增 首先先创表。创建序列创建触发器 首先先创表。 在目录(tables)中选择新建&#xff1a;我创建的表明为SYS_TEST 创建序列 在目录sequences选择新建,我创建的名称为SYS_TEST_SEQ 在点击下方的应用即可。 创建触发器 在目录Triggers选择新建&#xff…

UML-类图和对象图

目录 类图概述&#xff1a; 1.类: 2.属性: 3.类的表示&#xff1a; 4.五种方法: 类图的关系&#xff1a; 1.关联 2.聚合 3.组合 4.依赖 5.泛化 6.实现 对象图概述&#xff1a; 1. 对象图包含元素: 2. 什么是对象 3.对象的状态可以改变: 4.对象的行为 5.对象标…

差值结构的测地线

( A, B )---2*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有2个节点&#xff0c;AB训练集各由7张二值化的图片组成&#xff0c;让A和B中都只有1个1&#xff0c;统计迭代次数并排序。 其中有7组数据 差值结构 A-B 迭代次数 1 2 1 1*0*0*0*0*0*0-2*0*0*0*0*0*0 98040.54 - …

【Apollo】Apollo-ros版本架构学习与源码分析

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Apollo-ros版本架构学习与源码分析。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&a…

javaee dom4j读取xml文件

引入jar包 dom4j-1.6.1.jar 创建xml文件 <?xml version"1.0" encoding"UTF-8"?> <books><book id"1"><title ID"t1">背影</title><price>88</price><author>三毛</author>…

【C++】二叉搜索树的模拟实现(K,KV树)递归与非递归方式

文章目录 前言一、K树1.结点的定义2.构造函数3.拷贝构造函数4.赋值运算符重载5.析构函数6.二叉搜索树的查找&#xff08;find&#xff09;1.非递归2.递归 7.二叉搜索树的插入&#xff08;Insert&#xff09;1.非递归2.递归 8.二叉搜素树的删除&#xff08;Erase&#xff09;1.非…

腾讯云轻量应用服务器介绍

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器&#xff0c;CPU内存带宽配置高并且成本低&#xff0c;轻量2核2G3M带宽、2核2G4M带宽、2核4G5M带宽、4核8G12M带宽&#xff0c;还有8核16G18M和16核32G28M配置可选&#xff0c;腾讯云服务器网分享腾讯云轻量应用服务器详…

Java 诊断工具 arthas-boot 安装步骤及常用命令

arthas 是 Alibaba 开源的 Java 诊断工具&#xff0c;它的特点是使用方便&#xff0c;功能强大。最重要的是&#xff0c;arthas可以监察生产环境下的项目&#xff0c;使用的过程无需重启项目。 官方文档&#xff1a;https://alibaba.github.io/arthas 一、安装 第1步&#xf…

Jpa与Druid线程池及Spring Boot整合(一): spring-boot-starter-data-jpa 搭建持久层

(一)Jpa与Druid连接池及Spring Boot整合作为持久层,遇到系列问题,下面一 一记录&#xff1a; pom.xml 文件中加入必须的依赖: <!--设置spring-boot依赖的版本 --> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

Kafka 01——Kafka的安装及简单入门使用

Kafka 01——Kafka的安装及简单入门使用 1. 下载安装1.1 JDK的安装1.2 Zookeeper的安装1.2.1 关于Zookeeper版本的选择1.2.2 下载、安装Zookeeper 1.3 kafka的安装1.3.1 下载1.3.2 解压1.3.3 修改配置文件 2. 启动 kafka2.1 Kafka启动2.2 启动 kafka 遇到的问题2.2.1 问题12.2.…

2453. 摧毁一系列目标;2121. 相同元素的间隔之和;2075. 解码斜向换位密码

2453. 摧毁一系列目标 核心思想&#xff1a;找出与space取模一样的最多的数中的最小值。 2121. 相同元素的间隔之和 核心思想&#xff1a;与相同元素的等距离问题一模一样。我们首先将相同值的坐标统计出来&#xff0c;然后对于a[i]的和为s,对于a[i-1]的和为s&#xff0c;s-s…

ardupilot 为什么要采样四元数姿态控制

目录 文章目录 目录摘要1.姿态控制为什么要用到四元数2.四元数姿态控制摘要 本节主要说明清楚ardupilot姿态控制为什么要用到四元数,欢迎批评指正!!! 1.姿态控制为什么要用到四元数 对于ardupilot的姿态控制中主要用PID控制算法,姿态控制采用串级PID控制。主要包含:外环…

D. More Wrong Codeforces Round 890 (Div. 2) 1856D

Problem - D - Codeforces 题目大意&#xff1a;有一个隐藏的排列&#xff0c;给出其长度n&#xff0c;每次可以询问一个[l,r]区间内有多少逆序对&#xff0c;费用为&#xff0c;要求在总费用不超过的情况下输出最大值的下标 2<n<2000 思路&#xff1a;首先可以发现如…

录音转文字神器帮你轻松转写录音内容

你是否曾经需要将会议、讲座或采访录音转换成文字&#xff0c;却不知道如何转写录音内容更加快速准确&#xff1f;那你来对地方了&#xff01;录音转文字功能的诞生将让你的录音转写工作变得更加简单。如果你也还不清楚免费录音转文字软件有哪些的话&#xff0c;那现在就跟我一…

day2 开发环境平台搭建

Corter - M0存储器映射 SOC中CPU访问各个外部部件是通过每个部件的编号&#xff08;地址&#xff09;访问的&#xff1b; CPU给各个部件分配地址的过程称之为映射&#xff1b; Corter - M0 为32位&#xff0c;所以其给部件分配的地址范围为0 - 4Gb&#xff08;2^32&#xff0…

TZOJ 3100: 女生寝室的围墙 凸包

凸包模板题&#xff1a; 在平面上能包含所有给定点的最小凸多边形叫做凸包。 实际上可以理解为用一个橡皮筋包含住所有给定点的形态。 凸包用最小的周长围住了给定的所有点。如果一个凹多边形围住了所有的点&#xff0c;它的周长一定不是最小&#xff0c;如下图。根据三角不…

设备健康度评价实践--煤磨机

煤磨健康度评价说明 煤磨健康度评价模型 在以可靠性为中心的维护理论中,一般用健康度量化描述设备的健康状态,它是指在规定的时间和条件下,设备持续完成预定功能的能力大小,是表达设备或零件状态好坏的定量指标。 煤磨的健康状态评价原则是要求能够真实地反映磨机的健康状态…

lancet: 【推荐】--源码学习

一个全面、高效、可复用的go语言工具函数库&#xff1b; 可以学习源码的好的地方&#xff0c;这个是个工具库&#xff0c;建议最好的办法是 在项目中导入后&#xff0c;然后查看他的各个源代码进行学习使用 golangd中&#xff0c;查看导入包以及他的源代码&#xff1b; 中文…

农历日程提醒软件哪个好?安卓苹果通用的日程提醒软件

在日常生活中&#xff0c;有很多重要的日期都是按照农历&#xff08;阴历&#xff09;计算的&#xff0c;例如春节、七夕、中秋节等重要的传统节日、一些亲朋好友的生日、农村乡镇农历逢一、逢七赶集等。为了防止自己忘记这些重要的节日&#xff0c;提前做好准备&#xff0c;很…