文章目录

  • 一. 单选
    • 1. 某台微机安装的是 64 位操作系统,“ 64 位”指的是( )
    • 2. 对于Linux说法,下列说法正确的是()
    • 3.以下哪个命令可以改变进程的优先级
    • 4. 单任务系统中两个程序A和B,其中
    • 5. 下述哪种情况会提出中断请求()
    • 6. 以下哪些不是内核对象()
    • 7. 在 Linux 中,如果系统的 umask 设置为 244,创建一个新文件它的权限是()
    • 8. 由源代码生成可执行文件需要经过预编译,编译,汇编,链接等阶段,错误:unresolved external symbol BeginScene属于()阶段错误。
    • 9. 程序出错在什么阶段()?
    • 10. 有一个变量int a=0;两个线程同时进行+1操作,每个线程加100次,不加锁,最后a的值是()?
  • 二. 编程
    • 1. 求正数数组的最小不可组成和
    • 2. 有假币

一. 单选

1. 某台微机安装的是 64 位操作系统,“ 64 位”指的是( )

A CPU的运算速度,即CPU每秒钟能计算64位二进制数据
B CPU的字长,即CPU每次能处理64位二进制数据
C CPU的时钟主频
D CPU的型号

正确答案:B

64位操作系统指的是CPU的字长,也就是说每次可以处理64位二进制数据,内存地址是64位。与之相对的是32位操作系统,也就是说每次可以处理32位二进制数据,内存地址是32位

2. 对于Linux说法,下列说法正确的是()

A 线性访问内存非法时,当前线程会进入信号处理函数
B 用mv命令移动文件时,文件的修改时间会发生变化
C ulimit -c设置的是函数调用栈的大小
D malloc函数是应用程序向操作系统申请内存的接口

正确答案:A

A选项:
当内存访问越界的时候,线程会收到信号,进而进行信号处理,调用信号处理函数

B选项:
Linux下文件的三个时间参数:
(1) modification time(mtime):内容修改时间
这里的修改时间指的是文件的内容发生变化,而更新的时间。
(2) change time(ctime):状态修改时间
这里的修改时间指的是文件的属性或者权限发生变化,而更新的时间
(3) access time(atime):最后访问时间
这里的访问时间是指文件被读取,而更新的时间。

C选项:
ulimit -c是更改coredump文件大小的命令, coredump文件也就是核心转储文件

D选项:
malloc是库函数,"操作系统申请内存的接口“指的是系统调用,库函数中封装了系统调用,库函数与系统调用是两个不同的概念。

3.以下哪个命令可以改变进程的优先级

A twice
B chnice
C nice
D renice

正确答案:D

A twice : linux当中没有这个命令
B chnice: linux当中没有这个命令
C nice∶设置进程优先级的谦让值(修正值)为N,niceness值为负时,表示高优先级,能提前执行和获得更多的资源,对应低友善度;反之,则表示低优先级,高友善度。
Drenice: renice指令可重新调整程序执行的优先权等级

4. 单任务系统中两个程序A和B,其中

A程序:CPU:10s -> 设备1:5s -> CPU:5s ->设备2:10s ->CPU:10s;
B程序:设备1:10s-> CPU:10s -> 设备2:5s ->CPU:5s ->设备2:10s;
执行顺序为A->B,那么CPU的利用率是()
A 30%
B 40%
C 50%
D 60%

正确答案:C

基础概念
单任务系统告诉我们A程序和B程序不能并行执行,只能并发执行。

解题分析
A程序,CPU时间为10+5+10=25s,程序运行总时间为10+5+5+10+10=40s;
B程序,CPU时间为10+5=15s,程序运行总时间为10+10+5+5+10=40s;CPU总时间为40s,两个进程的总时间为80s,
CPU的利用为40/80=0.5

5. 下述哪种情况会提出中断请求()

A 在键盘输入过程中,每按一次键
B 两数相加结果为零
C 计算结果溢出
D 一条系统汇编指令执行完成

正确答案:A

程序中断
是指计算机执行现行程序的过程出现某些急需处理的异常情况和特殊请求,cpu暂时终止现行程序,而转去对随机发生的更紧迫的事件进行处理,在处理完毕后,cpu将自动返回原来的程序继续执行。

A选项:当我们键盘输入的时候,进程需要中断进行IO读取,所以会导致程序中断运行,转而进行IO;比较典型的就是scanf
B选项:两个数相加结果为0,这个是正常的程序运行时可能产生的结果,并不会导致程序中断运行
C选项:计算结果溢出就会截断,并不会导致程序中断运行
D选项:汇编指令的完成也是程序在运行的体现,并不会导致程序中l新运行

6. 以下哪些不是内核对象()

A 进程
B 线程
C 互斥器
D 临界区

正确答案:D

A选项:进程在内核当中是一个进程控制块,task_struct结构体
B选项:线程在内核当中也是一个进程控制块在描述
C选项:互斥器(mutex)也是在内核创建出来,保护多线程程序运行时不会产生二义性结果
D选项:临界区指的是多个执行流都能访问到的临界资源对应的代码区域,程序员定义。

