• 【C++笔试强训】第二十五天


    🎇C++笔试强训


    • 博客主页:一起去看日落吗
    • 分享博主的C++刷题日常,大家一起学习
    • 博主的能力有限,出现错误希望大家不吝赐教
    • 分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。

    在这里插入图片描述

    💦🔥


    选择题

    💦 第一题

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

    A 3
    B 4
    C 5
    D 6

    我们先来看几个概念

    请添加图片描述

    下面来看解题分析

    请添加图片描述

    这道题的答案是C


    💦 第二题

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

    A 线程同步的方法包括使用临界区,互斥量,信号量等

    B 两个线程同时对简单类型全局变量进行写操作也需要互斥

    C 实现可重入函数时,对自动变量也要用互斥量加以保护

    D 可重入函数不可以调用不可重入函数

    做这种题我们首先需要了解概念
    请添加图片描述

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

    这道题的答案是C


    💦 第三题

    系统死锁的可能的原因是()

    A 进程死循环
    B 资源循环等待
    C 程序内存访问越界
    D 进程释放资源

    请添加图片描述

    这道题的答案是B


    💦 第四题

    整数0x12345678,在采用bigendian中内存的排序序列是( )

    A 12 34 56 78
    B 78 56 34 12
    C 87 65 43 21
    D 21 43 65 87

    bigendian 大端 :低位存在高地址

    Little Endian 小端: 低位存在低地址

    请添加图片描述

    这道题的答案是A


    💦 第五题

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

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

    请添加图片描述

    请添加图片描述

    这道题的答案是B


    💦 第六题

    对于普通的计算机,对以下事件的平均耗时从小到大排序为____:

    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


    💦 第七题

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

    A CPU
    B 存储器
    C 地址总线
    D 控制总线

    我们需要先了解一下概念

    请添加图片描述

    请添加图片描述

    请添加图片描述

    这道题的答案是A


    💦 第八题

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

    A 一个父进程可以创建若干个子进程,一个子进程可以从属于若干个父进程

    B 父进程被撤销时,其所有子进程也被相应撤消

    C 子进程被撤销时,其从属的父进程也被撤销

    D 一个进程可以没有父进程或子进程

    A 一个父进程可以创建若干个子进程,但一个子进程只可以从属于一个个父进程

    BC 都不一定

    请添加图片描述

    这道题的答案是D


    💦 第九题

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

    A 终止一个进程比终止一个线程花费的时间少

    B 进程切换比同一进程内部的线程切换花费的时间少

    C 线程提高了不同执行程序间的通信效率

    D 进程和线程都是资源分配和调度的基本单位

    请添加图片描述

    这道题的答案是C


    💦 第十题

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

    A 阻塞挂起->阻塞

    B 就绪挂起->就绪

    C 就绪挂起->阻塞挂起

    D 阻塞挂起->就绪挂起

    请添加图片描述

    这道题的答案是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位即可

    • 代码演示
    // write your code here cpp
    #include 
    #include 
    using namespace std;
    
    int main()
    {
        int f_arr[10000] = {0,1,2};
        for(int i = 3;i < 10001;i++)
        {
            f_arr[i] = f_arr[i-1] + f_arr[i-2];
            f_arr[i] %= 10000;
        }
        
        int n;
        
        while(cin >> n)
        {
            for(int i = 0;i < n;i++)
            {
                int num;
                cin >> num;
                f_arr[num];
                
                printf("%04d",f_arr[num]);
            }
            printf("\n");
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    🔥 第二题

    链接:数根

    请添加图片描述

    • 解题思路
    1. 接收字符串得到各个数字,并且每位求和(为了得到的数字不大于99)
    2. 循环对大于9的数字进行对10取余和整除操作,将两个结果进行相加得到树根
    • 代码演示
    // write your code here cpp
    #include 
    #include 
    using namespace std;
    
    int main()
    {
        string s;
        //1. 由于数字太大,需要用string 接受
        while(cin >> s)
        {
            int num = 0;
            //2. 直接对于接收回来的字符串求和
            for(int i = 0;i < s.size();i++)
            {
                num += s[i] - '0';
            }
            int sum = 0;
            while(num)
            {
                sum += num %10;
                num = num / 10;
                if(num == 0 && sum / 10 != 0)
                {
                    num = sum;
                    sum = 0;
                }
            }
            cout << sum << endl;
        }
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

  • 相关阅读:
    前端开发实践:vue中用qrcode库将超链接生成二维码图片
    Bootstrap --》Bootstrap的安装与使用
    记一次逆向分析解密还原Class文件
    Kubernetes环境cert-manager部署与应用
    力扣174. 寻找二叉搜索树中的目标节点(java,二叉搜索树的性质的运用)
    GSCoolink GSV6182 带嵌入式MCU的MIPI D-PHY转HDMI 2.0
    腾讯云颜松柏:详解DevOps成熟度模型与效能度量
    CentOS下将 /home 目录合并到 / 目录
    C高级day1
    【毕业设计】基于单片机的移动便携桌面加湿器 - 物联网 嵌入式
  • 原文地址:https://blog.csdn.net/m0_60338933/article/details/127867972