我是靠谱客的博主 失眠长颈鹿,最近开发中收集的这篇文章主要介绍牛客(9.7)-数组专项练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

9.6日

选择题:

1、关于容器下面说法正确的是? (D)

A、列表(List)和集合(Set)存放的元素都是可重复的。

B、列表(List)和集合(Set)存放的元素都是不可重复的。

C、映射(Map)<key,value>中key是可以重复的。

D、映射(Map)<key,value>中value是可以重复的。

答案解析:List中的元素特点是,可重复、无须,Set集合中的元素特点是不可重复、无序(内部按照hash表进行排序),(Map)<key,value>中支持一个key对应多个value,按时一个Map中的key不能重复出现。

2、以下类定义中的错误是什么?(C)

1

2

3

4

abstract class xy

{

    abstract sum (int x, int y) { }

}

A、没有错误

B、类标题未正确定义

C、方法没有正确定义

D、没有定义构造函数

答案解析:抽象方法是没有方法体的。

3、在 Applet 中,方法执行的顺序是 ?( A)

A、init(), start(), paint(),stop(),destroy().

B、init(),paint(),start(),stop(),destroy().

C、paint(),start(),stop(),destroy().

D、init(), start(),stop(),destroy(),paint().

答案解析:init 初始化,start启动运行,paint 窗口最小化等时候需要暂停,stop 停止,destory 销毁,在Applet   中,方法执行的顺序是: init()-> start()-> paint()-> stop()-> destroy()。

4、由4个“1”和4个“0”组成的8位二进制补码,能表示的最小整数是(A)

A、-125   B、-32    C、-121   D、-3

答案解析:最小的数为负数,符号位为1,则补码形式为10000111,补码的求法是反码加1,则反码为10000110,原码为11111001,转化为十进制为-121。

5、下列选项中符合Java命名规则的标识符是(D)

A、2japro    B、&Class   C、const    D、_123

答案解析:1、首字母:英文字母、$和下划线。变量名:由$、字母、数字和下划线组成。  2、变量的命名遵循见名知义的原则。  3、用驼峰命名法命名多个单词组成的变量名。 4、变量名[方法名]首字母建议不用大写字母。

6、下列程序执行后输出结果为(   D   )

class BaseClass {
public BaseClass() {} {
System.out.println("I’m BaseClass class");
}
static {
System.out.println("static BaseClass"); }
}
public class Base extends BaseClass {
public Base() {} {
System.out.println("I’m Base class");
}
static {
System.out.println("static Base");
}
public static void main(String[] args) {
new Base();
}
}

A、static BaseClass I’m BaseClass class static Base I’m Base class

B、I’m BaseClass class I’m Base class static BaseClass static Base

C、I’m BaseClass class static BaseClass I’m Base class static Base

D、static BaseClass static Base I’m BaseClass class I’m Base class

答案解析:本题主要考点是代码的执行顺序:1、父类的静态代码块2、子类的静态代码块3、父类的构造方法4、子类的构造方法

7、有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是(B)

60
66
18000
33

答案解析:将非零元素所在行、列、非零元素的值构成一个三元组(i,j,v),每个非零元素占3*2=6个字节,共10个非零元素,需6*10 = 60 个字节,还一般要用三个整数来存储矩阵的行数、列数和总元素个数,又需要3*2 = 6个字节;

8、以下哪项不属于java类加载过程?(B)

A、生成java.lang.Class对象

B、int类型对象成员变量赋予默认值

C、执行static块代码

D、类方法解析

答案解析:类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中准备、验证、解析3个部分统称为连接。

9、()运算符把其操作数中所有值为0和所有值为1的位分别在结果的相应中设置1和0(D)

&     |     !    ~

答案解析:&与操作;|或操作;!非操作;~取反操作

10、Java程序的种类有(BCD )

类(Class)   Applet     Application     Servlet

答案解析:Java程序的种类有:内嵌于Web文件中,由浏览器来观看的_Applet,可独立运行的 Application   ,服务器端的 Servlets

