【Java笔试强训 31】

news2024/10/5 17:22:50

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

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


 目录

一、选择题

二、编程题

  🔥美国节日

  🔥分解因数



一、选择题

1、在单处理器系统中,如果同时存在有12个进程,则处于就绪队列中的进程数量最多为()
A 1
B 9
C 10
D 11
正确答案:D
2、以下关于多线程的叙述错误的是:
A 线程同步的方法包括使用临界区,互斥量,信号量等
B 两个线程同时对简单类型全局变量进行写操作也需要互斥
C 实现可重入函数时,对自动变量也要用互斥量加以保护
D 可重入函数不可以调用不可重入函数
正确答案: C
目前实现线程同步的方法有很多,其中包括临界区、互斥量、事件、信号量四种方式。
临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。(临界区可以认为是操作共享资源的一段代码)
互斥量:为协调共同对一个共享资源的单独访问而设计的信号量:为控制一个具有有限数量用户资源而设计。
事件:用来通知线程有一些事件已发生,从而启动后继任务的开始

可重入函数:
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的数,也就是说,可以在这个函数执行的任何时刻中断它,转入os调度下去执行另外一段代码,而返回捧制时不会出现什么错误:

不可重入的函数:
由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。
自动变量:
局部作用域变量,定义的时候才被创建,承数返回时,系统回收空间:属干线程私有的
3、系统死锁的可能的原因是
A 进程死循环
B 资源循环等待
C 程序内存访问越界
D 进程释放资源
正确答案: B
4、整数0x12345678,在采用bigendian中内存的排序序列是( )
A 12 34 56 78
B 78 56 34 12
C 87 65 43 21
D 21 43 65 87
正确答案: A
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,数据从高位往低位放;这和我们的阅读习惯一致。题目中的0x12345678,以大端模式保存,就是:低位地址0x12 0x34 0x56 0x78高位地址.

小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。题目中的 0x12345678,以小端模式保存,就是:低位地址0x78 0x56 0x34 0x12 高位地址
5、使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近()
A 0.001秒
B 1秒
C 100秒
D 2小时
正确答案: B
单位之间的换算规则是:
1GB =1024MB
1MB=1024KB
1KB=1024B
1B =8bits
所以1GB=1073741824B
执行1条语句约1ns即1/100000秒(10-9),每次赋值都要执行一次语句,所以对于1G来说大约是1秒
6、对于普通的计算机,对以下事件的平均耗时从小到大排序为____:
A.读取1KB内存数据 B.从硬盘连续读取1KB数据 C.读取一次L2缓存 D.一次磁盘寻道
A C,A,D,B
B C,D,A,B
C D,C,A,B
D D,A,C,B
正确答案: A
缓存是1eve12缓存是二级缓存的意思,通过缓存直接与cpu进行数据交互,这个是最快最直接的。

第二个内存读取时间,当通过缓存寻找数据时发现数据在缓存中不存在这时需要通过,到内存中去寻找,但是内存的传输速度就没有缓存这么快了,所以,内存读取数据的时间消耗要大于缓存。

第三个从硬盘连续读取1kb,这个意思就是读取硬盘数据,其中读取硬盘数据的时间消耗主要由是寻道时间,数据传输时间,还有旋转时间三部分时间组成,所以其中的磁盘寻道时间肯定小于总的连续读取时间。
7、分页式虚拟存储管理系统中,页面的大小与可能产生的缺页中断次数( )
A 成正比
B 成反比
C 无关
D 成固定值
正确答案: C
分页式虚拟存储系统:
将作业信息的副本存放在磁盘这一类辅助存储器中,当作业被调度投入运行时,并不把作业的程序和数据全部装入主存,而仅仅装入立即使用的那些页面,至少要将作业的第一页信息装入主存,在执行过程中访问到不在主存的页面时,再把它们动态地装入。

用得较多的分页式虚拟存储管理是请页式(demand Paging),当需要执行某条指令或使用某个数据,而发现它们并不在主存时,产生一个缺页中断,系统从辅存中把该指令或数据所在的页面调入内存。

