您好,欢迎访问三七文档
一.选择题(10分)1.以下四个关于类的访问控制的描述哪一个是错误的A.子类不能访问其父类的私有数据成员和成员函数B.子类的对象不能访问其父类的保护数据成员或者成员函数C.类的对象不能访问类的保护数据成员或者成员函数D.类的成员函数不能访问类中的私有数据2.下面有关重载函数的说法中正确的是A.重载函数必须有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同3.下列关于构造函数的描述中,错误的是A.构造函数可以设置默认参数B.构造函数在定义类对象时自动执行C.默认构造函数可以没有D.构造函数不可以重载4.下列对于WinMain函数的描述中,错误的是A.WinMain函数的名称是固定的B.WinMain函数是Windows程序的入口点C.WinMain函数不能有参数D.窗口函数与WinMain的关联是通过窗口类的注册实现的5.MFC常规动态链接库中不能导出的是A.C风格函数B.全局变量C.资源D.基于MFC的C++类VisualC++语言模拟试卷(一)1.设有说明“inti=10;floatx;”,执行“x=5/i;”后,x的值为_______。A.0.5B.0C.0.0D.1.02.为了避免嵌套的条件语句的二义性,C++语言规定else与_______配对。A.编辑时是在同一列上的ifB.其之前最近的还没有配对过的ifC.其之后最近的ifD.同一行上的if3.对于C++的函数,正确的叙述是__________。A.函数的定义不能嵌套,但函数的调用可以嵌套B.函数的定义可以嵌套,但函数的调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用均可以嵌套4.对于下面几个函数:voidf(intx){…}//1intf(inty){…}//2intf(inti,intj){…}//3floatk(intx){…}//4___________是重载函数。A.4个全部B.1和4C.2和3D.3和45.设有以下说明语句:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*prt)[3]=a,*p=a[0];能正确表示数组元素a[1][2]的表达式是_________。//(*(prt+1))[2],*((*(prt+1))+2),*(p+5)A.*((*prt+1)[2])B.*(*(p+5))C.(*prt+1)+2D.*(*(a+1)+2)6.下列叙述中,不正确的是__________。A.类的构造函数可以重载B.类的析构函数可以重载C.一个类可以不定义构造函数D.一个类可以不定义析构函数7.执行下面的程序后://a=10/((2+1)*(2+1)/(2+1)*(2+1))#includeiostream.h#defineSQR(X)(X)*(X)voidmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);cout“a=“a‘\n’;}输出的结果是a=___________。A.a=10B.a=1C.a=9D.a=08.对于C++源程序文件,其缺省的扩展名为_________。A..C++B..CPPC..CD..cc9.下列叙述中不正确的是_________。A.含纯虚函数的类称为抽象类B.不能直接由抽象类建立对象C.抽象类不能作为派生类和基类D.纯虚函数不能定义其实现部分10.执行下面的程序#includeiostream.hvoidmain(void){charc=0;coutc‘\n’;}输出的结果是____________。A.‘\0’B.语法错,不能执行C.0D.一个空行二填空题1.在C++中函数参数的传递方式有三种,分别是:__值传递__、_地址传递_和_引用传递_。2.当用成员函数重载双目运算符时,运算符的左操作数必定是____对象________。3.在类中,定义构造函数的目的是__在产生对象时,对对象的数据成员进行初始化_____。4.以下程序的输出结果是__1-2___。voidmain(void){intx=3;do{cout(x-=2)‘\t’;}while(!(--x);}6.以下程序的输出结果是__100______和___200_______。#includeiostream.hintabc(void){staticintj;j+=100;returnj;}voidmain(void){coutabc()‘\n’;coutabc()‘\n’;}7.以下程序的输出结果是___20_____和____30______。#includeiostream.hclassBase{protected:intx;public:Base(inta){x=a;}};classA:publicBase{public:A(inta):Base(a){};intGetX(){returnx;}};classB:publicBase{public:B(inta):Base(a){};intGetX(){returnx;}};classC:publicB,publicA{public:C(inta):A(a+10),B(a+20){};};voidmain(void){Cc(10);coutc.A::GetX()endl;coutc.B::GetX()endl;}9..以下程序输出的两个字母分别是___c_____和____d_______。#includeiostream.hClassX{public:virtualvoidf(){cout‘a’‘b’‘\n’;}};ClassY:publicX{public:voidf(){cout‘c’‘d’‘\n’;}};voidmain(){Yy;X*xp=&y;xp-f();}11.下面程序的功能是从数组arr(有n个元素)中找出最小元素值,并返回其引用。int&findmin(intarr[],intn){intpos=0;for(inti=1;i=n-1;++i)if(___arr[i]arr[pos]__)pos=_i__;return__arr[pos]__;}12.下面是求前n个自然数和的递归函数(即求1+2+3+…+n)。floatsum(intn){if(__n==1__)return1;elsereturn(___n+sum(n-1)__);}14.编程求100—300之间的所有素数。要求(1)每行输出5个素数;(2)判断一个整数是否为素数用一个函数来实现;//(3)将程序运行的结果存放在文件data.txt中。#includeiostream.h//#includefstream.h#includemath.h#includestdlib.hintprime(intn){inti,k;k=sqrt(n);for(i=2;ik;i++)if(n%i==0)break;if(i=k)return1;elsereturn0;}voidmain(void){/*ofstreamfile(data.txt);if(!file){coutCan'topenthefile!;exit(1);}*/inti,g=0;for(i=101;i300;i+=2){if(prime(i)){couti'';//filei'';++g;if(g%5==0){//file'\n';cout'\n';}}}//file.close();cout'\n';}VC++模拟题2一、选择(在A、B、C、D中选择一个正确的,40分,每题2分)1.若整型变量现在的值是–3,则表达式a&0xf运算后的值是A)-13B)13C)-3D)32.下列叙述中,哪一个不对?A)类的构造函数可以重载B)类的析构函数可以重载C)一个类可以不定义构造函数D)一个类可以不定义析构函数3.设有以下的定义:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是A)*(*prt+1)[2])B)*(*(p+5))C)(*prt+1)+2D)*(*(a+1)+2)4.执行下面的程序后,a的值是#defineSQR(X)X*Xvoidmain(){inta=10,k=2,m=1;a%=SQR(k+m)/SQR(k+m);}A)1B)3C)9D)05.以下程序段的输出结果是intx=3;do{cout(x-=2)’’;}while(!(--x));A)1B)30C)1–2D)死循环6.程序#includeiostream.hclassT{public:staticintx;};intT::x=1;voidmain(){Ta,b;a.x=10;b.x=20;couta.x‘'b.x;cout''T::xendl;}执行后的输出是A)202020B)001C)20201D)有语法或逻辑错误7.下列程序的输出是#includestring.h#includeiostream.hvoidmain(){charp1[20]=abcd,*p2=ABCD;charstr[50]=xyz;strcpy(str+2,strcat(p1+2,p2+1));coutstrendl;}A)xyabcABB)abcABzC)ABabczD)xycdBCD8.设有说明int(*ptr)[M];其中的标识符ptr是A)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型变量9.设有如下的函数定义intf(char*s){if(!(*s))return0;elsereturn1+f(s+1);}若在主程序中用下面的语句调用上述函数,则输出为coutf(“goodbye!”)endl;A)1B)6C)8D)010.设有类T的定义为classT{intx;public:T(inta){x=a;}};则下面的说明Ta;//(1)Tb(4);//(2)Tc=b;//(3)Td(b);//(4)正确的是A)(1),(2),(3),(4)B)(1),(2),(3)C)(2),(3)D)(2),(3),(4)11.下面的函数在m为3,n为1时返回的值是intAck(intm,intn){if(!m)returnn+1;if(!n)returnAck(m-1,1);elsereturnAck(m-1,Ack(m,n-1));}A)13B)2C)21D)死循环(递归无法结束)12.下面程序的输出是:#includeiostream.hclassBase{protected:intx;public:Base(inta){x=a;}};classA:publicBase{public:A(inta):Base(a){};intGetX(){returnx;}};classB:publicBase{public:B(inta):Base(a){};intGetX(){returnx;}};classC:publicB,publicA{public:C(inta):A(a+10),B(a+20){};};voidmain(){Cc(10);coutc.A::GetX()','c.B::GetX()endl;}A)30,20B)20,30C)20,20D)30,3013.程序的输出为:#includeiostream.hclassX{public:intx;X(inta){x=a;}};classA:virtualpublicX{public:A(inta):X(a){}};classB:vir
本文标题:VC++模拟试题一
链接地址:https://www.777doc.com/doc-2854398 .html