【Java笔试强训 7】
🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!欢迎志同道合的朋友一起加油喔🤺🤺🤺
目录
一、选择题
二、编程题
🔥Fibonacci数列
🔥合法括号序列判断
一、选择题
1、JAVA属于( )
A 操作系统
B 办公软件
C 数据库系统
D 计算机语言
正确答案: D
参考答案:
计算机软件主要分为系统软件与应用软件两大类。系统软件主要包括操作系统、语言处理系统、数据库管理系统和系统辅助处理程序。应用软件主要包括办公软件和多媒体处理软件。Java是一门面向对象编程语言,属于计算机语言。故正确答案为D选项。
2、类声明中,声明抽象类的关键字是 ( )
A public
B abstract
C final
D class
正确答案: B
3、在使用 interface 声明一个接口时,只可以使用()修饰符修饰该接口
A private
B protected
C private protected
D public
正确答案: D
4、Math.round(11.5) 等于:()
A 11
B 11.5
C 12
D 12.5
正确答案: C
round函数表示四舍五入。
5、以下对继承的描述错误的是()
A Java中的继承允许一个子类继承多个父类
B 父类更具有通用性,子类更具体
C Java中的继承存在着传递性
D 当实例化子类时会递归调用父类中的构造方法
正确答案: A
6、在 java 中 , 一个类()
A 可以继承多个类
B 可以实现多个接口
C 在一个程序中只能有一个子类
D 只能实现一个接口
正确答案: B
7、关于以下程序代码的说明正确的
class HasStatic{
private static int x = 100;
public static void main(String args[ ]){
HasStatic hs1 = new HasStatic();
hs1.x++;
HasStatic hs2 = new HasStatic();
hs2.x++;
hs1=new HasStatic();
hs1.x++;
HasStatic.x--;
System.out.println( "x=" +x);
}
}
A 5行不能通过编译,因为引用了私有静态变量
B 10行不能通过编译,因为x是私有静态变量
C 程序通过编译,输出结果为:x=103
D 程序通过编译,输出结果为:x=102
正确答案: D
参考答案:
被static修饰的变量,只有一份
8、以下 _____ 不是 Object 类的方法
A clone()
B finalize()
C toString()
D hasNext()
正确答案: D
D选项是iterator的方法
9、下面哪一项不是 java 类访问控制关键字
A public
B this
C private
D protected
正确答案: B
10、java 语言使用的字符码集是
A ASCII
B BCD
C DCB
D Unicode
正确答案: D
参考答案:
ASCII:特殊字符,大小写字母,数字;BCD是对数字;Unicode是对Java的
二、编程题
🔥Fibonacci数列
Fibonacci数列_牛客题霸_牛客网
【解题思路】:
本题可以通过先找到距离N最近的两个Fibonacci数,这两个数分别取自距离N的最近的左边一个数L和右边一个数R,然后通过min(N - L, R - N)找到最小步数。
import java.util.*;
public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();int f1=0;int f2=1;while(f2<n){int f3=f1+f2 ;f1=f2;f2=f3;}int min=Math.min(n-f1,f2-n);System.out.print(min);}
}
🔥合法括号序列判断
合法括号序列判断_牛客题霸_牛客网
【解题思路】:
用栈结构实现,栈中存放左括号,当遇到右括号之后,检查栈中是否有左括号,如果有则出栈,如果没有,则说明不匹配。
1、存储遍历过的左括号
2、最先遍历的左括号最后匹配,最后遍历到左括号最先匹配
如何判断:
1、如果字符串的长度不为偶数,直接返回false
2、当长度为偶数,遍历字符串,遇到左括号入栈,遇到右括号,看栈顶元素是否为左括号,如果是左括号出栈,继续遍历。当字符串遍历结束,如果栈为空,那么字符串就是一个合法的括号,返回true
3、如果遍历到非括号的字符,直接返回法false。
import java.util.*;public class Parenthesis {public boolean chkParenthesis(String A, int n) {if(n%2!=0){return false;}Stack<Character> stack=new Stack<>();for(char x:A.toCharArray()){if(x=='('){stack.push(x);}else if(x==')'){if(stack.isEmpty()){return false;}else if(stack.peek()=='('){stack.pop();}}else{return false;}}return stack.isEmpty();}
}