笔试强训48天——day28

news/2023/5/28 8:28:57

文章目录

  • 一. 单选
    • 1.下面的程序执行输出几个hello?
    • 2. 有一个程序中有A,B,C三个线程同时对一个文件进行读写操作,其中的A,B是写进程只负责往里面写数据,C是读线程,同时把读取的数据从文件中删除,A线程单独写满文件需要10个小时,B单独写程序需要6小时,C线程需要15小时才能读取完整个文件,不考虑三个线程之间的相互影响的情况下现在____小时才能写满文件
    • 3. 系统中内存不足程序所需大小,程序就无法执行。
    • 4. 通常所说的"存储保护"的基本含义是()
    • 5. 下列进程调度算法中,()可能会出现进程长期得不到调度的情况。
    • 6. 如果信号量的当前值为-4,则表示系统中在该信号量上有()个进程等待。
    • 7. 设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()
    • 8. 若系统中只有用户级线程,则处理机调度单位是()
    • 9. 一个在线服务器通常需要读取存储着海量数据的数据库。为了提高服务器处理速度,通常需要加
    • 10. 计算机操作系统的主要功能是( )
  • 二. 编程
    • 1. 反转部分单向链表
    • 2. 猴子分桃

一. 单选

1.下面的程序执行输出几个hello?

#include<stdio.h>
#include <unistd.h>
int main( ) {
fork( );
fork( );
fork( );
printf(“hello\n”);
return 0;
}

A 3
B 4
C 6
D 8

正确答案:D

#include<stdio.h>
#include <unistd.h>
int main() {//假设fork创建子进程都会创建成功//该fork之后,会创建出来一个子进程,加上本身的父进程,一共有两个进程fork();//上面的两个进程都会执行该fork,进而产生两个子进程,加上之前的两个,一共4个进程fork();//上面的4个进程都会执行该fork,进而产生4个进程,加上之前的4个,一共8个进程fork();//所以,最终有8个进程会指向下面的语句printf(“hello\n”);return 0;
}

 

2. 有一个程序中有A,B,C三个线程同时对一个文件进行读写操作,其中的A,B是写进程只负责往里面写数据,C是读线程,同时把读取的数据从文件中删除,A线程单独写满文件需要10个小时,B单独写程序需要6小时,C线程需要15小时才能读取完整个文件,不考虑三个线程之间的相互影响的情况下现在____小时才能写满文件

A 5
B 6
C 5.5
D 4.5
E 4.8
F 5.3

正确答案:A

数学问题:总任务单位是1,A的写工作效率是1/10,B的写工作效率是1/6,C的读工作效率是1/15
总效率:1/10+1/6-1/15 = 1
时间:1/1/5 = 5

 

3. 系统中内存不足程序所需大小,程序就无法执行。

A 错
B 对

正确答案:A

操作系统存在虚拟内存,能够把一部分优先级较低的程序保存到系统硬盘

 

4. 通常所说的"存储保护"的基本含义是()

A 防止存储器硬件受损
B 防止程序在内存丢失
C 防止程序间相互越界访问
D 防止程序被人偷看

正确答案:C

存储保护的含义就是防止程序之间互相越界访问/篡改对方的数据,从而导致对方程序出现问题

 

5. 下列进程调度算法中,()可能会出现进程长期得不到调度的情况。

A 非强占式静态优先权法
B 强占式静态优先权法
C 时间片轮转调度算法
D 非强占式动态优先权法

正确答案:B

A 非强占式静态优先权法——优先权不变
B 强占式静态优先权法——强占式,高优先权可以抢夺
C 时间片轮转调度算法——循环,公平
D 非强占式动态优先权法——进程一直等待,它的优先权就会动态增长

 

6. 如果信号量的当前值为-4,则表示系统中在该信号量上有()个进程等待。

A 4
B 3
C 5
D 0

正确答案:A

count值大于0:表示这个信号量是空闲的(资源还可以被使用),进程(线程)可以使用这个信号量
count值等于0:表示信号量被其他进程使用,现在不可以用这个信号量,但PCB等待队列也没有进程在等待
count值小于0:count的绝对值表示有多少个进程(线程)在等待

 

7. 设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()

A 一个进程进入了临界区,另一个进程等待
B 没有一个进程进入临界区
C 两个进程都进入临界区
D 两个进程都在等待

正确答案:A

互斥信号量,初始值为1,取值范围{-1,0,1}
当信号量为1时,表示两个进程皆未进入需要互斥的临界区
当信号量为0时,表示有一个进程进入临界区运行,另一个必须等待
当信号量为-1时,表示有一个进程正在临界区运行,另一个进程因等待而阻塞在信号量队列中,需要当前已在临界区运行的进程退出时唤醒

 

