校园招聘题目分享-c/c++

1. 编写类String的构造函数,析构函数,赋值函数。已知类String的原型为:
class String
{
public:
String(const char *str = NULL); //普通构造函数
String(const String &other);  //拷贝构造函数
~String(void);  //析构函数
String &operate=(const String &other);  //赋值函数
private:
char *_data;  //用于保存字符串
};

2. 在32位系统中,下述结构体占用的内存大小
#pragma pack(4)
typedef struct{
     char cmd;
     short len;
     int crc;
     long data;
}DOWNLOAD_PACKET;
A.10 B.11 C.12 D.13

3. signed char a=-8,  unsigned char b=30, a=b-(unsigned char)a, 运算后a的值A
A.38 B.22 C.-218 D.-217
/* a的存储形式为补码,11111000,b加-a,-a为248的反码加1,就是8*/

4.对以下两个语句的区别的描述中,正确的是C
const int *p1;
int *const p2;
A.*p1为变量,p1为常量;*p2为变量,p2为常量
B.*p1为变量,p1为常量;*p2为常量,p2为变量
C.*p1为常量,p1为变量;*p2为变量,p2为常量
D.*p1为常量,p1为变量;*p2为常量,p2为变量

5.广度优先遍历一棵树的算法中,我们应该使用的辅助数据结构为:C
A. 堆 B.栈 C.队列 D.邻接表

6.MergeSort算法采用分治法对数据进行排序,思路为:将n个元素分成各含n/2个元素的子序列,用
MergeSort对两个字序列递归的排序,最后合并两个已排序的子序列得到排序结果。下列哪个是MergeSort运行时间的表达式?C
A.T(n)= 2T(n)+ O(n)
B.T(n)= T(n/2)+ O(n/2)
C.T(n)= 2T(n/2)+ O(n/2)
D.T(n)= 2T(n/2)+ O(n)

7.TCP/IP中UDP属于传输层。

8.操作系统中的内存分配算法中,下列哪一种算法最容易导致小块内存碎片的产生A
A.循环首次适应算法
B.最佳适应算法
C.最坏适应算法
D.分类搜索算法(将空闲区按容量分为若干组,每组之间容量不同,组内空闲区容量相同,查找时按照请求大小在不同组之间查找,返回匹配度最好的组中的一块空闲内存)

9.下列哪一个不是死锁发生的必要条件D
A.请求并保持 B.环路等待 C.不剥夺 D.不等待

10.已知二叉树后序遍历是bfegcda,中序遍历是badefcg,它的前序遍历序列是B
A. abcdefg B.abdcefg C.adbcfeg D.abecdfg

11.在表达式char (*(*x[3]))())[5]中,x的类型是C
A.返回一个指针的函数
B.指向一维数组的指针
C.指向函数的函数指针数组
D.函数指针

12.在C++中,对于基类和派生类关系的叙述中正确的是D
A.每个类只能有一个直接基类
B.派生类可以访问基类中的任何成员
C.基类的构造函数必须在派生类的构造函数体中调用
D.派生类除了继承基类的成员,还可以定义新的成员




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值