微软2013试题
需积分: 0 50 浏览量
更新于2013-04-07
收藏 161KB DOC 举报
【知识点详解】
1. 调用约定(Calling Convention):
在编程中,调用约定定义了函数如何调用以及参数如何传递。题目中提到的支持可变长度参数的调用约定,通常指的是`cdecl`。`cdecl`是C语言默认的调用约定,它允许函数接受可变数量的参数,例如`printf`函数。其他选项中,`stdcall`、`pascal`和`fastcall`并不支持可变长度参数。因此,正确答案是A. cdecl。
2. C++多态与成员函数:
在C++中,`virtual`关键字用于实现多态。题目中的代码展示了类`A`和`B`的继承关系,以及两个版本的`f()`函数:一个非`const`和一个`const`版本。在`main`函数中,`A* a = new B();`创建了一个`B`对象,并通过`A`的指针调用`f()`。由于`A`指针指向的是`B`对象,且`f()`在基类中声明为`virtual`,所以会调用派生类`B`中的`f()`。`g(a)`函数接收一个`const A*`,调用`f()`时,因为是常量引用,会调用`const`版本的函数。所以输出为`B::f() const`。因此,正确答案是B. B::f() B::f()const。
3. 链表与数组的区别:
A. 当两者都排序时,搜索复杂度:链表的搜索通常比数组慢,因为不能直接通过索引访问。
B. 动态添加/删除:链表更适合动态地添加或删除元素,因为它只需要改变相邻节点的链接;而数组需要移动元素来插入或删除。
C. 随机访问效率:数组支持随机访问,可以直接通过索引获取元素,而链表则不支持。
D. 数据存储类型:链表中的元素是分散在内存中的,而数组是连续存储的。因此,正确答案是B、C和D。
4. Windows中的线程(Thread)和进程(Process):
A. 一个应用程序在操作系统中不一定有一个进程,但至少需要一个线程来执行。
B. 进程有自己的堆栈,线程也有自己的堆栈,而不是共享父进程的堆栈。
C. 线程必须属于一个进程。
D. 线程不能改变其所属的进程。因此,正确答案是A和C。
5. C++自增运算符(Pre-increment 和 Post-increment):
自增运算符`++`有两种形式:前置(`++x`)和后置(`x++`)。前置自增先增加变量值再返回新值,而后置自增返回旧值再增加变量值。在代码中,`x = x++`会先将`x`的旧值赋给`x`,然后`x`自增1;而`y = ++y`会先将`y`自增1,然后返回新值给`y`。因此,`x`的值为10,`y`的值为11。正确答案是B. 10, 11。
6. C#或Java二维数组:
在C#或Java中,`myArray3`是一个嵌套数组,其中每个子数组的长度可能不同。`myArray3[2][2]`表示第三行(下标为2)的第二个元素(下标为1,因为索引从0开始)。在这个例子中,第三行是`new int[2]{3,2}`,所以`myArray3[2][2]`的值是2。
总结,这些题目涵盖了C++的多态性、调用约定、数据结构(链表与数组)、线程与进程的概念,以及C++和C#中的自增运算符和数组操作。这些都是计算机科学和软件开发的基础知识,对于理解这些概念和技术是至关重要的。
nishaoping
- 粉丝: 0
- 资源: 2
最新资源
- nuget 库官方下载包,可使用解压文件打开解压使用
- 非wine、原生Linux迅雷安装包deb文件,支持Ubuntu、UOS统信、深度Deepin、LinuxMint、Debain系通用
- KUKA机器人安装包,与PROFINET软件包
- 船舶燃料消耗和二氧化碳排放分析数据集,燃料消耗和碳排放关联分析数据
- req-sign、bd-ticket-ree-public加密算法(JS)
- 全自动批量建站快速养权重站系统【纯静态html站群版】:(GPT4.0自动根据关键词写文章+自动发布+自定义友链+自动文章内链+20%页面加提权词)
- 串联式、并联式、混联式混合动力系统simulink控制策略模型(串联式、并联式、混联式每个都是独立的需要单独说拿哪个,默认是混联式RB) 有基于逻辑门限值、状态机的规则控制策略(RB)、基于等效燃油
- 法码滋.exe法码滋2.exe法码滋3.exe
- python-geohash-0.8.5-cp38-cp38-win-amd64
- Matlab根据flac、pfc或其他软件导出的坐标及应力、位移数据再现云图 案例包括导出在flac6.0中导出位移的fish代码(也可以自己先准备软件导出的坐标数据及对应点的位移或应力数据,可根据需