注册 登录
编程论坛 C++ Builder

C++的测试题

yixianliu 发布于 2009-08-10 07:30, 987 次点击
谁能给个答案?帮帮忙做做,希望还能留解释,可以的话做好了,搞成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
0 回复
1