考试场次:2013_09月考_9月29日_C++/.NET/嵌入式试卷名称:2013年09月_C++_CSD13061.下列不是菜单基本风格的为:A.MF_POPUPB.MF_STRINGC.MF_SEPARATORD.MF_CHECKED正确答案:D2.关于用new分配内存空间,以下代码正确的是:A.intx=newint;B.int*x=newint;C.intx=newint(10);D.intx=newint[10];正确答案:B3.有如下类的定义:classA{public:voidfa(){cout“inAfa”endl;}virtualvoidfb(){cout“inAfb”endl;}};classB:publicA{public:voidfa(){cout“inBfa”endl;}voidfb(){cout“inBfb”endl;}};下列哪段代码运行时会输出以下结果:inAfainBfbA.A*pa=newA;pa-fa();pa-fb();B.Bb;A&pr=b;pr.fa();pr.fb();C.A*pa=newB;B*pb=newA;pa-fa();pb-fb();D.Aa;Bb;A&ar=b;B&br=a;ar.fa();br.fb();正确答案:B4.关于Windows的字符处理,下列说法错误的是?A.ASC码是最早的编码。B.DBCS编码中由1个或2个字节表示一个字符。C.UNICODE编码在WINDOWS平台下,采用2个字节表示一个字符。D.TCHAR就是宽字节字符,采用UNICODE编码。正确答案:D5.以下有关C++异常机制的讨论中不正确的是?A.C++的异常机制,一方面避免了逐层判断返回值所导致的流程复杂的弊端,另一方面也不会象setjmp/longjmp远程跳转那样使中间对象失去被析构的机会,是一种简洁高效的错误处理机制B.为了避免不必要的麻烦,通常的做法是抛出匿名临时对象作为异常,并以引用的方式捕获它们C.catch子句是依其出现的先后顺序被依次检视的,其中的异常类型应按照先子类后基类的顺序排列D.异常可以在任何场合下抛出,包括一个类的构造和析构函数正确答案:D6.Windows中和窗口创建相关的函数是?A.RegisterClassB.CreateWindowExC.ShowWindowD.GetMessage正确答案:B7.阅读如下代码,描述错误的为?创建定时器代码:SetTimer(hWnd,1,1000,TimerProc);A.此定时器间隔时间为1秒B.此定时器触发的WM_TIMER消息由窗口(hWnd)的窗口处理函数处理C.定时器的ID为1D.定时器关闭调用函数KillTimer(1);正确答案:B8.Windows字符编码方式不包括?A.ASCB.DBCSC.UNICODED.WINCODE正确答案:D9.下列说法不正确的是?A.我们可以使用qtdesigner设计界面得到.ui的界面文件。B.界面文件可以通过uic工具转换成.h文件。C.QTime类中有一个信号是timeout()。D.键盘处理函数中可以得到键盘上那个键被按下。正确答案:C10.阅读如下代码:typedefintT;classVector{T*data;//指向保存数据元素的内存区域intsz;//元素个数intmax;//记录内存区域的空间大小voidexpand(){//元素满了进行容量的扩展(空白处)}}空白处填上的代码应该是?A.max*=2;T*t=newT[max];for(inti=0;isz;i++){t[i]=data[i];}deletedata;data=t;B.max*=2;T*t=newT[max];for(inti=0;isz;i++){t[i]=data[i];}delete[]data;data=t;C.max*=2;T*t=newT[max];for(inti=0;imax;i++){t[i]=data[i];}delete[]data;data=t;D.max*=2;T*t=newT[max];for(inti=0;imax;i++){t[i]=data[i];}deletedata;data=t;正确答案:B11.Integer类的后缀自增运算符函数是?A.Integer&Integer::operator++(void){m_i++;return*this;}B.constIntegerInteger::operator++(int){Integerold=*this;m_i++;returnold;}C.Integer&Integer::operator++(void){Integerold=*this;m_i++;returnold;}D.constIntegerInteger::operator++(int){m_i++;return*this;}正确答案:B12.关于TranslateAccelerator函数理解错误的为:那么,输出应该为:A.这个函数必须放在GetMessage函数的后面,TranslateMessage函数的前面B.这个函数首先检查消息是否为WM_KEYDOWN/WM_SYSKEYDOWN消息,如果不是返回非0C.一旦确定为加速键将发送WM_COMMAND消息D.一旦确定为加速键将返回非0正确答案:B13.下列不是Windows常见消息的是?A.WM_CREATEB.WM_SIZEC.WM_ONCOMMANDD.WM_PAINT正确答案:C14.有如下类的定义:classEmp{stringname;intage;public:Emp(stringname=“”,intage=0):name(name),age(age){}stringgetName(){returnname;}intgetAge(){returnage;}};那么,下列那段代码使用类Emp是正确的:A.Empe;e.name=“Daniel”;e.age=30;coute.getName()“,”e.getAge()endl;B.Empe(“Daniel”,30);e.age++;coute.getName()“,”e.getAge()endl;C.Emp*e=newEmp(“Daniel”,30);coute.getName()“,”e.getAge()endl;deletee;D.Emp*e=newEmp;coute-getName()“,”e-getAge()endl;deletee;正确答案:D15.窗口类的查找过程?A.首先查找系统窗口类,其次应用程序全局窗口类,最后应用程序局部窗口类B.首先查找应用程序全局窗口类其次应用程序局部窗口类,最后系统窗口类C.首先查找应用程序局部窗口类其次应用程序全局窗口类,最后系统窗口类D.首先查找应用程序局部窗口类其次系统窗口类,最后应用程序全局窗口类正确答案:C16.阅读以下单例模式的代码classExample{intx;Example(){}staticExamplee;Example(constExample&){}public:(空白处)};那么,空白处的代码应该是?A.staticExample&getInstance(){returne;}B.Example&getInstance(){returne;}C.staticExamplegetInstance(){returne;}D.ExamplegetInstance(){returne;}正确答案:A17.阅读如下代码:caseWM_SYSCOMMAND:if(wParam==SC_CLOSE){intnRet=MessageBox(NULL,是否关闭,Infor,MB_YESNO);if(nRet==IDYES)PostMessage(hWnd,WM_QUIT,0,0);elsereturn0;}break;关于这段代码,下列说法错误的是:A.这段代码是用来关闭窗口的,当点窗口右上角的X时,直接关闭窗口。B.这段代码是用来关闭窗口的,当点窗口右上角的X时,弹出窗口可以选择是否关闭。C.关闭窗口不一定要使用WM_SYSCOMMAND消息。D.return0代码的功能是当消息框弹出后,点否不会关闭。正确答案:A18.在大型项目设计时,类的继承层次会相应比较复杂,假设有如下类的继承关系:classA{virtualvoidm(){}};classB:publicA{};classC:publicB{};classD:publicB{};现有一变量的定义如下:A*p=newB;那么,下列表达式的结果为逻辑真(true)的是:A.typeid(*p)==typeid(A);B.typeid(*p)==typeid(B);C.typeid(*p)==typeid(C);D.typeid(*p)==typeid(D);正确答案:B19.关于消息循环描述不正确的为?A.GetMessage只能获取属于本进程的消息。B.TranslateMessage只翻译可见字符的按键消息。C.DispatchMessage根据消息的句柄找到具体的窗口的窗口处理函数。D.PeekMessage为阻塞函数。正确答案:D20.下列关于windows应用程序描述不正确的是?A.控制台程序–DOS程序,本身没有窗口,调用windows的DOS窗口。B.窗口程序–拥有自己的窗口,通过自己窗口和用户进行交互操作。C.静态库程序–存放代码和数据的程序,拥有入口函数可以运行。D.动态库程序–存放代码和数据的程序,无法独立运行。正确答案:C21.关于创建窗口的描述不正确的为?A.子窗口的创建只需指明WS_CHILD|WS_VISIBLE即可。B.窗口类的附加数据缓冲区是基于该窗口类创建的所有窗口共享的缓冲区。C.窗口的附加数据缓冲区是窗口自己私有的缓冲区。D.创建窗口时必须指明是基于哪个窗口类创建。正确答案:A22.下列命令编译连接程序的命令错误的为?A.CL.EXE/cxxx.cB.LINK.EXExxx.objxxx.dllC.RC.EXExxx.rcD.CL.EXExxx.c/c正确答案:B23.阅读如下代码:#includeiostreamusingnamespacestd;classSample{intx;public:Sample(intx=0):x(x){}voidsetX(intx){this-x=x;}intgetX()const{returnx;}voidshow()const{coutx=xendl;}};voidfc(constSample&s){s.setX(300);s.show();}intmain(){}关于本段代码,下列说法正确的是?A.编译可以通过,运行没有输出。B.classSample中的代码编译不能通过C.函数fc代码编译不能通过D.主函数main需要返回正确答案:C24.有关运算符友元和成员函数实现的讨论,以下说法中不正确的是?A.如果双目运算符的左操作数,或单目运算符的操作数,为基本类型或难以扩展的类类型,则应选择以友元方式实现该运算符函数B.如果为某个特定的运算符同时提供了基于友元和成员函数的两种实现,则只有以函数调用语法使用该运算符,才能凭借作用域隐藏原则而避免冲突,使用中序语法则可能产生歧义C.所有可以成员函数方式实现的运算符也都可以友元函数方式实现D.如果某个双目运算符的左右操作数都是类类型的对象,则该运算符函数可能既是左操作数类型的成员,同时也是右操作数类型的友元正确答案:C25.关于拷贝构造函数,以下说法错误的是?A.参数(对象)值传递时,调用拷贝构造B.函数返回临时值(对象),调用拷贝构造C.用相同类型的对象做参数,构造新对象时,调用拷贝构造D.引用传递调用拷贝构造,地址传递不调用正确答案:D