Loading

20240910 模拟笔试错题

20240910 模拟笔试错题

牛客——搜狐畅游24届C++

经常要操作的内存分为那几个类别?

image

哈夫曼编码

已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a、b、c、d、e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e出现了232次,对这5个字符使用哈夫曼(Huffman)算法进行编码,则以下哪些说法正确()
A 使用哈夫曼算法编码后,用编码值来存储这段文本将花费最少的存储空间
B 使用哈夫曼算法进行编码,a、b、c、d、e这五个字符对应的编码值是唯一确定的。
C 使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值可以有多套,但每个字符编码的位(bit)数是确定的
D b这个字符的哈夫曼编码值位数应该最短,d这个字符的哈夫曼编码值位数应该最长

数据结构

关于数据结构,下面叙述中正确的是()
A 直接选择排序是一种稳定的排序方法
B 哈夫曼树带权路径长度最短的树,路径上权值较大的节点离根较近。
C 拓扑排序是指节点值得有序排序
D 当从一个最小堆删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整到合适位置。

C语言-文件操作

设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项错误的是:
A 可以随意读和写

B 只能写不能读

C 可以在原有内容后追加写

D 写操作结束后可以从头开始读

image

C++ 纯虚函数

class A
{
public:
	virtual void a() = 0;
	A() {
		std::cout << "A ";
	}
};
class B : public A
{
public:
	B() {
		std::cout << "B ";
	}
};
int main()
{
	A* a = new B();
	return 0;
}

输出结果是什么?
A A B
B B A
C 编译错误
D 以上都不是

派生类没有实现父类的纯虚函数,编译错误。

C++ 虚指针

class No
{
public:
 virtual void printf() = 0;
private:
 int* ptr;
};
int main()
{
 int size = sizeof(No);
 printf("%d", size);
}

在64位系统下输出结果是什么?
A 1
B 4
C 8
D 16

虚指针和ptr成员变量各占8字节。

操作系统-虚拟存储

虚拟存储的基础是程序局部性理论,它的基本含义是( )
A 代码的顺序执行
B 程序执行时对内存访问的不均匀性
C 变量的连续访问
D 指令的局部性

这道题没有找到任何出处,这里的“不均匀性”不知道具体指什么。

下面哪种内存管理方法有利于程序的动态链接?()

A 分段存储管理
B 分页存储管理
C 可变分区分配
D 固定分区分配

程序的动态链接与程序的逻辑结构相关,分段存储管理将程序按照逻辑段进行划分,因此有利于其动态链接。其他的内存管理方式与程序的逻辑结构无关。

快排

排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一“趟”。下列序列 中,不可能是快速排序第二趟结果的是
A 5,2,16,12,28,60,32,72
B 2,16,5,28,12,60,32,72
C 2,12,16,5,28,32,72,60
D 5,2,12,28,16,32,72,60

???

delete this

关于以下代码,哪个说法是正确的?
myClass::foo(){
delete this;
}
..
void func(){
myClass *a = new myClass();
a->foo();
}

https://blog.csdn.net/lis_12/article/details/56049284

posted @ 2024-09-10 21:08  杨谖之  阅读(18)  评论(0编辑  收藏  举报