8. 若系统中只有用户级线程,则处理机调度单位是()

A 线程
B 进程
C 程序
D 作业

正确答案:B

如果系统只有用户态线程,则线程对操作系统是不可见的,操作系统只能调度进程;如果系统中有内核态线程,则操作系统可以按线程进行调度;
D选项的作业:作业可以包括多个进程,完成某一个功能,和题意不符合
 

9. 一个在线服务器通常需要读取存储着海量数据的数据库。为了提高服务器处理速度,通常需要加

cache(缓存),以下场景中不适合使用cache的是()

A 数据库中每条数据被访问的概率近似相等,且独立
B 使用了多线程机制的服务
C 单条线程尺寸太小的数据
D 有着大量访问的服务

正确答案:A

基础概念
缓存本质上是将在磁盘的数据提前缓存在内存当中,从而减少程序访问获取数据时的IO操作次数缓存━般会将高频访问的数据,提前读到内存当中缓存起来

解题分析
A选项:访问的概率相等,且独立,就失去了缓存的意义,因为无法区分到底缓存什么数据,能够提高程序的运行效率。除非全部缓存,对标的概念就是内存数据库
B.多线程程序为了减少线程IO的时间,可以把线程使用的数据提前缓存起来,提高程序的运行效率C选项:尺寸较小的数据可以放到缓存当中,因为比较小,不会吃掉缓存的空间。同时缓存之后,也能提高程序的运行效率
D选项:大量的访问的服务想要访问的数据可以缓存下来,减少I0次数,提高程序的运行效率

 

10. 计算机操作系统的主要功能是( )

A 管理计算机系统的软硬件资源,以充分发挥计算机资源的效率,并为其它软件提供良好的运行环境
B 把高级程序设计语言和汇编语言编写的程序翻译到计算机硬件可以直接执行的目标程序,为用户提供
良好的软件开发环境
C 对各类计算机文件进行有效的管理,并提交计算机硬件高效处理
D 为用户提供方便地操作和使用计算机
正确答案:A

计算机的主要功能:管理计筹机系统的软硬件资源;其中管理=描述〈定义结构体)+组织(将结构体串联起来)

 
 

二. 编程

1. 反转部分单向链表

链接

给定一个单链表,在链表中把第 L 个节点到第 R 个节点这一部分进行反转。

输入描述:
n 表示单链表的长度。
val 表示单链表各个节点的值。
L 表示翻转区间的左端点。
R 表示翻转区间的右端点。
输出描述:
在给定的函数中返回指定链表的头指针。

示例1:
输入
5 1
2 3 4 5
1 3
输出
3 2 1 4 5

正确答案:
思路1:

list_node* ReverseList(list_node* head)
{list_node* prev = nullptr, *cur = head;while (cur){list_node* next = cur->next;cur->next = prev;prev = cur;cur = next;} return prev;
} list_node * reverse_list(list_node * head, int L, int R)
{list_node* newHead = new list_node;newHead->next = head;list_node* prevNode = newHead, *RHead = nullptr, *RTail = nullptr, *TailNext = nullptr;for (int i = 0; i < L - 1; i++){prevNode = prevNode->next;} RHead = prevNode->next;RTail = RHead;for (int i = 0; i < R - L; i++){RTail = RTail->next;} TailNext = RTail->next;RTail->next = nullptr;list_node* RNewHead = ReverseList(RHead);prevNode->next = RNewHead;RHead->next = TailNext;return newHead->next;
}

 

思路2:

list_node * reverse_list(list_node * head, int L, int R)
{list_node* pHead = new list_node;pHead->next = head;list_node* prevNode = pHead;for (int i = 0; i < L - 1; i++){prevNode = prevNode->next;} list_node* cur = prevNode->next;for (int i = 0; i < R - L; i++){list_node* nextNode = cur->next;cur->next = nextNode->next;nextNode->next = prevNode->next;prevNode->next = nextNode;} list_node* list = pHead->next;free(pHead);return list;
}

 

2. 猴子分桃

链接

老猴子辛苦了一辈子,给那群小猴子们留下了一笔巨大的财富——一大堆桃子。老猴子决定把这些桃子分给小猴子。
第一个猴子来了,它把桃子分成五堆,五堆一样多,但还多出一个。它把剩下的一个留给老猴子,自己拿走其中的一堆。
第二个猴子来了,它把桃子分成五堆,五堆一样多,但又多出一个。它把多出的一个留给老猴子,自己拿走其中的一堆。
后来的小猴子都如此照办。最后剩下的桃子全部留给老猴子。
这里有n只小猴子,请你写个程序计算一下在开始时至少有多少个桃子,以及最后老猴子最少能得到几个桃子。

