【nowcoder】笔试强训Day2

news/2024/4/28 11:34:38/文章来源:https://blog.csdn.net/m0_50987960/article/details/128412786

目录

一、选择题

二、编程题

2.1排序子序列

2.2倒置字符串


一、选择题

1.A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明: 1. A a0=new A(); 2. A a1=new B(); 3. A a2=new C(); 问以下哪个说法是正确的()

A 只有第一行能通过编译

B 第1、2行能通过编译,但第3行编译出错

C 第1、2、3行能通过编译,但第2、3行运行时出错

D 第1行,第2行和第3行的声明都是正确的

A类当然可以用A类引用创造A类的实例。

根据天然的向上转型,A的子类以及A的子类的子类,都可以用A类引用创造通过子类实例。

所以正确答案是 D 

2.下面代码将输出什么内容:()

public class SystemUtil{public static boolean isAdmin(String userId){return userId.toLowerCase()=="admin";}public static void main(String[] args){System.out.println(isAdmin("Admin"));}
}

A true

B false

C 1

D 编译错误

“==”进行的是两个变量数值的比较,对于基本数据类型来说比较的就是基本数值是否相等,对于引用数据类型来说比较的是两个引用是否指向同一个对象(即地址是否相同)。

equals方法进行的是两个类对象的属性值比较。

这道题中考察的就是对于==的理解,toLowerCase表示将该字符串全部大写,但是创建的是新的对象,两个对象地址不同。

所以正确答案是 B 

3.阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

package NowCoder;
class Test {public static void hello() {System.out.println("hello");}
}
public class MyApplication {public static void main(String[] args) {// TODO Auto-generated method stubTest test=null;test.hello();}
}

A 能编译通过,并正确运行

B 因为使用了未初始化的变量,所以不能编译通过

C 以错误的方式访问了静态方法

D 能编译通过,但因变量为null,不能正常运行

因为Test类的hello方法时静态的,所以是属于类的,当实例化该类的时候,静态会被优先加载而且只加载一次,所以不受实例化映像,只要是使用到了Test类,都会加载静态hello方法。

在这道题中hello方法时pubilc修饰符修饰的,所以在MyApplication中也能调用该方法,即使Test test=null,也会加载静态方法。

所以正确答案是

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

super()是子类构造调用父类的构造方法,this()是在同一个类中无参构造调用有参构造的方法,两者都必须写在第一行,所以不能出现在一个构造方法中。并且两者都是构造方法,是对象的产生,static是静态的没有对象,所以不可以在static环境中使用。

所以正确答案是 A 

5.如下代码的 结果是什么 ?

class Base {Base() {System.out.print("Base");}
}
public class Alpha extends Base {public static void main( String[] args ) {new Alpha();//调用父类无参的构造方法new Base();}
}

A Base

B BaseBase

C 编译失败

D 代码运行但没有输出

E 运行时抛出异常

在继承关系中,子类创建新对象时调用子类构造方法时也会调用父类的构造方法,所以父类构造方法被调用了两次,输出两个Base。

所以正确答案是 B 

6.如下代码的输出结果是什么?

public class Test {public int aMethod(){static int i = 0;i++;return i;}public static void main(String args[]){Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}
}

A 0

B 1

C 2

D 编译失败

在静态的主方法中是不能调用非晶态的方法的,编译会失败。

所以正确答案是 D  

7.下列哪一种叙述是正确的()
A abstract修饰符可修饰字段、方法和类
B 抽象方法的body部分必须用一对大括号{ }包住
C 声明抽象方法,大括号可有可无
D 声明抽象方法不可写出大括号

abstract修饰符不能修饰字段,只能修饰类和方法,并且abstract修饰的类为抽象类,修饰的方法是抽象方法,抽象方法不能直接实现,所以不可以有大括号。

所以正确答案是 D  

8.下列说法正确的有:()

A class中的constructor不可省略

B constructor必须与class同名,但方法不能与class同名

C constructor在一个对象被new 时执行

D 一个class只能定义一个constructor

constructor是构造方法,构造方法是可以省略的。构造方法是在创建新的对象即new时执行。一个类可以有很多个不同形参的构造方法。构造方法和方法都可以和class同名,构造方法是没有返回值的。

所以正确答案是 C  

9.选项中哪一行代码可以替换 //add code here 而不产生编译错误

public abstract class MyClass { public int constInt = 5; //add code herepublic void method() {} 
}

A public abstract void method(int a);
B consInt=constInt+5;
C public int method();
D public abstract void anotherMethod(){}

抽象类中的抽象方法不可以有大括号,在抽象类中的普通方法需要有大括号,所以A正确,C和D都是错误的。并且抽象类中只能定义变量和方法,不能那个有其他语句所以B错。

所以正确答案是

10. 在使用 interface 声明一个外部接口时,只可以使用( )修饰符修饰该接口。
A private
B protected
C private protected
D public

接口必须是public修饰的,所以正确答案是 D 。

二、编程题

2.1排序子序列

牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. 如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2

