您好,欢迎访问三七文档
C++习题1.下列字符列中,可作为C++语言程序自定义标识符是()。A.switchB.fileC.breakD.do2.运算符+、=、=、%中,优先级最低的运算符是()。A.+B.=C.=D.%3.设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是()。A.0,0B.0,1C.1,0D.1,14.字符串”vm\x43\\\np\102qu”的长度是()。A.8B.9C.16D.175.设有代码“inta=6;”,则执行了语句“a+=a-=a*a;”后,变量a的值是()。A.0B.-24C.-40D.–606.voidmain(){intx=-1;do{x=x*x;}while(!x);}下列说法正确的是()。A.是死循环B.循环执行两次C.循环执行一次D.有语法错误7.下面有关for循环的正确描述是()。A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来8.下面程序段()。x=3;do{y=x--;if(!y){cout”x”;continue;}cout”#”;}while(1=x=2);(1=x)=1,0bool型A.将输出##B.将输出##*C.是死循环D.含有不合法的控制表达式9.以下正确的说法是()。A.用户若需要调用标准函数,调用前必须重新定义B.用户可以直接调用所有标准库函数C.用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数D.用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数10.在参数传递过程中,对形参和实参的要求是()。A.函数定义时,形参一直占用存储空间B.实参可以是常量、变量或表达式C.形参可以是常量、变量或表达式D.形参和实参类型和个数都可以不同11.对数组名作函数的参数,下面描述正确的是()。A.数组名作函数的参数,调用时将实参数组复制给形参数组B.数组名作函数的参数,主调函数和被调函数共用一段存储单元C.数组名作参数时,形参定义的数组长度不能省略D.数组名作参数,不能改变主调函数中的数据12.若有语句inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则()不是对a数组元素的正确引用(其中0≤i10)。A.p[i]B.*(*(a+i))C.a[p-a]D.*(&a[i])13.以下程序的输出结果是()。#includeiostream.hvoidmain(){chars[]=12134211,*p;intv1=0,v2=0,v3=0,v4=0;v1v2v3v4for(p=s;*p;p++)2434switch(*p){case'1':v1++;case'3':v3++;case'2':v2++;default:v4++;}coutv1,v2,v3,v4endl;}A.4,2,1,1B.4,7,5,8C.7,3,2,1D.8,8,8,814.下列声明结构体变量错误的是()。A.structstudentB.structstudent{intno;{intno;charname[16];charname[16];}st1,st2;};structstudentst1,st2;C.structstudentD.structstudent{intno;{intno;charname[16];charname[16];};};structst1,st2;studentst1,st2;15.对类的构造函数和析构函数描述正确的是()。A.构造函数可以重载,析构函数不能重载B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载16.下面对于友元函数描述正确的是()。A.友元函数的实现必须在类的内部定义B.友元函数是类的成员C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员17.派生类的对象对它的基类成员中()是可以访问的。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员18.C++类体系中,不能被派生类继承的有()。A.构造函数B.虚函数C.静态成员函数D.赋值操作函数19.以下()成员函数表示虚函数。A.virtualintvf(int);B.voidvf(int)=0;C.virtualvoidvf()=0;D.virtualvoidvf(int){};20.下面对静态数据成员的描述中,正确的是()。A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以在类体内进行初始化C.静态数据成员不能受private控制符的作用D.静态数据成员可以直接用类名调用??21.继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。A.规律性B.传递性C.重复性D.多样性22.若有以下定义,则释放指针所指内存空间的操作是()。floatr=newsfloat[10];A.deleter;B.delete*r;C.delete[]r;D.deleter[];23.若有以下定义,则对字符串的操作错误的是()。chars[10]=”Program”,t[]=”test”;A.strcpy(s,t);B.coutstrlen(s);C.strcat(“this”,t);D.cint;24.在if语句中的表达式是()。A.只能是表达式B.只能是关系表达式和逻辑表达式C.只能是逻辑表达式D.可以是任意表达式25.在用关键字class定义的类中,以下叙述正确的是()。A.在类中,不作特别说明的数据成员均为私有类型B.在类中,不作特别说明的数据成员均为公有类型C.类成员的定义必须是成员变量定义在前,成员函数定义在后D.类的成员定义必须放在类定义体内部参考答案:123456789101112131415BCCBDCDCDBBBBCA16171819202122232425CAADBBCCDA公共基础知识一、选择题(1)下列关于栈的叙述正确的是栈是非线性结构B)栈是一种树状结构栈具有先进先出的特征D)栈具有后进先出的特征(2)结构化程序设计所规定的三种基本控制结构是输入、处理、输出B)树形、网形、环形C)顺序、选择、循环D)主程序、子程序、函数(3)结构化程序设计的一种基本方法是筛选法B)递归法C)归纳法D)逐步求精法(4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是:A)选择B)投影C)连接D)并一:选择题:(2)C(3)D(4)BC++语言程序设计一、选择题(1)C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()面向过程B)面向对象C)安全性D)复用性(2)C++语言的跳转语句中,对于break和continue说法正确的是()语句只应用与循环体中语句只应用与循环体中是无条件跳转语句,continue不是和continue的跳转范围不够明确,容易产生问题(3)for(intx=0,y=o;!x&&y=5;y++)语句执行循环的次数是()0B)5C)6D)无次数(4)考虑函数原型voidtest(inta,intb=7,char=*),下面的函数调用中,属于不合法调用的是()C)test(6,#)D)test(0,0.*);(5)下面有关重载函数的说法中正确的是()重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;C)重载函数必须有不同的形参列表D)重载函数名可以不同;(6)下列关于构造函数的描述中,错误的是()构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行构造函数可以是内联函数;D)构造函数不可以重载(7)下面描述中,表达错误的是()公有继承时基类中的public成员在派生类中仍是public的B)公有继承是基类中的private成员在派生类中仍是private的公有继承时基类中的protected成员在派生类中仍是protected的私有继承时基类中的public成员在派生类中是private的(8)应在下列程序划线处填入的正确语句是()public:voidfun(){_____________file://显示调用基类的函数fun()coutDer}C)Base::fun();D)Base-fun();(9)有如下程序:#includecharc;BASE(charn):c(n){}charc;DERIVED(charn):BASE(n+1),c(n){}DERIVED(X);return0;执行上面的程序将输出()A)XYB)YXC)XD)Y(10)在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()B)eofC)badD)good一:选择题-5:BBCCC-10:DBCAB1、下列有关类的说法不正确的是()。A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似答案:C分析:对象是类的一个实例,类与对象的关系和数据与变量的关系相似,所以一个类可以有多个对象。2、下面()项是对构造函数和析构函数的正确定义。A.voidX::X(),voidX::~X()B.X::X(参数),X::~X()C.X::X(参数),X::~X(参数)D.voidX::X(参数),voidX::~X(参数)答案:B分析构造函数无返回类型、可带参数、可重载;析构函数无返回类型、不可带参数、不可重载。3、()的功能是对象进行初始化。A.析构函数B.数据成员C.构造函数D.静态成员函数答案:C分析:当一个对象定义时,C++编译系统自动调用构造函数建立该对象并进行初始化;当一个对象的生命周期结束时,C++编译系统自动调用析构函数注销该对象并进行善后工作;4、下列表达方式正确的是()。A.classP{B.classP{public:public:intx=15;intx;voidshow(){coutx;}voidshow(){coutx;}};}C.classP{D.classP{intf;public:};inta;f=25;voidSeta(intx){a=x;};答案:D分析:在类体内不可对数据成员进行初始化;类定义结束时需用分号;只有类中的成员函数才能存取类中的私有数据。5、拷贝构造函数具有的下列特点中,()是错误的。A.如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的B.拷贝构造函数只有一个参数,并且是该类对象的引用C.拷贝构造函数是一种成员函数D.拷贝构造函数的名字不能用类名答案:D分析:如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的;拷贝构造函数只有一个参数,并且是该类对象的引用;拷贝构造函数的名字与类同名,并且不被指定返回类型;拷贝构造函数是一种成员函数。6、关于静态成员的描述中,()是错误的。A.静态成员可分为静态数据成员和静态成员函数B.静态数据成员定义后必须在类体内进行初始化C.静态数据成员初始化不使用其构造函数D.静态数据成员函数中不能直接引用非静态成员答案:B分析:静态成员可分为静态数据成员和静态成员函数;静态数据成员被定义后,必须对它进行初始化,初始化在类体外进行,一般放在该类的实现部分最合适,也可以放在其他位置,例如,放在主函数前面等;静态数据成员初始化与该类的构造函数和析构函数无关;在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员。7:关于友元的描述中,()是错误的。A.友元函数是成员函数,它被说明在类体内B.友元函数可直接访问类中的私有成员C.友元函数破坏封装性,使用时尽量少用
本文标题:C++复习题库
链接地址:https://www.777doc.com/doc-3357971 .html