下列关于 java 语言的特点,描述错误的是()
A. java是跨平台的编程语言
B. java支持分布式计算
C. java是面向过程的编程语言
D. java支持多线程
答案:C
当你编译和运行下面的代码时,会出现下面选项中的哪种情况?
public class Pvf{ static boolean Paddy; public static void main(String args[]){ System.out.println(Paddy); } }
A. 编译时错误
B. 编译通过并输出结果false
C. 编译通过并输出结果true
D. 编译通过并输出结果null
答案:B
以下叙述正确的是
A. 实例方法可直接调用超类的实例方法
B. 实例方法可直接调用超类的类方法
C. 实例方法可直接调用子类的实例方法
D. 实例方法可直接调用本类的实例方法
答案:D
Java 语言用以下哪个类来把基本类型数据封装为对象()
A. 包装类
B. Class
C. Math
D. Object
答案:A
关于异常处理机制的叙述正确的是()
A. catch部分捕捉到异常情况时,才会执行finally部分
B. 当try区段的程序发生异常时,才会执行finally部分
C. 当try区段不论程序是否发生错误及捕捉到异常情况,都会执行finally部分
D. 其他选项都是
答案:C
HashSet子类依靠()方法区分重复元素。
A. toString(),equals()
B. clone(),equals()
C. hashCode(),equals()
D. getClass(),clone()
答案:C
以下代码在编译和运行过程中会出现什么情况
public class TestDemo{ private int count; public static void main(String[] args) { TestDemo test=new TestDemo(88); System.out.println(test.count); } TestDemo(int a) { count=a; } }
A. 编译运行通过,输出结果是88
B. 编译时错误,count变量定义的是私有变量
C. 编译时错误,System.out.println方法被调用时test没有被初始化
D. 编译和执行时没有输出结果
答案:A
以下程序执行的结果是:
class X{ Y y=new Y(); public X(){ System.out.print("X"); } } class Y{ public Y(){ System.out.print("Y"); } } public class Z extends X{ Y y=new Y(); public Z(){ System.out.print("Z"); } public static void main(String[] args) { new Z(); } }
A. ZYXX
B. ZYXY
C. YXYZ
D. XYZX
答案:C
有这么一段程序:
public class Test{ public String name="abc"; public static void main(String[] args){ Test test=new Test(); Test testB=new Test(); System.out.println(test.equals(testB)+","+test.name.equals(testB.name)); } }
请问以上程序执行的结果是()
A. true,true
B. true,false
C. false,true
D. false,false
答案:C
以下哪项是类实例化的语句?
A. varName ClassName=new varName();
B. ClassName varName=new ClassName(new ClassName);
C. ClassName varName=ClassName();
D. ClassName varName=new ClassName();
答案:D
求正整数组的最小不可组成和
题目描述:给定一个全是正数的数组arr,定义一下arr的最小不可组成和的概念:
- arr的所有非空子集中,把每个子集内的所有元素加起来会出现很多的值,其中最小的 记为min,最大的记为max;
- 在区间[min,max]上,如果有一些正数不可以被arr某一个子集相加得到,那么这些正数中最小的那个,就是arr的最小不可组成 和;
- 在区间[min,max]上,如果所有的数都可以被arr的某一个子集相加得到,那么max+1是arr的最小不可组成和;
举例: arr = {3,2,5} arr的min为2, max为10,在区间[2,10]上,4是不能被任何一个子集相加得到的值中最小的,所以4是arr的最小不可组成和; arr = {3,2,4} arr的min为2,max为9,在区间 [2,9]上,8是不能被任何一个子集相加得到的值中最小的,所以8是arr的最小不可组成和; arr = {3,1,2} arr的min为1,max为6,在区间[2,6]上,任何数都可以 被某一个子集相加得到,所以7是arr的最小不可组成和; 请写函数返回arr的最小不可组成和。
public class Solution5 { // 求正整数组的最小不可组成和 //输入:整数数组arr //返回:整数数组中的最小不可组成和 public int getFirstUnFromedNum(int[] arr){ int min =Integer.MAX_VALUE; int max=0; for (int i:arr) { min=Math.min(min,i); max+=i; } boolean[] result=new boolean[max+1]; result[0]=true; for (int o:arr) { for (int j = max; j >=o ; j--) { result[j]=result[j-o] || result[j]; } } for (int j = min; j < result.length; j--) { if (!result[j]){ return j; } } return max+1; } }
有假币
题目描述:居然有假币! 现在猪肉涨了,但是农民的工资却不见涨啊,没钱怎么买猪肉啊。nowcoder这就去买猪肉,结果找来的零钱中有假币!!!可惜nowcoder 一不 小心把它混进了一堆真币里面去了。只知道假币的重量比真币的质量要轻,给你一个天平(天平两端能容纳无限个硬币),请用最快的时间把那个可恶的假币找 出来。
输入描述:1≤n≤2^30,输入0结束程序。
输出描述:最多要称几次一定能把那个假币找出来?
public class Main46 {
//有假币
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while (scanner.hasNext()){
int n=scanner.nextInt();
if (n==0){
break;
}
int count=0;
while (n >=2){
n=(int) Math.ceil((double) n/3);
count++;
}
System.out.println(count);
}
}
}