您好,欢迎访问三七文档
1校园招聘笔试题(软件B)学校:专业:姓名:学历:四级成绩:最终得分:注意:满分100分,答题时间45分钟一、填空题(共30分)1、通常,在什么情况下适合采用inline定义内联函数?_______________2、含有纯虚函数的类称为3、C++函数中参数的传递方式有、、三种方式。4、程序的局部变量存在于中,全局变量存在于中,动态申请内存存在于中。5、C++里声明某一函数为C程序中的库函数,则需要在该函数前加___________。6、如果编译器在编译和连接程序时,已经确定了调用函数的地址,这种做法通常称为___________联编。7、C++预定义的标准输入流对象是___________,标准输出流对象是___________。8、#ifndef#define#endif的主要作用是。(2分)9、假设定义类型如下:unionA{intx;doubley;charz;};structB{intx;chary;char*z;};在Win32平台下,sizeof(A)=,sizeof(B)=10、下面程序输出分别是(4分)#definePRINTXprintf(%d,x)intmain(){intx=2,y,z;x*=3+2;PRINTX;x*=y=z=4;PRINTX;x=y==z;PRINTX;x==(y=z);PRINTX;return0;}11、假定CLS_PtzControl是一个类,那么执行语句CLS_PtzControlx[5],*y[3];时程序会自动调用该类2的无参构造函数次。(2分)12、对于数组intx[10],其元素x[4]的字节地址为。(2分)13、执行如下程序后的输出结果是:。(2分)#includeiostream.hclasstest{staticintcount;public:test(){count++;}~test(){count--;}staticintgetCount(){returncount;}};inttest::count=0;intmain(){test*p=newtest;test*q=newtest;deletep;coutcount=test::getCount()endl;return0;}14、以下程序的正确执行结果为:。(2分)#includeiostream.h#intf(int);voidmain(){inta=2,i;for(i=0;i3;i++){coutf(a);}coutendl;}intf(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}15、下面程序的输出结果是。(2分)#includeiostream.hintfun(char*s){char*p=s;while(*p!='\0'){3p++;}return(p-s);}voidmain(){countfun(ABCDEF)endl;}二、选择题(每题2分,共20分),请将答案写在【】内。【】1、C++中,符号“&”不可以表示的是:()A.取变量运算B.按位与运算C.引用运算符D.取地址运算【】2、有关函数重载的正确说法是:()A.函数名不同,但形式参数的个数和类型相同B.函数名相同,但形式参数的个数不同或参数的类型不同C.函数名相同,形式参数的个数和类型也相同D.函数名相同,函数的返回值不同,而与函数的形式参数和类型无关【】3、对于std::vectorintvec;conststd::vectorint::iteratoriter=vec.begin()下列说法正确的是()A.*iter=10和++iter均可通过编译B.*iter=10可通过编译,++iter不可通过编译C.*iter=10不可通过编译,++iter可通过编译D.*iter=10和++iter均不可通过编译【】4、一个指向整型数组的指针的定义为:()A.int(*ptr)[]B.int*ptr[]C.int*(ptr[])D.intprt[]【】5、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:()A.ABoperator+(AB&a,AB&b)B.ABoperator+(AB&a)C.operator+(ABa)D.AB&operator+()【】6、如果需要定义一个只允许本源文件中能够被访问使用的全局变量,那么该变量使用的类型是()A.externB.registerC.autoD.static【】7、C++中的this指针是其实现()的一种机制。A.封装B.继承C.抽象D.重载【】8、对于类CLS_Matrix,语句void(CLS_Matrix::*pControl)(int_iCmd);表明()A.pControl是一个指向类成员函数的指针B.pControl是类CLS_Matrix的一个成员C.pControl是类CLS_Matrix的一个对象D.pControl是一个指向类对象的指针4【】9、设置虚基类的目的是()A.简化程序B.消除二义性C.提高运行效率D.减少目标代码【】10、有如下程序:执行后的输出结果应该是()#includeiostream.hclassBASE{public:~BASE(){coutBASE;}};classDERIVED:publicBASE{public:~DERIVED(){coutDERIVED;}};voidmain(){DERIVEDx;}A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE三、纠错题(8分)1、下面的函数实现代码是否有问题?请指出。(4分)char*GetMemory(void){charp[]=helloworld;returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}2、以下的程序运行后会产生什么问题?(4分)#defineSIZE255intmain(){unsignedcharArray[SIZE],i;for(i=0;i=SIZE;i++){Array[i]=i;}return0;}四、简答题(共42分)1、C中的结构体与C++中的类主要区别是什么?(5分)2、以下为WindowsNT下的32位C++程序,请计算sizeof的值(5分)答题处:答题处:5charstr[]=Hello;char*p=str;intn=10;请计算sizeof(str)=sizeof(p)=sizeof(n)=voidFunc(charstr[100]){请计算sizeof(str)=}void*p=malloc(100);请计算sizeof(p)=3、类成员函数的重载、覆盖和隐藏区别?(8分)4、写出如下程序的运行结果。(12分)classA{public:virtualvoidOutput(){printf(ThisisA’sOutput\n);}voidDisplay(){printf(A::Display\n);Output();}};classB:publicA{public:virtualvoidOutput(){printf(ThisisB’sOutput\n);}};intmain(){Bb1;b1.Display();((A*)(&b1))-Display();((A)b1).Display();return0;}5、用单链表表示集合,设计算法求两个集合的并集。(12分)typedefstructSNode{intdata;SNode*next;}SNode;答题处:①②③④⑤⑥6voiddiffence(SNode*A,SNode*B,SNode*&C){SNode*pa=A,*pb=B,*pc,*s,*r;C=(SNode*)malloc(sizeof(SNode));①;r=C;while(pa!=NULL){s=(SNode*)malloc(sizeof(SNode));②;s-next=NULL;r-next=s;③;pa=pa-next;}while(pb!=NULL){pc=C-next;while(④){pc=pc-next;}if(pc==NULL){s=(SNode*)malloc(sizeof(SNode));⑤;s-next=NULL;⑥;r=s;}pb=pb-next;}pc=C;C=C-next;free(pc);}①②③④⑤⑥
本文标题:软件工程师笔试题B
链接地址:https://www.777doc.com/doc-213209 .html