




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华为C++MFC面试题(附上个人答案不当之处请指正)pS:答案是自己漫笔所写,可能不全甚至错误!请不要盲目将其作为标准答案,不当之处,请指正,感谢。C++/MFC
试题一.填空题
(26
分
)1.
WIN32
平台下,
sizeof(short)=__2__
,sizeof(int)=__4__
,
sizeof(long)=__4__
。
(3
分
)///sizeof(char)=1;sizeof(double)=8;sizeof(float)=4;.请给出以下程序的结果(2分)inta=3;intb=a<<3;///00000011
左移三位为
00011000,即
24a=__3__
,
b=__24__
。.请给出以下程序的结果(2分)intaaa=0x01;htonl(aaa)=_16^6___。///0x01000000十六进制数,变换为十进制为16的6次方,即16777216.请给出以下程序的结果(2分)#defineMAX_NUM100+200intnTemp=MAX_NUM*10;///宏的功能可是简单的字符代替,MAX_NUM*10表示100+200*10,所以用宏要小心则Temp=__2100__。5.请给出以下程序的结果(3分)charszTemp[1000]="";intnLen1=sizeof(szTemp);intnLen2=strlen(szTemp);///strlen的计算结果不包含结束符\\\0\strcpy(szTemp,"abc");intnLen3=sizeof(szTemp);intnLen4=strlen(szTemp);intnTemp[100];int*pTemp=nTemp;intnLen5=sizeof(pTemp);///在32位系统中,指针只占4位字节,无论它指向地址的内容有多大!charszResult[200]="";sprintf(szResult,"%d,%d,%d,%d,d.",nLen1,nLen2,nLen3,nLen4,nLen5);则szResult=_1000,0,1000,3,04___。6.MFC中,大部分类是从哪个类继承而来(CCmdTarget、CObject、CWinApp、CWnd)?(2分)__CObject__7.内存是进度范围or线程范围;__进度__///进度有独立的内存,是线程的管理者,线程是进度的执行者CpU
调换时,针对进度
or
线程;
__线程__///
线程才是执行者函数调用货仓,针对进度
or
线程。
_进度___(3
分
)
///
进度才有独立内存,货仓属于内存的一部分.调用函数bbb后,输出是什么(4分)voidc(intx)///参数为数值传达,不是引用传达{charszTemp[10]="";x=2;sprintf(szTemp,"%d,",x);afxDump<<szTemp;///afxDump表示输出信息到MFC调试(Debug)窗口if(x=3)///注意这里不是"=="而是"=",所以if条件是成立的{intx=4;sprintf(szTemp,"%d,",x);afxDump<<szTemp;}sprintf(szTemp,"%d,",x);afxDump<<szTemp;}voidbbb( ){charszTemp[10]="";intx=7;c(x);sprintf(szTemp,"%d,",x);afxDump<<szTemp;}二.改错题(总合15分,每题5分)。.下面代码有何错误voidfunc1( ){int*pa=NULL;func2(pa);///函数返回后pa依旧是空指针pa;///pa依旧是空指针,pb申请的空间并没有被掉}voidfunc2(int*pb){pb=newint(5);///pb}
重新申请了堆空间.下面代码有何错误voidfunc2(int*value){*value=2;///value为空指针,不能够被取值,所以*value是错误的}voidfunc1( ){int*p=0;func2(p);}3.intfunc1(int&b)///
参数
b的种类是整型{return0;}voidfunc2( ){intbbb=3;func1(&bbb);///
函数参数的引用调用不需要用符号
"&"func1(bbb);}func2中有何错误,func1的参数b的种类是什么。三.简答题(64分)pS:以下答案是漫笔所写,请读者做进一步的深入认识。请简述C、C++、VC、MFC在看法上的差异(4分)答:C是面向过程编程的语言;C++是面向对象编程的语言;VC是微软供应的方便于开发C++程序的一套开发工具。MFC(MicrosoftFunctionClass),是微软供应的一套函数类库,里面封装了好多WindowsApI函数,方便开发者调用。.请写一个函数重载的简单例子(4分)答:intadd(inta,intb){return(a+b);}函数重载:///函数重载是指函数名相同,但参数种类或返回值可能不相同的函数。floatadd(floata,floatb){return(a+b);}用什么函数开启新进度、线程。(4分)答:Createproess( )创办进度;CreateThread( )创办线程MFC中还供应了_beginthread( )与_beginthreadex( )函数创办线程4.SendMessage和postMessage有什么差异(4分)答:SendMessage:发送信息后,等待信息办理达成后才连续执行自己的程序。postMessage:发送信息后不等待信息办理即连续执行自己的程序。5.WaitForSingleObject有何作用;m_pThrd的种类是CWinThread*时,WaitForSingleObject(m_pThrd->m_hThread,INFINITE);有何作用。(4分)答:WaitForSingleObject是表示等待线程的一个函数。参数为INFINITE表示素来等待线程CWinThread执行结束后,再连续办理自己程序。__stdcall、__cdecl、__pascal在什么方面有所不相同。(4分)答:这些都是一些函数参数的调用约定,告诉编译器函数参数压栈的序次,以及压入货仓的内容由谁来除去,是调用者还是函数自己除去货仓的内容。简单列表以下:DirectiveparameterorderClean-uppassesparametersinregisters?pascalLeft-to-rightRoutineNocdeclRight-to-leftCallerNostdcallRight-to-leftRoutineNo.请把下述代码加上异常办理。(6分)intMyWriteFile(CStringstrFileName,CStringstrText){intnRet=0;CFilemyFile;myFile.Open(strFileName,CFile::modeWrite|CFile::shareExclusive|CFile::modeCreate,NULL);intnLen=strText.GetLength( );myFile.Write((char*)(LpCSTR)strText,nLen);myFile.Close( );returnnRet;}答:intMyWriteFile(CStringstrFileName,CStringstrText){intnRet=0;CFilemyFile;__try{nRet=myFile.Open(strFileName,\\CFile::modeWrite|CFile::shareExclusive|CFile::modeCreate,NULL);if(!nRet){输出异常信息__leave;///结束try块,跳到__finaly代码块}intnLen=strText.GetLength( );nRet=myFile.Write((char*)(LpCSTR)strText,nLen);if(!nRet){输出异常信息__leave;///
结束
try
块,跳到
__finaly
代码块}}__finaly{myFile.Close( );}returnnRet;}.请讲解“func”为何各种类,这种种类的作用什么,变量ttt的值是多少?(6分)typedefint(*func)(int,int*);intxxx(inta,int*p){returna+*p;}intdowork(funcaaa,intbbb,int*c){returnaaa(bbb,c);}intsss=4;intttt=dowork(&xxx,3,&sss);答:func
表示一个函数指针,它指向参数为
int
,int*
,返回值为
int
的函数。
ttt
的值为
79.请问下述代码中
:
int
operator+(
)起什么作用?
this是什么?c
的值最后为多少?
(6
分)classFruit{public:Fruit( ){weight=2;}Fruit(intw){weight=w;}intoperator+(Fruitf){returnthis->weight*f.weight;}private:intweight;};Fruitaaa;Fruitbbb(4);intc=aaa+bbb;答:intoperator+()表示重载类的“+”号运算符,this表示对象自己的指针,本例中它指向类的对象aaa;c最后的结果为8(82*4)。请讲解下面代码采用了何种C++特点(C语言不具备),作用是什么?(6分)templateTsum(Ta,Tb){return(a+b);}答:表示函数模板,用于将一类功能相同,参数种类和返回值不同的函数抽象为一个模板,方便模板函数调用。.请讲解aaa.h中下面代码的功能(5分)#if!defined(AFX_MYSUDU_H__9B952BEA_A051_4026_B4E5_0598A39D2DA4__INCLUDED_)#defineAFX_MYSUDU_H__9B952BEA_A051_4026_B4E5_0598A39D2DA4__INCLUDED_......#endif答:这是预办理命令,能够保证多次包含此头文件时,只编译一次代码。12.CMemoryState主要功能是什么(5分)答:用于检测内存泄露。13.请阅读下述代码,写出程序执行的结果(6分)#includeusingnamespacestd;classCBase{public:virtualvoidprint( ){cout<<"base"<<endl;}voidDoprint( ){print( );}};classCChild1:publicCBase{public:virtualvoidprint( ){cout<<"child1"<<endl;}};classCChild2:publicCBase{public:virtualvoidprint( ){cout<<"child2"<<endl;}};voidDoprint(CBase*base){base->Do
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省邵阳市二中2024-2025年高一下入学考试语文试题含答案
- 2025年钢材:一级钢合作协议书
- 2025年春初中苏科版八年级下册物理8.3摩擦力说课稿
- 二零二五年度服装寄存与展会租赁服务合作协议
- 2025年度安全软件开发人工费用支付合同
- 康养项目的可行性研究报告
- 中医护理学(第5版)课件 第4章 病机
- 有机蔬菜种植技术大全
- 智能家居集成系统
- 政府机构信息化建设规划方案
- 项目1 多旋翼无人机的组装与调试
- 供应链管理:高成本、高库存、重资产的解决方案 第2版
- 马克笔建筑快速表现
- 桥台锥坡工程量计算公式
- 配电柜维护保养规程
- 日本夏日祭活动鉴赏
- 中国教育史笔记全
- 某工业锅炉安装工程监理作业指导书
- 名校《强基计划》初升高衔接数学讲义(上)
- GB/T 41028-2021航空航天流体系统液压软管、管道和接头组件的脉冲试验要求
- GB/T 41-2000六角螺母C级
评论
0/150
提交评论