您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 腾讯技术类笔试笔试题(校园)123
一.单选题(每题4分,15题,共60分)1.考虑函数原型voidhello(inta,intb=7,char*pszC=*),下面的函数调用钟,属于不合法调用的是:CAhello(5)B.hello(5,8)C.hello(6,#)D.hello(0,0,#)2.下面有关重载函数的说法中正确的是:CA.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同重载:必须同名函数;必须参数表不同(包含参数个数不同;参数类型不同;或参数个数与类型都不同)3.分析一下程序的运行结果:C#includeiostream.hclassCBase{public:CBase(){cout”constructingCBaseclass”endl;}~CBase(){cout”destructingCBaseclass”endl;}};classCSub:publicCBase{public:CSub(){cout”constructingCSubclass”endl;}~CSub(){cout”destructingCSubclass”endl;}};voidmain(){CSubobj;}A.constructingCSubclassB.constructingCBaseclassconstructingCBaseclassconstructingCSubclassdestructingCSubclassdestructingCBaseclassdestructingCBaseclassdestructingCSubclassC.constructingCBaseclassconstructingCSubclassdestructingCSubclassdestructingCBaseclassD.constructingCSubclassconstructingCBaseclassdestructingCBaseclassdestructingCSubclass子类对象生成时:先调用父类的构造函数,然后在调用子类的构造函数;析构时相反4.在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是:A.只能在该cpp所在的编译模块中使用该变量B.该变量的值是不可改变的C.该变量不能在类的成员函数中引用D.这种变量只能是基本类型(如int,char)不能是C++类型Static全局变量和普通全局变量:针对:一个工程里有多个cpp文件时相同点:存储方式相同,都是静态存储;不同点:作用域不同。普通全局变量---作用域是整个源程序(含有多个源文件),在各个源文件中都有效Static全局变量----作用域是当前源文件5.观察下面一段代码:classClassA{public:virtual~ClassA(){};virtualvoidFunctionA(){};};classClassB{public:virtualvoidFunctionB(){};};classClassC:publicClassA,publicClassB{public:};ClassCaObject;ClassA*pA=&aObject;ClassB*pB=&aObject;ClassC*pC=&aObject;关于pA,pB,pC的取值,下面的描述中正确的是:A.pA,pB,pC的取值相同.B.pC=pA+pBC.pA和pB不相同D.pC不等于pA也不等于pB6.参照1.5的代码,假设定义了ClassA*pA2,下面正确的代码是:A.pA2=static_castClassA*(pB);B.void*pVoid=static_castvoid*(pB);pA2=static_castClassA*(pVoid);C.pA2=pB;D.pA2=static_castClassA*(static_castClassC*(pB));7.参照1.5的代码,下面那一个语句是不安全的:A.deletepAB.deletepBC.deletepC删除那个都有错误,编译是无错误,运行是有错误8.下列程序的运行结果为:#includeiostream.hvoidmain(){inta=2;intb=++a;couta/6endl;}A.0.5B.0C0.7D.0.6666666-9.有如下一段代码:#defineADD(x,y)x+yintm=3;m+=m*ADD(m,m);//展开后为m=m+m*m+m=3+3*3+3则m的值为:A.15B.12C.18D.5810.如下是一个带权的图,图中结点A到结点D的关键路径的长度是:A.13B.15C.28D.5811.下面的模板声明中,正确的是:A.templatetypenameT1,T2//改为templatetypenameT1,typenameT2B.templateclassT1,T2C.templateclassT1,classT2D.templatetypenameT1;typenameT2//分号改为逗号12.在Windows编程中下面的说法正确的是:A.两个窗口,他们的窗口句柄可以是相同的B.两个窗口,他们的处理函数可以是相同的C.两个窗口,他们的窗口句柄和窗口处理函数都不可以相同.13.下面哪种情况下,B不能隐式转换为A?A.classB:publicA{}B.classA:publicB{}C.classB{operatorA();}D.classA{A(constB&);}14.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是”该防火墙能够()”.A.使公司员工只能访问Internet上与其业务联系的公司的IP地址.B.仅允许HTTP协议通过,不允许其他协议通过,例如TCP/UDP.C.使员工不能直接访问FTP服务器端口号为21的FTP地址.D.仅允许公司中具有某些特定IP地址的计算机可以访问外部网络15.数字字符0的ASCII值为48,若有以下程序:main(){chara=’1’,b=’2’;printf(“%c,”,b++);printf(“%d\n”,b-a);}程序运行之后的输出结果是:A.3,2B.50,2C.2,2D.2,50二.填空题(共40分)本程序从正文文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出.程序中的外部函数intgetword(FILE*pFile,char*pszWordBuffer,intnBufferLen);从与pFile所对应的文件中读取单词置入pszWordBuffer,并返回1;若单词遇文件尾,已无单词可读时,则返回0.#includestdio.h#includemalloc.h#includectype.h#includestring.h#defineSOURCE_FILEtext.in#defineOUTPUT_FILEword.out#defineMAX_WORD_LEN128typedefstructtreenode{charszWord[MAX_WORD_LEN];intnCount;structtreenode*pLeft;structtreenode*pRight;}BNODE;intgetword(FILE*pFile,char*pasWordBuffer,intnBufferLen);voidbinary_tree(BNODE**ppNode,char*pszWord){if(ppNode!=NULL&&pszWord!=NULL){BNODE*pCurrentNode=NULL;BNODE*pMemoNode=NULL;intnStrCmpRes=0;____(1)_____;pCurrentNode=*ppNodewhile(pCurrentNode){/*寻找插入位置*/nStrCmpRes=strcmp(pszWord,___(2)___);pCurrentNode-nCountif(!nStrCmpRes){___(3)___;pCurrentNode-nCount++return;}else{___(4)___;pMemoNode=pCurrentNodepCurrentNode=nStrCmpRes0?pCurrentNode-pRight:pCurrentNode-pLeft;}}}pCurrent=newBNODE;if(pCurrentNode!=NULL){memset(pCurrentNode,0,sizeof(BNODE));strncpy(pCurrentNode-szWord,pszWord,MAX_WORD_LEN-1);pCurrentNode-nCount=1;}if(pMemoNode==NULL){___(5)___;*ppNode=pCurrentNode}elseif(nStrCmpRes0){pMemoNode-pRight=pCurrentNode;}else{pMemoNode-pLeft=pCurrentNode;}}voidmidorder(FILE*pFile,BNODE*pNode){if(___(6)___)return;!pNode||!pFilemidorder(pFile,pNode-pLeft);fprintf(pFile,%s%d\n,pNode-szWord,pNode-nCount);midorder(pFile,pNode-pRight);}voidmain(){FILE*pFile=NULL;BNODE*pRootNode=NULL;charszWord[MAX_WORD_LEN]={0};pFile=fopen(SOURCE_FILE,r);if(pFile==NULL){printf(Can'topenfile%s\n,SOURCE_FILE);return;}while(getword(pFile,szWord,MAX_WORD_LEN)==1){binary_tree(___(7)___);//pRootNode,szWord}fclose(pFile);pFile=fopen(OUTPUT_FILE,w);midorder(pFile,pRootNode);fclose(pFile);}三.附加题(每题30分,2题,共60分)1.从程序健壮性进行分析,下面的FillUserInfo函数和Main函数分别存在什么问题?#includeiostream#includestring#defineMAX_NAME_LEN20structUSERINFO{intnAge;charszName[MAX_NAME_LEN];};voidFillUserInfo(USERINFO*parUserInfo){stu::cout请输入用户的个数:;intnCount=0;std::cinnCount;for(inti=0;inCount;i++){std::cout请输入年龄:;std::cinparUserInfo[i]-nAge;std::stringstrName;std::cout请输入姓名:;std::cinstrName;strcpy(parUserInfo[i].szName,strName.c_str());}}intmain(intargc,char*argv[]){USERINFOarUserInfos[100]={0};FillUserInfo(ar
本文标题:腾讯技术类笔试笔试题(校园)123
链接地址:https://www.777doc.com/doc-2116644 .html