




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、选择题C++语言属于(C)。A)自然语言B)机器语言C)面向对象语言D)汇编语言下面选项中不属于面向对象程序设计特征的是(C)。A)继承性B)多态性C)相似性D)封装性可用作C++语言用户标识符的一组标识符是(B)。A)voiddefine+WORD B)a3_b3_123YNC)for-abcCase D)2aDOsizeof假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。A)0B)4C)8D)6下列情况中,哪一种情况不会调用拷贝构造函数(B)A)用派生类的对象去初始化基类对象时B)将类的一个对象赋值给该类的另一个对象时C)函数的形参是类的对象,调用函数进行形参和实参结合时D)函数的返回值是类的对象,函数执行返回调用者时以下哪一关键字可用于重载函数的区分(C)A)extern B)static C)const D)virtual下列有关数组的叙述中,正确的是(B)A)C++中数组的存储方式为列优先存储B)数组名可以作为实参赋值给指针类型的形参C)数组下标索引从1开始,至数组长度n结束D)数组指针的语法形式为:类型名*数组名[下标表达式];下列有关继承和派生的叙述中,正确的是(C)A)派生类不能访问通过私有继承的基类的保护成员B)多继承的虚基类不能够实例化C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现实现运行时多态的机制是(A)A)虚函数 B)重载函数 C)静态函数 D)模版函数若有下面的函数调用:fun(a+b,3,max(n-1,b));其中实参的个数是(A)A)3 B)4 C)5 D)6下列关于this指针的说法正确的是(B)A)this指针存在于每个函数之中B)在类的非静态函数中this指针指向调用该函数的对象C)this指针是指向虚函数表的指针D)this指针是指向类的函数成员的指针在下列关于C++函数的叙述中,正确的是(C)A)每个函数至少要有一个参数 B)每个函数都必须返回一个值C)函数在被调用之前必须先声明 D)函数不能自己调用自己下列运算符中,不能重载的是(C)A)&& B)!= C). D)->下面程序的输出结果是(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)13 B)14 C)15 D)16下面的程序段的运行结果为(D)charstr[]="job",*p=str;cout<<*(p+2)<<endl;A)98 B)无输出结果C)字符’b’的地址D)字符’b’下面程序的输出结果是(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(){ Bb(2); b.dispb();}A)10,2 B)12,10 C)12,2 D)2,2下面程序的输出结果是(C)#include<iostream>usingnamespacestd;classBase{public: Base(inti){cout<<i;} ~Base(){}};classBase1:virtualpublicBase{public: Base1(inti,intj=0):Base(j){cout<<i;} ~Base1(){}};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)134122 B)123412 C)14302012 D)143212下面程序的输出结果是(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+下面程序的输出结果是(C)#include<iostream>usingnamespacestd;classSample{ 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)12 B)16 C)10 D)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.3有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}执行这个程序段输出字符*的个数是(C)A.10B.3C.4D.5下列关于虚基类的描述中,错误的是(C)A. 使用虚基类可以消除由多继承产生的二义性B. 构造派生类对象时,虚基类的构造函数只被调用一次C. 声明classB:virtualpublicA说明类B为虚基类D. 建立派生类对象时,首先调用虚基类的构造函数有下类定义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的格式为()。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()有如下程序:#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(){MyClassobj1(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)7友元运算符obj++被C++编译器解释为(D)。A.operator++(obj)B.operator++(obj,0)B.obj.operator++()D.obj.operator++(0)30、求“abc\\12\n”字符串的长度(C)(A)5(B)6(C)7(D)831、字符串常量”\tMyNane\103”的长度是:(B)(A)6 (B)8 (C)12 (D)1432、设x=7,执行语句y=++x,则y等于(D)(A)6(B)7(C)9(D)833、下列字符列中,合法的长整型常量是:(D) (A)4.18e3 (B)0.46793 (C)4L (D)95673834、在C++中,char类型数据在内存的存储形式是:(D) (A)原码 (B)反码 (C)补码 (D)ASCII码35、以下运算符中,优先级最高的是:(B) (A)*= (B)–> (C)&& (D)>=36、若有定义“intx”,则下面不能将x的值强制转换成双精度数的表达式(D)(A)(double)x(B)double(x)(C)(double)(x)(D)x(double)37、设有变量定义inti,j;与表达式i==0&&j==0等价的表达式是:(B)(A)i||j (B)!i&&!j (C)!i==!j (D)i==j38、下述叙述正确的是(D)。(A)字符型变量不能赋予整数 (B)任意整数都能表示字符(C)字符型变量可存放多个字符 (D)字符数据的值是整数值39、设变量inta=5;下列哪个表达式计算后,使得变量b的值等于2?(A)(A)b=a/2 (B)b=6-(a--) (C)b=a%2 (D)b=a>3?3:240、if…else中为避免嵌套出现二义性,C++规定else子句总与(B)(A)其之前最近的if语句(B)其之前最近且尚未配对的if语句(C)缩排位置相同的if语句(D)其之后最近的if语句41、逻辑运算符两侧运算对象的数据(D)(A)只能是逻辑型数据(B)只能是整型数据(C)只能是整型或字符型数据(D)可以是任何类型的数据42、设变量x,y,a,b,c,d的值为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值分别是:(B)(A)0,0 (B)0,1 (C)1,0 (D)1,143、已知intx=1,y=0;执行下面程序段后,y的值为(C)。 if(x){if(x>0)y=1;}elsey=-1;(A)-1 (B)0 (C)1 (D)不确定44、已知intx=1,y=0,w;执行下面程序段后,w的值为(A)。 if(x)if(y)w=x&&y;elsew=y;(A)0 (B)-1 (C)1 (D)不确定45、语句while(w)…中的表达式w的等价表示是:(C)(A)w==0 (B)w==1 (C)w!=0 (D)w!=146、语句while(a>b)a--;等价于(D)。(A)if(a>b)a--; (B)do{a--}while(a>b);(C)for(a>b)a--; (D)for(;a>b;a--);47、已知inti=0,x=0;下面while语句执行时循环次数为(D)。while(x||i){x++;i++;}D(A)3 (B)2 (C)1 (D)048、执行语句x=1;while(++x<7)cout<<’*’;后输出结果是:(A)(A)***** (B)****** (C)******* (D)********49、C++中循环语句while和do…while的主要区别是(A)(A)do…while的循环体至少无条件执行一次(B)while的循环控制条件和do…while的循环控制条件的控制条件的控制方式是相反的(C)do…while允许从外部转到循环体内,while不允许(D)while的循环体不能复合语句50、若有以下程序段:for(m=1;m<=100;m++){ cin>>y; if(y<0) continue; cout<<m;}则下面正确的说法是(D)(A)当y<0时整个循环结束(B)当y>=0时什么也不输出(C)cout语句永远也不执行(D)最多输出100个非负整数51、语句“while(!x)…”等价于(A)(A)while(x==0)…(B)while(x!=1)…(C)while(x!=0)…(D)while(x==1)…52、一维数组a正确定义是(D)。(A)chara(10)(B)inta[](C)intk=5,a[k](D)chara[]={‘a’,’b’,’c’}53、下面不能够判断字符串S是空串的是(D)(A)if(S[0]==0)(B)if(strlen(S)==0)(C)if(strcmp(S,””)==0)(D)if(S==’\0’)54、charx[5]={‘a’,’b’,’\0’,’c’,’\0’}输出的结果是(B )(A)’a’’b’(B)ab(C)abc(D)abc55、设有下面和程序段chara[3],b[]="China"a=b;cout<<a;则(A )(A)编译出错(B)运行后将输出Ch(C)运行后将输出Chi(D)运行后将输出Chian56、判断字符串s1是否大于字符s2是空串的是(A)(A)if(strcmp(s1,s2)>0)(B)if(strcmp(s1,s2))(C)if(strcmp(s2,s1)>0)(D)if(s1>s2)57、下面关于C++字符数组的叙述中,错误的是(D)。(A)字符数组可以放字符串(B)字符数组的字符可以整体输入、输出(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值(D)可以用关系运算符对字符数组比较大小58、以下对一维数组a的正确定义是(D)(A)chara(10);(B)inta[];(C)intk=5,a[k];(D)chara[]={‘a’,’b’,’c’};59、若二维数组y有m列,则位于y[i][j]之前的元素个数有(C)个(A)j*m+i(B)i*m+j(C)i*m+j-1(D)i*m+j+160、非数组、指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是(B)(A)地址传递(B)单向值传递(C)双向值传递(D)由用户指定传递方式61、若有数组名作为函数调用的实参,则传递给虚参的是(A)(A)数组的首地址(B)数组第1个元素的值(C)数组中全部元素的值(D)数组元素的个数62、以下正确的函数原型声明语句是(C)(A)intfun(inta,b);(B)floatfun(inta;intb);(C)doublefun();(D)intfun(chara[][]);63、已有定义“inta=5,&ra=a;”则下叙述中,错误的说法是(C)。(A)ra是变量a的引用(B)ra的值为5(C)ra是a的地址值(D)执行“ra=10;”后变量a的值也变为1064、若有定义“intc[5],*p=c;”,则以下对数组c元素地址的正确引用是(D)(A)p+5(B)c++(C)&c+1(D)&c[0]65、设intx=1,y=3,能正确表示代数式3x|x-y|的C++表达式是(A)。(A)abs(x-y)*3*x (B)3x(abs(x-y)) (C)3x||(x-y) (D)3*x*(x-y)||3*x*(y-x)66、有函数原型voidf(int*);下面选项中,正确的调用是(C)。(A)char*s="ABCD";f(s); (B)inta=15;f(a);(C)intm=100;f(&m); (D)doublepi=3.14;f(pi);67、下面关于new和delete运算的叙述中,错误的说法是(C)。(A)由new分配的内存空间是连续的(B)如果当前内存无足够的空间可分配,则new运算符返回NULL(C)由new运算符分配的内存空间,当函数执行结束时系统会自动收回(D)对于程序中的静态数组占用的存储空间不能使用delete来释放68、下面判断是否构成重载函数的条件中,错误的判断条件是(D)(A)参数类型不同(B)参数个数不同(C)参数顺序不同(D)函数返回值不同69、假设a,b是全局变量,下面设置函数参数默认值的函数原型中,错误的是(C)(A)intfun(intx,inty=10);(B)intfun(intx=5,inty=10);(C)intfun(intx=5,inty);(D)intfun(intx,inty=a+b);70、设有定义:structdata{inti;charch;doubleq;doublef}b;结构体变量b占用内存的字节数是(D)(A)18(B)19(C)20(D)2171、关于结构体概念的叙述中,正确的说法是(C)。(A)相同类型数据的集合称为结构(B)不同类型数据的集合称为结构体(C)数据的集合称为结构体(D)整数的集合称为结构体72、设有说明语句structabc{ intm; floatn;}stype;则下面错误的叙述是(B)struct是定义结构体类型的关键字stype是结构体类型名m和n都是结构体成员stype是结构体变量名73、对枚举类型ee的定义中,正确的这定义是(A)。(A)enumee{A,B,C,D};(B)enumee{‘A’,’B’,’C’,’D’};(C)enumee={A,B,C,D};(D)enumee={‘A’,’B’,’C’,’D’};74、关于同类型结构体与同类型联合体赋值的叙述中,正确的说法是(A)(A)联合体变量之间可以直接赋值,结构体变量之间也可以直接赋值(B)联合体变量之间可以直接赋值,结构体变量之间不可以直接赋值(C)联合体变量之间不可以直接赋值,结构体变量之间可以直接赋值(D)联合体变量之间不可以直接赋值,结构体变量之间也不可以直接赋值75、一个结构体变量所占用的内存字节数是(D)(A)结构体中第一个成员所需的内存字节数(B)结构体中最后一个成员所需的内存字节数(C)结构体中占用内存最大的成员所需的字节数(D)结构体中各成员所需的内存字节数和76、当定义一个联合体变量时系统分配给它的内存字节数是(C)(A)联合体中第一个成员所需的内存字节数(B)联合体中最后一个成员所需的内存字节数(C)联合体中占用内存最大的成员所需的字节数(D)联合体中各成员所需的内存字节数和77、下面叙述中错误的是(C)。(A)预处理命令都必须以“#”开始(B)在程序中凡是以“#”开始的语句行都是预处理命令行(C)C++程序在程序执行过程中对预处理命令进行处理(D)一行只能写一条预处理命令78、下面表达式组中不等价的一组是(C)(A)a&=b与a=&a(B)a|=b与a=a|b(C)a!=b与a=a!b(D)a^=b与a=a^b79、设x=001101012,则下面能使x的高4位取反,低4位不变,则下面能实现此功能的是()(A)x=x&0x0f(B)x=x|0x0f(C)x=x^0360(D)x=x^03380、设x=001101102,则若想通过x&y运算使x中的低4位不变,高4位清零,则下面能实现此功能的是(B)(A)x=x|0x0f(B)x=x&0x0f(C)x=x|0xf0(D)x=x&0xf081、设a和b是两个结构体变量,下面正确的表达式是(A)(A)a=b(B)a=b+1(C)a>b(D)a==b82、关于结构体变量运算重载中,正确的单目运算符重载语法格式(B)(A)函数类型名单目运算符operator(虚参){函数体}(B)函数类型名operator单目运算符(虚参){函数体}(C)函数类型名单目运算符operator(){函数体}(D)函数类型名operator单目运算符(){函数体}83、后缀—运算符的重载函数语法格式如下:函数类型operator--(虚参,int){函数体}则下面关于第2个虚参的叙述中,正确的说法是(C)第2个参数必须给出参数名称第2个参数不能给出参数名称第2个参数必须是int型参数,其参数名可有可无第2个参数也可以是long型参数84、设分数的结构体定义如下:structFraction{ intnume; intdeno;};则下面关于取自身的单目运算符“+”的运算符重载函数中,最合适是(A)。Fractionoperator+(Fractionx){returnx;}Fractionoperator+(Fraction&x){returnx;}voidoperator+(Fractionx){returnx;}voidoperator+(Fraction&x){returnx;}85、派生类对象只能访问基类中的(A)(A)公有继承的公有的成员(B)公有继承的私有成员(C)公有继承的保护成员(D)私有继承的公有成员86、关于派生类叙述中,错误的说法是(B)(A)派生类中从基类公有继承过来的分有成员的访问权限不变(B)任何类都有基类(C)派生类还可作为另一类的基类(D)基类中的构造函数和析构函数是不可继承的87、设有类的定义如下:classAAA{ intx; chars[12];}ob;则在VC++环境下,变量ob所占内存空间字节数是(C)字节(A)14(B)15(C)16(D)1788、关于构造函数的叙述中,错误的说法是(D)(A)构造函数的名称必须为类名(D)构造函数最多只能有一个(C)创建对象时自动执行构造函数(D)构造函数无任何函数类型89、(A)只能访问静态成员变量(A)静态成员函数(B)虚函数(C)构造函数(D)析构函数90、C++中类有两种用法,一种是类的实例化,即生成类对象,另一种是通过(B)派生出新的类(A)复用(B)继承(C)重载(D)封装91、下面关于类概念的描述中,(D)是错误的。A)类是抽象数据类型的实现B)类是具有共同行为的若干对象的统一描述体C)类是创建对象的样板D)类就是C语言中的结构体类型92、面向对象程序设计思想的主要特征中不包括(D)。A)封装性B)多态性C)继承性D)功能分解,逐步求精93、在C++中,函数原型不能标识(D)。A)函数的返回类型B)函数参数的个数C)函数参数类型D)函数的功能94、有关析构函数的说法不正确的是(B)。A)析构函数有且仅有一个B)析构函数和构造函数一样可以有形参C)析构函数的功能是用来释放一个对象D)析构函数无任何函数类型95、已知X类.则当程序执行到语句,X
array[3];时,调用了(D)次构造函数。A)0B)1C)2D)396、类定义的内容允许被其他对象无限制地存取是(C)。A)private部分B)protected部分C)public部分D)以上都不对97、关于new运算符的下列描述中,(D)是错误的.。A)它可以用来动态创建对象和对象数组B)使用它创建对象或对象数组,可以使用运算符DELETE删除C)使用它创建对象时要调用构造函数D)使用它调用对象数组时不许指定初始值98、对于下面程序段,表达式正确的是(A)。classBase{public:intb;};classBase1:publicbase{};classBase2:publicbase{};classDerived:publicbase1,publicbase2{public:intfun();};Derivedd;A)d.Base1::bB)d.Base::bC)d.bD)d.Base::fun()99、可以用p.a的形式访问派生类对象p的基类成员a其中a是(D)。A)私有继承的公有成员B)公有继承的私有成员C)公有继承的保护成员D)公有继承的公有成员100、下列关于C++类的描述中错误的是(C)。A)类与类之间可以通过一些手段进行通信和联络B)类用于描述事物的属性和对事物的操作C)类与类之间必须是平等的关系,D)类与类之间可以通过封装而具有明确的独立性101、下列描述中哪个是正确的(B)。A)私有派生的子类无法访问父类的成员B)类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的C)私有派生类不能作为基类派生子类D)私有派生类的所有子孙类将无法继续继承该类的成员102、下列关于构造函数说法不正确的是(C)。A)构造函数必须与类同名B)构造函数可以省略不写C)构造函数必须有返回值D)在构造函数中可以对类中的成员进行初始化103、如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是(D)。A)一元运算符B)二元运算符C)选项A)和选项B)都可能D)重载错误104、在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是(D)。A)一元成员运算符B)二元成员运算符C)一元友元运算符D)选项B)和选项C)都可能105、一个类的友元函数能够访问该类的(D)。A)私有成员B)保护成员C)公有成员D)所有成员106、下列关于类定义的说法中,正确的是(A)。A)类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的C)数据成员必须被声明为私有的D)成员函数只能在类体外进行定义107、通过运算符重载,可以改变运算符原有的(A)。A)操作数类型B)操作数个数C)优先级D)结合性108、在C++语言中,数据封装要解决的问题是(D)。A)数据的规范化B)便于数据转换C)避免数据丢失D)防止不同模块之间数据的非法访问109、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(D)。A)公有类型B)私有类型C)保护类型D)友元类型110、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(C)。A)友元函数B)虚函数C)构造函数D)析构函数111、类的析构函数的作用是(D)。A)一般成员函数的初始化B)类的初始化C)对象的初始化D)删除类创建的对象112、下列说法正确的是(B)。A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D)类的内联函数必须在类体外通过加关键字inline定义113、下列对派生类的描述中,错误的是(D)。A)一个派生类可以作为另一个派生类的基类B)派生类至少有一个基类C)派生类的成员除了自己的成员外,还包含了它的基类的成员D)派生类中继承的基类成员的访问权限到派生类保持不变114、运算符的重载是对已有的运算符赋予多重含义,因此(C)。A)可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义B)可以改变一个已有运算符的优先级和操作数个数C)只能重载C++中已经有的运算符,不能定义新运算符D)C++中已经有的所有运算符都可以重载115、如果类A被说明成类B的友元,则(D)。A)类A的成员即是类B的成员B)类B的成员即是类A的成员C)类A的成员函数不得访问类B的成员D)类B不一定是类A的友元116、不能作为重载函数的调用的依据是(D)。A)参数的个数B)参数的类型C)函数的类型D)函数的名称117.能作为C++程序的基本单位是(C)。A.字符B.语句C.函数D.源程序文件118.程序中主函数的名字为(A)。A.mainB.MAINC.MainD.任意标识符119.关于C++与C语言的关系的描述中,(D)是错误的。A.C语言是C++的一个子集;B.C语言与C++是兼容的;C.C++对C语言进行了一些改进;D.C++和C语言都是面向对象的120.可用作C++语言用户标识符的一组标识符是(B)。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof121、存储以下数据,占用存储字节最多的是(D)。A.0B.‘0’C.“0”D.0.06.设inta=12;则执行完语句a+=a*a;后,a的值是(C)。A.12B.144C.156D.288122.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式的表达式是(D)。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c123.以下说法中正确的是(B)。A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返回值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中124.下面有关构造函数的描述中,正确的是(B)。A.构造函数可以带有返回值B.构造函数的名字与类名完全相同C.构造函数必须带有参数D.构造函数必须定义,不能缺省125.在声明类时,下面的说法正确的是(C)。A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是registerC.private,public,protected可以按任意顺序出现D.没有用private,public,protected定义的数据成员是公有成员126.在下面有关析构函数特征的描述中,正确的是(A)。A.一个类可以有多个析构函数B.析构函数与类名完全相同C.析构函数不能指定返回类型D.析构函数可以有一个或多个参数127.构造函数是在(B)时被执行的。A.程序编译B.创建对象C.创建类D.程序装入内存128.下面有关静态成员函数的描述中,正确的是(B)A.在静态成员函数中可以使用this指针B.在建立对象前,就可以为静态数据成员赋值C.静态成员函数在类外定义是,要用static前缀D.静态成员函数只能在类外定义129.下面有关友员函数的描述中,真确的说法是(A)A.友员函数是独立于当前类的外部函数B.一个友员函数不可以同时定义为两个类的友员函数C.友员函数必须在类的外部进行定义D.在类的外部定义友员函数时必须加上friend关键字130.友员的作用之一是(A)A.提高程序的运行效率B.加强类的封装C.实现数据的隐蔽性D.增加成员函数的种类131.使用派生类的主要原因是(A)A.提高代码的可重用性B.提高程序的运行效率C.加强类的封装性D.实现数据的隐藏在C++中继承方式有几中(C)A.1B.2C.3D.4132.假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是(D)A.classderived::studentprivate{//………….}B.classderived::studentpublic{//………….}C.classderived::publicstudent{//………….}D.classderived::privatestudent{//………….}133、派生类的对象对它的基类成员中(C)是可以访问的。A.公有继承的公有成员;B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承的公有成员。134.类中定义的成员默认为(b)访问属性。A.publicB.privateC.protectedD.Friend135.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)合适。A.内联函数;B.重载函数;C.递归调用;D.嵌套调用。136.C++对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数;C.规定函数说明必须用原型;D.引进了类和对象的概念;137.按照标识符的要求,(A)符号不能组成标识符。A.连接符B.下划线C.大小写字母D.数字字符138.下列变量名中,(A)是合法的。ACHINABbyte-sizeCdoubleDA+a139.下列各种函数中,(C)不是类的成员函数。A构造函数B析构函数C友元函数D拷贝构造函数140.下列(A)是正确的语句。A;Ba=17Cx+yDcout<<"\n"141.不能作为函数重载判断的依据的是(B)A.返回类型B.constC.参数个数D.参数类型142.通常,拷贝构造函数的参数是(C)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名143.下面对静态数据成员的描述中,正确的是(C)A类的不同对象有不同的静态数据成员值B类的每个对象都有自己的静态数据成员C静态数据成员是类的所有对象共享的数据D静态数据成员不能通过类的对象调用144、假定AB为一个类,则执行ABx;语句时将自动调用该类(B)A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数145.C++程序从上机到得到结果的几个操作步骤依次是(B)。A.编译、编辑、连接、运行B.编辑、编译、连接、运行C.编译、运行、编辑、连接D.编辑、运行、编辑、连接146.假定一条定义语句为“inta[10],x,*p=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为(A)。A.x=p[3];B.x=*(a+3);C.x=a[3];D.x=*p+3;147.关于封装,下列说法中不正确的是(D)。A.通过封装,对象的全部属性和操作结合在一起,形成一个整体B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C.通过封装,每个对象都成为相对独立的实体D.通过封装,对象的属性都是不可见的148.预处理命令在程序中都是以(B)符号开头的。A.*B.#C.&D.@149.存储以下数据,占用存储字节最少的是(B)。A.0B.‘0’C.“0”D.0.0150.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车151.假定变量m定义为“intm=7;”,则定义变量p的正确语句(B)。A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m;152.下面的哪个保留字不能作为函数的返回类(C)。A.voidB.intC.newD.long153.采用重载函数的目的是(B)。A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性154.假定AB为一个类,则(C)为该类的拷贝构造函数的原型说明。A.AB(ABx);B.AB(intx);C.AB(AB&x);D.voidAB(AB&x);155、C++对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;156、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(A)。A.类B.对象C.函数体D.数据块157、关于new运算符的下列描述中,(C)是错误的。A、它可以用来动态创建对象和对象数组;B、使用它创建的对象或对象数组可以使用运算符delete删除;C、使用它创建对象时要调用构造函数;D、使用它创建对象数组时必须指定初始值;158、(D)不是构造函数的特征。A、构造函数的函数名与类名相同;B、构造函数可以重载;C、构造函数可以设置缺省参数;D、构造函数必须指定类型说明。159、假定一个类的构造函数为B(intx,inty){a=x--;b=a*y--;},则执行Bx(3,5);语句后,x.a和x.b的值分别为(C)A、3和5B、5和3C、3和15D、20和5160、关于成员函数特征的下列描述中,(A)是错误的。A、成员函数一定是内联函数;B、成员函数可以重载;C、成员函数可以设置缺省参数值;D、成员函数可以是静态的;161、在公有继承的情况下,基类成员在派生类中的访问权限(B)。A、受限制B、保持不变C、受保护D、不受保护161、友元的作用是(A)。A、提高程序的运用效率;B、加强类的封装性;C、实现数据的隐藏性;D、增加成员函数的种类;162、在C++中,关于下列设置缺省参数值的描述中,(B)是正确的。A、不允许设置缺省参数值;B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;C、只能在函数的定义性声明中指定参数的缺省值;D、设置缺省参数值时,必须全部都设置;163、关于delete运算符的下列描述中,(C)是错误的。A、它必须用于new返回的指针;B、使用它删除对象时要调用析构函数;C、对一个指针可以使用多次该运算符;D、指针名前只有一对方括号符号,不管所删除数组的维数。164、constint*p说明不能修改(C)。A、p指针B、p指针指向的变量C、p指针指向的数据类型D、all165、当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为(B)。A、fstreamfin(“A:xxk.dat”,1)Bifstreamfin(“A:xxk.dat”,ios::nocreate)C、ofstreamfin(“A:xxk.dat”)D、ifstreamfin(“A:xxk.dat”,ios::app)166、派生类的对象对它的基类成员中(A)是可以访问的。A、公有继承的公有成员;B、公有继承的私有成员;C、公有继承的保护成员;D、私有继承的公有成员;167、假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为(C)。A、n-1B、nC、n+1D、n+2168、在inta=3;*p=&a;中,*p的值是(D)。A、变量a的地址值B、无意义C、变量p的地址值D、3169、下列常量中,(D)不是字符常量。A、’\005’B、’\n’C、’c’D、“a”170、在inta=3,*p=&a;中,*p的值是(D)。A)变量a的地址值B)无意义C)变量p的地址值D)3171、以下4个选项中,不能看作一条语句的是(B)。A)if(b==0)m=1;n=2;B)a=0,b=0,c=0;C)if(a>0);D){;}172、(D)不是构造函数的特征。A)构造函数的函数名与类名相同B)构造函数可以重载C)构造函数可以设置缺省参数D)构造函数必须指定类型说明173、以下程序段中与语句k=a>b?1:0;功能等价的是(D)。A)if(a>b)k=1;b)if(a>b)k=0C)if(a>b)k=1;D)if(a<b)k=0;elsek=0;elsek=1;174、下列常量中,(D)不是字符常量。A)’\005’B)’\n’C)’c’D)"a"175、表示“x大于1而小于10”的逻辑表达式是(B)。A)1<x<10B)x>1&&x<10C)!(x<=1||x>=10)D)x>1||x<10176、关于成员函数特征的下列描述中,(A)是错误的。A)成员函数一定是内联函数B)成员函数可以重载C)成员函数可以设置缺省参数值D)成员函数可以是静态的177、有以下程序#include<iostream.h>voidmain(){inti,s=0;for(i=1;i<10;i+=2)s+=i;cout<<s;}程序执行后的输出结果是(C)。A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和178、设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。A)p=1;B)*q=2;C)q=p;D)*p=5;179、(A)能正确输出结果:C++。A)chars[]="C++";cout<<s<<endl;B)chars[3]="C++";cout<<s<<endl;C)chars[3]={'C','+','+','\0'};cout<<s<<endl;D)chars[3]={'C','+','+'};cout<<s<<endl;180、有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a,b;b=p[5];b中的值是(B)。A)5B)6C)8D)9181、有以下程序#include<iostream.h>voidmain(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};cout<<p[3]<<endl;}执行后输出结果是(B)A)dcdbeB)abbdC)abcD)abb182、下列静态数据成员的特性中,(C)是错误的。A)说明静态数据成员时前边要加修饰符staticB)静态数据成员要在类体外进行初始化C)静态数据成员不是所有对象所共用的D)引用静态数据成员时,要在其名称前加<类名>和作用域运算符183下列变量名中,(A)是合法的。A.CHINAB.byte-sizeC.doubleD.A+a184.一个函数无返回值时,应选择的说明符是_____C_____。a.staticb.externc.voidd.无说明符185.成员函数可声明为静态的,条件是它不访问_____C____类成员。a.静态b.常数c.非静态d.公共186.一般情况下,内联函数执行起来比标准函数______B________。a.更慢b.更快c.次数更多d.以上都不是187.对重载函数形参的描述中,错误的是_______C______。a.参数的个数可能不同b.参数的类型可能不同c.参数的顺序可能不同d.参数的个数、类型、顺序都相同,只是函数的返回值类型不同188.在C++中,混合类型表达式______A_____。a.允许存在b.为一错误c.从int到floatd.从float到int189.如果有intx,*p;floaty,*q;则下面操作正确的是____C________。a.p=xb.p=qc.p=&xd.p=&y190.静态数据成员的生存期________A______。a.与整个程序相同b.不长于类的生存期c.取决于创建的对象数d.以上都不是191.若数组名作实参而指针变量作形参,函数调用时实参传给形参的是(D)a.数组的长度b.数组第一个元素的值c.数组所有元素的值d.数组第一个元素的地址192、C++是(C)。A.面向对象的程序设计语言B.面向过程的程序设计语言C.既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D.非结构化的程序设计语言193、面向对象程序设计思想的主要特征中不包括(D)A.封装性B.多态性C.继承性D.功能分解,逐步求精194、若定义:stringstr;当语句cin>>str;执行时,从键盘输入:MicrosoftVisualStudio6.0!所得的结果是str=(B)。A.MicrosoftVisualStudio6.0!B.MicrosoftC.MicrosoftVisualD.MicrosoftVisualStudio6.0195、考虑下面的函数原型声明:voidtestDefaulParam(inta,intb=7,charz='*');下面函数调用中,不合法的是(C)。A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');196、下列语句中,将函数intsum(intx,inty)正确重载的是(C)。A.floatsum(intx,inty);B.intsum(inta,intb);C.floatsum(floatx,floaty);D.doublesum(inty,intx);197、下列表示引用的方法中,(A)是正确的。已知:inta=1000;A.int&x=a;B.char&y;C.int&z=1000;D.float&t=&a;198、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)。A.内联函数B.重载函数C.递归调用D.嵌套调用199、下列有关C++类的说法中,不正确的是(D)。A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的200、已知X类,则当程序执行到语句:Xarray[3];时,调用了(D)次构造函数。A.0B.1C.2D.3201、下面说法中,正确的是(B)A.一个类只能定义一个构造函数,但可以定义多个析构函数B.一个类只能定义一个析构函数,但可以定义多个构造函数C.构造函数与析构函数同名,只要名字前加了一个求反符号(~)D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以202、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,(A)是正确的。A.voidprint()const;B.constvoidprint();C.voidconstprint();D.voidprint(const);203、下面描述中,表达错误的是(B)A.公用继承时基类中的public成员在派生类中仍是public的B.公用继承时基类中的private成员在派生类中仍是private的C.公用继承时基类中的protected成员在派生类中仍是protected的D.私有继承时基类中的public成员在派生类中是private的204、设置虚基类的目的是(B)。A.简化程序B.消除二义性C.提高运行效率D.减少目标代码205、下面(B)的叙述不符合赋值兼容规则。A.派生类的对象可以赋值给基类的对象B.基类的对象可以赋值给派生类的对象C.派生类的对象可以初始化基类的对象D.派生类的对象的地址可以赋值给指向基类的指针206、关于虚函数的描述中,(C)是正确的。A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型207、下面关于友元的描述中,错误的是(D)。A.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承208、下列关于静态数据成员的说法,不正确的是(C)。A.类中定义的公用静态数据成员,可以通过类的对象来访问B.类中定义的所有静态数据成员,都必须在类外初始化C.静态数据成员不是所有对象所共用的D.普通的成员函数可以直接访问类中的静态数据成员209、如果表达式++i*k中的“++”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为(B)。A.operator*(i.operator++(),k)B.operator*(operator++(i),k)C.i.operator++().operator*(k)D.k.operator*(operator++(i))210、下面对模板的声明,正确的是(C)。A.template<T>B.template<classT1,T2>C.template<classT1,classT2>D.template<classT1;classT2>211、下列的各类函数中,(C)不是类的成员函数A.构造函数B.析构函数C.友元函数D.复制构造函数212、关于C++与C语言关系的描述中,(D)是错误的。A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的213、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(A)。A.函数的返回值类型B.参数的类型C.函数名称D.参数个数214、有关析构函数的说法,不正确的是(B)。A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型215、类定义的内容允许被其对象无限制地存取的是(C)。A.private部分B.protected部分C.public部分D.以上都不对216、关于常数据成员的说法,不正确的是(D)。A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中B.常数据成员必须进行初始化,并且不能被更新C.常数据成员通过构造函数的成员初始化列表进行初始化D.常数据成员可以在定义时直接初始化217、运用运算符delete删除一个动态对象时(C)。A.系统首先为该动态对象调用构造函数,再释放其占用的内存B.系统首先释放该动态对象占用的内存,再为其调用构造函数C.系统首先为该动态对象调用析构函数,再释放其占用的内存D.系统首先释放动态对象占用的内存,再为其调用析构函数218、可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是(D)。A.私有继承的公用成员B.公用继承的私有成员C.公用继承的保护成员D.公用继承的公用成员219、在公用继承方式下,有关派生类对象和基类对象的关系,不正确的叙述是(C)。A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针220、在C++中,用于实现动态多态性的是(D)。A.内联函数B.重载函数C.模板函数D.虚函数221、不能说明为虚函数的是(B)。A.析构函数B.构造函数C.类的成员函数D.以上都不对222、如果一个类至少有一个纯虚函数,那么就称该类为(A)。A.抽象类B.派生类C.纯基类D.以上都不对223、下面关于友元的描述中,错误的是(D)。A.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承224、下列运算符中,(C)运算符在C++中不能被重载。A.&&B.[]C.::D.new225、模板的使用实际上是将类模板实例化成一个(C)。A.函数B.对象C.类D.抽象类226、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为(C)。A.MyClass(MyClassx)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国亚么胶数据监测研究报告
- 创新项目实施中的教育内容设计研究
- 技术赋能课堂变革打造高效教学环境研讨会
- 教育政策在医疗设备研发中的作用
- 打造智能教育资源体系设计思维的探索与实践
- 烟草制丝培训课件
- 公交优先战略2025年对城市交通拥堵治理的影响研究报告
- 浙江警官职业学院《戏曲剧目研习》2023-2024学年第一学期期末试卷
- 郑州电力高等专科学校《小动物麻醉与监护》2023-2024学年第一学期期末试卷
- 公共卫生应急物资储备体系建设实施方案在2025年的技术创新与应用报告
- GB/T 41574-2022信息技术安全技术公有云中个人信息保护实践指南
- GB/T 3672.2-2002橡胶制品的公差第2部分:几何公差
- GB/T 18884.2-2015家用厨房设备第2部分:通用技术要求
- GB/T 12239-2008工业阀门金属隔膜阀
- 军标类型整理文档
- 山东中医药大学2020-2021学年内科护理学试题及答案1
- DB32T 4174-2021 城市居住区和单位绿化标准
- 基本原理与性能特点多自由度电磁轴承课件
- Q∕SY 1836-2015 锅炉 加热炉燃油(气)燃烧器及安全联锁保护装置检测规范
- 北京输变电工程标准工艺应用图册(图文并茂)
- 仪器使用记录表
评论
0/150
提交评论