 在这道题中我们可以先创建一个比规定长度多一个的数组,然后将数存入数组。

大体的思路就是进入循环中,如果num[i]<num[i+1],那么就进入小循环,当不满足这个条件时或者所有数都遍历完了,count就+1,证明有了一个子序列。如果相等就忽略直接遍历下一个数,如果相反就同样的路数,循环终止条件就是i>=n。

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] num = new int[n+1];for(int i = 0;i<n;i++){num[i] = sc.nextInt();}int i = 0;int count = 0;while(i<n){if(num[i]<num[i+1]){while(i<n-1&&num[i]<num[i+1]){i++;}count++;i++;}else if(num[i]==num[i+1]){i++;}else{while(i<n-1&&num[i]>num[i+1]){i++;}count++;i++;}}System.out.println(count);}
}

2.2倒置字符串

将一句话的单词进行倒置,标点不倒置。比如 "I like beijing.",经过处理后变为:"beijing. like I"。 字符串长度不超过100。

 这道题需要用到String类型中的拆分方法,首先根据空格将字符串拆分为字符串数组,创建StringBuilder类型的sb来连接个字符串,遍历数组从后往前相加,即将整个字符串倒置。

    public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();String[]  s1 = s.split(" ");StringBuilder sb  = new StringBuilder();for(int i = s1.length-1;i>=0;i--){String s2 = s1[i] + " ";sb.append(s2);}System.out.println(sb.toString());}

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习 | 线性回归

一.基本原理 利用回归方程&#xff08;函数&#xff09;对一个或多个自变量&#xff08;特征值&#xff09;和因变量&#xff08;目标值&#xff09;之间关系进行建模的一种分析方式 根据线性代数&#xff0c;我们可以定义方程 xwy&#xff0c;在线性回归问题中&#xff0c;x…

前端小知识:赋予变量默认值(逻辑与运算符、空值合并运算符、逻辑空运算符)

8. 逻辑与运算符、空值合并运算符、逻辑空运算符&#xff08;可用赋予默认值&#xff09; &#xff08;空值合并运算符&#xff09;官方文档&#xff1a; https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing   &#xff08;逻辑…

【推荐收藏】这份图解算法数据结构的材料太良心

5年前发生的一件事&#xff0c;成为了我职业生涯的重要转折点。当时的我在交大读研&#xff0c;对互联网求职一无所知&#xff0c;但仍然硬着头皮申请了 Microsoft 实习生。面试官让我在白板上写出“快速排序”代码&#xff0c;我畏畏缩缩地写了一个“冒泡排序”&#xff0c;并…

1754. 构造字典序最大的合并字符串

摘要 1754. 构造字典序最大的合并字符串 一 贪心算法分析 题目要求合并两个字符串 word1 与 word2&#xff0c;且要求合并后的字符串字典序最大。首先需要观察一下合并的选择规律&#xff0c;假设当前需要从 word1​ 的第 i 个字符和 word2​ 的第 j个字符选择一个字符加入到…

自制macOS安装镜像iso虚拟机用

在网上下载的用于在虚拟机中安装的镜像版本相对比较旧。安装完成后还要进行升级比较麻烦。于是我就想自己制作安装镜像了。 精华 #创建空白磁盘镜像 hdiutil create -o /tmp/ventura -size 13800m -volname ventura -layout SPUD -fs HFSJ #挂载上面创建的镜像 hdiutil attac…

内容资产管理11问

&#x1f447;点击一键关注主笔&#xff1a;邹小困、邝晴岚主持人&#xff1a;增长黑盒分析师Emma出品&#xff1a;增长黑盒研究组前言在这个信息爆炸的数据时代&#xff0c;各个行业正积极推进数字化转型&#xff0c;产业升级与技术赋能成为主题之一。在推进企业线上线下融合的…

最近面试遇到一个算法题,简单写一点。

第⼀题&#xff08;必答&#xff09; 请针对有重复数字的数组设计⼀个快排算法&#xff0c;⽐如&#xff1a;[34, 34, 89, 1, 1, 20, 12]&#xff0c;排序后结果为 [89,34,34,20,12,1,1] 第⼆题&#xff08;必答&#xff09; 请利⽤Redis 实现⼀个通⽤分布式锁&#xff0c;并…

B+树 [数据结构与算法][Java]

