【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();
}
}