您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 面试题集_su(带答案)
17试题1:C语言面试题一——华为篇1.static有什么用途?(请至少说明两种)1)限制变量的作用域2)设置变量的存储域(堆,主动分配内存也是堆)1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3)在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用补充:一个代码在运行时分为4个区:1)data:全局,静态,常量2)code:代码3)堆:new,malloc分配的内存,需要delete,free释放。如果不释放,则只有等程序运行正常结束时,由操作系统回收,理论上无限大。4)栈:场景信息(函数的参数,返回值,局部变量,临时变量),VC的栈区默认是4M。对大内存的操作,需要放堆区。如:Stedentstu[4*1024*1024]会出问题,应改为:student*stu=newstu[4*1024*1024]释放:delete[]stu;2.引用与指针有什么区别?1)引用必须被初始化,指针不必。2)引用初始化以后不能被改变,指针可以改变所指的对象。3)不存在指向空值的引用,但是存在指向空值的指针。3.描述实时系统的基本特性在特定时间内完成特定的任务,实时性与可靠性4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别?全局变量储存在静态数据库,局部变量在栈5.什么是平衡二叉树?左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于16.堆栈溢出一般是由什么原因导致的?堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。没有回收垃圾资源导致的是内存泄露最后内存耗尽。7.什么函数不能声明为虚函数?构造函数,静态成员函数,非成员函数,部分模板函数。8(1).冒泡排序算法的时间复杂度是什么?(其它排序算法的时间复杂度)O(n^2)8(2)、数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)intdo_dup(inta[],intN){intsum=0;for(inti=0;iN;i++){sum=sum+a[i];}sum=sum-(N-1)*N/2;returnsum;}voidmain(){inta[]={1,2,3,4,6,5,6};intb=do_dup(a,7);coutbendl;}9.写出floatx与“零值”比较的if语句。if(x0.000001&&x-0.000001)10.Internet采用哪种网络协议?该协议的主要层次结构?tcp/ip应用层/传输层/网络层/数据链路层/物理层11.Internet物理地址和IP地址转换采用什么协议?ARP(AddressResolutionProtocol)(地址解析協議)18.IP地址的编码分为哪俩部分?IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。19.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。循环链表,用取余操作做#includestdio.h#includestdlib.h#defineNULL0#defineTYPEstructstu#defineLENsizeof(structstu)structstu{intdata;structstu*next;};TYPE*line(intn){intsum=1;structstu*head,*pf,*pb;inti;for(i=0;in;i++){pb=(TYPE*)malloc(LEN);pb-data=i+1;if(i==0)pf=head=pb;elsepf-next=pb;if(i==(n-1))pb-next=head;elsepb-next=NULL;pf=pb;sum++;}return(head);}display(TYPE*L){inti;structstu*head,*pf;pf=L;head=L;printf(%d\n,pf-data);pf=pf-next;for(i=0;pf!=head;i++){printf(%d\n,pf-data);pf=pf-next;}}main(){intM,N,x,i;structstu*p,*q;printf(pleasescanfMandN(MN));scanf(%d%d,&M,&N);p=line(N);display(p);x=N;while(x){for(i=1;iM-1;i++){p=p-next;}printf(p.data=%d\n,p-data);//找到了M前面的1个q=p-next;printf(%d\n,q-data);//输出Mp-next=p-next-next;//释放Mp=p-next;//从M的下一个又开始数free(q);x--;}getch();}20.不能做switch()的参数类型是:switch的参数不能为实型。(只能是intchar)试题2:1.-1,2,7,28,,126请问28和126中间那个数是什么?为什么?第一题的答案应该是4^3-1=63规律是n^3-1(当n为偶数0,2,4)n^3+1(当n为奇数1,3,5)答案:632.用两个栈实现一个队列的功能?要求给出算法和思路!设2个栈为A,B,一开始均为空.入队列:入栈A出队列:1如果栈B不为空,直接弹出栈B的数据。2如果栈B为空,则依次弹出栈A的数据,放入栈B中,再弹出栈B的数据。3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?函数名:atol功能:把字符串转换成长整型数函数的原型:longatol(constchar*nptr);程序例:#includestdlib.h#includestdio.hintmain(void){longl;char*str=98765432;l=atol(lstr);printf(string=%sinteger=%ld\n,str,l);return(0);}4.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?c用宏定义,c++用inline5.直接链接两个信令点的一组链路称作什么?PPP点到点连接6.接入网用的是什么接口?接入网可由三个接口界定,即网络侧经由SNI(业务节点接口)与业务节点相连,用户侧由UNI与用户相连,管理方面则经Q3接口与电信管理网(TMN)相连。7.voip都用了那些协议?IAXSIPH.323MGCPSkinny/SCCPUNISRIM8.软件测试都有那些种类?黑盒:针对系统功能的测试白合:测试函数功能,各函数接口9.确定模块的功能和模块的接口是在软件设计的那个队段完成的?概要设计阶段11.c*p1;unsignedlong*p2;p1=(unsignedchar*)0x801000;p2=(unsignedlong*)0x810000;请问p1+5=?;p2+5=?;答:p1+5=0x801005;p2+5=0x810014;二.选择题:1.Ethternet链接到Internet用到以下那个协议?DA.HDLC;B.ARP;C.UDP;D.TCP;E.ID2.属于网络层协议的是:BCA.TCP;B.IP;C.ICMP;D.X.253.Windows消息调度机制是:cA.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈;三.找错题:1.请问下面程序有什么错误?inta[60][250][1000],i,j,k;for(k=0;k1000;k++)for(j=0;j250;j++)for(i=0;i60;i++)a[i][j][k]=0;把循环语句内外换一下(编译的时候没错,运行的时候出错,但这个数组太大,如果放在栈中,还是会溢出,要作为全局变量)2.#defineMax_CB500voidLmiQueryCSmd(StructMSgCB*pmsg){unsignedcharucCmdNum;......for(ucCmdNum=0;ucCmdNumMax_CB;ucCmdNum++){......;}死循环(unsignedchar0到255)3.以下是求一个数的平方的程序,请找出错误:#defineSQUARE(a)((a)*(a))inta=5;intb;b=SQUARE(a++);//a被加了2次a=7,b=25试题3:华为全套完整试题2、有一个16位的整数,每4位为一个数,写函数求他们的和。解释:整数1101010110110111和1101+0101+1011+0111/*n就是16位的数,函数返回它的四个部分之和*/charSumOfQuaters(unsignedshortn){charc=0;inti=4;do{c+=n&15;n=n4;}while(--i);returnc;}试题4:(慧通)1、写出程序把一个链表中的接点顺序倒排typedefstructlinknode{intdata;structlinknode*next;}node;//将一个链表逆置node*reverse(node*head){node*p,*q,*r;p=head;q=p-next;while(q!=NULL){r=q-next;q-next=p;p=q;q=r;}head-next=NULL;head=p;returnhead;}2、写出程序删除链表中的所有接点voiddel_all(node*head){node*p;while(head!=NULL){p=head-next;free(head);head=p;}cout释放空间成功!endl;}3、两个字符串,s,t;把t字符串接到s字符串尾,s字符串有足够的空间存放t字符串voidconnect(char*s,char*t,inti){char*q=t;char*p=s;if(q==NULL)return;while(*p!='\0'){p++;}while(*q!=0){*p=*q;p++;q++;}*p='\0';}voidmain(){charp[7]=ABC;charp2[]=EFG;connect(p,p2,3);printf(%s,p);}4、分析下面的代码,是打印什么出来:char*a=hello;char*b=hello;if(a==b)printf(YES);elseprintf(NO);常量字符串。位于静态存储区,它在程序生命期内恒定不变。如果编译器优化的话,会有可能a和b同时指向同一个hello的。则地址相同。如果编译器没有优化,那么就是两个不同的地址,则不同。对VC,是相同。试题5:华为软件研发面试题21、局部变量能否和全局变量重名?答:能,局部会屏蔽全局。要用全局变量,需要使用::;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。2、如何引用一个已经定义过的全局变量?答:extern例如在某个.cpp中定义了一个全局变量inta,可在头文件中加入externa;然后在需要引用的文件中包含该头文件。或者直接在文件中加入externa;3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以在头文件中用static来定义同名全局变量。另外某个.C文件中定义的非静态全局变量,可以在其头文件中用extern声明,需引用此全局变量的其他.C只需包含此头文件即可。4、请写出下列代码的输出内容#includestdio.hin
本文标题:面试题集_su(带答案)
链接地址:https://www.777doc.com/doc-1981452 .html