C++/MFC 试题 (1)
一.填空题 (26 分 )
1 . WIN32 平台下, sizeof(short) = __2__ , sizeof(int) = __4__ , sizeof(long) = __4__ 。 (3 分 )
2 .请给出如下程序的结果 (2 分 )
int a = 3;
int b = a << 3;
a = __3__ , b = __24__ 。
3 .请 给出如下程序的结果 (2 分 )
int aaa = 0x01;
htonl(aaa) = _16777216___ 。 //这题运行显示的是16777216,我觉得可能是随机值
4 .请给出如下程序的结果 (2 分 )
#define MAX_NUM 100+200
int nTemp = MAX_NUM*10;
则 Temp = __2100__ 。
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 分 )__CObject __
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 的类型是什么。