【金山2008校园招聘笔试题】涉及的知识点涵盖了C++编程语言、STL容器、数据结构、算法、数据库操作、面向对象编程以及逻辑思维能力。以下是对这些知识点的详细解析: 1. **指针与const的用法**: - `const char *p`:p是一个可以改变的指针,指向一个不可改变的字符。 - `char const *p`:同上,C++中const在类型前面和后面等价。 - `char * const p`:p是一个指向字符的常量指针,其指向的地址不可变,但所指的字符可以改变。 2. **STL容器的区别与特点**: - `list`:双向链表,插入和删除速度快,但查找速度慢。 - `map`:红黑树实现的关联容器,提供键值对存储,查找速度快。 - `vector`:动态数组,随机访问速度快,但插入和删除中间元素速度慢。 - `set`:同样基于红黑树,用于存储唯一元素,查找速度快。 3. **C++继承方式及区别**: - 单继承:一个派生类只从一个基类继承。 - 多继承:一个派生类可以从多个基类继承。 - 虚继承:解决多继承时同一基类被重复继承的问题,避免二义性。 4. **逻辑问题:过桥问题**: - 这是一个优化问题,需要最小化总时间。最优解是先让用时最短的两人过桥,然后一人回来,再让较慢的两人过桥,再让快的一人带手电筒回来,最后快的两人再一起过桥。 5. **编程题**: - (1)可以通过穷举所有可能的组合来实现,使用循环和条件判断,避免递归,以达到非递归解决方案。 - (2)SQL查询语句:`SELECT * FROM Account_Info WHERE Account_Name IS NULL` - (3)面向对象编程,需要实现`Shape`基类及其派生类`Circle`、`Triangle`、`Rectangle`,重写`area()`、`girth()`和`show()`函数。 6. **填空题**: - (1)`a=(++i)--;`的结果取决于编译器,但通常情况下,a的值为6,因为i先自增再赋值,然后i减1。 - (2)`0X1e0a`转换为十进制是7394,二进制表示为`111000001010`。 - (3)输出结果取决于endianness(字节序),但假设是小端字节序,输出为`0X57`,因为`(unsigned char*)(&a)+1`指向`a`的下一个字节,加1后为`0x12+1=0x13`。 - (4)输出的字符顺序取决于编译器,但通常情况是`'d' 'e' 'f'`,因为指针先自增,再取值。 7. **其他题目**: - 交换m和n的函数题目考察了传值、传址和引用的不同方式。 - 类的访问控制问题:A类的数据成员对所有类都不可见,B类可以访问A的保护成员,C类可以访问B的保护和私有成员,D类仅能访问C的公有成员。 以上知识点涵盖了C++的基础语法、高级特性、数据结构、算法以及面向对象编程的关键概念,这些都是软件开发人员必备的技能。对于参加校园招聘的应聘者来说,掌握这些知识是必不可少的。
- 粉丝: 2
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助