java刷题day 05

一. 单选题:

解析:

  • 5 >> 2 相当于 5除于2两次,等于1
  • >>> 表示无符号右移,高位用 0 填充,0001右移两位 0000,所以选A

 解析:作对这道题的关键是要理解Java的值传递,关于值传递和引用传递的解释如下:

  1. 值传递:是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
  2. 引用传递:是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

        这道题中a、b(是引用的副本,Java中没有引用传递)传入operate()函数中,但最后a指向的对象的值发生了变化,而b指向的对象的值没有发生变化,这是因为x.append(y);改变了a指向的对象的值,而y=x;并没有改变b指向对象的值,指向将y指向了x所指向的对象(之前y和b指向同一个对象)。

解析:在一个类的构造方法中调用这个类的其他构造方法,需要用this关键字

 解析:使用局部变量一定要初始化

 解析:float double long boolean 都不可以

 解析:

A:只有public类类名要与文件名相同

B:也可以是其他类

D:不能包含多个 public类 

  解析:虽然try有return了,但finally一定会被执行,所以 return 的是 false

   解析:void 是java的关键字

    解析:传字符串是形参 数组是实参

 二、不定项选择

    解析:C:不是不可继承是不可重写

三、编程题

统计回文_牛客题霸_牛客网 (nowcoder.com)

 

import java.util.Scanner; 
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in); 
            String str1 = in.nextLine();
            String str2 = in.nextLine(); 
            int count = 0;
            int len = str1.length();
            for(int i =0;i<=len;i++){
                StringBuffer str = new StringBuffer(str1);
                str.insert(i,str2);
                StringBuffer tmp = new StringBuffer(str);
                StringBuffer str5 = tmp.reverse();
                if(str5.toString().equals(str.toString())){
                    count++;
                }
            }
            System.out.println(count); 
    }
}

解题思路,把每种情况列出来,倒置后与倒置前相比,相等就是回文。

连续最大和_牛客题霸_牛客网 (nowcoder.com)

import java.util.Scanner;
public class Main {
    public static int getMax(int a,int b) {
        return a>b? a:b;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int size = in.nextInt();
        int[] ch = new int[size];
        for(int i = 0;i<size;i++){
            ch[i] = in.nextInt();
        }
        int sum = ch[0];
        int max = ch[0];
        for(int i=1;i<size;i++){
            sum = getMax(sum+ch[i],ch[i]); 
            if(sum>max){
                max = sum;
            }
        }
        System.out.println(max);
    }
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值