11、关于下面程序 ThisTest .java 运行结果 说法正确的是 : (B )

public class ThisTest {
public static void main(String args[]) {
String x="7";
int y = 2;
int z=2;
System.out.println(x+y+z);
}
}
A、11
B、722
C、22
D、程序有编译错误 

答案解析:字符串可以通过加号进行拼接,座椅随后整形与字符串的相加相当于拼接成字符串。

12、如果一个list初始化为{5,3,1},执行以下代码后,其结果为(B)?
nums.add(6);
nums.add(0,4);
nums.remove(1);

A、[5,3,1,6]
B[4,3,1,6]
C、[4,3,6]
D[5,3,6]

答案解析:nums.add(6) [5,3,1,6]   nums.add(0,4)[4,5,3,1,6]    nums.remove(1);[4,3,1,6]

13、数组A的每个元素需要4个字节存放,数组有8行 10列,若数组以行为主顺序存放在内存SA开始的存储区中,则A中8行5列的元素的位置是(C)

SA+74
SA+292
SA+296
SA+300

答案解析:要求8行5列地址,其实求的就是A[7][4]地址,故位置为(7*10 + 4)* 4 = 296

14、考虑下面这个简单的例子,让我们看看reflection是如何工作的。其中"c.getDeclaredMethods"的作用是:(D)
import java.lang.reflect.*;
public class DumpMethods{
public static void main(String[] args) {
try {
Class c=Class.forName(args[0]);
Method m[]=c.getDeclaredMethods();
for (int i = 0; i < m.length; i++) {
System.out.println(m[i].toString());
}
} catch (Throwable e) {
System.err.println(e);
}
}
}
 
A、取得类的公有方法对象
B、取得类的所有公有方法名称
C、取得类的所有方法对象
D、以上选项都不正确

答案解析:

getDeclaredMethods() 返回 Class 对象表示的类或接口的所有已声明的方法数组,但是不包括从父类继承和接口实现的方法。

getMethods() 返回当前 Class 对象表示的类或接口的所有公有成员方法对象数组,包括已声明的和从父类继承或实现接口的方法。

15、关于Java的一些概念,下面哪些描述是正确的:( BF)

所有的Java异常和错误的基类都是java.lang.Exception, 包括java.lang.RuntimeException
通过try … catch … finally语句,finally中的语句部分无论发生什么异常都会得到执行
java中所有的数据都是对象
Java通过垃圾回收回收不再引用的变量,垃圾回收时对象的finallize方法一定会得到执行
Java是跨平台的语言,无论通过哪个版本的Java编写的程序都能在所有的Java运行平台中运行
Java通过synchronized进行访问的同步,synchronized作用非静态成员方法和静态成员方法上同步的目标是不同的

答案解析:

A:Java中所有错误和异常的父类是java.lang.Throwable

B:基本数据类型不是对象,不能用new的方法获取,但是每个基本数据类型都对应着封装类型,这些封装类型为了解决基本数据类型面向对象用的。

C:Java垃圾回收器负责回收无用对象占据的内存资源,但对象没有使用new获取了一块特殊区域,这块特殊区域的回收使用finallize()

D:Java跨平台是因为有JVM的存在,Java的三个版本的运行需要各自不同的环境。

编程题:

1、给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
代码:

class Solution {
public int[] twoSum(int[] nums, int target) {
int[] indexs = new int[2];
HashMap<Integer,Integer> hash = new HashMap<Integer,Integer>();
for(int i = 0; i < nums.length; i++){
if(hash.containsKey(nums[i])){
indexs[0] = i;
indexs[1] = hash.get(nums[i]);
return indexs;
}
// 将数据存入 key为补数 ,value为下标
hash.put(target-nums[i],i);
}
return indexs;
}}

 

 

最后

以上就是失眠长颈鹿为你收集整理的牛客(9.7)-数组专项练习的全部内容,希望文章能够帮你解决牛客(9.7)-数组专项练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部