牛客网练习题错题集锦2

来源:互联网 发布:caffe bn层不收敛 编辑:程序博客网 时间:2024/06/05 08:17

1、若一台计算机的内存为128MB,则交换分区的大小通常是(256M)
解析:在内存小于2G的情况下,交换分区应为内存的2倍,超过2G的话,交换分区为物理内存加上2G
2、Linux crontab中* * * * * /usr/local/run.sh这句话5个*号分别代表什么?
解析:crontab基本格式 : 
*  *  *  *  *  command 
分  时  日 月  周    命令 
第1列表示分钟1~59 每分钟用*或者 */1表示 
第2列表示小时1~23(0表示0点) 
第3列表示日期1~31 
第4列表示月份1~12 
第5列标识号星期0~6(0表示星期天) 
第6列要运行的命令 
3、设umask为002, 则新建立的文件的权限是什么?
解析:文件默认权限是666,“拿掉”002权限就是664,其中r-4,w-2,x-1。这里“拿掉”的概念不是数学上的减掉,如果没有这个权限位,也就不用“拿掉”了。  文件夹的默认权限是777,这样的话,结果是D。
4、在Linux上,对于多进程,子进程继承了父进程的下列哪些?
  • 子进程继承父进程
    • 用户号UIDs和用户组号GIDs
    • 环境Environment
    • 堆栈
    • 共享内存
    • 打开文件的描述符
    • 执行时关闭(Close-on-exec)标志
    • 信号(Signal)控制设定
    • 进程组号
    • 当前工作目录
    • 根目录
    • 文件方式创建屏蔽字
    • 资源限制
    • 控制终端
  • 子进程独有

    • 进程号PID
    • 不同的父进程号
    • 自己的文件描述符和目录流的拷贝
    • 子进程不继承父进程的进程正文(text),数据和其他锁定内存(memory locks)
    • 不继承异步输入和输出
  • 父进程和子进程拥有独立的地址空间和PID参数。

  • 子进程从父进程继承了用户号和用户组号,用户信息,目录信息,环境(表),打开的文件描述符,堆栈,(共享)内存等。
  • 经过fork()以后,父进程和子进程拥有相同内容的代码段、数据段和用户堆栈,就像父进程把自己克隆了一遍。事实上,父进程只复制了自己的PCB块。而代码段,数据段和用户堆栈内存空间并没有复制一份,而是与子进程共享。只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。由于父进程的PCB和子进程的一样,所以在PCB中断中所记录的父进程占有的资源,也是与子进程共享使用的。这里的“共享”一词意味着“竞争”  
  • 4、A.TCB,线程控制块;PCB,进程控制块
    B.MMU(Memory Management Unit) 内存管理单元,是中央处理器用来管理虚拟内存和物理内存寄存器的控制线路,同时也负责虚拟内存映射为物理内存等。
    C.CACHE,感觉在这道题里应该指的是高速缓冲存储器。
    D.DMA,(direct memory access)直接内存存储,传输数据从一个地址空间到另一个地址空间。
1、下列程序编译时会出现错误,请根据行号选择错误位置( )
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
33
34
35
#include <iostream>
usingnamespacestd;
classA{
  inta1;
protected:
  inta2;
public:
  inta3;
};
classB: publicA{
  intb1;
protected:
  intb2;
public:
  intb3;
};
classC:privateB{
  intc1;
protected:
  intc2;
public:
  intc3;
};
intmain(){
  B obb;
  C obc;
  cout<<obb.a1;//1
  cout<<obb.a2;//2
  cout<<obb.a3;//3
  cout<<obc.b1;//4
  cout<<obc.b2;//5
  cout<<obc.b3;//6
  cout<<obc.c3;//7
  return0;
}
选择为:1,2,4,5,6

派生类可以继承定义在基类中的成员,但是派生类的成员函数不一定有权访问从基类继承而来的成员,访问权限受下面因素影响。

  • 继承方式;
  • 基类成员的访问权限(即public/private/protected)。

继承有三种方式,即公有(Public)继承、私有(Private)继承、保护(Protected)继承。(私有成员不能被继承)

  • 公有继承就是将基类的公有成员变为自己的公有成员,基类的保护成员变为自己的保护成员。
  • 保护继承是将基类的公有成员和保护成员变成自己的保护成员。
  • 私有继承是将基类的公有成员和保护成员变成自己的私有成员。
三种继承方式的比较:
private, public, protected 访问标号的访问范围:
private:只能由1.该类中的函数、2.其友元函数访问。
不能被任何其他访问,该类的对象也不能访问。
protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
但不能被该类的对象访问。
public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。 
注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。
1、下面说法哪个正确的:
对进程来说,其虚拟内存的大小不受物理内存大小的限制
解析:线程有自己的栈,但没有堆所以A错。普通整数的一般赋值、增量和减量语句会产生多条机器指令,操作均不具有原子性,需要同步,BC错。虚拟存储器具有请求调入和置换功能,所以虚拟内存的大小不受物理内存大小的限制。
2、关闭linux系统(不重新启动)可使用命令。
解析:关机命令有halt init 0 poweroff   shutdown -h 时间,其中shutdown是最安全的
重启命令有reboot, init 6, shutdow -r 时间
3、Linux系统中,已经将DHCP服务器架设好,客户端的网络接口eth0,可以通过( )命令获得服务器分配的IP地址。多选
dhclient
ifdown eth0;ifup eth0
ifconfig
service network stop;service network start
4、将文件file1复制为file2可以用下面哪些命令()
cp file1 file2
cat file1 >file2
cat < file1 >file2
dd if=file1 of=file2
cat file1 | cat >file2

解析:
cp命令 cp指令用于复制文件或目录。
        将文件file1复制成文件file2命令如下:cp file1 file2
cat命令 cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的。
         一次显示整个文件命令如下: cat filename
> : linux中的数据流重导向:输出导向,覆盖导向的文件内容。
< : linux中的数据流重导向:输入导向,理解为原本由键盘输入改为文本输入
dd命令 : 作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
        参数:if  输入文件(或设备名称)  of  输出文件(或设备名称)
       将文件file1拷贝到文件file2中命令如下:  dd if=file1 of=file2
| 管道命令操作符,处理经由前面一个指令传出的正确输出信息,然后,传递给下一个命令,作为标准的输入