当前位置: 首页 > article >正文

【Java笔试强训 25】

🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!

欢迎志同道合的朋友一起加油喔🤺🤺🤺


目录

一、选择题

二、编程题

   🔥星际密码

   🔥数根



一、选择题

1、下面有关JVM内存,说法错误的是?
A 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
B Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
C 方法区用于存储JVM加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,是线程隔离的
D 原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
正确答案: C
2、下列程序段的输出结果是:( )

public void complicatedexpression_r(){
int x=20, y=30;
boolean b;
b = x > 50 && y > 60 || x > 50 && y < -60 || x < -50 && y > 60 || x < -50 && y < -60;
System.out.println(b);
}

A true
B false
C 1
D 0
正确答案: B
参考答案:
首先,返回类型是boolean,因此不存在返回0或1的情况,C、D选项排除。
本题中,出现的与和非都是短路的,与操作时一旦遇到false就停止执行后当前关系式中的后续代码,同理或操作时一旦遇到true也停止执行。因此从左往右来看,x>50为false,y>60不需要判断,此时b=false,短路或不停止,同理继续向下执行,表达式可以等同于b=false||false||false||false。因此结果为false,答案选择B。
3、输入流将数据从文件,标准输入或其他外部输入设备中加载道内存,在 java 中其对应于抽象类()及其子类。
A java.io.InputStream
B java.io.OutputStream
C java.os.InputStream
D java.os.OutputStream
正确答案: A
4、以下程序的输出结果是

public class Print{
	static boolean out(char c){
		System.out.print(c);
		return true;
	}
	public static void main(String[] argv){
		int i = 0;
		for(out('A');out('B') && (i<2);out('C')){
		i++;
		out('D');
		}
	}
}

A ABDCBDCB
B BCDABCD
C 编译错误
D 运行错误
正确答案: A
参考答案:
for循环首先执行out(‘A’) 输出A;然后执行out(‘B’)&&(i<2)此时输出B,i=0,判断条件为真,执行for循环的循环体;执行i++,out(‘D’),输出D i=1;其次执行out(‘C’),输出C;然后执行out(‘B’)&&(i<2) 此时输出B,i=1 判断条件为真,执行for循环的循环体;执行i++,out(‘D’),输出D i=2;执行out(‘C’),输出C;然后执行out(‘B’)&&(i<2) 此时输出B,i=2,不满足i<2判断条件为假,跳出循环。
综上所述结果为ABDCBDCB。
5、下面关于程序编译说法正确的是()
A 、 java语言是编译型语言,会把java程序编译成二进制机器指令直接运行。
B、 java编译出来的目标文件与具体操作系统有关。
C、 java在运行时才进行翻译指令。
D 、java编译出来的目标文件,可以运行在任意jvm上。
正确答案: C
A是半编译半解释,目标文件class文件是与操作系统无关得,面向JVM得二进制文件。
6、下面那些情况可以终止当前线程的运行?
A 当一个优先级高的线程进入就绪状态时
B 抛出一个异常时
C 当该线程调用sleep()方法时
D 当创建一个新线程时
正确答案: B
线程的终止:
a.线程的任务执行完毕(正常终止)
b.线程执行过程中出现异常(异常终止)
7、下面程序的运行结果:()

public static void main(String args[]) {
	Thread t=new Thread(){
		public void run(){
			dianping();
		}
	};
	t.run();
	System.out.print("dazhong"); 
}
	static void dianping(){
	System.out.print("dianping");
}

A dazhongdianping
B dianpingdazhong
C a和b都有可能
D dianping循环输出,dazhong夹杂在中间
正确答案: B
参考答案:
本题中,线程t并没有启动,只是调用了run()方法,程序中运行的线程依然只有一个,那么程序会按照顺序执行,即先运行run(),run()方法调用dianping()方法输出"dianping",程序继续向下执行输出"dazhong"。如果本题中t线程调用start()方法,就会出现C选项的情况。综上所述,正确答案为B。
8、默认类型等价表示是哪一项:

public interface IService {String NAME="default";}

A public String NAME=“default”;
B public static String NAME=“default”;
C public static final String NAME=“default”;
D private String NAME=“default”;
正确答案: C
接口中的变量都是全局变量public static final。
9、有以下类定义:

