草庐IT

【java】笔试强训Day4【计算糖果、进制转换】

奋斗小温 2023-04-15 原文

目录

⛳一、单选题

1.下列与队列结构有关联的是(        )

2.类所实现接口的修饰符不能为(        )

3.下列关于栈叙述正确的是(        )

4.下面关于abstract关键字描述错误的是(        )

5.结构化程序的三种基本结构是(        )

6.对于abstract声明的类,下面说法正确的是

7.1GB 的准确值是(         )

🌈二、多选题

8.下面选项中,哪些是interface中合法方法定义?(        )

9.下面哪些类实现或继承了 Collection 接口?

10.对于jdk1.8,以下为 java 语法保留不能作为类名和方法名使用的是

🔥三、编程题

1.计算糖果

2.进制转换


⛳一、单选题

1.下列与队列结构有关联的是(        )

A 函数的递归调用

B 数组元素的引用

C 多重循环的执行

D 先到先服务的作业调度

🙈大家觉得答案是什么呢


🙉答案是 D 啦~

🔎做题思路:队列———先进先出

函数的递归调用 与 函数的栈 有关 —— 先进后出;先到先服务的作业调度 与 队列 有关

2.类所实现接口的修饰符不能为(        )

A void

B public

C abstract

D final

🙈大家觉得答案是什么呢


🙉答案是 D 啦~

🔎做题思路:接口是为了被重写的,所以不能被 final 修饰

3.下列关于栈叙述正确的是(        )

A 算法就是程序

B 设计算法时只需要考虑数据结构的设计

C 设计算法时只需要考虑结果的可靠性

D 以上三种说法都不对 

🙈大家觉得答案是什么呢


🙉答案是 D 啦~ 

🔎做题思路:栈——先进后出

算法是解决问题的步骤;程序是对问题的具体代码实现;算法和程序都是指令的有限序列,但是程序是算法,而算法不一定是程序

设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

4.下面关于abstract关键字描述错误的是(        )

A abstract关键字可以修饰类或方法

B final类的方法都不能是abstract,因为final类不能有子类

C abstract类不能实例化

D abstract类的子类必须实现其超类的所有abstract方法

🙈大家觉得答案是什么呢


🙉答案是 D 啦~ 

🔎做题思路:对于D,abstract类的子类如果是抽象类,则完全不需要实现

abstract class A {
    public abstract void func();
}
abstract class B extends A {//抽象类,不需要重写构造方法
    public abstract void func1();
}
class C extends B {//需要重写构造方法

    @Override
    public void func() {

    }

    @Override
    public void func1() {

    }
}

关于 抽象类 abstract 的使用,可以跳转到我的博客抽象类 去完全掌握抽象类

5.结构化程序的三种基本结构是(        )

A 递归、迭代和回溯

B 过程、函数和子程序

C 顺序、选择和循环

D 调用、返回和选择

🙈大家觉得答案是什么呢


🙉答案是 C 啦~ 

🔎做题思路:结构化程序设计是进行模块功能和处理过程设计为主的详细设计原则。结构化程序设计是过程式程序设计的一个子集,他对写入的程序使用逻辑结构,是的理解和修改更有效更容易

6.对于abstract声明的类,下面说法正确的是

A 可以实例化

B 不可以被继承

C 子类为abstract

D 只能被继承

E 可以被抽象类继承

🙈大家觉得答案是什么呢


🙉答案是 E 啦~ 

关于 抽象类 abstract 的使用,可以跳转到我的博客抽象类 去完全掌握抽象类

7.1GB 的准确值是(         )

A 1024×1024 Bytes

B 1024 KB

C 1024 MB

D 1000×1000 KB

🙈大家觉得答案是什么呢


🙉答案是 啦~

🌈二、多选题

8.下面选项中,哪些是interface中合法方法定义?(        )

A public void main(String [] args);

B private int getSum();

C boolean setFlag(Boolean [] test);

D public float get(int x);

🙈大家觉得答案是什么呢


🙉答案是 A、C、D 啦~

🔎做题思路:

public void main(String [] args);  这是一个抽象方法,可以实现接口,并不是一个主函数,主函数要有 static

private int getSum(); 这是一个 private 修饰的,这是一个私有的,而接口不可以是私有的接口里的方法是为了 重写,不可以私有化,重写的规则是:子类一定要大于等于父类的权限 ,因此 B 错误

boolean setFlag(Boolean [] test);  默认是 public abstract,可以实现接口

public float get(int x);  默认是 public ,也是可以实现接口的

9.下面哪些类实现或继承了 Collection 接口?

A HashMap                    B ArrayList                     C Vector                    D Iterator

🙈大家觉得答案是什么呢


🙉答案是 B、C 啦~

🔎做题思路:

Iterator 是一个迭代器,与接口无关

类和接口总览

10.对于jdk1.8,以下为 java 语法保留不能作为类名和方法名使用的是

A default                          B int                            C implements                        D throws

🙈大家觉得答案是什么呢


🙉答案是  A、B、C、D 啦~

🔎做题思路:关键字不能作为类名和方法名使用的

