2013微软实习生笔试题
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
![preview](https://dl-preview.csdnimg.cn/5226859/0001-a3cda7ab334f21cfbca25aa7e9c5ff65_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
【知识点详解】 1. 变参函数`printf`的调用约定:`printf`函数是一个可变参数函数,它允许接收不同数量的参数。在C语言中,可变参数的处理通常采用`stdarg.h`库中的宏来实现,而不是通过特定的调用约定如`cdecl`、`stdcall`、`pascal`或`fastcall`。调用约定主要影响函数参数的传递方式,而非可变参数的处理。 2. 多态与虚函数:题目中涉及的是C++的多态性。类`A`有一个虚函数`f()`,类`B`继承自`A`并重写了`f()`。`ga(const A *a)`接受一个`A`类型的指针,但实际传入的是`B`类型的对象。这里显示了动态绑定(运行时多态)的概念,调用`ga(a)`会执行`B::f()`,因为`a`实际上指向`B`对象。 3. 链表与数组的区别: - A. 有序查找:在已排序的情况下,数组的查找效率通常优于链表,因为数组支持随机访问。 - B. 动态添加/删除:链表在插入和删除操作上通常比数组更高效,因为不需要移动元素。 - C. 随机访问:数组可以快速访问任何位置的元素,而链表只能顺序访问。 - D. 数据类型:两者都可用于存储各种数据类型,但这不是它们的主要区别。 4. 进程与线程的关系: - A. 系统至少有一个进程,但可以没有线程。 - B. 线程有自己的栈,但可以共享进程的资源,不只是父进程的资源。 - C. 线程必须属于进程,这是正确的。 - D. 选项D不完整。 5. C++预增后增运算符的优先级问题:`x= x++;`先使用x的当前值,然后递增;`y= ++y;`先递增,再赋值。因此,结果为`11 11`。 6. Java或C#的数组声明:题目中的代码片段语法不正确,无法直接判断结果。在Java和C#中,多维数组的声明和初始化方式与示例不符。 7. 常量声明的正确形式: - A. `const int a;`声明一个常整数。 - B. `int const a;`等同于A,声明一个常整数。 - C. `const int *a;`声明一个指向常整数的指针。 - D. `const int *a;`也是声明一个指向常整数的指针。 - E. `int const *a;`同样声明一个指向常整数的指针,等同于C和D。 8. 缺失代码段的结果:题目未提供完整代码,无法确定输出。 9. 有毒液体检测问题:使用二进制编码法,如鸽巢原理,一周内找出有毒液体至少需要10只小白鼠。 10. 返回值为1的问题: - A. 主函数默认返回0,除非显式返回其他值。 - B. `Return (7&1);`返回1。 - C. 字符串比较不等同于指针比较,`a == "Microsoft"`总是返回false。 - D. 字符串常量的比较是恒定的,所以`"Microsoft" == "Microsoft"`返回true。 - E. 以上都不对,因为B是正确的。 11. 32位有符号整数的位移操作:`F=X/2`是除法,`G=X>>1`是右移一位,如果`F != G`,意味着`X`的最低位是1,因此`X`是奇数。 12. 矩形计数问题:在一个3*4的网格中,可以通过行、列或对角线形成60个矩形。 13. 线分平面问题:n条非平行线最多能将平面分成`(n^2 + n + 2) / 2`块。 14. 稳定排序算法: - A. 冒泡排序是稳定的。 - B. 快速排序是不稳定的。 - C. 归并排序是稳定的。 - D. 堆排序是不稳定的。 - E. 选择排序是不稳定的。 15. MVC模式: - A. Model是模型层,处理数据和业务逻辑。 - B. View是视图层,负责用户界面。 - C. Controller是控制器层,协调Model和View。 - D. Model不处理用户输入,而是由Controller处理。 - E. 以上都不对,因为A和C是正确的。 16. 二叉树遍历恢复原树: - A. 先序和中序遍历组合可以恢复二叉树。 - B. 先序和后序遍历组合也可以恢复二叉树。 - C. 后序和中序遍历组合可以恢复二叉树。 - D. 后序遍历单独不能恢复二叉树。 17. 子串数量问题:一个N个不同字符的字符串的子串数量为`(n+1)*n/2`。 18. SQL更新语句的影响:题目没有提供完整的SQL语句,因此无法确定影响的数据行数。 19. 图的最短路径问题:通常使用Dijkstra算法或Bellman-Ford算法求解。 20. 称重问题:寻找较轻的球。通过三步策略,可以找到一个包含较轻球的子集,例如使用分治法,将球分为3组,在天平上进行比较。 综上所述,这些题目涵盖了计算机科学的基础知识,包括编程语言特性、数据结构、算法、操作系统概念、软件工程模式等。
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
- 1
- 2
- 3
- 4
- 5
- 6
前往页