笔试强训day26

一、选择题

1、在Java中,以下关于方法重载和方法重写描述正确的是?
A 方法重载和方法的重写实现的功能相同
B 方法重载出现在父子关系中,方法重写是在同一类中
C 方法重载的返回值类型必须一致,参数项必须不同
D 方法重写的返回值类型必须相同或相容。
他的回答: B (错误)
正确答案: D
2、下列哪些语句关于内存回收的说明是正确的? ( )
A 程序员必须创建一个线程来释放内存
B 内存回收程序负责释放无用内存
C 内存回收程序允许程序员直接释放内存
D 内存回收程序可以在指定的时间释放内存对象
他的回答: B (正确)
正确答案: B
3、在 java 中 , 以下 _____ 类的对象以键 - 值的方式存储对象
A java,util.List
B java,util.ArrayList
C java,util.HashMap
D java,util.LinkedList
他的回答: C (正确)
正确答案:C
4、下列语句正确的是:
A 形式参数可被字段修饰符修饰
B 形式参数不可以是对象
C 形式参数为方法被调用时真正被传递的参数
D 形式参数可被视为local variable
他的回答: A (错误)
正确答案: D
5以下语句的执行结果是什么? 1+”10”+3+”2”
A ”11032”
B “16”
C 16
D “32101”
他的回答: A (正确)
正确答案: A
Java中所有其他类型和字符串进行"+"都会转为字符串而后进行字符串的拼接.
6、A派生出子类B,B派生出子类C,并且在java源代码中有如下声明

1.A a0=new A();
2.A a1=new B();
3.A a2=new C();

以下哪个说法是正确的?
A 第1行,第2行和第3行的声明都是正确的
B 第1,2,3行都能通过编译,但第2,3行运行时出错
C 第1,2行能通过编译,但第3行编译出错
D 只有第1行能通过编译
他的回答: A (正确)
正确答案: A
7、在java7中,下列哪个说法是正确的:
A ConcurrentHashMap使用synchronized关键字保证线程安全
B HashMap实现了Collection接口
C Arrays.asList方法返回java.util.ArrayList对象
D SimpleDateFormat对象是线程不安全的
他的回答: A (错误)
正确答案: D
8、给定代码:

public class SwitchTest{//1
public static void main(String[] args) {//2
System.out.println("value="+switchit(4));//3
}//4
public static int switchit(int x) {
int j=1;
switch (x) {
case 1:j++;
case 2:j++;
case 3:j++;
case 4:j++;
case 5:j++;
default:j++;
}
return j+x;
}
}

第三行将输出什么?
A value=6
B value=8
C value=3
D value=5
E value=4
他的回答: A (错误)
正确答案: B
参考答案:
switch代码块中没有break,从case 4开始一直执行到最后,j自加3次变成了4,结果返回8,所以选B
9、关于以下程序段,正确的说法是:()

String s1="abc"+"def";//1
String s2=new String(s1);//2
if(s1.equals(s2))//3
System.out.println(".equals succeeded");//4
if(s1==s2)//5
System.out.println("==succeeded");//6

A 行4,行6都不执行
B 行6执行,行4不执行
C 行4执行,行6不执行
D 行4,行6都将执行
他的回答: C (正确)
正确答案: C
10、Java 多线程有几种实现方法?( )
A 继承Thread类
B 实现Runnable接口
C 实现Thread接口
D 以上都不正确
他的回答: A B (正确)
正确答案: A B

二、编程题

【跳台阶扩展问题】
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。
数据范围:1<=n<=20
进阶:空间复杂度O(1) , 时间复杂度O(1)
【解题思路】:
根据题图解析可以得出有一阶的时候 f(1) = 1 ; 有两阶的时候可以有 f(2) = 1+f(1)=2; 有三阶的时候可以有 f(3) =
1+f(2)+f(1)=4;

总跳法为: f(n) = 1+f(n-1) + f(n-2)+…+f(1) (第一个1是跳n阶只有一种方法)
依次类推,得到类推公式有n阶时:f(n)=2^(n-1)。
在这里插入图片描述
在这里插入图片描述

public class Solution {
    public int jumpFloorII(int target) {
        //整数x*2^n = x<<n;
        //2^(target-1)=1*2^(target-1)
        return 1<<--target;
    }
}

【快到碗里来】
小喵们很喜欢把自己装进容器里的(例如碗),但是要是碗的周长比喵的身长还短,它们就进不去了。
现在告诉你它们的身长,和碗的半径,请判断一下能否到碗里去。
输入描述:
输入有多组数据。
每组数据包含两个整数n (1≤n≤2^128) 和r (1≤r≤2^128),分别代表喵的身长和碗的半径。
圆周率使用3.14。
输出描述:
对应每一组数据,如果喵能装进碗里就输出“Yes”;否则输出“No”。
示例1:
输入
6 1\n7 1\n9876543210 1234567890
输出
Yes\nNo\nNo

牛客网ACM模式代码

import java.util.*;
import java.math.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            BigDecimal n = sc.nextBigDecimal();
            BigDecimal r = sc.nextBigDecimal();
            BigDecimal len = new BigDecimal("6.28").multiply(r);
            System.out.println(n.compareTo(len)==1?"No":"Yes");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值