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

笔试强训48天——day25

文章目录

  • 一. 单选
    • 1.一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数
    • 2. 以下关于多线程的叙述中错误的是()
    • 3. 系统死锁的可能的原因是()
    • 4. 整数0x12345678,在采用bigendian中内存的排序序列是( )
  • 5.使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近()
    • 6.对于普通的计算机,对以下事件的平均耗时从小到大排序为____:
    • 7. 现代计算机普遍采用总线结构,包括数据总线、地址总线、控制总线,通常与数据总线位数对应相同的部
    • 8.关于子进程和父进程的说法,下面哪一个是正确的()
    • 9.关于线程和进程,下面说法正确的是()
    • 10.进程调度时,下列进程状态的变化过程哪一项是不可能发生的()
  • 二. 编程
    • 1. 星际密码
    • 2.数根

一. 单选

1.一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数

是()次。
A 3
B 4
C 5
D 6

正确答案:C

缺页中断:要访问的页不在主存,需要操作系统将其调入主存后再进行访问
LRU算法:当要调入一页而必须淘汰旧页时,将最近最少使用的置换出去
缺页数:缺页中断次数,等于进程的物理块数+页面置换次数

1321215123
1——1
3——3 1(刚使用的放在前面,未使用的放在后面)
2——2 3 1
1——1 2 3
2——2 1 3
1——1 2 3
5——5 1 2(页面置换,淘汰最后一个3)
1——1 5 2
2——2 1 5
3——3 2 1(页面置换,淘汰最后一个5)
总共进行了两次页面置换,缺页数=3+2=5
缺页率:5/10=0.5

 

2. 以下关于多线程的叙述中错误的是()

A 线程同步的方法包括使用临界区,互斥量,信号量等
B 两个线程同时对简单类型全局变量进行写操作也需要互斥
C 实现可重入函数时,对自动变量也要用互斥量加以保护
D 可重入函数不可以调用不可重入函数

正确答案:C

临界区:
一个访问共用资源(同一个全局变量,同一个类对象等)的程序片断。

互斥量:
互斥锁的底层就是互斥量,使用互斥锁可以限制多个执行流对临界资源的访问时,只有一个执行流可以访问资源,其他执行流需要等待。从而保证了程序结果没有二义性。

信号量:
可以描述并管理一个资源的数量,提供wait/post的接口来保证程序不会产生二义性结果,同时信号量也可以保证线程同步,信号量的底层有一个资源计数器+PCB等待队列

可重入函数:
在多线程的程序当中,如果一个函数可能同时被多个线程访问,没有导致程序的结果产生二义性。
不可重入函数:
在多线程的程序当中,如果一个函数可能同时被多个线程访问,从而导致程序的结果产生二义性。

C:
可重入函数可认为是可以被中断的函数,自动变量定义的时候才被创建,函数返回是,系统收回空间,它是局部作用域变量,不需要互斥量,可重入函数对全局变量才需要互斥量保护

 

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

大端big endian
小端little endian

 

5.使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近()

A 0.001秒
B 1秒
C 100秒
D 2小时

正确答案:B

CPU执行一条语句约1ns——10^-9s

 

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

 

7. 现代计算机普遍采用总线结构,包括数据总线、地址总线、控制总线,通常与数据总线位数对应相同的部

件是( )
A CPU
B 存储器
C 地址总线
D 控制总线

正确答案:A

地址总线当中每一根地址线都可以模拟0/1信号,所以32(64)位操作系统有32(64)根地址线。
32位操作系统的地址为0x00000000-0xFFFFFFFF
 

8.关于子进程和父进程的说法,下面哪一个是正确的()

A 一个父进程可以创建若干个子进程,一个子进程可以从属于若干个父进程
B 父进程被撤销时,其所有子进程也被相应撤消
C 子进程被撤销时,其从属的父进程也被撤销
D 一个进程可以没有父进程或子进程

正确答案:D

 

9.关于线程和进程,下面说法正确的是()

A 终止一个进程比终止一个线程花费的时间少
B 进程切换比同一进程内部的线程切换花费的时间少
C 线程提高了不同执行程序间的通信效率
D 进程和线程都是资源分配和调度的基本单位

正确答案:C

A 终止一个进程比终止一个线程花费的时间少——花费时间多,因为线程只是一个执行流,不会将进程资源释放掉
B 进程切换比同一进程内部的线程切换花费的时间少——线程切换花费的时间少
C 线程提高了不同执行程序间的通信效率——可以让进程的某一线程执行通信任务,其他的线程做其他时期,提高程序的运行效率
D 进程和线程都是资源分配和调度的基本单位——进程是操作系统分配资源的基本单位,线程是操作系统调度的基本单位
 

