栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > C++面试题库

广州C++/MFC试题

广州C++/MFC试题

一.填空题(26分)
1. WIN32平台下,sizeof(short) = ____,sizeof(int) = ____,sizeof(long) = ____。(3分)

2.请给出如下程序的结果(2分)
int a = 3;
int b = a << 3;a = ____,b = ____。3.请给出如下程序的结果(2分)int aaa = 0x01;htonl(aaa) = ____。4.请给出如下程序的结果(2分)#define MAX_NUM 100+200int nTemp = MAX_NUM*10;则Temp = ____。5.请给出如下程序的结果(3 分)char szTemp[1000] = "";int nLen1 = sizeof(szTemp);int nLen2 = strlen(szTemp);strcpy(szTemp, "abc");int nLen3 = sizeof(szTemp);int nLen4 = strlen(szTemp);int nTemp[100];int *pTemp = nTemp;int nLen5 = sizeof(pTemp);char szResult[200] = "";sprintf(szResult, "%d,%d,%d,%d,%02d.", nLen1, nLen2, nLen3, nLen4, nLen5);则szResult = ____。6.MFC中,大部分类是从哪个类继承而来(CCmdTarget、CObject、CWinApp、CWnd)?(2分)____7.内存是进程范围or线程范围;____CPU调度时,针对进程or线程;____函数调用堆栈,针对进程or线程。____(3分)8.调用函数bbb后,输出是什么(4分)void ccc(int x){char szTemp[10] = "";x = 2;sprintf(szTemp, "%d,", x);afxDump << szTemp;if(x = 3){int x = 4;sprintf(szTemp, "%d,", x);afxDump << szTemp;}sprintf(szTemp, "%d,", x);afxDump << szTemp;}void bbb(){char szTemp[10] = "";int x = 7;ccc(x);sprintf(szTemp, "%d,", x);afxDump << szTemp;}二.改错题(总共15分,每题5分)。1.下面代码有何错误void func1(){int *pa = NULL;func2(pa);delete pa;}void func2(int *pb){pb = new int(5);}2.下面代码有何错误void func2(int *value){*value = 2;}void func1(){int *p = 0;func2(p);}3.int func1(int& b){return 0;}void func2(){int bbb = 3;func1(&bbb);func1(bbb);}func2中有何错误,func1的参数b的类型是什么。三.简答题(64分)1.请简述C、C++、VC、MFC在概念上的区别(4分)2.请写一个函数重载的简单例子(4分)3.用什么函数开启新进程、线程。(4分)4.SendMessage和PostMessage有什么区别(4分)5.WaitForSingleObject有何作用;m_pThrd的类型是CWinThread*时,WaitForSingleObject(m_pThrd->m_hThread, INFINITE);有何作用。(4分)

6. __stdcall、__cdecl、__pascal在什么方面有所不同。(4分)

7.请把下述代码加上异常处理。(6分)
int MyWriteFile(CString strFileName, CString strText)
{
int nRet = 0;

CFile myFile;
myFile.Open(strFileName, CFile::modeWrite|CFile::shareExclusive|CFile::modeCreate, NULL);

int nLen = strText.GetLength();
myFile.Write((char*)(LPCSTR)strText, nLen);

myFile.Close();

return nRet;
}

8.请解释“func”为何种类型,这种类型的作用什么,变量ttt 的值是多少?(6分)
typedef int (*func)(int, int*);
int xxx(int a, int *p)
{
return a + *p;
}
int dowork(func aaa, int bbb, int *ccc)
{
return aaa(bbb, ccc);
}
int sss = 4;
int ttt = dowork(&xxx, 3, &sss);

9.请问下述代码中: int operator+(…)起什么作用?this是什么?ccc 的值最终为多少?(6分)
class Fruit
{
public:
Fruit()
{
weight = 2;
}
Fruit(int w)
{
weight = w;
}
int operator+(Fruit f)
{
return this->weight * f.weight;
}
private:
int weight;
};
Fruit aaa;
Fruit bbb(4);
int ccc = aaa + bbb;

10.请解释下面代码采用了何种C++特性(C语言不具备),作用是什么?(6分)
template
T sum(T a, T b)
{
return (a + b);
}

11.请解释aaa.h中下面代码的功能(5分)
#if !defined(AFX_MYSUDU_H__9B952BEA_A051_4026_B4E5_0598A39D2DA4__INCLUDED_)
#define AFX_MYSUDU_H__9B952BEA_A051_4026_B4E5_0598A39D2DA4__INCLUDED_
… …
#endif

12.CMemoryState主要功能是什么(5分)

13.请阅读下述代码,写出程序执行的结果(6分)
#include
using namespace std;

class Cbase
{
public:
virtual void print()
{
cout<< "base" << endl; } void DoPrint() { print(); }};class CChild1: public Cbase{public: virtual void print() { cout<< "child1" << endl; }};class CChild2: public Cbase{public: virtual void print() { cout<< "child2" << endl; }};void DoPrint(Cbase *base){ base->DoPrint();
}

void main()
{
Cbase* base = new Cbase();
CChild1* child1 = new CChild1();
CChild2* child2 = new CChild2();
DoPrint(child1);
DoPrint(child2);
DoPrint(base);

delete base;
base = child1;
base->print();
delete child1;
delete child2;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/265734.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号