一、选择题
1、如果希望监听TCP端口9000,服务器端应该怎样创建socket?
A new Socket(“localhost”,9000);
B new ServerSocket(9000);
C new Socket(9000);
D new ServerSocket(“localhost”,9000);
他的回答: D (错误)
正确答案: B
服务器端使用ServerSocket(int port)-默认在本地指定端口号监听TCP端口客户端使用Socket来连接服务器 Socket(IP,port)。
2、下列哪个类的声明是正确的?
A abstract final class HI{}
B abstract private move(){}
C protected private number;
D public abstract class Car{}
他的回答: D (正确)
正确答案: D
3、java 接口的修饰符可以为()
A private
B protected
C final
D abstract
他的回答: D (正确)
正确答案: D
4、jre 判断程序是否执行结束的标准是()
A 所有的前台线程执行完毕
B 所有的后台线程执行完毕
C 所有的线程执行完毕
D 和以上都无关
他的回答: C (错误)
正确答案: A
JRE:Java运行时环境
JDK:Java开发工具包,包含了JRE
什么时候Java进程认为程序全部执行完毕:所有前台线程(用户线程)执行完毕 。setDameon(true)
一般我们创建的线程都是前台线程后台线程:JVM垃圾回收线程。
5、int i=5;
int s=(i++)+(++i)+(i–)+(–i);
s=( )//s 的值是什么?
A 28
B 25
C 21
D 26
E 24
F 23
他的回答: C (错误)
正确答案:E
6、如下语句通过算术运算和逻辑运算之后i和 j的结果是( )
int i=0;
int j=0;
if((++i>0)||(++j>0))
{
//打印出i和j的值。
}
A i=0;j=0
B i=1;j=1
C i=0;j=1
D i=1;j=0
他的回答: D (正确)
正确答案: D
7、下面不属于Object类中方法的是:
A hashCode()
B finally()
C wait()
D toString()
他的回答: C (错误)
正确答案: B
finally是一个代码块,不是一个方法。
8、下列哪项不属于jdk1.6垃圾收集器?
A Serial收集器
B parNew收集器
C CMS收集器
D G1收集器
他的回答: D (正确)
正确答案: D
D是JDK7有的。
9、instanceof运算符能够用来判断一个对象是否为:
A 一个类的实例
B 一个实现指定接口的类的实例
C 全部正确
D 一个子类的实例
他的回答: B (错误)
正确答案: C
10、对于java类型变量char c,short s,float f,double d,表达式c*s+f+d的结果类型为()
A float
B char
C short
D double
他的回答: D (正确)
正确答案: D
只要牵扯到算数运算,所有类型都会转为最大的类型而后进行运算。
二、编程题
【猴子分桃】
老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。老猴子决定把这些桃子分给小猴子。
第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。
第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。
后来的小猴子都如此照办。最后剩下的桃子全部留给老猴子。
这里有n只小猴子,请你写个程序计算一下在开始时至少有多少个桃子,以及最后老猴子最少能得到几个桃子。
输入描述:
输入包括多组测试数据。
每组测试数据包括一个整数n(1≤n≤20)。
输入以0结束,该行不做处理。
输出描述:
每组测试数据对应一行输出。
包括两个整数a,b。
分别代表开始时最小需要的桃子数,和结束后老猴子最少能得到的桃子数。
示例1:
输入
5\n1\n0
输出
3121 1025\n1 1
**【解题思路】:**公式类推
因为每次分5堆都会多出来1个,所以我们借给猴子们4个,以致每次都可以刚好分成5堆 并且,每次给老猴子的桃子都不在我们借出的那4个中,这样最后减掉4就可以得到结果。 假设最初由x个桃子,我们借给猴子4个,则此时
有x+4个, 第一个猴子得到(x+4)/5,剩余(x+4)(4/5)个 第二个猴子分完后剩余(x+4) (4/5)^2个 第三个猴子分完后剩余(x+4) (4/5)^3个 依次类推,第n个猴子分完后剩余(x+4)(4/5)^n 要满足最后剩余的为整
数,并且x最小,则当 x+4=5n时,满足要求;此时,x=5n - 4; 老猴子得到的数量为:x+4)*(4/5)^n + n - 4= 4^n + n - 4 最后的 +n是因为每个小猴子都会多出一个给老猴子,-4是还了借的4个。
牛客网ACM模式代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int n = sc.nextInt();
if(n==0) break;
long a = (long) (Math.pow(5, n) - 4);
long b = (long) (Math.pow(4, n) + n - 4);
System.out.println(a + " " + b);
}
}
}