1如果C类子网的掩码为255.255.255.240,则包含的子网位数、子网数目、每个子网中的主机数目正确的是( )
正确答案: C
A、2 2 2
B、3 6 30
C、4 14 14
D、5 30 6
答案:
首先C类地址掩码为255.255.255.000 。可知子网号为240(1111 0000) 。所以子网位数为4(前四位可变),对于分类的IPv4地址进行子网划分时,子网号不能使用全1和全0,所以子网数为16-2=14。又因为主机号全0表该网络地址,全1表广播地址,所以去掉这两种,子网中的主机数为16-2=14 。
2二分查找算法不能在下面哪个数据结构中使用?()
正确答案: A
A、sorted linked list
B、sorted binary trees
C、sorted linear array
D、sorted pointer array
答案:
由于链表不能随机访问,故不适与二分查找
3某指令流水线由 5 段组成,各段所需要的时间分别是:t、3t、2t、t 和 2t 。问如果连续执行 10 条指令,则吞吐率是多少 ?
正确答案: D
A、0.1428/t
B、0.2041/t
C、0.2857/t
D、0.3333/t
答案:
弄懂两个概念就好做了:流水线时间和吞吐率:
流水线线时间计算有个公式:每一条指令所需时间之和+(指令条数-1)*时间最长的指令的一段 ——>(1+3+2+1+2)t + (10-1)*3t
吞吐率也有个公式:指令条数÷流水线时间 =10÷36t
4以下意图哪个是用来描述 OBSERVER(观察者)?( )
正确答案: C
A、使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系
B、将抽象部分与它的实现部分分离,使它们都可以独立地变化
C、定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新
D、用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
答案:
A:用来描述职责链
B:用来描述桥接
C:用来描述观察者
D:用来描述原型
5下列关于哈夫曼树的说法中,错误的是________。
正确答案: A
A、哈夫曼树是一棵完全二叉树
B、哈夫曼树中没有度为1的结点
C、哈夫曼树具有最小的带权路径长度
D、同一组权值构造的哈夫曼树不唯一
答案:
哈夫曼树是利用权值来构建的,和节点大小什么没有关系
6可以通过以下哪种方式查看系统内存使用情况
正确答案: A
A、free -g
B、top
C、ps
D、df
答案:
A、free:可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
B、top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
C、ps:用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
D、df:用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
7将当前命令sh test.sh任务在后台执行,下列最优雅的的做法是
正确答案: C
A、sh test.sh &
B、nohup sh test.sh
C、nohup sh test.sh &
D、nohup sh test.sh &&
答案:
nohup :表示不挂起,在你退出账户之后,进程继续在后台运行,一般形式为: nohup command &
8shell脚本中,需求如下:如果 ls testfile 执行成功输出True,否则输出Fail,下列哪项正确
正确答案: D
A、ls testfile; [[ $# -eq 0 ]] && echo True || echo Fail
B、ls testfile; [[ $* -eq 0 ]] && echo True || echo Fail
C、ls testfile; [[ $0 -eq 0 ]] && echo True || echo Fail
D、ls testfile; [[ $? -eq 0 ]] && echo True || echo Fail
答案:
$?:包含前一个命令的退出状态,正常在返回0,繁殖非0
9有时候因为磁盘空间快满了,我们需要删除一些log文件,但是忘记停止程序了,日志删除后,发现磁盘空间并没有释放,这时候我们通常使用以下哪种方式查找已删除文件的进程占用
A、ps
B、lsof
C、top
D、df
10以下关于ACID说法正确的是?
正确答案: A
A表示原子性,要么全部执行,要么全部不执行,不会存在部分执行
C表示完整性,是数据操作前后的约束
I表示读写操作的隔离性
D表示持久性,一旦事务提交,则其所做的修改不会发生变化
答案:
原子性(Atomicity)
事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。
一致性(Consistency)
数据库在事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的。
隔离性(Isolation)
一个事务所做的修改在最终提交以前,对其它事务是不可见的。
持久性(Durability)
一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。可以通过数据库备份和恢复来实现,在系统发生奔溃时,使用备份的数据库进行数据恢复。
11下面指针所指向的内存,哪一块是可以修改的()
正确答案: C
A、const int* a
B、int const* b
C、int* const c
D、const int* const d
答案:
const int */a ,int const* /b :指针所指向的内容是常量不可变;(const在斜线左边)
int * /const c: 指针本身是常量不可变;(const在斜线右边)
const int* const d:两者都不可变
const int* a 和 int const* b都是底层const,代表指针所指的变量是常量
int* const c 是顶层const,代表指针本身是常量,但是不针对所指对象,所以可以改变
const int* const d 是指向常量的常量指针,不管是指针本身,还是所指内存中的内容,都不可以改变
12以下C语言和C++语言比较中错误的是()
正确答案: B 你的答案: 空 (错误)
A、C语言绝大部分语法适用于C++
B、C语言和C++的struct意义和用法一致
C、C语言不能使用继承技术,但C++可以
D、C++是面向对象的语言,C语言是面向过程的语言
13关于类成员函数的重载、覆盖和隐藏,下面说法错误的是()
正确答案: B
A、重载函数必须要在同一个类中
B、派生类函数覆盖基类函数,基类函数最好不要有virtual关键字
C、如果派生类的函数与基类的函数名相同,通过派生类的实例也只能调用到派生类的函数。
D、重载函数不能使用virtual关键字修饰
14下面代码在32位计算机中输出的结果是( )
struct TEST_TYPE
{
int a;
int b;
};
int testSize(struct TEST_TYPE val[10])
{
return sizeof(val);
}
正确答案: A
A、4
B、8
C、10
D、80
答案:
数组名作为形参传入函数时,退化为指针。32位系统中,指针占4字节(32/8)
15以下属于服务监控最核心关注点的是:
正确答案: D 你的答案: 空 (错误)
A、错误异常
B、响应延迟
C、吞吐量
D、都是
16下列代码的时间复杂度是多少()(^符号是幂的意思)
int func(int N)
{
int cnt = 0;
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j+=i)
cnt+=(i+j);
return cnt;
}
正确答案: B
A、O(N)
B、O(NlogN)
C、O(N^1.5)
D、O(N^2)
答案:
里面的for循环
N/1+N/2+N/3+…N/N
调和级数 1+1/2+1/3+1/4+…+1/n= ln(n+1)+r(r为常量)
所以为NlogN
17假如N是由一棵有序树T转换而来的二叉树,那么T中的节点的后序遍历顺序是N节点的()
正确答案: B
A、先序遍历
B、中序遍历
C、后序遍历
D、层次遍历
答案:
将树转换为二叉树后,树的先根序列等于对应二叉树的先序序列,树的后根序列等于对应二叉树的中序序列。
18小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。
第一种情况:如果小易带的水果足够多,钱用了,水果还没吃完,那钱只有付房租就行,不用买水果;
则对应代码为:
if(d / x <= f)
cout << d / x << endl;
第二种情况:如果小易带的水果不多,水果吃完了,钱还有剩余,则最后钱还得付房租和买水果,设最多能生活D天,则有以下方程:
Dx + (D-f)p<=d
化简得:
D <= (d + f*p) / (x + p)
以下是完整代码:
#include
using namespace std;
int main()
{
long long x, f, d, p;
cin >> x >> f >> d >> p;
if(d / x <= f)
cout << d / x << endl;
else
cout << (d + f*p) / (x + p) << endl;
return 0;
}
标签:面试题,子网,const,正确,int,C++,sh,2018,答案
来源: https://blog.csdn.net/ShawnWang1994/article/details/98100446