奇虎360C++研发工程师笔试题解析
需积分: 9 15 浏览量
更新于2024-09-08
收藏 390KB PDF 举报
本资源为2016年奇虎360公司针对C++研发工程师的内推笔试题目,主要考察C++编程语言的基础知识、数组操作、字符串处理、内存管理以及函数调用等技能。
一、关于二维数组的优化
题目中涉及到一个1000x1000的二维数组x,考察了代码效率。选项A到D分别给出了不同的遍历方式。正确的答案是D,即`for(int i=0; i<1000; i++) for(int j=0; j<1000; j++) x[i][j]+=x[j][i];`。这种写法减少了交换i和j的位置,使得内层循环的元素更接近缓存,从而提高了缓存局部性,降低了访问内存的开销,提高了执行效率。
二、字符串赋值
题目中考察了如何正确地将字符串赋值给字符数组。选项A、C和D都是正确的方式,而B选项是错误的,因为它尝试直接将字符串字面量赋值给未初始化的字符数组,这在C++中是不允许的。正确做法应该是使用strcpy函数(选项C)或直接用双引号初始化数组(选项D)。
三、补码表示
题目询问在8位寄存器中,-25的补码表示。由于-25的十进制表示是110101,其反码是001010,加1后得到补码101011,转换为十六进制即为E7H。
四、静态变量与作用域
这部分涉及函数中的静态变量。在C++中,静态变量在函数内部定义但只初始化一次,后续调用时保留之前的状态。因此,根据代码,正确答案是B,即1222。在main函数中输出初始的a值1,然后调用fun1()改变a为2,再次输出,接着调用fun2()不会影响main中的a,再输出,最后调用fun3(),由于fun3()内的a是静态的,所以不会影响main中的a,再次输出。
五、指针与引用
最后一道题目考察了指针和引用的使用。`change`函数接受一个整型指针、一个引用和一个普通整型变量。由于指针`a`和引用`b`的修改不会影响到实参,而`c`是按值传递的,因此在main函数中,`a`的值始终保持为20,`b`的值在调用`fun2()`后变为30。所以正确答案是C,即10,30,30。
这些题目反映了奇虎360对于C++研发工程师的基本技术要求,包括对数组操作的优化、字符串处理的规范、内存管理的理解以及对函数调用中变量状态的掌握。通过这样的笔试,公司可以评估应聘者的基础编程能力和问题解决技巧。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-05-19 上传
2021-05-18 上传
2021-05-18 上传
2018-05-15 上传
2021-09-26 上传
2013-08-16 上传
朱文跃
- 粉丝: 3
- 资源: 59
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