"这是关于EMC公司的笔试题目整理,包含了一道特定的编程挑战,以及对EMC公司在数据存储领域的介绍和个人笔试体验。"
在这篇描述中,提到了一个EMC笔试中的编程题,要求编写一个名为`p`的函数,该函数接受两个整数参数`i`和`N`,并按照特定的顺序打印出从`i`到`N`,然后从`N`回溯到`i`的数字,所有数字每行一个。题目设定了严格的限制:函数必须只包含一个语句,不得使用`do-while`、`until`、`for`、`if`关键字,也不能使用`?:`条件运算符和逗号运算符。唯一允许使用的库函数是`printf`。
给出的C语言代码示例中,函数`p`通过递归实现这一功能。首先检查`i`是否等于`N`,如果是,则打印`i`并返回`true`(在C语言中,非零值表示`true`)。如果`i`不等于`N`,则先打印`i`,接着递归调用`p(i+1, N)`,然后再次打印`i`。由于不允许使用逗号运算符,所以`printf`函数的调用与递归调用通过逻辑或运算符`||`连接,确保在每次递归之前和之后都打印`i`。在主函数`main`中调用`p(i, N)`启动这个过程。
描述还提到了EMC公司及其与一所大学合作开设的“数据存储”课程,这门课程涵盖了诸如磁盘阵列、NAS、DAS和SAN等数据存储技术。此外,作者分享了自己参与EMC笔试的经历,笔试包括选择题、编程题和写作题,其中编程题相对简单,而选择题则具有较高的难度,考察了多种技能,如算法、C/C++基础知识、面向对象编程和逻辑推理。最后的写作题要求用英语讨论未来计算机发展的前景。
根据这段描述,我们可以学习到以下知识点:
1. 递归编程:如何在有限制的条件下(不允许使用特定关键字)利用递归实现特定的序列打印任务。
2. C语言函数调用:理解函数调用的逻辑和返回值在控制流程中的作用。
3. 数据存储技术:EMC在数据存储领域的专业性,以及相关的技术概念,如磁盘阵列、NAS、DAS和SAN。
4. 笔试策略:面对有负分惩罚的选择题时,应谨慎作答,避免盲目猜测。
5. 面试流程:了解大型科技公司的招聘流程,包括笔试环节的结构和内容。
6. 未来技术趋势:思考和表达对未来计算机发展的见解,尤其是云计算和在线协作工具的影响。
这些知识点对于准备进入IT行业,特别是软件工程或数据存储领域的人来说非常有价值,有助于他们提升技能和理解行业动态。