华为软件工程师面试题解析
4星 · 超过85%的资源 需积分: 32 4 浏览量
更新于2024-07-30
2
收藏 203KB DOC 举报
"华为软件工程师面试题"
华为软件工程师面试主要考察候选人的编程能力、基础知识、问题解决能力和对计算机科学核心概念的理解。以下是从提供的面试题中提炼出的相关知识点:
一、判断题
1. 数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。(F)
解释:实际上,a[0][1]的值是未定义的,因为a[0]只初始化了第一个元素为1,第二个元素没有被赋值。
2. int(*ptr)(),则ptr是一维数组的名字。(F)
解释:ptr是一个函数指针,可以指向返回类型为int的无参数函数。
3. 指针在任何情况下都可进行>,<,>=,<=,==运算。(F)
解释:指针可以进行比较运算,但必须是相同类型的指针或者都是void*,且在比较前需确保它们指向的是同一类型的数据。
4. switch(c)语句中c可以是int,long,char,float,unsignedint类型。(T)
解释:C/C++语言中,switch语句中的表达式c可以是整型、字符型或枚举类型,但在实际应用中,某些编译器可能也支持浮点型,但这并不符合标准。
5. #defineprint(x)printf("the no,"#x", is")
解释:这是宏定义,使用了C语言的字符串化操作符(#),当传入一个变量时,#x会将变量名转换为字符串,如print(a)会输出"the no, a, is"。
二、填空题
1. sizeof(str) = 6, sizeof(p) = 4, sizeof(n) = 4, sizeof(str) = 4
解释:str是一个字符数组,其大小为6个字节(包括结束符'\0'),p是一个指针,占用4个字节(假设32位系统),n是一个整型,占用4个字节,函数参数传递时,str被当作指针处理,所以其大小为4个字节。
2. test函数的结果是"hello"
解释:test函数中,getmemory动态分配了100个字节的内存,并将"hello"复制到这块内存中,然后通过指针str打印。
3. printf("%d,%d", *ptr, *(++ptr)); 输出可能是"18,10"
解释:ptr指向数组的第一个元素(6),ptr++后变为指向7,*(ptr++)加123后变为18,*(++ptr)即为10。
三、编程题
1. strcmp函数实现
该函数用于比较两个字符串是否相等,不使用库函数意味着需要手动遍历字符串并逐个字符比较,直到找到不匹配的字符或者遇到'\0'。
2. 回文字符串判断
回文字符串是指正读和反读都一样的字符串,可以通过双指针从两端向中间比较,或者将字符串翻转后与原字符串比较来判断。
四、其他知识点
(1)预编译:预编译是在正式编译之前进行的,主要处理#include指令,宏定义等,减少重复编译的时间。通常在大型项目或包含大量头文件时使用预编译头文件(.pch)。
(2)char*constp, char const*p, const char*p 的区别:
- char*const p:指针p本身是常量,不能改变,但p所指向的字符可以修改。
- char const* p:p可以改变指向的地址,但不能修改所指向的字符。
- const char* p:同样表示p指向的内容不可修改,与上一个的区别在于const关键字的位置,这里更强调字符常量。
以上就是从华为软件工程师面试题中提取的相关知识点,包括数组、指针、预编译、指针常量和字符串处理等方面的内容。这些知识点是软件工程师日常工作中必备的基础技能。
2024-06-11 上传
2012-07-17 上传
2024-06-11 上传
2023-07-31 上传
2023-07-22 上传
2023-07-27 上传
2023-05-14 上传
2023-09-18 上传
2023-08-27 上传
十色樱草
- 粉丝: 136
- 资源: 9
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查