B树 B树是B树的一种变形 我们通过一颗四阶B树来理解认识一下B树:(如下:) 我们其实从图上就可以看出B树和B树是有很多不同之处的 比如我们的B树中将叶子结点层的所有结点使用一个链表串联了起来B树中对于非叶子结点都是只是存储的索引(指针), 并没有存储关键字, 所以我们最终查…

Linux系统基础——BIOS和Bootloader

BIOS和Bootloader 特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料&#xff0c;本文大部分内容和所有图片来源于这个专栏。 1 了解背景 1.1 目的 操作系统不是在板子上电就直接运行的&#xff0c;上电到系统启动的中间过程要搞明白&#xff0c;比如了解linux系统启动…

火山引擎 DataTester 上线“流程画布”功能,支持组合型 A/B 实验分析

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 在精细化运营的时代&#xff0c;运营活动同样需要有精细化的策略&#xff0c;例如在年末大促活动中&#xff0c;设计 APP 弹窗提醒、满减、会员领券时&#xff0c;我…

TikTok 加速团结独立站,跨境电商的又一次红利期?

TikTok近年来在国际上非常流行。2021年8月&#xff0c;TikTok的全球下载量首次超过Facebook&#xff0c;成为全球最大的下载量。TikTok的诞生打破了海外社交媒体的垄断&#xff0c;TikTok营销成为许多跨境卖家的重点之一。 封号事件发生后&#xff0c;许多跨境卖家开始向独立站…

Python函数总结

在Python中&#xff0c;函数是一个带有名字的代码块&#xff0c;可以被反复调用。函数可以帮助你组织和重用代码&#xff0c;使你的程序更整洁&#xff0c;更易于维护。本文将会深入探索Python的秘密 目录 定义函数 自定义函数 内置函数 函数式方程 高阶函数 函数标注 …

读研2年,我选择从中科院退学转行做码农

从入学天坑材料专业到退学 先自我介绍一下&#xff1a;我天坑材料专业&#xff0c;本科某211&#xff0c;保研到中科院&#xff0c;但是我真是菜的抠脚&#xff0c;还懒&#xff0c;也不喜欢科研&#xff0c;论文达不到毕业要求&#xff0c;纠结之下研三退学转码农了。 读了2…

JVM【垃圾回收相关概念和垃圾回收器】

垃圾回收相关概念 System.gc()的理解 在默认情况下&#xff0c;通过**system.gc&#xff08;&#xff09;**者Runtime.getRuntime().gc() 的调用&#xff0c;会显式触发FullGC&#xff0c;同时对老年代和新生代进行回收&#xff0c;尝试释放被丢弃对象占用的内存。 然而syste…

做跨境电商,如何从同类产品中脱颖而出?

随便打开一个跨境电商平台&#xff0c;你会发现自己售卖的产品有那么多类似的选择&#xff0c;如何确保你的产品能被客户选择&#xff1f;怎样在一系列产品中脱颖而出&#xff1f; 不少卖家提到了&#xff0c;搞差异化竞争&#xff0c;这是跨境电商卖家常挂在嘴边的一个词&…

k8s使用glusterfs(静态供给、动态供给)、glusterfs的安装与使用

目录前言主机准备配置主机名、关闭防火墙、关闭selinux挂载磁盘安装glusterfs服务端glusterfs的端口分布式集群的结构组成glusterfs集群创建存储卷启动卷k8s使用glusterfs作为后端存储&#xff08;静态供给glusterfs存储&#xff09;恢复初始化环境安装Heketi 服务&#xff08;…

fpga实操训练(signal tap调试)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 编写软件的同学都知道&#xff0c;如果需要调试软件的话&#xff0c;除了要学会打印信息日志之外&#xff0c;另外一个很重要的方面&#xff0c;就…

maven的插件(命令)install介绍

maven的插件&#xff08;命令&#xff09;install介绍背景关于构建时使用的maven命令installmaven其他插件/命令的使用背景 今天在引入SpringCloudAlibaba时&#xff0c;pom.xml中的dependency报错了 到本地仓库去验证 验证无误&#xff0c;找原因 现象&#xff1a; 在maven…

数据挖掘期末-图注意力模型

PyGAT图注意力模型 ​  PyGAT实现的分类器&#xff1a; https://www.aliyundrive.com/s/vfK8ndntpyc 还在发烧&#xff0c;不是特别清醒&#xff0c;就简单写了写。用GAT进行关系预测&#xff0c;GAT可能是只做中间层&#xff0c;不过本来在GAT这一层就为了能懂就简化了很多…

Linux-系统随你玩之--用户及用户组管理

一、用户基本介绍 Linux 系统是一个多用户多任务的操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统 管理员申请一个账号&#xff0c;然后才可以以这个用户登陆系统。 二、Linux中用户和组 2.1、用户和组介绍 用户&#xff1a; 每一个用户都…