1 / 8
文档名称:

华为面试题c语言.docx

格式:docx   大小:15KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

华为面试题c语言.docx

上传人:世界末末日 2022/12/1 文件大小:15 KB

下载得到文件列表

华为面试题c语言.docx

相关文档

文档介绍

文档介绍:该【华为面试题c语言 】是由【世界末末日】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【华为面试题c语言 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。华为面试题c语言
题目:输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等
式成立。
123456789=X
比方:
12-34+5-67+89=5
1+23+4-5+6-7-8-9=5
请编写程序,统计满意输入整数的全部整数个数。
输入:正整数,等式右边的数字
输出:使该等式成立的个数
样例输入:5
样例输出:21【下面的代码只输出了全部的等式,没有输出个数】
代码如下:
#include
voiddfs(intlayer,intcurrentResult,intlastOp,intlastSum);
constcharsym[3]={+,-,};
intops[21]={0};
intresult,num;
voidmain()
{
while(1)
{
printf(请输入等式右边的值\n);
scanf(%c,result);
printf(\n以下是使等式成立的公式:\n);
dfs(1,0,0,0);
}
return;
}
voiddfs(intlayer,intcurrentResult,intlastOp,intlastSum)
{
inti;
lastSum*=(layer9)?100:10;
lastSum+=layer;
if(layer==9)
{
currentResult+=(lastOp)?(-1*lastSum):lastSum;
if(currentResult==result)
{
++num;
printf(1);
for(i=2;i=9;++i)
{
if(sym[ops[i-1]]!=)
printf(%c,sym[ops[i-1]]);
printf(%d,i);
}
printf(=%d\n,result);
}
return;
}
ops[layer]=2;
dfs(layer+1,currentResult,lastOp,lastSum);
currentResult+=(lastOp)?(-1*lastSum):lastSum;
ops[layer]=0;
dfs(layer+1,currentResult,0,0);
ops[layer]=1;
dfs(layer+1,currentResult,1,0);
}
华为面试题c语言(二)
一面:
介绍我的工程,针对我的工程中的点询问是如何实现的
Activity生命周期?为什么Activity要这么设计?这样设计有什么好处?
Android与iOS运行机制上有哪些不同?
为什么Android用起来没有iOS流畅?为了让Android系统更流畅,应当从哪些方面做好?
如何让Service不被杀死?
Android系统分层?Library层起什么作用?
假如一个应用要升级需要留意哪些方面?(我答复效劳端api要兼容,假如只是小bug就通过补丁方式,但是貌似面试官不满足,就引导我说数据方面的,我才知道原来是想要我说本地数据的兼容)
问我有什么要问他的?
还有其他的一些问题,记不太清了.
二面:
二面是一个中年男人,一开头很严厉,聊了几句后它就笑嘻嘻了。
首先叫我介绍自己
本科在哪读的(一般二本)
家里有多少人,是农村的还是城市的,家里生活水平怎么样?
有没有女朋友、女朋友是哪里人、女朋友有没有工作?
为什么不留武汉(我简历填杭州),不留武汉你女朋友同意吗?
选一个你收获最大的工程来谈谈?(后面就是针对我的工程始终聊~)
二面也许30分钟左右,后面说我的”性格测试没通过,让我重新再做一次。然而,其次次性格测试还是没通过,最终我还是由于性格测试没通过的缘由,与华为无缘。。。。
华为面试题c语言(三)
程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。
一点小总结:
1、关于堆栈,印象最深的就是在做uboot移植,在你预备进入c代码时,你必需给c代码一个良好的运行环境,其中重要的一项就是设置堆栈。
2、关于静态内存安排和动态内存安排的区分及过程
1)静态内存安排是在编译时完成的,不需要占用CPU资源;动态安排内存是在运行时完成的,动态内存的安排与释放需要占用CPU资源;
2)静态内存安排是在栈上安排的,动态内存是堆上安排的;
3)动态内存安排需要指针或引用数据类型的支持,而静态内存安排不需要;
4)静态安排内存需要在编译前确定内存块的大小,而动态安排内存不需要编译前确定内存大小,依据运行时环境确定需要的内存块大小,根据需要安排内存即可。可以这么说,静态内存安排是按规划安排,而动态内存安排是按需安排。
5)静态安排内存是把内存的掌握权交给了编译器,而动态内存是把内存的掌握权交给了程序员;
综上所述,静态安排内存适合于编译时就已经可以确定需要占用内存多少的状况,而在编译时不能确定内存需求量时可使用动态安排内存;但静态安排内存的运行效率要比动态安排内存的效率要高,由于动态内存安排与释放需要额外的开销;动态内存治理水平严峻依靠于程序员的水平,假如处理不当简单造成内存泄漏。
华为面试题c语言(四)
如何引用一个已经定义过的全局变量?
答:extern
可以用引用头文件的方式,也可以用extern关键字,假如用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变量写错了,那么在编译期间会报错,假如你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
此外,extern修饰符可用于指示C或者C++函数的调用标准。比方在C++中调用C库函数,就需要在C++程序中用extern“C”声明要引用的函数。这是给链接器用的,告知链接器在链接的时候用C函数标准来链接。主要缘由是C++和C程序编译完成后在目标代码中命名规章不同
,你在*.c文件中声明白一个全局的变量,这个全局的变量假如要被引用,就放在*.h中并用extern来声明。
,仅仅是示意这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有区分:
externvoidprint_externifo();和voidprint_externifo();
extern在函数中的使用:
假如定义函数的c/cpp文件在对应的头文件中声明白定义的函数,那么在其他c/cpp文件中要使用这些函数,只需要包含这个头文件即可。
假如你不想包含头文件,那么在c/cpp中声明该函数。一般来说,声明定义在本文件的函数不用“extern”,声明定义在其他文件中的函数用“extern”,这样在本文件中调用别的文件定义的函数就不用包含头文件include“*.h”来声明函数,声明后直接使用即可。
举个例子:
##includeexternvoidprint_extern()//这里用不用extern都可以{printf(helloexterntest!!\n);}##includeexternvoidprint_extern();//其实这里用不用extern都是可以的main(){print_extern();}
编译:
###./extern_test