期末考试VC练习题(带答案)_第1页
期末考试VC练习题(带答案)_第2页
期末考试VC练习题(带答案)_第3页
期末考试VC练习题(带答案)_第4页
期末考试VC练习题(带答案)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大一期末考试VC++练习题一、选择题C++语言属于(C)。A)自然语言B)机器语言C)面向对象语言D)汇编语言2.下面选项中不属于面向对象程序设计特色的是(C)。A)继承性B)多态性C)相似性D)封装性可用作C++语言用户表记符的一组表记符是(B).A)voiddefine+WORDB)a3_b3_123YNC)for—abcCaseD)2aDOsizeof4.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};",则元素a[2][1]的值为(A)。A)0B)4C)8D)65.以下情况中,哪一种情况不会调用拷贝构造函数(B)A)用派生类的对象去初始化基类对象时B)将类的一个对象赋值给该类的另一个对象时C)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象,函数执行返回调用者时6.以下哪一要点字可用于重载函数的区分(C)A)externB)staticC)constD)virtual7.以下有关数组的表达中,正确的选项是(B)A)C++中数组的储藏方式为列优先储藏数组名能够作为实参赋值给指针种类的形参C)数组下标索引从1开始,至数组长度n结束D)数组指针的语法形式为:种类名*数组名[下标表达式];以下有关继承和派生的表达中,正确的选项是(C)A)派生类不能够接见经过私有继承的基类的保护成员B)多继承的虚基类不能够够实例化C)若是基类没有默认构造函数,派生类就应当声明带形参的构造函数D)基类的析构函数和虚函数都不能够够被继承,需要在派生类中重新实现9.实现运行时多态的体系是(A)11A)虚函数B)重载函数C)静态函数D)模版函数若有下面的函数调用:fun(a+b,3,max(n—1,b));其中实参的个数是(A)A)3B)4C)5D)611.以下关于this指针的说法正确的选项是(B)A)this指针存在于每个函数之中B)在类的非静态函数中this指针指向调用该函数的对象C)this指针是指向虚函数表的指针D)this指针是指向类的函数成员的指针12.在以下关于C++函数的表达中,正确的选项是(C)A)每个函数最少要有一个参数B)每个函数都必定返回一个值C)函数在被调用从前必定先声明D)函数不能够自制调用自己13.以下运算符中,不能够重载的是(C)A)&&B)!=C)。D)—〉14.下面程序的输出结果是(B)#include<iostream〉usingnamespacestd;inti=0;intfun(intn){staticinta=2;a++;returna+n;}voidmain(){intk=5;{inti=2;k+=fun(i);}k+=fun(i);cout〈〈k;}A)13B)14C)15D)1615.下面的程序段的运行结果为(D)22charstr[]="job”,*p=str;cout〈<*(p+2)〈〈endl;A)98B)无输出结果C)字符’b’的地址D)字符’b’16.下面程序的输出结果是(C)#include<iostream>usingnamespacestd;classA{public:A(inti){x=i;}voiddispa(){cout〈〈x<<“,”;}private:intx;};classB:publicA{public:B(inti):A(i+10){x=i;}voiddispb(){dispa();cout〈〈x<<endl;}private:intx;};voidmain(){b(2);b。dispb();}A)10,2B)12,10C)12,2D)2,217.下面程序的输出结果是(C)#include<iostream>usingnamespacestd;classBase{public:Base(inti){cout〈〈i;}~Base(){}};classBase1:virtualpublicBase{public:Base1(inti,intj=0):Base(j){cout<<i;}~Base1(){}33};classBase2:virtualpublicBase{public:Base2(inti,intj=0):Base(j){cout<<i;}Base2(){}};classDerived:publicBase2,publicBase1{public:Derived(inta,intb,intc,intd):mem1(a),mem2(b),Base1(c),Base2(d),Base(a)cout〈〈b;}private:Base2mem2;Base1mem1;};voidmain(){DerivedobjD(1,2,3,4);}A)134122B)123412C)14302012D)14321218.下面程序的输出结果是(C)#include〈iostream〉usingnamespacestd;classBase{public:virtualvoidf(){cout〈<“f0+”;}voidg(){cout〈<“g0+”;}};classDerived:publicBase{public:voidf(){cout<<“f+”;}voidg(){cout<〈“g+”;}};voidmain(){Derivedd;Base*p=&d;p—〉f();p-〉g();}A)f+g+B)f0+g+C)f+g0+D)f0+g0+19.下面程序的输出结果是(C)include〈iostream〉usingnamespacestd;classSample44{friendlongfun(Samples){if(s。x<2)return1;returns.x*fun(Sample(s.x—1));}public:Sample(longa){x=a;}private:longx;};voidmain(){intsum=0;for(inti=0;i〈4;i++){sum+=fun(Sample(i));}cout〈〈sum;}A)12B)16C)10D)34以下程序的输出结果是:(D)#include<iostream〉usingnamespacestd;intfun(char*s)char*p=s;while(*p!0’)p++;return(p-s);}voidmain(){cout<〈fun("abc”)<<endl;}A.0B。1C.2D。355有以下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}执行这个程序段输出字符*的个数是(C)。5以下关于虚基类的描述中,错误的选项是(C)使用虚基类能够除掉由多继承产生的二义性构造派生类对象时,虚基类的构造函数只被调用一次C。声明classB:virtualpublicA说明类B为虚基类建立派生类对象时,第一调用虚基类的构造函数有下类定义ClassA{Char*a;Public:A():a(0){}A(char*aa){//把aa所指字符串拷贝到a所指向的储藏空间A=___________________;Strcpy(a,aa);~A(){delete[]a;}};正确的选择是(A)A.newchar[strlen(aa)+1]B。char[strlen(aa)+1]C。char[strlen(aa)]D。newchar[sizeof(aa)—1]假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则接见x对象中数据成员a的格式为66(X)。A)x。aB)x。a()C)x-〉GetValue()D)x.GetValue)假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A)。A)intAA::a()B)intAA:a()C)AA::a()D)AA::inta()26.有以下程序:#include<iostream>usingnamespacestd;classTest{public:Test(){}~Test(){cout〈〈’#';}};intmain(){Testtemp[2],*pTemp[2];return0;}执行这个程序输出星号(#)的个数为(B)。A)1B)2C)3D)4有以下程序:include<iostream〉usingnamespacestd;classMyClass{public:MyClass(inti=0){cout〈<1;}MyClass(constMyClass&x){cout〈<2;}MyClass&operator=(constMyClass&x){cout〈<3;return*this;}MyClass(){cout<〈4;}};intmain(){77MyClassobj1(1),obj2(2),obj3(obj1);obj1=obj2;return0;}运行时的输出结果是(A)。A)1123444B)11114444C)121444D)11314444有以下程序:#include〈iostream>usingnamespacestd;classpoint{public:staticintnumber;public:point(){number++;}~point(){number--;}};intpoint::number=0;voidmain(){point*ptr;pointA,B;{point*ptr_point=newpoint[3];ptr=ptr_point;}pointC;delete[]ptr;cout〈〈point::number;}程序结果为(A)A)3B)4C)6D)729.友元运算符obj++被C++编译器讲解为(D)。A。operator++(obj)B.operator++(obj,0)88B.obj.operator++()D.obj.operator++(0)二、程序填空1.用递归法求从1到n的立方和:f(1)=1(n=1)f(n)=f(n-1)+n3(n>1)#include<iostream〉usingnamespacestd;intf(int);intmain(){intn,s;cout〈<”inputthenumber:n";cin>>n;s=f(n);cout〈<"Theresultis〈<s”〈〈endl;return0;}intf(intn){//递归法求立方和函数if(n==1)return1;elsereturn(f(n-1)+n*n*n);}3.请将以下程序补充完满,使得输出结果为“DestructorDerivedDestructorBase”。include〈iostream〉usingnamespacestd;classBase{public:virtual~Base(){cout<<“DestructorBase”<<endl;}};classDerived:publicBase{public:99~Derived(){cout〈<“DestructorDerived”〈〈endl;}};voidmain(){Base*pBase=newDerived;deletepBase;}三、阅读程序,写出运行结果1.include〈iostream>include<cstring〉usingnamespacestd;classCD{charname[20];intnumber;public:voidInit(char*aa,intbb){strcpy(name,aa);number=bb;}char*Getname(){returnname;}intGetnumber(){returnnumber;}voidOutput(){cout<〈name〈〈’’<〈number<<endl;}};CDdx;voidmain(){CDdy;dx。Init("歌唱祖国”,30);dy.Init(”义勇军进行曲”,3*dx。Getnumber()+5);1010dx.Output();dy.Output();}歌唱祖国30义勇军进行曲952.#include〈iostream>usingnamespacestd;intf(inta){return++a;}intg(int&a){return++a;}voidmain(){intm=0,n=0;m+=f(g(m));n+=f(f(n));cout<〈”m=”〈〈m<〈endl;cout<<"n=”〈<n<〈endl;}#include〈iostream>usingnamespacestd;classDemo{public:Demo(){cout<〈"defaultconstructor\n";}Demo(constDemo&x){n”;}};DemouserCode(Demob){Demo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论