上海贝尔面试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1#include“filename.h”和#includefilename.h的区别?答:对于#includefilename.h编译器从标准库开始搜索filename.h对于#include“filename.h”编译器从用户工作路径开始搜索filename.h2头文件的作用是什么?答:一、通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。二、头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。3C++函数中值的传递方式有哪几种?答:C++函数的三种传递方式为:值传递、指针传递和引用传递。4内存的分配方式的分配方式有几种?答:一、从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量。二、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。三、从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。5实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数;答:双向链表删除一个节点Ptemplateclasstypevoidlisttype::delnode(intp){intk=1;listnodetype*ptr,*t;ptr=first;while(ptr-next!=NULL&&k!=p){ptr=ptr-next;k++;}t=ptr-next;cout你已经将数据项t-data删除endl;ptr-next=ptr-next-next;length--;deletet;}在节点P后插入一个节点:templateclasstypeboollisttype::insert(typet,intp){listnodetype*ptr;ptr=first;intk=1;while(ptr!=NULL&&kp){ptr=ptr-next;k++;}if(ptr==NULL&&k!=p)returnfalse;else{listnodetype*tp;tp=newlistnodetype;tp-data=t;tp-next=ptr-next;ptr-next=tp;length++;returntrue;}}6写一个函数,将其中的\t都转换成4个空格。voidchange(char*pstr){while(*pstr++!='\0'){if(*pstr=='\t')}}7Windows程序的入口是哪里?写出Windows消息机制的流程.8如何定义和实现一个类的成员函数为回调函数?9C++里面是不是所有的动作都是main()引起的?如果不是,请举例.答:在运行c++程序时,通常从main()函数开始执行。因此如果没有main(),程序将不完整,编译器将指出未定义main()函数。例外情况:如,在windows编程中,可以编写一个动态连接库(dll)模块,这是其他windows程序可以使用的代码。由于DLL模块不是独立的程序,因此不需要main().用于专用环境的程序--如机器人中的控制器芯片--可能不需要main().但常规的独立程序都需要main().10C++里面如何声明constvoidf(void)函数为C程序中的库函数?11下列哪两个是等同的intb;Aconstint*a=&b;Bconst*inta=&b;Cconstint*consta=&b;Dintconst*consta=&b;12内联函数在编译时是否做参数类型检查13三个float:a,b,c问值(a+b)+c==(b+a)+c(a+b)+c==(a+c)+b14把一个链表反向填空voidreverse(test*head){test*pe=head;test*ps=head-next;while(ps){pe-next=ps-next;ps-next=head;head=ps;ps=pe-next;}}15设计一个重采样系统,说明如何anti-alias16某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最化了,换到另一个系统(300M的CPU,50M的SDRAM)中运行,还需要优化吗?17.下面哪种排序法对12354最快aquicksortb.bublesortc.mergesort18.哪种结构,平均来讲,获取一个值最快a.binarytreeb.hashtablec.stack19请问C++的类和C里面的struct有什么区别?答:c++的类的成员默认情况下是私有的,c的struct的成员默认情况下是公共的.20请讲一讲析构函数和虚函数的用法和作用?答:析构函数的作用是当对象生命期结束时释放对象所占用的资源。析构函数用法:析构函数是特殊的类成员函数它的名字和类名相同,没有返回值,没有参数不能随意调用也没有重载。只是在类对象生命期结束时有系统自动调用。虚函数用在继承中,当在派生类中需要重新定义基类的函数时需要在基类中将该函数声明为虚函数,作用为使程序支持动态联遍。21全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?答:一些变量整个程序中都是可见的,它们称为全局变量,一些变量在函数内部定义且只在函数中可知,则称为局部变量。全局变量由编译器建立且存放在内存的全局数据区,局部变量存放在栈区22一些寄存器的题目,主要是寻址和内存管理等一些知识。238086是多少尉的系统?在数据总线上是怎么实现的?24多态。overload和override的区别。答:重载在相同范围(同一个类中),函数名字相同,参数不同,virtual关键字可有可无。覆盖是指派生类函数覆盖基类函数,不同的范围,函数名字相同,参数相同,基类函数必须有virtual关键字。25.完成下列程序**.*.*..*..*..*...*...*...*...*....*....*....*....*....*.....*.....*.....*.....*.....*.....*......*......*......*......*......*......*......*.......*.......*.......*.......*.......*.......*.......*.......#includeiostreamusingnamespacestd;constintn=8;main(){inti;intj;intk;for(i=n;i=1;i--){for(j=0;jn-i+1;j++){cout*;for(k=1;kn-i+1;k++){cout.;}}coutendl;}system(pause);}26完成程序,实现对数组的降序排序#includeiostreamusingnamespacestd;voidsort(int*arr,intn);intmain(){intarray[]={45,56,76,234,1,34,23,2,3};sort(array,9);for(inti=0;i=8;i++)//曾经在这儿出界coutarray[i];coutendl;system(pause);}voidsort(int*arr,intn){inttemp;for(inti=1;i9;i++){for(intk=0;k9-i;k++)//曾经在这儿出界{if(arr[k]arr[k+1]){temp=arr[k];arr[k]=arr[k+1];arr[k+1]=temp;}}}}27费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他方法,但要说明你选择的理由。非递归#includeiostreamusingnamespacestd;intPheponatch(intn);main(){intPh=Pheponatch(10);coutPhendl;system(pause);}intPheponatch(intn){intelem;intn1=1;intn2=1;if(n==1||n==2)return1;else{for(inti=3;i=n;i++){elem=n1+n2;n1=n2;n2=elem;}returnelem;}}递归#includeiostreamusingnamespacestd;intPheponatch(intn);main(){intn;cinn;intph=Pheponatch(n);coutphendl;system(pause);}intPheponatch(intn){if(n=0)exit(-1);elseif(n==1||n==2)return1;elsereturnPheponatch(n-1)+Pheponatch(n-2);}28下列程序运行时会崩溃,请找出错误并改正,并且说明原因。#includestdio.h#includemalloc.htypedefstruct{TNode*left;TNode*right;intvalue;}TNode;TNode*root=NULL;voidappend(intN);intmain(){append(63);append(45);append(32);append(77);append(96);append(21);append(17);//Again,数字任意给出}voidappend(intN){TNode*NewNode=(TNode*)malloc(sizeof(TNode));NewNode-value=N;if(root==NULL){root=NewNode;return;}else{TNode*temp;temp=root;while((N=temp.value&&temp.left!=NULL)||(Ntemp.value&&temp.right!=NULL)){while(N=temp.value&&temp.left!=NULL)temp=temp.left;while(Ntemp.value&&temp.right!=NULL)temp=temp.right;}if(N=temp.value)temp.left=NewNode;elsetemp.right=NewNode;return;}}29.AclassBnetworkontheinternethasasubnetmaskof255.255.240.0,whatisthemaximumnumberofhostspersubnet.a.240b.255c.4094d.6553430.Whatisthedifference:betweeno(logn)ando(logn^2),wherebothlogarithemshavebase.a.o(logn^2)isbiggerb.o(logn)isbiggerc.nodifference31.Foraclasswhatwouldhappenifwecallaclass’sconstructorfromwiththesameclass’sconstructor.a.compilationerrorb.linkingerrorc.stackoverflowd.noneoftheabove32.“new”inc++isa:.

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功