输入描述:
输入包括多组测试数据。
每组测试数据包括一个整数n(1≤n≤20)。
输入以0结束,该行不做处理。
输出描述:
每组测试数据对应一行输出。
包括两个整数a,b。
分别代表开始时最小需要的桃子数,和结束后老猴子最少能得到的桃子数。

示例1:
输入
5 1 0


3121 1025
1 1

正确答案:

#include <iostream>
#include <string>
#include <math.h>
using namespace std;int main()
{int n;while (cin >> n) {if (n == 0) break;long total = pow(5, n) - 4;long left = pow(4, n) + n - 4;cout << total << " " << left << endl;} return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

【NDN IoT】Building an On-ramp for the Internet of Things 全文翻译

Building an On-ramp for the Internet of Things 为物联网构造驶进坡道&#xff08;进入方法&#xff09; Scott Jenson, Roy Want, Bill N. Schilit Google Inc. 1600 Amphitheatre Parkway Mountain View, California, USA Robin Kravets University of Illinois, Urba…

QSplat: 基于多分辨率处理大规模网格的点绘制系统(完整版翻译)

QSplat: 基于多分辨率处理大规模网格的点绘制系统&#xff08;完整版翻译&#xff09; Szymon Rusinkiewicz Mark Levoy 斯坦福大学计算机图形学实验室 Rusinkiewicz,S. and Levoy,M. “QSplat: AMultiresolution Point Rendering System for Large Meshes,”Stanford Unive…

ElasticSearch安装及基本使用

文章目录0. 学习资料1. 概念2. 安装ESdocker安装1. **下载镜像**2. **创建实例**3. **浏览器访问&#xff1a;**4. 测试使用Kibana安装1. 下载镜像2. 创建实例3. 效果3. 检索_cat保存查询通过id查询乐观锁操作更新删除批量操作**导入测试数据**4. 进阶搜索基本检索参考文档基本…

使用Three.js + Blender构建在浏览器端显示的3D模型(2)

第二章 Blender的使用 blender最快的学习方法就是看视频教程了&#xff0c;这里要感谢一位台湾大哥&#xff0c;制作了一整套的适合初学者的视频教程&#xff1a;http://v.youku.com/v_show/id_XMzI4MjkyNDAw.html?f16694862 因为我也是初学者&#xff0c;所以这里我把自己学习…

python基础学习笔记Web开发

来自&#xff1a;http://www.liaoxuefeng.com/ Web应用开发可以说是目前软件开发中最重要的部分。Web开发也经历了好几个阶段&#xff1a; 静态Web页面&#xff1a;由文本编辑器直接编辑并生成静态的HTML页面&#xff0c;如果要修改Web页面的内容&#xff0c;就需要再次编辑HTM…

《⑨也懂系列:GNU Emacs安装教程Ver.2》世界著名的顶级全能文本编辑器

备注&#xff1a;我的全部文章首发在自己的独立博客(http://rsreland.net)上&#xff0c;编程相关文章会同步到这里&#xff0c;不过文章的维护是优先那边。然后本篇文章的地址是&#xff1a;http://rsreland.net/archives/727 &#xff0c;可以查看这里对比文章是否有更新版本…

iOS 国际化(多语言)

一、应用程序国际化 包括app名称和各种权限的提示文字。 1.1 创建工程&#xff0c;再在“PROJECT”的“Info”里面&#xff0c;添加所需语言。 1.2 从代码中分离出文本 创建一个 “.strings” 扩展名的文件 来本地化字符串&#xff0c;需要把这些字符串全部放在一个单独的文…

linux软件安装管理与安装RPM时的挂载的概念

1.软件的分类&#xff1a; 其中的源码包有好处也有坏处&#xff0c; 其中的好处是&#xff1a;我们能看到里面的源代码&#xff0c;方便我们修改和学习其编程语法&#xff1b;还有一个就是不容易中病毒&#xff0c;因为Windows下的很多病毒对于linux来说都是不认识的。 其中…

Python基础《二十一:Web开发》

HTTP协议简介 在Web应用中&#xff0c;服务器把网页传给浏览器&#xff0c;实际上就是把网页的HTML代码发送给浏览器&#xff0c;让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP&#xff0c;所以&#xff1a; HTML是一种用来定义网页的文本&#xff0c;会HTML&#x…

迅为4412开发板(全能版)V_4.0 ubuntu 在Android4.4.4的内核下移植wifi

为4412全能版V_4.0 ubuntu 在Android4.4.4的内核下移植wifi 背景&#xff1a;由于厂家迅为的全能版的V4.0底板和V3.5底板的wifi部分有改动&#xff0c;所以需要重新移植wifi 软件基础 &#xff1a;基于迅为提供的全能版V_4.0的Android4.4.4源码编译出来的ubuntu内核之上移…

110、【树与二叉树】leetcode ——669. 修剪二叉搜索树:递归法(C++版本)

题目描述 解题思路 大题思路类似于 450.删除二叉搜索树中的节点&#xff08;递归法迭代法&#xff09; &#xff0c;区别在于删除的是某一区域的节点值&#xff0c;并且要保留区域内部的节点值。 对于第一次找到结点值小于low的情况&#xff0c;有两种&#xff1a;&#xff08…

异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例52

欢迎关注异贝。异贝5G营销工具&#xff0c;今天给大家带来的案例是小超市的营销方案&#xff1a; 随着经济的不断发展&#xff0c;越来越多的大型企业都看中了四五线县城的人口和消费能力&#xff0c;许多深耕当地的经营场所&#xff0c;都收到了这些“外来物种”的强烈打击。…

线下实体店怎么引流?利用抖音线上推广店铺,【实操】

很多人对于开实体店的理解可能还停留在坐等客人上门这样的一个心理。我想说的是在互联网微电商的趋势下&#xff0c;实体店如果还在坐等上门客&#xff0c;那就注定不会长久。一定要懂得线上线下一起维护&#xff0c;用线下策划进行快速锁客&#xff0c;用线上方式维护好客户&a…

用户行为收集到HIVE

2.3 用户行为收集到HIVE 目标 目标 知道收集用户日志形式、流程知道flume收集相关配置、hive相关配置知道supervisor开启flume收集进程管理应用 应用supervisor管理flume实时收集点击日志 2.3.1 为什么要收集用户点击行为日志 用户行为对于某项目文章推荐来说&#xff0c;至…

各种manjaro安装问题大全:缺失依赖关系 无法下载 已损坏 签名未知信任 包结构错误

目录前言一、无法安装的解决方案1、切换成yay方式&#xff0c;或者yaourt方式安装2、有可能你没有安装包压缩解压等工具&#xff1a;二、无法下载的解决方案1、换源2、配置应用商店自带的添加/删除软件3、大招&#xff01;解决某构建文件无法下载问题三、签名未知信任问题解决四…

Unity使用问题汇总附带解决方法(持续更新)

文章目录一.UnityHub 打开工程提示sentinel key not found (h0007) Unity二.unity中引用 System.Windows.Forms报错三.Visuial Studio 打开 Unity 新建脚本时&#xff0c;新脚本继承MonoBehaviour暂时失效为白色的解决方法一.UnityHub 打开工程提示sentinel key not found (h00…

超卖问题解决大全

文章目录什么是库存超卖&#xff1f;&#xff1f;下订单基本流程方式一&#xff1a;限制库存量大于0方式二&#xff1a;悲观锁方式三&#xff1a;乐观锁&#xff08;可用&#xff09;方式四&#xff1a;将请求放队列方式五&#xff1a;通过事务控制超卖方式六使用redis分布式来…

ESP8266初学(一) 遇问题大全及解决方案(持续更新)

最近开始学习wifi模块&#xff0c;谁知一开始用PC连接调试wifi模块就遇到了很多问题。 一.输入指令后没有反应 刚起步就头大。快乐地接好各种接口各种线&#xff0c;连上电脑发现它冒蓝光光了&#xff0c;好耶&#xff01;然后兴致勃勃打开串口调试工具&#xff0c;先输入一行…

JEECG常见问题大全征集

大家还有什么问题&#xff0c;请跟帖&#xff0c;谢谢支持。。JEECG常见问题大全征集1. jeecg没有数据库脚本问题jeecg不需要数据库脚本&#xff0c;在数据库创建好数据库&#xff0c;项目配置好数据源链接&#xff0c;会自动建表&#xff0c;登录时候有初始化数据链接该机制配…

Esp32在Arduino IDE的开发环境(问题大全)

ESP32在Arduino IDE的开发环境&#xff08;问题大全&#xff09; ESP32 ESP32 芯片是继 ESP8266 芯片后推出的一款集成 WiFi 功能的微控制器。 ESP32拥有比 ESP8266 更加强大的性能 在硬件方面&#xff1a;ESP32的可用I/O口更多&#xff0c;CPU数为双核&#xff0c;处理更快&…