常规的C++/MFC基础知识测验试题
【C++/MFC基础知识测验试题解析】 一.填空题 1. 在WIN32平台上,数据类型的大小通常是固定的。sizeof(short)通常为2字节,sizeof(int)为4字节,sizeof(long)为4字节(在32位系统中;在64位系统中,long可能是8字节)。 2. 程序中,a << 3 表示a左移3位,相当于乘以2的3次方。因此,a = 3 << 3 = 24,b = 3。 3. htonl()函数用于将网络字节序转换为主机字节序。0x01是1的十六进制表示,转换后仍然是0x01。 4. 宏定义MAX_NUM等于300,所以nTemp = MAX_NUM * 10 = 3000。 5. szTemp数组初始为空字符串,其长度为1000个字节,strlen计算的是非空字符个数,所以初始时nLen2=0。strcpy后szTemp长度不变,nLen3仍为1000,但有效字符串长度为3(包括末尾的空字符)。pTemp是指向nTemp数组的指针,其sizeof结果是指针的大小,通常为4或8字节,取决于系统。szResult字符串格式化后的结果应为"1000,0,1000,3,04."。 6. MFC中的大部分类都是从CObject类派生而来的,这是MFC对象模型的基础。 7. 内存是进程范围,CPU调度针对进程,函数调用堆栈针对线程。 8. 函数bbb调用ccc(x),其中x的值传递为7。在ccc内部,x被赋值为2并输出,然后在if语句中重新赋值为3,但这个赋值不会影响外部的x。最后再次输出ccc中的x,值为3。回到bbb,输出外部x的值7。 二.改错题 1. func1中,delete pa时,pa可能为NULL,造成空指针解引用。func2中,new的值没有返回给func1,无法正确释放内存。 2. func2试图修改一个空指针p所指向的值,这会导致未定义行为。func1应该分配内存后再调用func2。 3. func1中,bbb的引用作为参数传递,func1内部改变的是bbb的引用,而func2中直接传递bbb的值,所以func1的第二个调用对bbb无影响。func1的参数b的类型是int的引用。 三.简答题 1. C语言是原始的面向过程的语言,C++在其基础上增加了面向对象特性。VC(Visual C++)是微软开发的C++编译器,包含了IDE和其他开发工具。MFC是Microsoft Foundation Classes的缩写,是微软提供的一套C++库,用于简化Windows应用程序开发,基于C++面向对象特性。 2. 函数重载的例子: ```cpp void print(int a) { cout << "整数: " << a << endl; } void print(double d) { cout << "浮点数: " << d << endl; } ``` 这两个函数名字相同,但参数类型不同,实现了功能的重载。 3. 开启新进程可以使用CreateProcess函数,开启新线程可以使用CreateThread函数。 4. SendMessage是同步的,它会等待消息被处理完才返回;PostMessage是异步的,它立即返回,消息会在接收方的消息队列中等待处理。 5. WaitForSingleObject用于等待指定的对象变为信号状态。对于CWinThread*类型的m_pThrd,等待m_pThrd->m_hThread意味着等待该线程执行完毕。 6. __stdcall、__cdecl、__pascal是不同的调用约定。__stdcall由被调用者清理参数栈,常用于Windows API;__cdecl由调用者清理参数栈,是C/C++默认约定;__pascal在某些旧的 Pascal 库中使用,与__stdcall类似,但在不同平台上可能会有所不同。 7. 添加异常处理的MyWriteFile函数: ```cpp int MyWriteFile(CString strFileName, CString strText) { int nRet = 0; try { CFile myFile; if (!myFile.Open(strFileName, CFile::modeWrite|CFile::shareExclusive|CFile::modeCreate, NULL)) { throw CFileException(); } int nLen = strText.GetLength(); myFile.Write((char*)(LPCSTR)strText, nLen); myFile.Close(); } catch (CFileException* pEx) { pEx->Delete(); nRet = -1; } catch (...) { nRet = -1; } return nRet; } ``` 8. "func"是函数名,表示一个可调用的实体,用于执行特定任务。变量ttt可能是func函数的实例,或者是func返回值的存储位置,具体用途需要上下文来确定。如果ttt是一个函数指针,它能用来调用对应的函数。
剩余18页未读,继续阅读
- wodemimihuayuan2012-02-06自带答案的,适合学生考试的复习
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【中邮证券-2024研报】浙江鼎力(603338):Q3业绩高增,臂式产品有望持续放量.pdf
- 圣诞树html网页代码
- unity Shader转场效果合集
- ApiFox前置登录脚本,解决每次调接口免登录
- Matlab实现BiLSTM-Adaboost-ABKDE的集成双向长短期记忆网络自适应带宽核密度估计多变量回归区间预测(含完整的程序,GUI设计和代码详解)
- 【国盛证券-2024研报】博腾股份(300363):盈利能力实现改善,订单状况延续高增.pdf
- 【国盛证券-2024研报】皓元医药(688131):产能建设持续进行,业绩环比改善显著.pdf
- 【国盛证券-2024研报】一文读懂IEA《2024年东南亚能源展望.pdf
- 【国泰君安期货-2024研报】股票股指期权:下行升波,股指期权临近到期.pdf
- 【国泰君安期货-2024研报】EUDR对国内橡胶轮胎制品影响:欧盟市场不确定性增加,国内市场售价或上涨.pdf
- 【国泰君安期货-2024研报】股指期货将偏弱震荡,黄金、白银、铜、豆粕、豆油、菜籽油期货将偏弱震荡,原油、燃料油期货将偏强震荡.pdf
- 【国泰君安期货-2024研报】国泰君安期货商品期权日报.pdf
- 【国泰君安期货-2024研报】股指期货将偏弱震荡,黄金、白银、铜、原油期货将偏强震荡,碳酸锂期货将偏弱宽幅震荡,豆粕期货将偏弱震荡.pdf
- 【国泰君安期货-2024研报】股指期货将震荡整理,黄金、白银、铜、豆粕期货将偏弱震荡,碳酸锂期货将偏强震荡.pdf
- 【国泰君安期货-2024研报】南美大豆,玉米主产区天气展望.pdf
- 【国泰君安期货-2024研报】国泰君安期货商品研究晨报:黑色系列.pdf