2021届C++方向秋季模拟笔试题-B卷-周李杰(纠错)

1.选择题
题一:以 下 for 循 环 的 执 行 次 数 是()。
for(x=0,y=0;(y=123)&&(x<4);x++);
A 是无限循环
B 循环次数不定
C 4次
D 3次
他的回答: A (错误)
正确答案: C
逗号表达式的要领
1.逗号表达式的运算bai过程为:从左往右逐du个计算表达式。
2.逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。

所以此题考察了逗号表达式,逗号表达式从左往右一次计算,但是此题循环中的判断条件,y=123是个赋值语句也是陷阱。
题二:已知表达式++a中的"++"是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为()
A a.operator++()
B a.operator++(0)
C a.operator++(int)
D operator++(a,0)
他的回答: B (错误)
正确答案: A
[解析] ++既可以是前缀运算符也可以是后缀运算符,重载这两个运算符的区别是:重载后缀++时必须多一个虚拟参数:int,因此从形式上看更像是一个二元运算符重载。题目中++a为前缀运算符,因此A选项正确。
题三:在()情况下适宜采用 inline 定义内联函数
A 函数体含有循环语句
B 函数体含有递归语句
C 函数代码少、频繁调用
D 函数代码多,不常调用
他的回答: D (错误)
正确答案: C
使用高度频繁,而且操作内容简单的情况下,用inline函数。这是C++为了取代宏定义而设置的函数
题四:下面关于多态性的描述,错误的是:
A C++语言的多态性分为编译时的多态性和运行时的多态性
B 编译时的多态性可通过函数重载实现
C 运行时的多态性可通过模板和虚函数实现
D 实现运行时多态性的机制称为动态绑定
他的回答: B (错误)
正确答案: C
参考答案:
分析:模板的是编译时多态性,而虚函数是运行时。
题五:有如下代码:
#include
using namespace std;
class MyClass
{
public:
MyClass(int i = 0)
{
cout << i;
}
MyClass(const MyClass &x)
{
cout << 2;
}
MyClass &operator=(const MyClass &x)
{
cout << 3;
return *this;
}
~MyClass()
{
cout << 4;
}
};
int main()
{
MyClass obj1(1), obj2(2);
MyClass obj3 = obj1;
return 0;
}
运行时的输出结果是()
A 11214444
B 11314444
C 122444
D 123444
他的回答: A (错误)
正确答案: C
解析:obj1和obj2调用的是其本身的构造函数,obj3则易出现错误,调用的是拷贝构造函数,
拷贝构造函数也是一种构造函数,那么它的功能就是创建一个新的对象实例;赋值运算符是执行某种运算,将一个对象的值复制给另一个对象(已经存在的)。调用的是拷贝构造函数还是赋值运算符,主要是看是否有新的对象实例产生,如果产生了新的对象实例,那调用的就是拷贝构造函数;如果没有,那就是对已有的对象赋值,调用的是赋值运算符。
题五:以下关于指针的说法,正确的是()
A int *const p与int const *p等价
B const int *p与int *const p等价
C const int *p与int const *p等价
D int *p[10]与int (*p)[10]等价
他的回答: D (错误)
正确答案: C
解析:**int *p[10] 是一个大小为10的数组p里面存的是int 类型的数据
int (p)[10] 指的数组指针,指向一个含有10个元素的数组他是指针

题六:在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是:
A 只能在该cpp所在的编译模块中使用该变量
B 该变量的值是不可改变的
C 该变量不能在类的成员函数中引用
D 这种变量只能是基本类型(如int,char)不能是C++类型
他的回答: C (错误)
正确答案: A
参考答案:
Static全局变量和普通全局变量:
针对:一个工程里有多个cpp文件时
相同点:存储方式相同,都是静态存储;
不同点:作用域不同。
普通全局变量—作用域是整个源程序(含有多个源文件),在各个源文件中都有效
Static全局变量----作用域是当前源文件

题七:使用In命令将生成了一个指向文件old的符号链接new,如果你将文件old删除,是否还能够访问文件中的数据?
A 不可能再访问
B 仍然可以访问
C 能否访问取决于文件的所有者
D 能否访问取决于文件的权限
他的回答: C (错误)
正确答案: A
[Linux中In连接文件的同步性]
题八:以下不属于Linux系统命令的是:
A kill
B ifconfig
C mv
D remove
他的回答: B (错误)
正确答案: D
题九:关于子进程和父进程的说法,下面哪一个是正确的?()
A 一个父进程可以创建若干个子进程,一个子进程可以从属于若干个父进程
B 父进程被撤销时,其所有子进程也被相应撤消
C 子进程被撤销时,其从属的父进程也被撤销
D 一个进程可以没有父进程或子进程
他的回答: A (错误)
正确答案: D
一个孩子只有一个父亲。 爹死了,孩子可以活着,是个孤儿。 孩子死了,爹也可以活着。
题十:一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数是______次。
A 3
B 4
C 5
D 6
他的回答: D (错误)
正确答案: C

