【Java笔试强训 4】
🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!欢迎志同道合的朋友一起加油喔🤺🤺🤺
目录
一、选择题
二、编程题
🔥计算糖果
🔥进制转换
一、选择题
1、下列与队列结构有关联的是()
A 函数的递归调用
B 数组元素的引用
C 多重循环的执行
D 先到先服务的作业调度
正确答案: D
参考答案:
队列的修改是依先进先出的原则进行的。
2、类所实现的接口以及修饰不可以是()。
A void
B public
C abstract
D final
正确答案: D
3、下列关于栈叙述正确的是( )
A 算法就是程序
B 设计算法时只需要考虑数据结构的设计
C 设计算法时只需要考虑结果的可靠性
D 以上三种说法都不对
正确答案: D
参考答案:
算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以 A 错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。
4、下面关于abstract关键字描述错误的是()
A abstract关键字可以修饰类或方法
B final类的方法都不能是abstract,因为final类不能有子类
C abstract类不能实例化
D abstract类的子类必须实现其超类的所有abstract方法
正确答案: D
参考答案:
抽象类的子类是抽象的,可以不重写这个方法。
5、结构化程序的三种基本结构是( )
A 递归、迭代和回溯
B 过程、函数和子程序
C 顺序、选择和循环
D 调用、返回和选择
正确答案: C
参考答案:
仅使用顺序、选择、循环三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。故本题答案为 C 选项。
6、对于abstract声明的类,下面说法正确的是
A 可以实例化
B 不可以被继承
C 子类为abstract
D 只能被继承
E 可以被抽象类继承
正确答案: E
7、1GB 的准确值是( )
A 1024×1024 Bytes
B 1024 KB
C 1024 MB
D 1000×1000 KB
正确答案: C
参考答案:
1GB=1024MB=1024 × 1024KB=1024 × 1024 × 1024B
8、下面选项中,哪些是interface中合法方法定义?()
A public void main(String [] args);
B private int getSum();
C boolean setFlag(Boolean [] test);
D public float get(int x);
正确答案: A C D
参考答案:重写的规则是子类的权限一定要大于等于父类的权限。
9、下面哪些类实现或继承了 Collection 接口?
A HashMap
B ArrayList
C Vector
D Iterator
正确答案: B C
10、以下为 java 语法保留不能作为类名和方法名使用的是
A default
B int
C implements
D throws
正确答案: A B C D
二、编程题
🔥计算糖果
计算糖果_牛客题霸_牛客网
【解题思路】:
1、A - B = a 2、B - C = b 3、A + B = c 4、B + C = d 这道题目的实质是:判断三元一次方程组是否有解及求解, 这里是小学生都会的问题了^^ 1+3可以得到A=(a+c)/2;4-2可以得到C=(d-b)/2;2+4可以得到B2=(b+d)/2,3-1可以得到B1=(c-a)/2;如果B1不等B2则表达式无解。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int c=sc.nextInt();
int d=sc.nextInt();
int A=(a+c)/2;
int B1=(c-a)/2;
int B2=(b+d)/2;
int C=(d-b)/2;
if(B1==B2){
System.out.print(A+" "+B1+" "+C);
}else{
System.out.print("No");
}
}
}
🔥进制转换
进制转换_牛客题霸_牛客网
【解题思路】:
本题思路很简单,首先想清楚原理:N进制数,每个进制位的值分别是X0N0,X1*N1, X2N^2…,X0,X1,X2就是这些进制位的值,就是就是进行取模余数就是当前低进制的位的值是多少,通过除掉进制数,进入下一个进制位的计算。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int m=sc.nextInt();
int n=sc.nextInt();
String s="0123456789ABCDEF";
boolean flag=false;
if(m==0){
System.out.print("0");
}
if(m<0){
m=-m;
flag=true;
}
StringBuilder str=new StringBuilder();
while(m!=0){
str.append(s.charAt(m%n));
m=m/n;
}
if(flag){
str.append("-");
}
str.reverse();
System.out.print(str);
}
}