7. 在 Linux 中,如果系统的 umask 设置为 244,创建一个新文件它的权限是()

A --w-r–r–
B -r-xr–r–
C -r—w–w
D -r-x-wx-wx

正确答案:C

umask
功能说明:指定在建立文件时预设的权限掩码。
语法: umask [-S][权限掩码]
补充说明: umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
创建时,文件默认666,目录默认777

所以,对于新建文件权限666-244得到422
linux系统中权限rwx对应数值为422,故文件权限为r-- -w- -w-

8. 由源代码生成可执行文件需要经过预编译,编译,汇编,链接等阶段,错误:unresolved external symbol BeginScene属于()阶段错误。

A 预编译
B 编译
C 汇编
D 链接
正确答案:D

无法解析的外部符号BeginScene,说明单个文件已经编译通过,在链接时,查找外部符号没有找到,无法解析,所以是发生在链接阶段

9. 程序出错在什么阶段()?

int main(void)
{http://www.taobao.com
cout << "welcome to taobao" << endl;
return 0;
}

A 预处理阶段出错
B 编译阶段出错
C 汇编阶段出错
D 链接阶段出错
E 运行阶段出错
F 程序运行正常

正确答案:F

双斜杠之后的www.taobao.com被当做注释了,那么前面的http:是否合法?
这就是C++中一个几乎不会被用到的语法,标签。

带标签的语句是一种特殊的语句,在语句前面有一个标识符(即标签,上段代码中的http)和一个冒号。使用goto label就可以跳到标签处执行,比如可以在代码中写goto http,这样就会执行cout语句了。

10. 有一个变量int a=0;两个线程同时进行+1操作,每个线程加100次,不加锁,最后a的值是()?

A 200
B <=200
C >=200
D 都有可能
正确答案:B

1.如果两个线程并发的执行,线程A执行完毕,线程B执行,则最终的值为200
2.如果两个线程并行的执行,有可能就会导致程序结果的二义性,则最终的结果值有可能是小于200

二. 编程

1. 求正数数组的最小不可组成和

链接

给定一个全是正数的数组arr,定义一下arr的最小不可组成和的概念:
1,arr的所有非空子集中,把每个子集内的所有元素加起来会出现很多的值,其中最小的记为min,最大的记为max;
2,在区间[min,max]上,如果有一些正数不可以被arr某一个子集相加得到,那么这些正数中最小的那个,就是arr的最小不可组成和;
3,在区间[min,max]上,如果所有的数都可以被arr的某一个子集相加得到,那么max+1是arr的最小不可组成和;

举例: arr = {3,2,5} arr的min为2,max为10,在区间[2,10]上,4是不能被任何一个子集相加得到的值中最小的,所以4是arr的最小不可组成和;
arr = {3,2,4} arr的min为2,max为9,在区间[2,9]上,8是不
能被任何一个子集相加得到的值中最小的,所以8是arr的最小不可组成和; arr = {3,1,2} arr的min为1,max为6,在区间[2,6]上,任何数都可以被某一个子集相加得到,所以7是arr的最小不可组成和; 请写函数返回arr的最小不可组成和。

正确答案:

