搜狗C++笔试题.docx
- 文档编号:7757616
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:6
- 大小:18.07KB
搜狗C++笔试题.docx
《搜狗C++笔试题.docx》由会员分享,可在线阅读,更多相关《搜狗C++笔试题.docx(6页珍藏版)》请在冰豆网上搜索。
搜狗C++笔试题
搜狗2017C++笔试题
对搜狗2017C++的试题了解多少呢?
下面CN人才网小编为大家带来的是搜狗2017C++笔试题,希望对大家有所帮助~
1.关于重载和多态正确的是?
A.如果父类和子类都有相同的方法,参数个数不同,将子类对象赋给父类后,由于子类继承于父类,所以使用父类指针调用父类方法时,实际调用的是子类的方法;
B.选项全部都不正确
C.重载和多态在C++面向对象编程中经常用到的方法,都只在实现子类的方法时才会使用
D.
classA{
voidtest(floata){cout };
classB:
publicA{
voidtest(intb){cout };
A*a=newA;
B*b=newB;
a=b;
a.test(1.1);
结果是1
解析:
A中由于没有说明使用虚函数,使程序有多态性,所以实际是调用父类的方法;
C中重载在一般函数中也会使用;
D中,题目有2个错误,classA中,需添加成员函数的Public访问属性,否则在类外不能访问成员函数,并且指针对象的访问方式只能使用间接访问方式,即a->test(1.1)或者(*a).test(1.1),同样,由于没有多态性,输出结果为1,若classA中test函数为virtual,则输出2
2.现有两堆硬币,小明和小亮玩游戏,每次每人只能从其中一堆中取走1个或2个硬币,最后将硬币取完者算作胜利,当两堆硬币的个数分别是12,13时,小明应该如何安排策略才能必定获得胜利?
A.安排小亮先取硬币;
B.小明或小亮均一定必胜
C.安排自己先取硬币
D.不可能必胜
解析:
很好理解,小明先从13个里面取出一个,剩下12个,以后的取法就是:
无论小亮每次取多少个,自己都从另外一堆中取相同的个数,则可保证自己会取胜,因为两堆都是12个。
3.不考虑任何编译器优化(如:
NRVO),下述代码的第10行会发生
#include//1
classB//2
{//3
};//4
Bfunc(constB&rhs){//5
returnrhs;//6
}//7
intmain(intargc,char**argv){//8
Bb1,b2;//9
b2=func(b1);//10
}//11
A.一次默认构造函数,一次拷贝构造函数,一次析构函数,一次(拷贝赋值运算符)operator=
B.二次拷贝构造函数,一次析构函数
C.一次(拷贝赋值运算符)operator=,一次析构函数
D.一次拷贝构造函数,一次析构函数,一次(拷贝赋值运算符)operator=
解析:
b2=func(b1),首先b1作为形参传递到constB&rhs,会发生拷贝构造函数,然后fun函数结束时发生析构函数,最后是operator=,赋值给b2.
4.下面代码的输出结果是()
intmain(){
intpid;
intnum=1;
pid=fork();
if(pid>0){
num++;
printf("inparent:
num:
%daddr:
%x\n",num,&num);
}
elseif(pid==0){
printf("inchild:
num:
%daddr:
%x\n",num,&num);
}
A.父子进程中输出的num相同,num地址不相同
B.父子进程中输出的num不同,num地址相同
C.父子进程中输出的num相同,num地址也相同
D.父子进程中输出的num不同,num地址不相同
5.关于以下代码中的变量在内存中的存储位置描述不正确的是()
inta=0;
classsomeClass{
intb;
staticintc;
};
intmain(){
intd=0;
someClass*p=newsomeClass();
return0;
}
A.b存在堆区
B.c存在堆区
C.d存在栈区
D.a存在全局变量区
解析:
C应该在全局静态区
6.以下代码段有问题的是()
A.voidfunc1(char*e){
char*p1;
p1=malloc(100);
sprintf(p1,error:
"%s'.",e);
local_log(p1);
}
B.intfunc2(char*filename)
{
FILE*fp;
intkey;
fp=fopen(filename,"r");
fscanf(fp,"%d",&key);
returnkey;
}
C.voidfunc3(char*info){
char*p,*pp;
p=malloc(100);
pp=p;
free(p);
sprintf(pp,*info:
"%s'.",info);
free(pp);
}
D.选项全部都正确
解析:
答案是ABC,答案是A申请了空间没有释放,答案B打开流没有关闭,答案C其实指针都是一块内存空间,free了二次,程序会因为内存错误崩溃.
7.请问该程序的输出是多少?
#include
intmain()
{
unsignedchari=7;
intj=0;
for(;i>0;i-=3)
{
++j;
}
printf("%d\n",j);
return0;
}
A.2
B.死循环
C.173
D.172
解析:
unsignedchar8位数据位,范围0-255,
所以-2(11111110)时,溢出变成254;
同理-1(11111111)时,溢出变成255;
最后减到0时,不满足循环条件,for停止。
刚好173次。
741-2==>共4次
254251...52-1==>共85次
255252...63==>共85-1=84次(因为3-3=0,不能进入循环了)
所以总共173次。
(相减相除)
更快捷的计算方法:
256*2+7=519=173*3
8.快速排序在下面哪种情况下优势最明显()
A.数据有多个相同数值
B.数据基本有序
C.数据基本无序
D.数据无任何相同数值
9.下列各树形结构中,哪些是平衡二叉查找树:
解析:
二叉平衡查找树:
左子树中所有节点的值小于根的值,右子树中的所有节点的值大于根的值;左右子树的高度之差的绝对值为0或1,选C
10.下面哪种数据结构最适合创建一个优先级队列()
A.堆
B.双向链表
C.单向链表
D.栈
11.某个大型的网络游戏网站,现有几亿用户,为了实时获取前十名游戏分数最高的玩家,使用以下哪个排序算法比较合理()
A.基数排序
B.快速排序
C.二叉排序
D.堆排序
12.有A,B,C,D,E五个字符,出现的频率分别为2,5,3,3,4,由A,B,C,D,E生成的最优二叉树中,该树的带权路径长是多少()
A35
B.49
C.39
D.45
13.从根开始按层次(第0层->第1层->第2层)遍历一颗二叉树,需要使用什么辅助数据结构?
()
A.heap
B.queue
C.binarytree
D.stack
14.假设MySQL数据库表:
createtableT{
kintunsignednotnullauto_increment,
adate,
bvarchar(24),
cint,dvarchar(24),
primarykey(k),uniquekeya_index(aDESC,bDESC),
keyk1(b),keyk2(c),keyk3(d));
如下哪些sql语句查询能较好的利用索引?
()
A.selectbfromWHEREblike'aaa%';
B.selecta,bfromTWHEREa='2015-10-25'ORDERBYbASC,cASC;
C.selecta,b,cfromTWHEREa='2015-10-25'ORDERBYbASC;
D.selecta,b,cfromTWHEREa='2015-10-25'ORDERBYa,b;
15.在一个游戏的任务中,玩家需要进入1个山洞,取得宝石,之后回到入口.
山洞的地图如下:
S--------------------T
S是入口
T处有宝箱,打开宝箱之后可能得到的物品有:
1)宝石,出现概率为5%.
2)魔法券.出现概率为50%.玩家每消耗一个魔法券,可以直接传送到入口S.
3)什么也没有,概率为45%.
S到T的距离为1.
每次玩家回到S之后,宝箱T的状态会重置,再次进入山洞可以重新打开宝箱获得物品.
玩家的任务是到达T获取宝石之后回到入口S.如果到达T之后没有获得宝石,可以走出山洞之后再进入反复刷.
问题:
玩家完成任务所走路程的数学期望是()
A.40
B.25
C.35
D.30
16.下面关于TCP的描述,错误的是()
A.TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流
B.TCP客户端和服务器之间建立连接需要经过3次握手
C.只要有一方主动关闭连接后,这个TCP连接就结束了
D.只要有一方主动关闭连接后,这个TCP连接就结束了
17.关于进程和线程描述正确的是()
A.线程不拥有系统资源,但可以访问隶属于进程的资源
B.在创建或销毁进程时,系统开销明显大于创建或销毁线程时开销
C.进程是调度和拥有资源的基本单位
D.不仅进程自检可以并发执行,同一个进程的多个进程之间也可以并发执行
18.下面()哪个函数返回的有效句柄用完后不需要CloseHandle
A.CreateThread
B.GetCurrentProcess
C.OpenProcess
D.CreateFile
19.invalidateRect的作用是()
A.擦除一个矩形区域
B.删除一个矩形
C.使一个矩形区域变为无效,从而释放部分GDI资源
D.使一个矩形区域变为无效,从而可以重绘
20.典型的创建Windows窗口过程的流程为:
()
A.注册窗口类->创建窗口->更新窗口->显示窗口->消息循环
B.创建窗口->注册窗口类->显示窗口->更新窗口->消息循环
C.注册窗口类->创建窗口->显示窗口->更新窗口->消息循环
D.创建窗口->注册窗口类->更新窗口->显示窗口->消息循环
参考答案:
1.B2.C3.D4.B5.B6.ABC7.C8.C9.C10.A
11.D12.C13.B14.AD15.D16.C17.ABCD18.B19.D20.C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 搜狗 C+ 笔试