2018校招笔试题-视频编解码算法工程师 -B卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2018校招笔试题-视频编解码算法工程师-B卷
一. 单项选择题
1. 二叉树是非线性数据结构,所以。
它不能用顺序存储结构存储
它不能用链式存储结构存储
顺序存储结构和链式存储结构都能存储
顺序存储结构和链式存储结构都不能使用
2. 从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端,这种排序方法称为
插入排序
归并排序
选择排序
快速排序
3. 以下数据结构属于非线性数据结构的是。
队列
线性表
二叉树
栈
4. 与单链表相比,双链表的优点之一是。
插入、删除操作更简单(由于增加一个链,存在维护所增加的链的问题)
可以进行随机访问
可以省略表头指针或表尾指针
顺序访问相邻结点更灵活
5. 栈和队列的共同点是。
正确答案:
A
A
都是先进后出
都是先进先出 只允许在端点处插入和删除元素
没有共同点
6. 是析构函数的特征。
一个类中只能定义
一个析构函数 析构函数名与类名不同 析构函数的定义只能在类体内 析构函数可以有一个或多个参数
7. 下列的各类函数中,
构造函数 析构函数友元函数 拷贝初始化构造函数
不是类的成员函数。
8. 要求打开文件 d:file.dat ,可写入数据,正确的语句是
ifstream infile(“d:file.dat”, ios::in); ifstream infile(“d:\\file.dat”, ios::in); ofstream infile(“d:file.dat”, ios::out); fstream infile(“d:\\file.dat”, ios::in| ios::out);
9. 对静态成员的不正确描述是
静态成员不属于对象,是类的共享成员静态数据成员要在类外定义和初始化 静态成员函数拥有this 指针
非静态成员函数也可以操作静态数据成员
正确答案:
A
10. 下列函数中,
成员函数 非成员函数析 构 函 数 构造函数
不能重载。
11. 下列关于this 指针的说法正确的是
this 指针存在于每个函数之中
在类的非静态函数中this 指针指向调用该函数的对象
this 指针是指向虚函数表的指针
this 指针是指向类的函数成员的指针
12. 以32位C++程序,请计算sizeof 的值 void Func ( char str[100] ) { sizeof( str ) = ? }
void*p = malloc( 100 ); sizeof( p ) = ?;
100,4 4, 100 4,4 100, 100
13. 下面程序的输出结果是
#include <iostream>
using namespace std;
class Base
{
public:
virtual void f() { cout << “f0+”; }
void g() { cout << “g0+”; }
};
class Derived : public Base
{
public:
void f() { cout << “f+”; }
void g() { cout << “g+”; }
};
void main() { Derived d; Base *p = &d; p->f(); p->g(); }
正确答案:
B
f+g+ f0+g+ f+g0+ f0+g0+
14. 以下程序:
#include<stdio.h>
void main()
{
char grade;
scanf(”%c”,&grade);
switch(grade)
case ’A’: printf(”优秀”);
case ’B’: printf(”良好”);
default:printf(”中等”);
}
如果输入’A’,问输出什么 优秀 优秀良好 优秀良好中等
都不是
15. 设有如下的程序段
char*ptr=NULL;
char str[]="Hello";
ptr=str;
执行完上面的程序段后,*(ptr+5)的值为 'o' \0' 不确定的值 'o'的地址
16. 下列程序的输出结果是
main()
{
char p1[15]=“abcd”,*p2=“ABCD”, str[50]=“xyz”;
strcpy (str+2,strcat (p1+2,p2+1));
正确答案:
B
printf (“%s”,str );
}
xyabcAB abcABz ABabcz xycdBCD
17. 下面对于友元函数描述正确的是
友元函数的实现必须在类的内部定义 友元函数是类的成员函数 友元函数破坏了类的封装性和隐藏性友元函数不能访问类的私有成员
二. 填空题
18. 视频压缩算法中,帧内编码主要去除视频内的()冗余,帧间编码主要去除()冗余,熵编码主要去除()冗余。
19. 请问YCbCr 颜色空间,420采样空间的视频源,每4个亮度像素,对应()个Cb 和()个Cb 像素。
20. 算术编码和变长编码对比,编码效率较高的是(),CABAC 是()编码。
三. 问答题
21. 请画出H.264或H.265编码流程框图,并简述每个模块的作用。
22. 如何理解在视频编码中,在快速模式选择时,不用率失真优化时,往往用SATD +delta×r (
mv ,
mode ) 模式选择的指标?为什么不用
SAD ?
正确答案:
1,1
正确答案:SAD 即绝对误差和,仅反映残差时域差异,不能有效反映码流的大小。
SATD 即将残差经哈德曼变换的预测残差绝对值总 和,由于哈达玛变换和
DCT
变换有强烈的相关性,其值在一定程度上可以反映DCT 变换后生成码流的大小。
因此,不用率失真最优化
23. 请问帧间预测过程中,对运动矢量的预测有哪些技术,请给予简述。
24. 如果一个视频,传输解码过程中丢了一个B 帧,会有什么影响?
25. 有两个沙漏A 和B ,A 可以计9分钟,B 可以计7分钟,怎么用这两个沙漏确定出12分钟的时间?
26. 已知10堆米,其中只有一堆有剧毒,请用4只老鼠在一天之内找出有毒的一堆,毒发期刚好为一天。
27. 算法:编程实现单向链表的反转,函数声明如下
node* revert_list(node* head);
输入描述:
旧链表:
输出描述:
新链表:
输入样例:
1 2 3 4 5
输出样例:
5 4 3 2 1
(注:不能使用本地IDE )
正确答案:
A
和B 同时开始,B 结束时,A 可以确定出9-7=2
分钟,此时,
B 重新开始,A 结束时B 可以确定出7-2=5分钟。
可以从此时开始。