class Solution {public:int getFirstUnFormedNum(vector<int> &arr, int length) {int sum = 0, min = arr[0];int i, j;for (int i = 0; i < length; i++){sum += arr[i];min = arr[i] < min ? arr[i] : min;} vector<int> dp(sum + 1, 0);for (i = 0; i < length; i++){//有length个数据--有length个阶段//{2, 3, 5}//i=0--d[10]=2 d[9]=2 d[8]=2 d[7]=2...d[2]=2//i=1--d[10]=5 d[9]=5...d[5]=5 d[4]=3 d[3]=3//i=2--d[10]=10 d[9]=8 d[8]=8 d[7]=7 d[6]=5 d[5]=5for (j = sum; j >= arr[i]; j--){//逆序判断背包承重中能够放入的数据//当数组中只有2的时候,背包承重从2-10都可以放入2的数值//当数组中放入2和3的时候,背包承重从5-10可以放入5,3-4放入3,2只能放入2//当数组中放入2,3,5时,背包承重10放入10,8-9放入8,7放入7,5-6放入5...//dp[j-arr[i]]意思是背包承重为j时,如果已经放置了arr[i]的重量后还能放置的最大重量if (dp[j] < dp[j - arr[i]] + arr[i])//对每个承重计算当前最大能放置重量dp[j] = dp[j - arr[i]] + arr[i];//更新背包中能够放入的最大值elsedp[j] = dp[j];}}// 最后当承重为n时,放入的重量不为n则认为是最大不可求和for (i = min; i <= sum; i++){if (i != dp[i])return i;} return sum + 1;}
};

2. 有假币

链接

居然有假币! 现在猪肉涨了,但是农民的工资却不见涨啊,没钱怎么买猪肉啊。nowcoder这就去买猪肉,结果找来的零钱中有假币!!!可惜nowcoder 一不小心把它混进一堆真币里面去了。只知道假币的重量比真币的质量要轻,给你一个天平(天平两端能容纳无限个硬币),请用最快的时间把那个可恶的假币找出来。

输入描述:
1≤n≤2^30,输入0结束程序。
输出描述:
最多要称几次一定能把那个假币找出来?

示例1:
输入
3 1
2
0


1 3

正确答案:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){long long n; int cnt;while ((scanf("%lld", &n)) != EOF) {if (n == 0)break;cnt = 0;while (n >= 2) {if (n % 3) {//不可以整除则取最差情况:最重的一份是 n/3 + 1个金币n = n / 3 + 1;}else {//可以整除在直接整除,能够获取到最重的一份n /= 3;} cnt++;} printf("%d\n", cnt);};return 0;
}

笔试强训48天——day29相关推荐

  1. 笔试强训48天——day23

    文章目录 一. 单选 1.下面程序段的时间复杂度为() 2. 下列关于线性链表的叙述中,正确的是( ) 3. 下列描述的不是链表的优点是( ) 4. 向一个栈顶指针为h的带头结点的链栈中插入指针s所指 ...

  2. 笔试强训错题总结(一)

    笔试强训错题总结 文章目录 笔试强训错题总结 选择题 编程题 连续最大和 不要二 最近公共祖先 最大连续的bit数 幸运的袋子 手套 选择题 以下程序的运行结果是() #include <std ...

  3. Java 笔试强训 牛客网选择编程题 01

    一.选择 1.单选 1.1.语法: public class Test3{public static void main(String[] args) {System.out.println(100 ...

  4. 【C++笔试强训】第三天

  5. 【笔试强训】Day_02

    目录 一.选择题 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 二.编程题 1.排序子序列 2.倒置字符串 一.选择题 1. 使用printf函数打印一个double类型的数据,要求: ...

  6. 笔试强训day25(数根,星际密码)

    目录 第一题-树根 第二题-星际密码 第一题-树根 思路: 为防止超出范围,所以用字符串接收,只有将字符串的每一位加起来存放到sum,循环判断是否为一位数 #include<iostream&g ...

  7. 【nowcoder】笔试强训Day9

    目录 一.选择题 二.编程题 2.1另类加法 2.2走方格的方案数 一.选择题 1.下面程序的输出是:() String x="fmn"; x.toUpperCase(); Str ...

  8. 笔试强训选择题day11,12

    day11 内联函数 内联函数不能太长,有循环,有递归 重载函数 函数名一样,参数列表不一样 构造函数次数 数组看数组中有几个元素,指针数组只需要构造一次 ad是一个数组指针,该指针指向PAT类型的3 ...

  9. (剪花布条、客似云来)笔试强训

    博主简介:想进大厂的打工人 博主主页:@xyk: 所属专栏: JavaEE初阶 两道编程题~~~ 目录 文章目录 一.[编程题]客似云来 二.[编程题]剪花布条 一.[编程题]客似云来 链接:客似云来 ...

最新文章

  1. Asp.net PageBase学习总结
  2. 如何在AWS亚马逊云上运行Angular应用
  3. 2019.7.16考试总结
  4. UnicodeMath数学公式编码_翻译(Unicode Nearly Plain - Text Encoding of Mathematics Version 3)
  5. C#LeetCode刷题之#575-分糖果​​​​​​​(Distribute Candies)
  6. android+证书存储,Firefox for Android是否使用设备证书存储?
  7. LCD屏参:手把手教你计算LCD屏参(proch值)
  8. 计算机高手如何操作键盘,电脑高手键盘操作技巧(二).doc
  9. python画图哆啦a梦大作业_Python—turtle画图(哆啦A梦)
  10. 报表统计(六) 访问数据库
  11. call方法和apply方法
  12. LRN局部响应归一化
  13. 01_测试基础知识---功能测试常用方法/正交表的使用
  14. opmanager监控linux,OpManager管理员指南.doc
  15. LOL手游诺手终极玩法,对线王者剑姬如何操作?国服第一推荐操作
  16. jmeter json取样器实现接口之间的关联
  17. 辐射安全管理考试笔记
  18. 生活琐事--纯属无聊
  19. 《Rethinking Video Anomaly Detection - A Continual Learning Approach》异常检测 WACV-2022
  20. origin怎样将图例调成横排

热门文章

  1. 只需四步,让你成为朋友圈的焦点----Python制作微信好友头像墙
  2. 各品牌电脑进入BIOS的按键
  3. 今天的Java笔试题
  4. ES term terms 查询
  5. 360浏览器强制使用极速模式
  6. DNS中有哪些值得学习的优秀设计
  7. uAVS2 AVS2实时编码器
  8. SWUST#954: 单链表的链接
  9. 送书活动还有最后一本书,怎么办呢?
  10. 广告竞价-广义第二出价