C++的测试题
谁能给个答案?帮帮忙做做,希望还能留解释,可以的话做好了,搞成TXT,发到我邮箱zccem@,希望各位能慷慨帮助一、选择题
1、在设计程序时,应采纳的原则之一是
A)不限制goto语句的使用
B)减少或取消注解行
C)程序越短越好
D)程字结构应有助于读者理解
2、下面关于类和对象的描述中,错误的是
A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量
B)类和对象之间的关系是抽象和具体的关系
C)对象是类的实例,一个对象必须属于一个已知的类
D)类是具有共同行为的若干对象的统一描述体
3、设int a=10,b=11,c=12;,表达式(a+b)<c&&b==c的值是
A)2 B)0 C)-2 D)1
4、下列语句中不是死循环的是
A)int i=10; B)for( int i=1:i<10;i++)
while(1) {
} i--;
i--; }
if(i==1)break;
}
C)int i=0; D)int i=1;
do{ for(;;)i=i+1;
i++;
}while(i>=0):
5、下面关于break语句的描述中,不正确的是
A)break可以用于循环体内
B) break语句可以在for循环语句中出现多次
C)break语句可以在switch语句中出现多次
D)break语句可用于if条件判断语句内
6、下面程序错误的语句是
①#include<iostream. h>
②void main()
③{
④int*p=new int[1];
⑤p=9;
⑥cout <<*p<<eddl;
⑦delete[]p
⑧}
A)④ B)⑤ C)⑥ D)⑦
7、不能作为重载函数的调用的依据是
A)参数个数
B)参数类型
C)函数类型
D)函数名称
8、以下程序中,错误的行是
①#include<iostream. h>
②class A
③{
④ public:
⑤ int n=2:
⑥ A( int val){cout<<val<<endl;}
⑦ ~A(){};
⑧};
⑨void main()
⑩{
⑩ A a(0);
⑩}
A)⑤ B)⑥ C)⑦ D)⑩
9、对类的构造函数和析构函数描述正确的是
A)构造函数可以重载,析构函数不能重载
B)构造函数不能重载,析构函数可以重载
C)构造函数可以重载,析构函数也可以重载
D)构造函数不能重载,析构函数也不能重载
10、下面程序的运行结果为
#include(iostream. h>
class A
{
int num;
public:
A(int i){num=i;}
A(A &a){num=a. num++;}
void print(){cout<<num;}
};
void main()
{
A a(1),b(a);
a. print();
b.print();
A)11 B)12 C)21 D)22
11、下面对静态数据成员的描述中,正确的是
A)静态数据成员是类的所有对象共享的数据
B)类的每个对象都有自己的静态数据成员
C)类的不同对象有不同的静态数据成员值
D)静态数据成员不能通过类的对象调用
12、如果类A被说明成类B的友元,则
A)类A的成员即类B的成员
B)类B的成员即类A的成员
C)类A的成员函数不得访问类B的成员
D)类B不一定是类A的友元
13、可以用p.a的形式访问派生类对象P的基类成员a,其中a是
A)私有继承的公有成员
B)公有继承的私有成员
C)公有继承的保护成员
D)公有继承的公有成员
14、建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为
A)abc
B)acb
C)cab
D)cba
15、下面关于虚函数的描述,错误的是
A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数
C)虚函数可以是另一个类的友元函数,但不能是静态成员函数
D)基类中说明的纯虚函数在其任何派生类中都必须实现
16、下面程序的运行结果是
#include<iostream. h>
void main()
{
int num=1;
int &ref=num:
ref=ref+2;
cout<(num;
num=num+3;
cout<<ref<<endl;
}
A)13 B)16 C)36 D)33
17、下面程序的运行结果是
#include<iostream. h>
void fun(int*a,int*b)
{
int x=*a
*a=,b;*b=x;
cout<<*a<<*b<<” ”;
}
void main()
{
int x=1,y=2;
fun(&x,&y);
cout<<x<<y<<endl;
}
A)12 12 B)12 21 C)21 12 D)21 21
18、下列程序的运行结果为
#include<iostream. h>
int i=0;
class A{
public:
A()}i++;}
};
void main()
{
Aa,b[3],*c;
c=b:
cout<<i<<endl;
}
A)2 B)3 C)4 D)5
19、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()
A)面向过程 B)面向对象 C)安全性 D)复用性
20、C++语言的跳转语句中,对于break和continue说法正确的是()
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
21、for(int x=0,y=o;!x& &y<=5;y++)语句执行循环的次数是()
A)0 B)5 C)6 D)无次数
22、下面描述中,表达错误的是()
A)公有继承时基类中的public成员在派生类中仍是public的
B)公有继承是基类中的private成员在派生类中仍是private的
C)公有继承时基类中的protected成员在派生类中仍是protected的
D)私有继承时基类中的public成员在派生类中是private的
23、应在下列程序划线处填入的正确语句是()
#include
class Base
{ public:
void fun(){cout<<"Base::fun"<<ENDL;}
};
class Derived:public Base
{ void fun()
{_____________ //显示调用基类的函数fun()
cout<<"Derived::fun"<<ENDL;
}
};
A)fun(); B)Base.fun(); C)Base::fun(); D) Base->fun();
24、有如下程序:
#include
class BASE{
char c;
public:
BASE(char n):c(n){}
virtual~BASE(){cout<<C;}
};
class DERIVED:public BASE{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
~DERIVED(){cout<<C;}
};
int main()
{ DERIVED("X");
return 0;
}
执行上面的程序将输出()
A)XY B)YX C)X D)Y
25、下列哪个是C++语言的有效标识符?
A)_No1 B)No.1 C)12345 D)int
26、下列程序的执行结果为
#include<iostream. h>
void main()
{
int a=3,b=0;
int*p=&a:
b=+a++;
cout<<*P<<”,”<<b<<endl;
}
A)3,4 B)4,3 C)3,4 D)4,4
27、下面程序的运行结果为
#include<iostream. h>
void main()
{
for(int a=0,x=0;!x&&a<=10;a++)
{
a++;
} l
cout<<a<<endl;
}
A)10 B)11 C)12 D) 0
28、下列选项,不正确的是
A)for(int a=1;a<=10;a++);
B)int a=1;
do
{
a++;
}while(a<=10)
C)int a=1:
while(a<=10)
{
a++;
} l
D)for(int a=1;a<=10;a++)a++;
29、下面关于数组的初始化正确的是
A)char str[]={‘a',’b','c‘}
B)char str[2]={'a','b','c’}
C)char str[2][3]={{'a‘,'b’},{’e’,'d’},{’e’,‘f'}}
D)char str[]={'a','b','c’}
30、下列程序的输出结果为
#include<iostream. h>
void main()
{
char,a[]={”hello",”the",”world”};
char**pa=a:
pa++;
cout<<*pa<<endl;
}
A)hello
B)the
C)world
D)hellotheworld
31、下列程序的输出结果是
#include<iostream. h>
int min(int a,int B)
{
if(a<B)return a;
else return B;
return 0;
}
void main()
{
cout<<min(1,min(2,3))<<endl;
}
A)0 B)1 C)2 D)3
32、下列程序的运行结果为
#include<iostream. h>
void print(double a)
{
cout<<++a;
}
void print(int a,int b)
{
cout<<b<<a;
}
void main()
{
print(1.2);
cout<<” ”;
print(3,4);
}
A)1.2 34
B)2.2 34
C)1.2 43
D)2.2 43