重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

【nowcoder】笔试强训Day1-创新互联

目录

创新互联是一家专注于成都网站制作、网站建设与策划设计,卢龙网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:卢龙等地区。卢龙做网站价格咨询:18980820575

一、选择题

二、编程题

2.1组队竞赛

2.2删除公共字符串


一、选择题

1.在 Java 中,存放字符串常量的对象属于( )类对象。

A Character

B String

C StringBuffer

D Vector

字符串分为两大类,一类是字符串常量,使用String类的对象表示;另一类是字符串变量,使用StringBuffer类的对象表示。

所以正确答案是 B 

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

class Base {
    public Base (){
        //...
    }
    public Base ( int m ){
        //...
    }
    public void fun( int n ){
        //...
    }
}
public class Child extends Base{
    // member methods
}

A private void fun( int n ){ //...}

B void fun ( int n ){ //... } 

C protected void fun ( int n ) { //... }

D public void fun ( int n ) { //... }

在继承中,子类继承父类的方法必须修饰权限比父类的大或者相同,所以正确答案是 D 

3.下列选项中属于面向对象编程主要特征的是()

A 继承

B 自顶向下

C 模块化

D 逐步求精

面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以正确答案是 A 

4.关于下列程序段的输出结果,说法正确的是:( )

public class MyClass{
    static int i;
    public static void main(String argv[]){
        System.out.println(i);
    }
}

A 有错误,变量i没有初始化。

B null

C 1

D 0

i在主类内部,方法外部,i是全局变量,所以定义的时候就有了初始值为为默认值0,所以正确答案是 D 

5.下列代码的执行结果是:( )

public class Test{
    public static void main(String args[]){
        System.out.println(100%3);
        System.out.println(100%3.0);
    }
}

A 1和1

B 1和1.0

C 1.0和1

D 1.0和1.0

100%3时是int类型,则输出结果就是1。

java中自带向上转型,100%3.0,是int类型和double类型的运算,所以自动把100变为double类型,输出结果也是double类型,为1.0。

所以正确答案是 B 

6.在基本 JAVA 类型中,如果不明确指定,整数型的默认是 __ 类型,浮点数的默认是 __ 类型() A int float

B int double

C long float

D long double

整数型的默认是 int类型,浮点数的默认是double类型,所以正确答案是 B 

7.方法通常存储在进程中的哪一区()

A 堆区

B 栈区

C 全局区

D 方法区

堆区存储的全部都是对象。

栈区只保存基础数据类型的对象和自定义对象的引用。

全局区还分成了全局变量区(存放全局变量),静态变量区(存在static修饰的变量),常量区。

方法区存储了每个类的信息包括类的名称、方法信息、字段信息和静态变量、常量以及编译器编译后的代码等。

所以正确答案是 D 

8.不考虑反射,关于私有访问控制符 private 修饰的成员变量,以下说法正确的是()

A 可以三种类所引用:该类自身、与它在同一包中的其他类,在其他包中的该类的子类

B 可以被两种类访问和引用:该类本身、该类的所有子类

C 只能被该类自身所访问和修改

D 只能被同一个包中的类访问

四大访问修饰符:private(私有权限,类内部权限)

所以正确答案是 C 

9.类声明中,声明一个类不能再被继承的关键字是()

A public

B abstract

C final

D static

public是公共修饰符,abstract是抽象类的修饰符,final修饰类意味着类不能再被继承,static是静态修饰符。

所以正确答案是 C 

10. 假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()

public class A
{
    public int i;
    static String s;
    void method1(){}
    static void method2(){}
}

A System.out.println(a.i);
B a.method1();
C A.method1();
D A.method2(); 

static关键词修饰的变量或方法可以通过类名直接调用,而非静态的变量或方法无法通过类名直接调用。所以正确答案是 C 

二、编程题 2.1组队竞赛

牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。
例如:
一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3
一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2
为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和大。
如样例所示:
如果牛牛把6个队员划分到两个队伍
如果方案为:
team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.
而如果方案为:
team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.
没有比总和为10更大的方案,所以输出10. 

根据题意,需要找出n个队伍中第二高的值。所以我们就将所有得数排序,然后出去n个大的数,剩下的n个大数相加就是水平值综合大值。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] num = new int[n*3];
        long sum = 0;
        for(int i = 0;i< num.length;i++){
            num[i] = in.nextInt();
        }
        Arrays.sort(num);
        for(int j = 0;j
2.2删除公共字符串

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

这道题可以分为两种解法,暴力解法和哈希解法。

哈希解法中则将第二个字符串放入Set集合中,然后用old中的每一个char类型值在集合中寻找,如果包含就不要,如果不包含就存入ret中。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String old  = sc.nextLine();
        String x = sc.nextLine();
        Setset = new HashSet<>();
        for (int i = 0; i< x.length(); i++) {
             set.add(x.charAt(i));
        }
        StringBuilder ret = new StringBuilder("");
        for (int i = 0; i< old.length(); i++) {
            if (!set.contains(old.charAt(i))) {
                ret.append(old.charAt(i));
            }
        }
        System.out.println(ret);
    }
}

暴力解法直接两个for循环嵌套,相同的则删除。

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String old = sc.nextLine();
        String x = sc.nextLine();
        StringBuilder newWord = new StringBuilder(old);
        StringBuilder sb = new StringBuilder(x);
        for (int i = 0; i< newWord.length(); i++) {
            for(int j = 0;j

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻名称:【nowcoder】笔试强训Day1-创新互联
转载来源:http://cqcxhl.com/article/dhpgse.html