abstract class Animal{
abstract void say();
}
public class Cat extends Animal{
public Cat(){
System.out.printf("I am a cat");
}
public static void main(String[] args) {
Cat cat=new Cat();
}
}

运行后:
A I am a cat
B Animal能编译,Cat不能编译
C Animal不能编译,Cat能编译
D 编译能通过,但是没有输出结果
正确答案: B
抽象类的子类必须覆写所有的抽象方法(子类不是抽象类)。
10、类Test1定义如下:

public class Test1{//1
public float aMethod(float a,float b){}//2
//3
}//4

将以下哪种方法插入行3是不合法的。
A public int aMethod(int a,int b){}
B private float aMethod(int a,int b,int c){}
C public float aMethod(float a,float b){}
D public float aMethod(float a,float b,float c){}
正确答案: C


二、编程题

   🔥星际密码

  星际密码__牛客网

 【题目解析】:
这个题目首先需要明确矩阵是固定的,其次是矩阵相乘的方法
矩阵相乘 |a1 a2| * |c1 c2| = |a1c1 + a2d1 a1c2 + a2d2| |b1 b2| |d1 d2| |b1c1 + b2d1 b1d2 + b2d2|
矩阵是|1 1|^2 = |1 1|*|1 1|=|2 1| |1 0| |1 0| |1 0| |1 1| n的取值:1 2 3 4 5 6 … 左上角值:1 2 3 5 8 13 … 是一个变式的斐波那契
【解题思路】:初始化斐波那契数列,每次获取对应数据,打印最后4位即可。

import java.util.*;
public class Main {
     public static void main(String[] args){
         int[] num=new int[10001];
         num[1]=1;
         num[2]=2;
         for(int i=3;i<10001;i++){
             num[i]=num[i-1]+num[i-2];
             num[i]=num[i]%10000;
         }
         Scanner sc=new Scanner(System.in);
         while(sc.hasNext()){
             StringBuilder sb=new StringBuilder();
                int n=sc.nextInt();
             for(int i=0;i<n;i++){
                 int m=sc.nextInt();
              sb.append(String.format("%04d",num[m]));
             }
             System.out.println(sb);
         }
     }       
}

🔥数根

数根__牛客网

 【解题思路】:

  1. 接收字符串得到各个数字,并且每位求和(为了得到的数字不大于99)
  2. 循环对大于9的数字进行对10取余和整除操作,将两个结果进行相加得到树根.
import java.util.*;
public class Main {
    public static void main(String[] args){
         Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            String s=sc.nextLine();
            while(s.length()>1){
                int n=0;
                for(int i=0;i<s.length();i++){
                    n+=s.charAt(i)-'0';
                }
                s=String.valueOf(n);
            }
            System.out.println(s);
        }
    }
}


http://www.kler.cn/a/16536.html

相关文章:

  • 【C语言】值传递和地址传递
  • Vector 深度复制记录
  • 数据集标注txt文件读取小工具
  • Redis - 集群(Cluster)
  • 假期增设:福祉与负担并存,寻求生活经济平衡之道
  • IEC60870-5-104 协议源码架构详细分析
  • 时序预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络时间序列预测
  • Java 基础入门篇(四)—— 方法的重载与参数传递机制
  • 11.string,stringbuilder,stringbuffer的区别和联系。
  • 5. 操作系统基础
  • windows下定时备份mysql数据库
  • 第 02 章 OSPF实验
  • 【AI前沿】chatgpt还有哪些不足?
  • Python操作PostgreSQL数据库
  • 【学习视频】阅读开源工业软件和工业智能实战上线B站
  • 数字设计小思 - D触发器与死缠烂打的亚稳态
  • 五种最危险的新兴网络攻击技术
  • 《***生态文明思想学习纲要》学习辅导
  • git alias
  • 【Python】【进阶篇】16、settings.py配置文件详解
  • 登录关键字封装
  • 使用树莓派(zero2w + Camera Module 3 支持自动对焦 1200 万像素)拍照
  • JavaSE第三章 访问修饰符,Collection,List
  • 是面试官放水,还是公司实在是太缺人?这都没挂,腾讯原来这么容易进···
  • 【MySQL】带你了解MySQL 如何学习MySQL以及MySQL的用途以及意义
  • SQL 使用where字句条件查询