华为软件笔试题解析:判断、填空与编程挑战
需积分: 3 61 浏览量
更新于2024-09-18
收藏 20KB DOCX 举报
"华为笔试题包含判断题、填空题和编程题,主要考察C语言基础知识,如数组、指针、运算符优先级、内存管理和函数参数传递等。"
在华为的笔试中,题目涵盖了C语言的基础和进阶概念,以下是这些知识点的详细解释:
1. **数组与指针**:
- 在数组定义inta[2][2]={{1},{2,3}}中,a[0][1]的值实际上是3,因为数组的初始化方式使得a[0][1]接续a[0][0]后面的值,即2之后是3,所以原题判断错误。
- int(*ptr)()表示ptr是一个指向函数的指针,而不是一维数组的名字。
2. **指针运算**:
- 指针可以进行比较运算(>,<,>=,<=,==),但不能直接进行算术运算,如加减法,除非它们指向同一个数组的元素或相邻元素。
3. **switch语句**:
- switch语句中的c可以是整型(int)、长整型(long)、字符型(char)和无符号整型(unsigned int),但不包括浮点型(float)。
4. **宏定义**:
- #defineprint(x)printf("the number, %d, is", x) 这个宏定义用于将数字x打印出来,注意宏替换不进行任何类型检查。
5. **大小与类型**:
- sizeof运算符返回变量或类型所占用的字节数,例如:char数组str占6个字节,指针p占4个字节,字符占1个字节,整型n占4个字节。
- 当数组作为函数参数传递时,它会退化为指针,因此在函数内部sizeof(str)返回的是指针的大小,即4个字节。
6. **动态内存分配**:
- voidgetmemory(char**p, int num)函数用于动态分配内存,然后通过指针p指向这块内存。在test函数中,str被初始化为NULL,调用getmemory后,str指向了大小为100的内存区域,然后复制字符串"hello"到这片内存,最后打印出"hello"。
7. **指针操作**:
- 对于*(ptr++)+=123,ptr先自增,然后对当前指针位置的值加123,所以ptr和*(ptr++)的结果都是8,因为原值为8的元素增加了123变为131,但ptr已经自增了。
- a++和++a的前置和后置运算符在不同上下文中有不同效果,导致了不同的输出结果。
8. **编程题**:
- 编写strcmp函数需要实现字符串比较功能,不使用库函数strcmp。这个函数需要逐字符比较直到遇到'\0'或者找到不匹配的字符,返回相应的比较结果。
以上就是华为笔试题中涉及的关键知识点,这些题目旨在测试考生对C语言基础的掌握程度,包括指针操作、数组、内存管理、运算符优先级、函数参数传递以及基本的数据类型理解。
508 浏览量
2011-05-24 上传
2014-04-27 上传
2024-11-24 上传
2024-11-24 上传
2024-11-24 上传
Cyrnicolase
- 粉丝: 34
- 资源: 11
最新资源
- 俄罗斯RTSD数据集实现交通标志实时检测
- 易语言开发的文件批量改名工具使用Ex_Dui美化界面
- 爱心援助动态网页教程:前端开发实战指南
- 复旦微电子数字电路课件4章同步时序电路详解
- Dylan Manley的编程投资组合登录页面设计介绍
- Python实现H3K4me3与H3K27ac表观遗传标记域长度分析
- 易语言开源播放器项目:简易界面与强大的音频支持
- 介绍rxtx2.2全系统环境下的Java版本使用
- ZStack-CC2530 半开源协议栈使用与安装指南
- 易语言实现的八斗平台与淘宝评论采集软件开发
- Christiano响应式网站项目设计与技术特点
- QT图形框架中QGraphicRectItem的插入与缩放技术
- 组合逻辑电路深入解析与习题教程
- Vue+ECharts实现中国地图3D展示与交互功能
- MiSTer_MAME_SCRIPTS:自动下载MAME与HBMAME脚本指南
- 前端技术精髓:构建响应式盆栽展示网站