🔥三、编程题

1.计算糖果

链接:计算糖果_牛客题霸_牛客网 (nowcoder.com)

描述:A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:
A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.
现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。

输入描述:输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。

输出描述:输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空格隔开,行末无空格。 如果不存在这样的整数A,B,C,则输出No

示例1

输入:1 -2 3 4

输出:2 1 3

🔎做题思路:

import java.util.Scanner;

public class Main1 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
        int d = scanner.nextInt();

        int A = (a+c)/2;
        int B1 = (c-a)/2;
        int B2 = (b+d)/2;
        int C = (d-b)/2;

        if (B1 != B2) {
            System.out.println("No");
        } else {
            System.out.println(A+" "+B1+" "+C);
        }
    }
}

2.进制转换

链接:进制转换_牛客题霸_牛客网 (nowcoder.com)

描述:给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数

输入描述:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。

输出描述:为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)

示例1

输入:7 2

输出:111

🔎做题思路:突破点为 M 和 N有何种关系

定义一个数组 table,在数组内部放入满足的任意进制数,再定义一个字符串 s,存放M的每一位

1️⃣求得 M 数的每一位数(如果M为负数,先变负数为正数;如果M等于0,直接输出0)

2️⃣把求得的每一位拼接到字符串中

❗❗❗求得的这位数去数组下表中找到对相应的数字拼接到字符串中——假设这个数为15,那么不可以直接把15拼接到字符串中,而是去数组中找到15下标对应的 f 拼接到字符串中

3️⃣逆置字符串(如果是负数,先拼接符号在字符串中,最后逆置字符串)

import java.util.Scanner;
public class Main1 {

    //进制转换

    //描述:给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
    //输入描述:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。
    //输出描述:为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)
    //示例1
    //输入:7 2
    //输出:111

    //思路:
    //定义一个数组 table,在数组内部放入满足的任意进制数,再定义一个字符串 s,存放M的每一位
    //1️⃣求得 M 数的每一位数(如果M为负数,先变负数为正数)
    //2️⃣把求得的每一位拼接到字符串中
    //❗❗❗求得的这位数去数组下表中找到对相应的数字拼接到字符串中
    //假设这个数为15,那么不可以直接把15拼接到字符串中,而是去数组中找到15下标对应的 F 拼接到字符串中
    //3️⃣逆置字符串(如果是负数,先拼接符号在字符串中,最后逆置字符串)

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        int n = scanner.nextInt();

        //如果循环里字符串用String类型去拼接,会产生大量的临时变量,因此定义s的时候用StringBuilder
        StringBuilder s = new StringBuilder();//定义一个字符串,存放m的每一位
        String table = "0123456789ABCDEF";//定义一个数组 table,在数组内部放入满足的任意进制数
        //如果m等于0,直接输出0
        if (m == 0) {
            System.out.println("0");
        }
        boolean flg = false;
        //假设这个数是负数,先变负数为正数
        if (m < 0) {
            m = -m;
            flg = true;
        }

        while (m != 0) {//如果循环里字符串用String类型去拼接,会产生大量的临时变量,因此定义s的时候用StringBuilder
            s.append(table.charAt(m % n)); //查找下标的值,拼接到字符串中
            m = m / n;
        }
        if (flg) {
            s.append("-");//如果是负数,则最后拼接“-”
        }
        s.reverse();//逆置字符串
        System.out.println(s);
    }
}

有关【java】笔试强训Day4【计算糖果、进制转换】的更多相关文章

  1. ruby-on-rails - 在 Rails 中将文件大小字符串转换为等效千字节 - 2

    我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,

  2. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  3. ruby - 将数组的内容转换为 int - 2

    我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]

  4. ruby - 将散列转换为嵌套散列 - 2

    这道题是thisquestion的逆题.给定一个散列,每个键都有一个数组,例如{[:a,:b,:c]=>1,[:a,:b,:d]=>2,[:a,:e]=>3,[:f]=>4,}将其转换为嵌套哈希的最佳方法是什么{:a=>{:b=>{:c=>1,:d=>2},:e=>3,},:f=>4,} 最佳答案 这是一个迭代的解决方案,递归的解决方案留给读者作为练习:defconvert(h={})ret={}h.eachdo|k,v|node=retk[0..-2].each{|x|node[x]||={};node=node[x]}node[

  5. ruby-on-rails - 使用一系列等级计算字母等级 - 2

    这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

  6. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  7. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  8. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  9. ruby-on-rails - 使用 ruby​​ 将多个实例变量转换为散列的更好方法? - 2

    我收到格式为的回复#我需要将其转换为哈希值(针对活跃商家)。目前我正在遍历变量并执行此操作:response.instance_variables.eachdo|r|my_hash.merge!(r.to_s.delete("@").intern=>response.instance_eval(r.to_s.delete("@")))end这有效,它将生成{:first="charlie",:last=>"kelly"},但它似乎有点hacky和不稳定。有更好的方法吗?编辑:我刚刚意识到我可以使用instance_variable_get作为该等式的第二部分,但这仍然是主要问题。

  10. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

随机推荐