【offer】第一次笔试及面试总结与反思

2019届秋招笔试题(考试时间120分钟)

一、目录

一. 选择题-第一部分(C/C++语法-10分)
二. 选择题–第二部分(数据结构和算法–10分)
三. 选择题–第三部分(Linux/操作系统–13分)
四. 选择题–第四部分(网络协议知识–10分)
五. 选择题–第五部分(智力题–2分)
六. 编程题 (共计 55 分)
1) Fibonacci数列 (10分)
2) 分苹果 (15分)
3) 求连续子数组的最大和 (15分)
4) 回文串 (15分)

一. 选择题-第一部分(C/C++语法-10分)

1、 有一个二维数组A[10][5],每个数据元素占1个字节,且A[0][0]的存储地址是1000,
则A[i][j]的地址是1000+5i+j
解析:

2、
const char str1[] = “abc”; const char str2[] = “abc”;
const char *p1 = “abc”; const char *p2 = “abc”;
str1和str2地址不同,P1和P2指向的地址相同
指针所指的字符串占用同一块空间,数组分配不同的内存空间。

3、 C语言,设有宏定义:

#define A 4+5
#define B A*A

则表达式BB的值为 ( 69);
解析: B
B = AAAA = 4+54+54+54+5 = 4+20+20+20+5 = 69

**4.**对于以下递归函数f,调用 f(4),其返回值为(10 )。

int f (int n)
{
   if (n)
     return f (n -1) + n;
  else
     return n;
}

解析: f(3)+4 —》 f(2)+4+3—》f(1)+4+3+2—》f(0)+4+3+2+1 = 10

5.语句char str[] = “abcde”;请问表达式sizeof(str)的值是( 6)
解析: sizeof()求字符串长度,包含**\0**

**6.**已知表达式++a中的"++"是作为成员函数重载的运算符,则与a++等效的运算符函数调用形式为(a.operator++(0))

**7.**有这样一个类:

class Eye
{
   public:
   void Look(void);
};

现在希望定义一个Head类,也想实现Look的功能,应该使用(组合 )的方法,实现代码重用。

**8.**有如下代码:

#include<iostream>
using namespace std;
class MyClass
{
public:
	MyClass(int i = 0)//111
	{
		cout<<i;
	}

	MyClass(const MyClass &s)//222
	{
		cout<<2;
	}
	MyClass &operator=(const MyClass &x)//333
	{
		cout<<3;
		return *this;
	}

	~MyClass()//444
	{
		cout<<4;
	}

};

int main()
{
	MyClass obj1(1);
	MyClass obj2(2);
	MyClass obj3 = obj1;
	return 0;
}
//122444请按任意键继续. . .

解析:如上所示,为了方便描述,将四个成员函数分别标为111,222,333,444, MyClass obj1(1) 和MyClass obj2(2)调用构造函数111,所以输出自带值1,2, ,MyClass obj3 = obj1;属于用一个对象构造另一个对象,故而需要调用拷贝构造函数222,故输出2,三个对象构造完之后,进行对象的销毁,分别调用三次析构函数,故4,4,4
综上所述,输出 1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值