存档

文章标签 ‘爱立信’

南京爱立信部分实习笔试题解析

2009年5月20日 2 条评论

前两天去参加了个南京爱立信的实习的笔试,哎,这活动办的真是无语,等他的考卷就等了40分钟。。。
下面是部分实习笔试题的解析
1. const char *p和char *const p 有什么区别?
答:const char *p是常量指针,表示该指针指向的是一个常量,而char *const p是指针常量,表示该指针自身是一个常量,即该指针所指向的常量的地址不可变。

2. delete p和delete[] p有什么区别?
答:delete p对应于使用new去动态创建对象
delete[] p对应于使用new[]去动态创建对象数组

3. 写一段程序,实现在链表的尾部插入新的节点,可以使用递归的方法
<待完成>

4. 以下程序的输出是什么?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
using namespace std;
void main()
{
	class base
	{
	public:
		base()
		{
			cout << "base::base()\n";
		}
		virtual ~base()
		{
			cout << "base::~base()\n";
		}
		void func()
		{
			cout << "base::func()\n";
		}
	};
 
	class inherited:public base
	{
	public:
		inherited()
		{
			cout << "inherited::inherited()\n";
		}
		~inherited()
		{
			cout << "inherited::~inherited()\n";
		}
		void func()
		{
			cout << "inherited::func()\n";
		}
	};
 
	inherited *ptrD = new inherited;
	base *ptrB = ptrD;
	ptrB->func();
	delete ptrB;
}

答:本题的关键在于理解对象构造以及析构的顺序,构造时先调用父类的构造函数,再调用成员变量的构造函数,接着再调用自己的构造函数。析构时相反。
所以该题的答案为:
base::base()
inherited::inherited()
base::func()
inherited::~inherited()
base::~base()

5. C中~是什么运算符?
答:是取反位运算符

6. 解释下面的语句 int (*p) (char *p)
答:p是一个函数指针,该函数的参数是char*类型,返回值为int

7. ls -l > temp.txt 2 >& 1 解释一下这个命令
答:将当前目录里的文件以列表形式重定向到temp.txt文件中,同时将出错信息打印在标准输出上

8. 现在你在A机器上,需要FTP到B机器/usr/bin下取出二进制文件man到A的/usr/bin下。请写出命令行。
A:>ftp B (have logged in)
ftp>cd /usr/bin
ftp>lcd /usr/bin
ftp>get man
ftp>bye

分类: 实习 标签: , ,