进入内存的页面内容是没有变化的。所以分页式虚拟存储管理系统中,页面的大小与可能产生的缺页中断次数关系不大。 wertAERQW123
8、关于子进程和父进程的说法,下面哪一个是正确的?()
A 一个父进程可以创建若干个子进程,一个子进程可以从属于若干个父进程
B 父进程被撤销时,其所有子进程也被相应撤消
C 子进程被撤销时,其从属的父进程也被撤销
D 一个进程可以没有父进程或子进程
正确答案: D
A:一个父进程可以创建多个子进程,但一个子进程只从属于1个父进程
B:如果父进程先退出,子进程还没退出,那么子进程将被托孤给init进程,并由init进程对它们完成状态收集工作。这时子进程的父进程就是init进程(1号进程)。init进程没有父进程。 C,子进程退出,父进程还可以继续执行
D:init进程没有父进程;一个进程,可以不创建子进程
9、关于线程和进程,下面说法正确的是()
A 终止一个进程比终止一个线程花费的时间少
B 进程切换比同一进程内部的线程切换花费的时间少
C 线程提高了不同执行程序间的通信效率
D 进程和线程都是资源分配和调度的基本单位
正确答案: C
进程的创建,切换,终止,耗时/消耗的资源,都比线程要高
10、进程调度时,下列进程状态的变化过程哪一项是不可能发生的?()
A 阻塞挂起->阻塞
B 就绪挂起->就绪
C 就绪挂起->阻塞挂起
D 阻塞挂起->就绪挂起
正确答案:C


二、编程题

    🔥美国节日

    美国节日__牛客网

import java.util.*;
public class Main {
    private static boolean isLeapYear(int y) {
        return (y % 400 == 0) || (y % 4 == 0 && y % 100 != 0);
    }
    private static final int[] DAYS = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 给定 y,m,d,返回这年过了多少天了
    private static int nDays(int y, int m, int d) {
// m: 12
// [0, 10]
        int n = d;
        for (int i = 0; i < m - 1; i++) {
            n += DAYS[i];
        }
        if (m > 2 && isLeapYear(y)) {
            n++;
        }
    return n;
    }
// 传入 y,m,d,找到从公元前 1 年12月31日开始过了多久了。求出它的 MOD 7 的同余数
    private static int diff(int y, int m, int d) {
        return (y - 1) + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400 + nDays(y, m, d);
    }
// 根据 y,m,d 求出星期几
    private static int week(int y, int m, int d) {
        int w = diff(y, m, d) % 7;
        if (w == 0) {
            w = 7;
        }
    return w;
    }
// 根据 1 日星期 w,求第 n 个星期 e 是几号
    private static int m1(int w, int n, int e) {
        return 1 + (n - 1) * 7 + (7 - w + e) % 7;
    }
// 根据 6月1日星期 w,求5月的最后一个星期一
    private static int m2(int w) {
        int d = (w == 1 ? 7 : w - 1);
        return 32 - d;
    }
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        while (s.hasNextInt()) {
            int y = s.nextInt();
            System.out.printf("%d-01-01\n", y);
            int w;
            w = week(y, 1, 1);
            System.out.printf("%d-01-%02d\n", y, m1(w, 3, 1));
            w = week(y, 2, 1);
            System.out.printf("%d-02-%02d\n", y, m1(w, 3, 1));
            w = week(y, 6, 1);
            System.out.printf("%d-05-%02d\n", y, m2(w));
            System.out.printf("%d-07-04\n", y);
            w = week(y, 9, 1);
            System.out.printf("%d-09-%02d\n", y, m1(w, 1, 1));
            w = week(y, 11, 1);
            System.out.printf("%d-11-%02d\n", y, m1(w, 4, 4));
            System.out.printf("%d-12-25\n", y);
            System.out.println();
        }
    }
}

🔥分解因数

分解因数__牛客网

 【解题思路】:
看到短除法后,我们很清楚的知道,要想求出它的每一个质因数,我们需要用质数去试除。90能被2整除,那就拿商继续除以2,除不尽就换3,一直到除到质数为止。基础代码框架类似判断质数,只是被判断的数字在过程中不断
被除,最终循环结束的时候,那个被处理过的数字,就是最后一个质因数。