10.进程调度时,下列进程状态的变化过程哪一项是不可能发生的()

A 阻塞挂起->阻塞
B 就绪挂起->就绪
C 就绪挂起->阻塞挂起
D 阻塞挂起->就绪挂起

正确答案:C

 
 

二. 编程

1. 星际密码

链接

星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终4位密码。表的规则是:n对应的值是矩阵X的n次方的左上角,如果这个数不足4位则用0填充,如果大于4位的则只输出最后4位。
|1 1|^n => |Xn …|
|1 0| |… …|
例如n=2时,
|1 1|^2 => |1 1| * |1 1| => |2 1|
|1 0| |1 0| |1 0| |1 1|
即2对应的数是“0002”。

输入描述:
输入有多组数据。
每组数据两行:第一行包含一个整数n (1≤n≤100);第二行包含n个正整数Xi (1≤Xi≤10000)
输出描述:
对应每一组输入,输出一行相应的密码。

示例1:
输入
6 1
8 15 21 13 25 27
5 1
10 100 1000 10000

输出
418109877711037713937811
00010089410135017501

正确答案:

// write your code here cpp
#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
    int arr[10000] = {0,1,2};
    for(int i = 3;i<=10000;i++)
    {
        arr[i] = arr[i-1] + arr[i-2];
        arr[i] %= 10000;
    }
    
    int n;
    while(cin>>n)
    {
        for(int i = 0;i<n;i++)
        {
            int num;
            cin >> num;
            printf("%04d",arr[num]);
        }
        printf("\n");
}
    
    return 0;
}

 
 

2.数根

链接

数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。
比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。
再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。
现在给你一个正整数,输出它的数根。

输入描述:
输入包含多组数据。
每组数据数据包含一个正整数n(1≤n≤10E1000)。
输出描述:
对应每一组数据,输出该正整数的数根。

示例1:
输入
24
39
输出
6 3

正确答案:

// write your code here cpp
#include<iostream>
#include<string>
using namespace std;

int main()
{
    //数据庞大需要用string接受然后再转换为整型
    string s;
    while(cin>>s)
    {
        int n = 0;
        for(int i = 0;i<s.size();i++)
        {
            n += s[i]-'0';
        }
        
        int sum = 0;
        while(n)
        {
            sum += n%10;
            n = n/10;
            
            if(n == 0 && sum/10 != 0)
            {
                n = sum;
                sum = 0;
}
            
        }
        cout<<sum<<endl;
}
    return 0;
}

相关文章:

  • 有了@MapperScan就不用@Mapper了你知道嘛
  • Docker之Nacos的持久化和集群部署
  • 前端——表单相关的属性(上)
  • 【C++初阶7-stringOJ】上手用一下
  • 【Java 实战】通过ElasticSearch实现全局搜索功能
  • webgis —— 为瓦片构建缓存
  • 最惨面试季:“这么简单的9道题,我刷掉了90%的测试员。”
  • c++11 function模板:模板特化与可变参数函数模板
  • CSDN竞赛14期题解
  • Qt创建线程的几种方式_创建一个新线程的方法
  • Android自定义ViewGroup布局进阶,完整的九宫格实现
  • 完全开源的代码生成器之code-generator
  • C++:实现量化将期限结构与一组债券相匹配 使用四种不同的拟合方法测试实例
  • 毫米波雷达的那些知识点——增益、阈值、功耗、窗口、RF 发射功率调整、VCO、LNA
  • 1568_AURIX_TC275_电源管理_唤醒配置与状态
  • ----------
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • AHK 中 = 和 == 等比较运算符的用法
  • iOS 系统授权开发
  • java8-模拟hadoop
  • JavaScript的使用你知道几种?(上)
  • Laravel 中的一个后期静态绑定
  • mysql常用命令汇总
  • MySQL-事务管理(基础)
  • Mysql优化
  • tweak 支持第三方库
  • vue2.0项目引入element-ui
  • 免费小说阅读小程序
  • 数据结构java版之冒泡排序及优化
  • 小程序测试方案初探
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 通过调用文摘列表API获取文摘
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Matlab)使用竞争神经网络实现数据聚类
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)Sublime Text3配置Lua运行环境
  • (转)用.Net的File控件上传文件的解决方案
  • ./configure,make,make install的作用
  • .NET Core 项目指定SDK版本
  • .NET 材料检测系统崩溃分析
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • @ModelAttribute注解使用
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [C#]C# winform实现imagecaption图像生成描述图文描述生成
  • [C++]打开新世界的大门之C++入门
  • [CSS]CSS 字体属性
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径