C++试题(一)附答案
一、单项选择题(共20题,每题1分,共20分)1、下列关于c++标识符的命名不合法的是a.padb.name_1c.a#bcd._a122、若有以下类型标识符定义:()
intx=2;charw='a';floaty=23.45f;doublez=45.6712;那么表达式w*x+Y-Z的结果类型是a.floatb charc。intd。双重的
3、若有intx=10,y=20,z=30;则执行下面语句后,x的值是if(x>y)z=x;x=y;y=z;
a、 10b。20摄氏度。30天。0
4、循环语句whlie(inti=0)i--;的循环次数是a.0b.1c.5d.无限
5.当函数没有返回值时,应选择的说明符是a.staticb externc。无效。没有说明符6。在重载函数参数的描述中,错误是a.参数的数量可能不同,B.参数的类型可能不同,C.参数的顺序可能不同
d.参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并
正确赋初值的语句是a.intn=5,b[n][n];
b、 inta[2]={{1},{3},{4},{5};c、 intc[2][]={{1,2},{3,4};d、 intd[3][2]={{1,2},{3,4};
8、下列给字符数组进行的初始化中,不正确的是a.chars1[]=\
b、 chars2[3]={'x','y','\\0'};c、 chars3[]={'a','x','y','\\0'};d、 chars4[6]={\9.公共复制构造函数的参数是a.对象名B.对象成员名c.对对象的引用D.对象的指针名10.在对构造函数特征的描述中,错误是a.要定义构造函数,必须指出类型B.构造函数的名称与clas相同类C的名称。可以在类D中定义0个或多个构造函数。构造函数是一个成员函数
11、下面程序的运行结果为#includeintadd(inta,intb);voidmain(){
X,y;库特<
intx=20,y=5;intadd(inta,intb){字符串长度函数是什么
ints=a+b;返回;}
a.20b.5c.25d.编译会提示出错信息12、关于常成员的描述中,错误的是a.常成员包含常数据成员和常成员函数两种b.常数据成员必须是公有的
c、 应使用构造函数成员初始化列表初始化常量数据成员。D.常量对象只能调用其常量成员函数,不能调用其他成员函数。13.在友元函数的描述中,错误为a。友元函数不是成员函数。B.好友函数只能访问类中的私有成员。C.好友功能会破坏隐藏,并尽可能少地使用它们
d.友元函数说明在类体内,使用关键字friend14、如果有intx,*p;floaty,*q;则下面操作正确的是a.p=xb.p=qc.p=&xd.p=&y
15.如果有功能描述,则为voidfa(INTM,INTN);以及指针变量void(*P)(int,int)的定义;如果P=FA,则以下操作不正确:A.(*P)(3,4);b、 p(3,4);c、 fa(3,4);d、 *p++;
16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是a.数组的长度b.数组第一个元素的值c.数组所有元素的值d.数组第一个元素的地址
17.对于内存空间的动态分配,正确的描述如下:
a.使用new运算符分配的内存空间的长度必需是常量b.delete运算符可以释放动态的存储空间和静态的存储空间c.由new分配的内存空间是不连续的
d、 delete运算符只能释放new分配的动态存储空间。18.可以释放对象占用的资源的是()A.析构函数B.数据成员
c.构造函数d.静态成员函数
19.虚拟函数是在基类中定义的,需要在其前面加上关键字a.staticb。弗伦德。事实上的平民的
20、在c++中串流类是在头文件strstrea.h中定义的,下列不属于串流类的是)a.strstreamb.ostrstreamc.ofstreamd.istrstream
二、 填空(9个问题,共16个空格,每个空格1分,共16分)1。当函数重载时,编译系统将__________________。
2、若有chara[80];则cin>>a表示从键盘上读入一个____到数组a中。3、若希望用一个已
有对象来构造另一个同类型的对象,可以使用____来实现。4、静态成员属于____,而不属于____,它被同一个类的所有对象共享。5、类的继承方式有____继承、____继承和____继承。6、重载运算符的含义必须清楚,不能有____。
7.根据链接的不同阶段,链接方式可分为两种类型:_________________。
8、当基类中的某个成员函数被声明为虚函数后,此虚函数就可以在一个或多个派生类中被重新定义,在派生类中重新定义时,其函数原型,包括返回类型、____、____、参数类型以及参数的顺序都必须与基类中的原型完全相同。
9.C++的I/O以的形式实现。每个C++编译系统都有一个面向对象的输入/输出软件包。
三、判断题(共10题,每题1分,共10分)1、c++语言支持封装性和继承性,不支持多态性。
2.关系运算符可用于比较两个字符或两个字符串的大小。)3.字符串的长度\为5。4.引用和指针都可以用作函数参数。
5、友元函数说明在类体内,它是一种成员函数。6、友元类必须被说明为公有成员。
7.纯虚函数是基类中描述的虚函数,基类中没有定义具体的操作内容。8.析构函数不能被继承。
9、运算符重载以后,其优先级和结合性都不能改变。
10.在C++中,函数名实际上是指向函数项的指针。4、 分析程序并回答提出的问题(16分)1,#包括课堂B;classa{public:a(inti){a=i;}
friendintf(a&f1,b&f2);private:inta;};classb
{public:b(inti){b=i;}
friendintf(a&f1,b&f2);private:intb;};
intf(a&f1、b&f2){
return(f1.a+f2.b)*(f1.a-f2.b);}
voidmain(){
an1(10);bn2(8);
库特① 编写程序的运行结果。② 程序中有几个对象。他们属于哪个阶级?为什么在课程开始时通过ClassB语句;申报B类?③ 程序中的哪两条语句将分别调用a和B的构造函数?写出这两个构造器。④ 什么是函数f?它的功能是什么?5、 阅读程序并写出运行结果(共2个问题,问题1得6分,问题2得8分,共14分)1,#includeintfunc(inta){intb=0;staticntc=4;B++;C--;return(a+B+C);}Void main(){inta=2;for(intj=0;J<2;J++)cout<输出结果:2,#includeclassx{public:X(inti){X=I;cout<{X=(int)I*2;cout<cout<Void main(){inta=8;doubleb=11.0;xx1(55),X2(a*5);XX3=X(2*a);xx4=X(b)}输出结果如下:6。编写程序(共2个问题,问题1得10分,问题2得14分,共24分)1。输入一组数据,以-1为结束标志,删除其他数据,只保留可除以2的数据,并输出结果。2.定义一个date类date,它包含三个数据成员:年、月和日,以及一个用于计算次日日期和输出日期的成员函数。模拟试卷(1)答案1。多项选择题1、C2、D3、B4、A5、C6、D7、D8、D9、C10、a11、C12、B13、B14、C15、D16、d17、D18、a19、C20、C2。填空1。形式参数类型2。形式参数的数量3。字符串3。复制4。第五类的任何物体。公共(或公共)私人(或私人)保护。动态绑定和静态绑定8。函数名参数的数
量9。字节流I/O流类库3。判断问题1×2、3、√4.√5、 × 6、 × 7. √ 8.√ 9, √ 10√ 四、 分析程序并回答提出的问题(平均分:每个问题4分,共16分)。① 36② N1和N2是两个对象,N1属于A类,N2属于B类。因为B类是在A类之后定义的,B类是在A类中引用的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论