教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

【华为】C 语言面试题大汇总之华为面试题(2)

来源:网络收集 时间:2026-09-07
导读: (4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。 2.测试方法 答:人工测试:个人复查、抽查和会审 机器测试:黑盒测试和白盒测试 3.Heap与stac

(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。

2.测试方法

答:人工测试:个人复查、抽查和会审

机器测试:黑盒测试和白盒测试

3.Heap与stack的差别。

答:Heap是堆,stack是栈。

Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。

Stack空间有限,Heap是很大的自由存储区

C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。

程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上进行

4.Windows下的内存是如何管理的?

分页管理

8.谈谈IA32下的分页机制

小页(4K)两级分页模式,大页(4M)一级

9.给两个变量,如何找出一个带环单链表中是什么地方出现环的?

一个递增一,一个递增二,他们指向同一个接点时就是环出现的地方

10.在IA32中一共有多少种办法从用户态跳到内核态?

通过调用门,从ring3到ring0,中断从ring3到ring0,进入vm86等等

11.如果只想让程序有一个实例运行,不能运行两个。像winamp一样,只能开一个窗口,怎样实现?

用内存映射或全局原子(互斥变量)、查找窗口句柄..

FindWindow,互斥,写标志到文件或注册表,共享内存。.

12.如何截取键盘的响应,让所有的'a’变成'b’?

答:键盘钩子SetWindowsHookEx

14.存储过程是什么?有什么用?有什么优点?

答:我的理解就是一堆sql的集合,可以建立非常复杂的查询,编译运行,所以运行一次后,以后再运行速度比单独执行SQL快很多

15.Template有什么特点?什么时候用?

答:Template可以独立于任何特定的类型编写代码,是泛型编程的基础.

当我们编写的类和函数能够多态的用于跨越编译时不相关的类型时,用Template.

模板主要用于STL中的容器,算法,迭代器等以及模板元编程.

(C++的template是实现在库设计和嵌入式设计中的关键。

template能实现抽象和效率的结合;同时template还能有效地防止代码膨胀)

16.谈谈WindowsDNA结构的特点和优点。

答:WindowsDistributedinterNetApplicationArchitecture(Windows分布式应用结构,简称WindowsDNA)是微软创建新一代高适应性商业解决方案的框架,它使公司能够充分地挖掘数字神经系统的优点。WindowsDNA是第一个将Internet、客户/服务器、和用于计算的PC模型结合并集成在一起的为新一类分布式计算方案而设计的应用软件体系结构

17.网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?

答:1)进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。

2)线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

两者都可以提高程序的并发度,提高程序运行效率和响应时间。

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

思科

1.用宏定义写出swap(x,y)

答#defineswap(x,y)

x=x+y;

y=x-y;

x=x-y;

2.数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:

intdo_dup(inta[],intN)

答:intdo_dup(inta[],intN)

{//未经调试

intsun=0;

intsum2;

for(inti=0;i<N;++i)

{

Sum+=a[i];

}

Sum2=(1+N-1)*N/2;

Return(sum-sum2);

}

3一语句实现x是否为2的若干次幂的判断

答:方法1)inti=512;

cout<<boolalpha<<((i&(i-1))?false:true)<<endl;//位与为0,则表示是2的若干次幂

2)return(x>>N==1);

4.unsignedintintvert(unsignedintx,intp,intn)实现对x的进行转换,p为起始转化位,n为需要转换的长度,假设起始点在右边.如x=0b00010001,p=4,n=3转换后x=0b01100001

答:unsignedintintvert(unsignedintx,intp,intn)//假定p=4,n=3

{

unsignedint_t=0;

unsignedint_a=1;

for(inti=0;i<n;++i)//循环的目的主要是-t

{

_t|=_a;

_a=_a<<1;

}

_t=_t<<p;

x^=_t;

returnx;

}//转换后_t变为1110000/异或,将原来的位取反//位或

慧通:

1.什么是预编译,何时需要预编译:

答:就是指程序执行前的一些预处理工作,主要指#表示的.

何时需要预编译?

1)、总是使用不经常改动的大型代码体。

2)、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。

2.下述三个有什么区别?

char*constp;

charconst*p

constchar*p

解答:

char*constp;//常量指针,p的值不可以修改

charconst*p;//指向常量的指针,指向的常量值不可以改

constchar*p;//和charconst*p

3.解释下列输出结果

charstr1[]="abc";

charstr2[]="abc";

constcharstr3[]="abc";

constcharstr4[]="abc";

constchar*str5="abc";

constchar*str6="abc";

char*str7="abc";

char*str8="abc";

cout<<(str1==str2)<<endl;

cout<<(str3==str4)<<endl;

cout<<(str5==str6)<<endl;

cout<<(str7==str8)<<endl;

结果是:0011

解答:str1,str2,str3,str4是数组变量,它们有各自的内存空间;

而str5,str6,str7,str8是指针,它们指向相同的常量区域。

4.以下代码中的两个sizeof用法有问题吗?[C易]

voidUpperCase(charstr[])//将str中的小写字母转换成大写字母

{

for(size_ti=0;i<sizeof(str)/sizeof(str[0]);++i)

if('a'<=str[i]&&str[i]<='z')

str[i]-=('a'-'A');

}

charstr[]="aBcDe";

cout<<"str字符长度为:"<<sizeof(str)/sizeof(str[0])<<endl;

UpperCase(str);

cout<<str<<endl;

答:函数内的sizeof有问题。根据语法,sizeof如用于数组,只能测出静态数组的大小,无法检测动态分配的或外部数组大小。函数外的str是一个静态定义的数组,因此其大小为

6,函数内的str实际只是一个指向字符串的指针,没有任何额外的与数组相关的信息,因此sizeof作用于上只将其当指针看,一个指针为4个字节,因此返回4。

注意:数组名作为函数参数时,退化为指针.

数组名作为sizeof()参数时,数组名不退化,因为sizeof不是函数.

4.一个32位的机器,该机器的指针是多少位

指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节了。

5.指出下面代码的输出, …… 此处隐藏:2945字,全部文档内容请下载后查看。喜欢就下载吧 ……

【华为】C 语言面试题大汇总之华为面试题(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/95642.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)