求职“笔试经”第十四弹:这道C语言数组题仅一半人答对?(华为硬件逻辑岗)
- 2026-11-06 17:50:55
求职“笔试经”第十四弹:这道C语言数组题仅一半人答对?(华为硬件逻辑岗)

达尔闻求职笔试经系列专注解析各大公司经典笔试题,希望帮助到更多求职人,欢迎大家投稿。目前笔试经固定在每周二更新,如果大家有其他需求,可以进入达尔闻求职微信交流群,添加妮姐微信:459888529,注明:求职。 华为硬件逻辑岗整套题目都解析完毕,我们会做一个对整套题型的分析,从全局把控告诉大家,针对笔试我们该复习哪些内容、如何准备。现在让我们一起来看看C语言题目的解析。 36、(正确率67%)下列描述中,不属于面向对象思想主要特征的是( )。(华为硬件逻辑实习岗) A 跨平台性 B 继承性 C 封装性 D 多态性 解析:本题目主要考察了对面向对象概念、特点的理解 编程方式有两种:面向过程编程(POP)和面向对象编程(OOP)。 我们可以任意选择一种方式来编写程序,但这这两种编程方式是有区别的。简单来说,POP与OOP之间的区别可以这样解释:POP可以编写一个简单的程序,但当程序变得更加复杂的时候,此时用POP将比较低效率,整个编程过程将更加艰难,花更多的时间debug等等。而在同样复杂度下,OOP比POP高效得多。在软件开发中,业界都遵循OOP原则,会让团队协作编程变得简单。同时,OOP具有较高的代码重用性。 从思维方式上来讲,是对现实问题的建模方式不同。POP把问题分解成一个个过程,一步步实现这些过程,问题就得到了解决。而OOP把问题看成一系列对象之间的交互,设计出这些对象以及对象之间的交互,问题就得到了解决。 从程序的本质上来讲,是对算法以及数据的重视程度的不同。程序的本质是算法和数据。POP重视算法,忽视数据。OOP编程侧重点在数据,对算法的重视程度不如面向过程编程。对数据的重视使面向对象编程具有封装性,继承性和多态性的特点,就是把所有的属性都放置在一个固定的地方,然后提供一个接口供你使用,而你只能够使用这些属性,而不用知道它们是如何的定义的,从而在各方面提高了编程的效率。 封装性:指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。如果需要存取数据,可以通过对象提供的算法来进行操作,而无需知道对象内部的数据是如何表示和存储的。这种思想被称为信息隐藏。 继承性:指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。 多态性:指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为。 37、(正确率76%)如果有如下程序int a[5]={1, 2, 3, 4, 5}, *p=a; 则数值为4的表达式是( )。(华为硬件逻辑实习岗) A *(p+3) B *p+=4 C p+3 D *p+4 解析:本题目主要考察了如何通过指针访问一维数组中的元素 这道题的正确率还是很高的,说明大家对这块内容掌握的不错。在做题目之前,大家对应该对指针和数组存在着怎样的关系都有所了解。学过C语言的同学都应该知道:一个变量的地址称为该变量的指针,而数组的名字代表的又是数组首元素的地址,这样我们就可以将指针和数组联系起来了,也就是数组名等同于指向数组首元素的指针,对应题干具体关系如下图所示: 
下面我们对每个选项进行分析,然后再通过编译器进行验证。 A选项:根据上图的所表达的关系,我们可以知道*(p+3)符合题干的要求,是正确的选项。我们在CodeBlocks编译器上编写的代码和运行的结果如下: 
B选项:*p+=4这个需要特别注意,首先我们要知道“*”表示的是指针的运算符,且优先级高于“+=”,所以*p+=4也可以写为(*p)+=4,即为(*p)=(*p)+4,*p的值为1,(*p)=(*p)+4=5。我们在CodeBlocks编译器上运行的结果如下: 

D选项:*p+4和B项类似,“*”指针运算符的优先级高于“+”,所以*p+4也可以写为(*p)+4,结果为5。我们在CodeBlocks编译器上运行的结果如下: 38、(正确率40%)C语言中,实型常数是按( )处理。(华为硬件逻辑实习岗) A double B long double C 其他都不对 D float 解析:本题目主要考察了C语言中的数据类型 
39、(正确率52%)下列定义不正确的是( )。(华为硬件逻辑实习岗) A int *p, i; B int i, *p=i; C int i, *p; D int *p=&i, i; 解析:本题目主要考察了指针变量定义的相关问题 A选项定义了一个指向整型的变量的地址p和一个整型的变量i。这种定义是可以的。 B选项定义了一个整型的变量i和一个指向整型的变量的地址p,且变量p的值初始化为变量i,p是多少要看i具体分配的空间所占用的地址。这种定义是可以的。 C选项定义了一个整型的变量i和一个指向整型的变量的地址p。这种定义是可以的。 D选项定义了一个指向整型的变量的地址p,且变量p的值初始化为变量i的地址和一个整型的变量i,但问题是变量i在*p=&i之后被定义,此时会编译器会报出一个error:‘i’undeclared,需要把i的定义放到*p=&i之前,题目中的这种定义是不可以的。 下一期我们将对本套题的最后4道题,也是和FPGA相关的题目进行详细的解析,大家可以提前做一下。 END 
达尔闻 求职“笔试经”系列:
达尔闻 求职“面试经”系列 从无人机爱好者到获得DJI大疆Offer offer拿到手软,最后选华为!
不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我!


本期要解析的四道题目主要涉及C语言相关的基础考点,上周共有150多位同学参与答题(查看答题结果>>)。从整体来说,同学们做的还是可以的,比之前几期的正确率要高,毕竟C语言是我们最常用的编程语言之一。
本篇解析完C语言题目之后,文末留下了华为硬件逻辑实习岗的最后4道和FPGA相关的题目,大家可以提前做一下。






C选项:p+3表示的是指针指向的地址空间,我们用这种方式最后得到的不是a[3]的值,而是指向a[3]这个空间的地址值,这个值是计算机自动分配的,具体的值我们也不知道是多少,只能通过编译器来查看。我们在CodeBlocks编译器上运行的结果如下:




实型数据分为实型常量和实型变量,在计算机中的实型数以浮点形式表示。
实型常量既可以是实数,也可以是浮点数,如3.14159等。实型常数不分单、双精度,都按双精度double型处理。
实型变量分为单精度型(float)、双精度型(double)和长双精度型(long double)。



目前,我们安排的是每周二更新求职笔试经系列,计划涵盖的公司包含:华为,京东,大疆,商汤,中兴,CVTE,AMD,海康威视,黑金,汇顶等。(会陆续补充)
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。