LRU算法,无有则缺页,替换最久没被使用的页
1 第一次(缺1)
3 1 第二次(缺3)
2 3 1 第三次(缺2)
1 2 3(刚使用的放在前面未使用的依次后移)
2 1 3
1 2 3
5 1 2第四次(3是最少使用的所以换出)
1 5 2
2 1 5
3 2 1第五次(5是最少使用的所以换出)
栈私有堆共有
题11.有一个程序中有A,B,C三个线程同时对一个文件进行读写操作,其中的A,B是写线程只负责往里面写数据,C是读线 程,同时把读取的数据从文件中删除,A线程
单独写满文件需要10个小时,B单独写程序需要6小时,C线程需要15小时才 能读取完整个文件,不考虑三个线程之间的相互影响的情况下现在____小时才能写满文
件。
A 5
B 6
C 5.5
D 4.5
他的回答: C (错误)
正确答案: A
不考虑三个线程之间的相互影响,突然回到了小学数学题:“两个水龙头注水,一个放水,问何时注满水池”的感觉。这样问题就简单了:
总任务是单位1,A的写工作效率是1/10,B的写工作效率是1/6,C的读工作效率是1/15,那么总工作效率是1/10 + 1/6

  • 1/15 结果是1/5。于是,写满的总时间是:用单位1除以总工作效率五分之一,就是5小时。
    题12:关于静态库与动态库的区别,以下说法错误的是()
    A 加载动态库的程序运行速度相对较快
    B 静态库会被添加为程序的一部分进行使用
    C 动态库可用节省内存和磁盘空间
    D 静态库重新编译,需要将应用程序重新编译
    他的回答: C (错误)
    正确答案: A
    动态库的函数到实际使用的时候才加载到内存,所以运行速度较慢
    题13:执行chmod 644 mm.txt后的权限是()
    A -rw-r–r--
    B rw-r–r--
    C -rwxr–r--
    D rwxr- -rw
    他的回答: A (错误)
    正确答案:B
    第一个字符用于表示文件的类型 :
    _ 普通文件
    d 目录
    l 链接文件
    s 套接字文件
    p 命名管道文件
    c 字符设备文件
    b 块设备文件
    题14:如果信号量的当前值为-4,则表示系统中在该信号量上有()个进程等待。
    A 4
    B 3
    C 5
    D 0
    他的回答: D (错误)
    正确答案: A
    这是信号量的baip、v操作,p表示申请一个资源,每次dup操作使信号量减1,zhiv是释放一个资源,每次v操作使信号量dao加1。信号量表示的是当前可用的资源个数,当信号量为负时,申请资源的进程就只能等待了。所以,信号量是负的多少,就表明有多少个进程申请了资源但无资源可用只能处于等待状态。
    题15:Linux中,一个端口能够接受tcp链接数量的理论上限是?
    A 1024
    B 65535
    C 65535 * 65535
    D 无上限
    他的回答: C (错误)
    正确答案: D
    两台主机:
    接受端口:65535
    发送端口:65535
    那么 ip A --> ipB,组合起来有 65535*65535
    但可以有多台主机间相互连接

    题16:用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,则在进行出队操作时()
    A 仅修改队头指针
    B 队头、队尾指针都要修改
    C 队头、队尾指针都可能要修改
    D 仅修改队尾指针
    他的回答: A (错误)
    正确答案: C
    参考答案:
    注:当只有一个元素,出队列时,要将队头和队尾,指向-1.所以说队头和队尾都需要修改 注:当只有一个元素,出队列时,要将队头和队尾,指向-1.所以说队头
    和队尾都需要修改 注:当只有一个元素,出队列时,要将队头和队尾,指向-1.所以说队头和队尾都需要修改

    题16:在一棵高度为k的满二叉树中,结点总数为
    A 2 ^ (k-1)
    B 2 ^ k
    54
    55
    56
    C 2 ^ k - 1
    D [log2k]+1
    他的回答: A (错误)
    正确答案: C
    题17:给出下述节点及权值(括号中数字为权值),构造huffman树,其带权路径长度为()
    a(7),b(5),c(4),d(2)
    A 18
    B 35
    C 36
    D 46
    他的回答: C (错误)
    正确答案: B2021届C++方向秋季模拟笔试题-B卷-周李杰(纠错)