🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!欢迎志同道合的朋友一起加油喔🤺🤺🤺
目录
一、选择题
二、编程题
🔥不要二
🔥把字符串转换成整数
编辑
一、选择题
1、关于抽象类与最终类,下列说法错误的是?
A 抽象类能被继承,最终类只能被实例化。
B 抽象类和最终类都可以被声明使用
C 抽象类中可以没有抽象方法,最终类中可以没有最终方法
D 抽象类和最终类被继承时,方法可以被子类覆盖
正确答案: D
参考答案:
final修饰的类(就是最终类)不能被继承
2、已知表达式int m[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量最大值相等?
A m. length()
B m. length-1
C m. length()+1
D m. length+1
正确答案: B
3、下列哪个对访问修饰符作用范围由大到小排列是正确的?
A private>default>protected>public
B public>default>protected>private
C private>protected>default>public
D public>protected>default>private
正确答案: D
4、有六个元素6,5,4,3,2,1顺序入栈,问下列哪一个不是合法的出栈序列?()
A 5 4 3 6 2 1
B 4 5 3 1 2 6
C 3 4 6 5 2 1
D 2 3 4 1 5 6
正确答案: C
5、阅读下列程序,选择哪一个是正确的输出结果
class HelloA{
public HelloA()
{
System.out.println("I’m A class ");
}
static
{
System.out.println("static A");
}
}
public class HelloB extends HelloA{
public HelloB()
{
System.out.println("I’m B class");
}
static{
System.out.println("static B");
}
public static void main (String[] args){
new HelloB();
}
}
A static A I’m A class static B I’m B class
B I’m A class I’m B class static A static B
C static A static B I’m A class I’m B class
D I’m A class static A I’m B class static B
正确答案: C
参考答案:
静态代码块先执行父类的静态代码块,在执行其它静态代码块
6、执行下列代码的输出结果是( )
public class Demo{
public static void main(String args[]){
int num = 10;
System.out.println(test(num));
}
public static int test(int b){
try
{
b += 10;
return b;
}
catch(RuntimeException e)
{
}
catch(Exception e2)
{
}
finally
{
b += 10;
return b;
}
}
}
A 10
B 20
C 30
D 40
正确答案: C
参考答案:
如果finally块中有return语句的话,它将覆盖掉函数中其他return语句,所以返回30。
7、下列代码的输出结果是_____
boolean b=true?false:true==true?false:true;
System.out.println(b)
A true
B false
C null
D 空字符串
正确答案: B
参考答案:
这是一个三目运算符
为真返回false,假返回true==true?false:true
8、在Java中下面Class的声明哪些是错误的?
A public abstract final class Test { abstract void method(); }
B public abstract class Test { abstract final void method(); }
C public abstract class Test { abstract void method() { } }
D public class Test { final void method() { } }
正确答案: A B C
参考答案:
abstract和finally是不能同时出现的,抽象方法不能有具体的实现
9、下列关于构造方法的叙述中,错误的是()
A java语言规定构造方法名与类名必须相同
B java语言规定构造方法没有返回值,但不同void声明
C java语言规定构造方法不可以重载
D java语言规定构造方法只能通过new自动调用
正确答案: C D
10、下面哪些赋值语句是正确的()
A long test=012
B float f=-412
C int other =(int)true
D double d=0x12345678
E byte b=128
正确答案: A B D
参考答案:
A是8进制,D是十六进制
二、编程题
🔥不要二
不要二_牛客题霸_牛客网
【解题思路】:
仔细读理解了上面的题目解读,本题就非常简单了,定义一个二维数组,array开空间并初始化,每个位置初始化为0,表示当蛋糕,a[i][j]位置放蛋糕,则可以标记处a[i][j+2]和a[i+2][j]位置不能放蛋糕,遍历一遍二维数组,标记处不能放蛋糕的位置,统计也就统计出了当蛋糕的位置数。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int H=sc.nextInt();
int W=sc.nextInt();
int[][] array=new int[H][W];
int count=0;
for(int i=0;i<H;i++){
for(int j=0;j<W;j++){
if(array[i][j]==0){
count++;
if(i+2<H){
array[i+2][j]=1;
}
if(j+2<W){
array[i][j+2]=1;
}
}
}
}
System.out.print(count);
}
}
🔥把字符串转换成整数
把字符串转换成整数_牛客题霸_牛客网
【解题思路】:
解题思路非常简单,就是上次计算的结果*10,相当于10进制进位,然后加当前位的值。
本题的关键是要处理几个关键边界条件:
- 空字符串
- 正负号处理
- 数字串中存在非法字符
public class Solution { public int StrToInt(String str) { char[] array=str.toCharArray(); if(array==null||array.length==0){ return 0; } int flag=1; if(array[0]=='-'){ flag=-1; array[0]='0'; } if(array[0]=='+'){ array[0]='0'; flag=1; } int sum=0; for(int i=0;i<array.length;i++){ if(array[i]<'0'||array[i]>'9'){ sum=0; break; } sum=sum*10+array[i]-'0'; } return flag*sum; } }