import java.util.*;
public class Main {
    private static List<String> factorization(int a) {
        List<String> ans = new ArrayList<>();
        for (int i = 2; a > 1 && i * i <= a; i++) {
            while (a % i == 0) {
                ans.add(String.valueOf(i));
                a = a / i;
            }
        }
        if (a > 1) {
            ans.add(String.valueOf(a));
        }
    return ans;
    }
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        while (s.hasNextInt()) {
            int a = s.nextInt();
            List<String> factors = factorization(a);
            System.out.printf("%d = %s\n", a, String.join(" * ", factors));
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数组传参不理解?(数组传参的本质)

在我们编写程序时&#xff0c;经常需要传递参数给函数&#xff0c;其中一种常见的参数类型就是数组。数组作为一种数据结构&#xff0c;可以存储多个相同类型的数据元素&#xff0c;并按照一定的顺序排列。在函数中传递数组参数&#xff0c;可以方便地对数组进行操作处理。但是…

StarCoder - 源代码大模型

StarCoder 是一种在源代码和自然语言文本上训练的语言模型 (LM)。 它的训练数据包含 80 多种不同的编程语言以及从 github 问题和提交以及笔记本中提取的文本。 StarCoder 是在 github 代码上训练的&#xff0c;因此它可以用来执行代码生成。 更准确地说&#xff0c;模型可以完…

手术麻醉系统源码——业务流程介绍

采用计算机和通信技术&#xff0c;实现监护仪、麻醉机、呼吸机、输液泵等设备输出数据的自动采集&#xff0c;采集的数据能够如实准确地反映患者生命体征参数的变化&#xff0c;并实现信息高度共享&#xff0c;根据采集结果&#xff0c;综合其他患者数据&#xff0c;自动生成手…

在springboot项目中配置数据库下划线命名映射为java的驼峰命名时出错

问题 在使用spirngboot集成mybaits的时候&#xff0c;想要开启命名映射&#xff0c;如图配置 # mybatis配置 mybatis:type-aliases-package: com.zhong.springcloud.pojoconfig-location: classpath:mybatis/mybatis-config.xmlmapper-locations: classpath:mybatis/mapper/*…

4年外包出来,5次面试全挂....

我的情况 大概介绍一下个人情况&#xff0c;男&#xff0c;毕业于普通二本院校非计算机专业&#xff0c;18年跨专业入行测试&#xff0c;第一份工作在湖南某软件公司&#xff0c;做了接近4年的外包测试工程师&#xff0c;今年年初&#xff0c;感觉自己不能够再这样下去了&…

深入理解二分类和多分类CrossEntropy Loss和Focal Loss

深入理解二分类和多分类CrossEntropy Loss和Focal Loss 二分类交叉熵 在二分的情况下&#xff0c;模型最后需要预测的结果只有两种情况&#xff0c;对于每个类别我们的预测得到的概率为 p p p和 1 − p 1-p 1−p&#xff0c;此时表达式为&#xff08; 的 log ⁡ \log log底数…

如何用ChatGP协助你,从品牌角度对产品提出升级建议?

该场景对应的关键词库&#xff08;19个&#xff09;&#xff1a; 品牌洋葱图思维模型、产品信息、人群、品类、属性、体验、差异化特征、功效、品牌价值主张、目标用户、需求、痛点、爽点、消费者、外观、功能、结构、产品优化建议、产品开发可行性。 提问模板(3个&#xff09…

《Vue.js 设计与实现》—— 01 权衡的艺术

书籍链接&#xff1a;https://weread.qq.com/web/bookDetail/c5c32170813ab7177g0181ae 框架设计里到处都体现了权衡的艺术。 当我们设计一个框架时&#xff0c;框架本身的各个模块之间并不是相互独立的&#xff0c;而是相互关联、相互制约的。 作为框架设计者&#xff0c;一…

Windows10安装免安装版redis

下载 官方下载地址&#xff1a;github.com/MicrosoftAr…选择版本 解压安装 配置环境变量&注册成服务 配置环境变量 以管理员启动命令行&#xff0c;在redis安装根目录&#xff0c;把redis注册服务 redis-server --service-install redis.windows-service.conf --lo…

Communications chemisty|德睿智药工作-用于分子性质预测的药物约束异构图Transformer模型

德睿智药的分子性质预测任务 题目&#xff1a; Pharmacophoric-constrained heterogeneous graph transformer model for molecular property prediction 文献来源&#xff1a;COMMUNICATIONS CHEMISTRY | (2023) 6:60 | 代码&#xff1a;https://github.com/stardj/PharmHG…

springboot+dubbo+zookeeper 项目实战

现在有一段代码再前台&#xff0c;后台系统中都存在&#xff0c;都需要这段代码&#xff0c;存在这种情况&#xff0c;我们可以选择将这段代码提取出来作为一个服务&#xff0c;让前台和后台系统作为消费者远程调用这段代码&#xff0c;提高了代码的复用性。 springboot集成dub…

Unity Audio -- (2)创建动态音效

评估场景需求 本节的目标是添加脚步声到角色身上&#xff0c;当角色走路时&#xff0c;触发动画事件并播放声音。 脚步声是我们在真实世界中常常被我们所忽视的声音&#xff0c;但脚步声能够传达出许多环境信息。你现在可以花一小段时间绕着你周围的环境走一走并仔细听听脚步声…

CLIP : Learning Transferable Visual Models From Natural Language Supervision

CLIP : Learning Transferable Visual Models From Natural Language Supervision IntroductionApproach Introduction 在raw的数据上自监督的训练模型&#xff0c;已经在NLP领域取得了革命性进展&#xff0c;这种模型需要收到硬件、数据的限制&#xff0c;但是能得到很好的迁…

算法 DAY55 动态规划11 392.判断子序列 115.不同的子序列

392.判断子序列 本题可以直接用双指针解法。但是本题是编辑距离的入门题目&#xff0c;故采用动态规划解法为后序“编辑距离”类题目打基础。 本题与最大子序列非常相似&#xff0c;但不同的是s必须连续&#xff0c;t可以不连续。 五部曲 1、dp[i][j] 表示以下标i-1为结尾的字…

Seata介绍

介绍&#xff1a; Seata的设计目标是对这个业务无侵入&#xff0c;因此从业务无侵入的2PC方案开始的&#xff0c;在传统的2PC的基础上演进的。它把一个分布式事务拆分理解成一个包含了若干分支事务的全局事务。全局事务的职责是协调其下管辖的分支事务达成一致性&#xff0c;要…

25.自定义注解

自定义注解 一、什么是注解 Annontation是Java1.5开始引入的新特征&#xff0c;中文名称叫注解。 它提供了一种安全的类似注释的机制&#xff0c;用来将信息或元数据&#xff08;metadata&#xff09;与程序元素&#xff08;类、方法、成员变量等&#xff09;进行关联。为程序…

大数据技术之SparkSQL——数据的读取和保存

一、通用的加载和保存方式 SparkSQL提供了通用的保存数据和数据加载的方式。根据不同的参数读取&#xff0c;并保存不同格式的数据。SparkSQL默认读取和保存的文件格式为Parquet。 1.1 加载数据 spark.read.load 是加载数据的通用方式。 如果读取不同格式的数据&#xff0c;可…

如何编译DPDK静态库

阅读前面文章https://blog.csdn.net/qq_36314864/article/details/130243348,知道了哪些dpdk文件可以在windows下生成。 打开vs,新建一个生成静态库工程,在生成的lib文件中找到D:\dpdk-21.07\build\lib D:\dpdk-21.07\build\drivers找到对应的文件,并按照路径,新建筛选项…

【Vue学习笔记7】Vue3中如何开发组件

重点学习&#xff1a;vue3.0之组件通信机制defineProps&#xff08;组件接收外部传来的参数&#xff09;、defineEmits&#xff08;向组件外部传递参数&#xff09;。 1. 评级组件第一版 简单的评级需求&#xff0c;只需要一行代码就可以实现&#xff1a; "★★★★★☆…

SLAM面试笔记(5) — ROS面试

目录 1 ROS概述 2 ROS通信机制 问题&#xff1a;服务通信概念 问题&#xff1a;服务通信理论模型 3 常见面试题 问题&#xff1a;roslaunch和rosrun区别&#xff1f; 问题&#xff1a;什么是ROS&#xff1f; 问题&#xff1a;ROS中的节点是什么&#xff1f; 问题&…