Day01:笔试题总结

迷南。 2023-10-01 20:07 6阅读 0赞

目录

一,选择题

二,编程题

1.组队竞赛

2.删除公共字符


一,选择题

1.watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16

解析:

A.Character属于是char(字符类型)的包装类

B.String就是用来存放字符串的,而且是存放字符串常量的(不可变性,从String远吗来看,创建一个字符串常量的方法是用字符数组,并且被final修饰,因此是不可变的

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 1

C.StringBuffer存放字符串常量需要new一个对象,并且是存放字符串变量的(这个方法可以直接在原有的字符串后面进行拼接,不用重新创建一个对象)

D.Vector是一个集合框架,不能直接存放字符串常量

2.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 2

解析:从答案来看都是针对于fun方法,并且是普通的成员方法,因此,从父类继承的方法重写后,这个方法的访问修饰限定符必须大于等于父类方法的限定符

(private < 默认(default)< protected<public)

3.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 3

解析:Java面向对象的三大特性:封装,继承,多态

自顶向下,模块化,逐步求精是结构化程序的设计原则

4.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 4

解析:

在静态成员变量中,可以不用初始化,如果不初始化会赋给其对应类型的默认值(int默认初始值为0)

5.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 5

解析:100%3得到余数1

而100%1.0会自动进行类型转换,得到1.0

6.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 6

解析:对于默认类型,整形就是int,带小数的只能是double

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 7

7.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_17_color_FFFFFF_t_70_g_se_x_16

解析:方法存储在方法区

8.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 8

解析:

private:同一个包中的同一个类

默认:同一个包中的不同类

protected:不同包中的子类

public:不同包中的非子类

9.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_19_color_FFFFFF_t_70_g_se_x_16

解析:

被final修饰的类是不可继承的

10.

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 9

解析:

A.i属于是A类的成员变量,肯定可以通过a(对象实例)来进行调用

B.method1是普通成员方法,可以通过a(对象实例)来调用

C.method1是普通成员方法,不能通过类名来调用

D.method2是静态成员方法,必须通过类名进行调用

二,编程题

1.组队竞赛

题目描述:

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 10

解析:

1)从题目上得到的信息,会分组(可以考虑数组的形式接收数据) ,取第二高水平值

2)根据题的分析,如果不对数据进行排序,是非常的凌乱,对取水平值有很大的影响

3)首先想,如果是要取最大的水平值(假如让最大值的人当组长),我们是不是就可以从排序后的数据中,从最末尾的下标位置去拿数据,有几组,我依次向前取几个数据,剩余的人我不用管,随便去哪组都行,只要保证这几组中我刚刚取的数据是都是组长就行

4)对于这道题,我们也可以这么想,既然取第二大,那我就要让我这一组里的第二大的人足够大,不浪费,那现在,让刚才组队的机制进行改变,从排好序的数组的末尾开始,第一个人当组长,组长从剩下的人里面,挑选本组第二大的人(组长肯定会尽量让本组第二大的人足够大,因此,这个组长肯定会选紧靠着自己的那个人,因为那个人就是最佳人选,至于第三个人,随便来谁都行,靠着这样的机制,那么,第三个人就是第二组的组长,本着有最大选最大,第二组组长也会选择自己旁边的这一位)

5)以上触类旁通,我们可以得到一个规律,从排好序的数组当中,从后往前,每两个人组一队,第三人未知,那么,每组的第二大就是最理想情况下的

解题代码示例:

  1. import java.util.*;
  2. public class Main{
  3. public static void main(String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. //list的作用就是获取所有输入的数据
  6. List<Integer> list = new ArrayList<>();
  7. while(sc.hasNextInt()){
  8. list.add(sc.nextInt());
  9. }
  10. //第一个数据是由多少组,提取出来
  11. int count = list.get(0);
  12. //删除第一个数据,第一个数据不是参赛选手的水平值
  13. list.remove(0);
  14. //将list进行排序
  15. Collections.sort(list);
  16. //后面为了寻找最大的水平值总和,要从list中提取相应的数据
  17. //并且需要进行动态的变化
  18. int len = list.size();
  19. long sum = 0;
  20. //count代表有几组,就相应的取几次数据
  21. while(count >= 1){
  22. sum = sum + list.get(len - 2);
  23. //定义下次取数据的起始位置
  24. len = len - 2;
  25. //取一次数据,减少一次循环的次数
  26. count--;
  27. }
  28. System.out.println(sum);
  29. }
  30. }

2.删除公共字符

题目内容:

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBAb2hhbmHvvIE_size_20_color_FFFFFF_t_70_g_se_x_16 11

解析:

1)这道题可以看做是一个简单的字符串平拼接,有就拼接,没有就拼接

2)需要两样东西:对比字符数组,进行拼接并打印的字符变量(StringBuilder)

解题代码示例:

  1. import java.util.*;
  2. public class Main{
  3. public static void main(String[] args){
  4. Scanner sc = new Scanner(System.in);
  5. String s1 = "";
  6. String s2 = "";
  7. while(sc.hasNext()){
  8. s1 = sc.nextLine();
  9. s2 = sc.nextLine();
  10. }
  11. //本题采用不断拼接的方式来拼接一个新的字符串,不在原来的字符串上做修改
  12. //创建一个list用来保存s2的每个字符
  13. //作用:用来对比s1中每个字符的存在与否
  14. List<Character> list = new ArrayList<>();
  15. for(int i = 0;i < s2.length();i++){
  16. list.add(s2.charAt(i));
  17. }
  18. //准备用StringBuilder进行拼接
  19. StringBuilder sb = new StringBuilder();
  20. for(int i = 0;i < s1.length();i++){
  21. //遍历每个字符
  22. //如果是true说明重复了,不拼接
  23. //如果是false,说明没有重复的直接拼接(空格等字符也可以)
  24. if(!list.contains(s1.charAt(i))){
  25. sb.append(s1.charAt(i));
  26. }
  27. }
  28. System.out.println(sb.toString());
  29. }
  30. }

发表评论

表情:
评论列表 (有 0 条评论,6人围观)

还没有评论,来说两句吧...

相关阅读

    相关 试题总结0001

    1)输出当前源文件的文件名以及源文件的当前行号? 解答: ANSI C标准预定义宏: 1)\_\_LINE\_\_:在源文件中插入当前源代码行号; 2)\_\_FILE

    相关 试题总结0000

    1.选一个正确的(A)(此题答案不知道是不是正确的,希望各位指正) > A静态链接库不能有同名全局函数 > B动态链接库不能有同名全局函数 > C两个静态链

    相关 Java基础常见试题总结

    以下是自己总结的一些Java常见的基础知识题,答案仅供参考,如有异议请指出。一直保持更新状态。 1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

    相关 试题总结0003

    1.哪些运算符不能重载? 重载操作符的限制:   8.1 并不是所有的操作符都能被重载。除了. ,.\ ,:: ,? : ,sizeof,typeid这几个运算符不能被

    相关 试题总结6.14

    1.序列找数 题目描述:从非负整数序列0,1,2,….,n中给出包含其中n个数的子序列,请找出未出现在该子序列中的那个数。 输入描述:输入为n+1个非负整数,用空格分开。