if(n%i==0)break;
if(i>=k)return1;
elsereturn0;
}
voidmain(void)
{
/*
ofstreamfile("data.txt");
if(!
file)
{cout<<"Can'topenthefile!
";
exit
(1);
}*/
inti,g=0;
for(i=101;i<300;i+=2)
{
if(prime(i))
{
cout<
//file<
++g;
if(g%5==0){
//file<<'\n';
cout<<'\n';
}
}
}
//file.close();cout<<'\n';
}
VC++模拟题2
一、选择(在A、B、C、D中选择一个正确的,40分,每题2分)
1.若整型变量现在的值是–3,则表达式a&0xf运算后的值是
A)-13B)13C)-3D)3
2.下列叙述中,哪一个不对?
A)类的构造函数可以重载B)类的析构函数可以重载
C)一个类可以不定义构造函数D)一个类可以不定义析构函数
3.设有以下的定义:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*prt)[3]=a,*p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是
A)*(*prt+1)[2])B)*(*(p+5))
C)(*prt+1)+2D)*(*(a+1)+2)
4.执行下面的程序后,a的值是
#defineSQR(X)X*X
voidmain()
{inta=10,k=2,m=1;
a%=SQR(k+m)/SQR(k+m);
}
A)1B)3C)9D)0
5.以下程序段的输出结果是
intx=3;
do{
cout<<(x-=2)<<’’;
}while(!
(--x));
A)1B)30C)1–2D)死循环
6.程序
#include
classT{public:
staticintx;};
intT:
:
x=1;
voidmain()
{Ta,b;
a.x=10;b.x=20;
cout<cout<<''<:
x<}
执行后的输出是
A)202020B)001
C)20201D)有语法或逻辑错误
7.下列程序的输出是
#include
#include
voidmain()
{
charp1[20]="abcd",*p2="ABCD";
charstr[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
cout<}
A)xyabcABB)abcABz
C)ABabczD)xycdBCD
8.设有说明int(*ptr)[M];其中的标识符ptr是
A)M个指向整型变量的指针
B)指向M个整型变量的函数指针
C)一个指向具有M个整型元素的一维数组的指针
D)具有M个指针元素的一维指针数组,每个元素都只能指向整型变量
9.设有如下的函数定义
intf(char*s)
{if(!
(*s))return0;
elsereturn1+f(s+1);}
若在主程序中用下面的语句调用上述函数,则输出为
cout<”)<A)1B)6C)8D)0
10.设有类T的定义为
classT{
intx;
public:
T(inta){x=a;}
};
则下面的说明
Ta;//
(1)
Tb(4);//
(2)
Tc=b;//(3)
Td(b);//(4)
正确的是
A)
(1),
(2),(3),(4)B)
(1),
(2),(3)C)
(2),(3)D)
(2),(3),(4)
11.下面的函数在m为3,n为1时返回的值是
intAck(intm,intn)
{
if(!
m)returnn+1;
if(!
n)returnAck(m-1,1);
else
returnAck(m-1,Ack(m,n-1));
}
A)13B)2C)21
D)死循环(递归无法结束)
12.下面程序的输出是:
#include
classBase{
protected:
intx;
public:
Base(inta){x=a;}
};
classA:
publicBase{
public:
A(inta):
Base(a){};
intGetX(){returnx;}};
classB:
publicBase{
public:
B(inta):
Base(a){};
intGetX(){returnx;}};
classC:
publicB,publicA{
public:
C(inta):
A(a+10),B(a+20){};};
voidmain()
{
Cc(10);
cout<:
GetX()<<','<:
GetX()<}
A)30,20B)20,30
C)20,20D)30,30
13.程序的输出为:
#include
classX{
public:
intx;
X(inta){x=a;}
};
classA:
virtualpublicX{
public:
A(inta):
X(a){}
};
classB:
virtualpublicX{
public:
B(inta):
X(a){}
};
classC:
publicA,publicB{
public:
C(inta):
A(20),B(30),X(40){}
};
voidmain(){
Cc(40);
cout<}
A)20B)30
C)40D)50
14.程序的输出是:
#include
classX{
public:
virtualvoidf()
{cout<<”a”;}};//A
classY:
publicX{
public:
voidf()
{cout<<”b”;}};
voidmain()
{Yy;X*xp=&y;
xp->f();
}
A)abB)aaC)aD)b
15.将上题中标有//A的一行中
的virtual去掉,则输出为
A)abB)bC)aD)非法
16.下列叙述中,正确的是
A)类是一种用户自定义类型
B)类是实现数据封装的单位
C)一个类可以为多个派生类的基类,派生类也可从多个基类继承
D)以上的说法都是正确的
17.下列定义:
classPoint{intx,y;
public:
Point(inta=0,intb=0);//
(1)
Point(Point&aPoint);//
(2)
Point(Point*p);//(3)
Point(PointaPoint);//(4)
};
A)
(1)是缺省构造函数
B)
(2)是缺省构造函数
C)(3)是缺省构造函数
D)(4)是缺省构造函数
18.上题中拷贝初始化函数是
A)
(2)B)
(2)和(4)
C)(3)D)没有定义
19.下列叙述中,哪一个不正确?
A)含纯虚函数的类称为抽象类
B)不能直接由抽象类建立对象
C)抽象类中能包含构造函数
D)抽象类中不能包含析构函数
20.下列叙述中正确的是
A)基类中的虚函数在派生类中一定要重定义
B)成员函数中虚函数也可被重载
C)基类中的构造函数不可定义为虚函数
D)以上的没有正确的
一、单选题(每题2分,共14分)
2、对定义重载函数的下列要求中,错误是()。
A、要求参数的个数不同
B、要求参数中至少有一个类型不同
C、要求参数个数相同时,参数类型不同
D、要求函数的返回值不同
3、 函数原型语句正确的是( )。
A、int Function(void a); B、void Function (int);
C、int Function(a); D、voidenum(double a,intb=1);
4、下面有关析构函数的描述不正确是()。
A、析构函数可以带参数B、析构函数不能重载
C、析构函数无任何返回类型D、析构函数可以为虚函数
5、假定A,Z分别为一个类,则( )为类A的拷贝构造函数的原型说明。
A、A(Z& x); B、A(A& x);
C、void A(A& x); D、A(A x);
6、有关运算符(操作符)重载的描述错误的是()。
A、+*==new都可以重载B、不能改变操作数的数目
C、不可以改变优先级数D、++、--不能被重载
7、intFunction(){
staticinta=6;returna+=6;}
voidmain(){
std:
:
cout<:
cout<<",";std:
:
cout<}
输出结果是()
A、6,12B、12,18C、12,12D、6,6
1、执行完下列语句后,n的值为多少?
(c)
staticintn;
for(;n<=10;n++)n+=2;
(A)10(B)11
(C)12(D)不确定值
4、下面关于构造函数的描述错误的是(b)
(A)函数名与类名相同(B)不能是内联函数
(C)没有返回值(D)可以重载
5、inta[2][3]={1,2,3,4,5,6};下面错误的说法是(d)
(A)a数组是一个二行三列的数组(B)a与&a[0]等价
(C)a[1][1]元素的值是5(D)a是变量
7、下面循环的循环次数是(a)
inti;for(i=3;i<10;i=i+2)i++;
(A)3(B)4(C)5(D)6
9、以下能构成函数重载的是(d)
(A)intmax(intx,inty)(B)intmax(intx,inty)
voidmax(intx,inty)intmax(inta,intb)
(C)intmax(intx,inty)(D)intmax(intx,inty)
voidmax(inta,intb)charmax(charx,chary)
10、下面哪个是合法的字符串(a)
(A)“”(B)‘a’(C)‘xyz’(D)123
判断题
20.当使用指针变量访问类的成员时,必须先使指针变量指向该类的某个对象。
(√)
21.构造函数和析构函数是类的两个特殊函数(√)
22.在继承关系中,被继承的类称为基类,而通过继承定义出的新类称为派生类。
(√)
23.在程序中可以把基类的对象当作派生类对象来处理。
(x)
24.类的静态成员是所有该类对象所共有的,并不依赖于某一个对象的存在而存在。
(√)
25.友元函数是类的成员函数。
(x)
26.返回值可以作为重载函数的标识。
(x)
27.运算符重载是一种特殊的函数重载。
(√)
29.模板只是一个说明,只有实例化和才能使用。
(√)
选择题
30.关于类,下列说法不正确的是(D)
A.在类中,成员的默认访问特性是私有的。
B.类实现的数据的封装。
C.类实质上是一种数据类型。
D.在类定中,必须包含private、protected、public三种访问方式的对应部分。
31.关于对象,下列说法不正确的是(C)
A.对象是类的一个实例。
B.任何一个对象只属于一个类。
C.一个类只能有一个对象。
D.类和对象之间的关系,类似于数据类型和变量之间的关系。
32.关于构造函数,下列说法不正确的是(A)
A.一个类中有且仅有一个构造函数。
B.构造函数在声明类对象时被自动调用。
C.构造函数没有返回类型。
D.类的构造函数名称必须和类名称相同。
33.关于析构函数,下列说法不正确的是(B)
A.一个类中有且仅有一个析构函数。
B.析构函数可以有参数。
C.析构函数没有返回类型。
D.析构函数在对象销毁时被自动调用。
34.关于类的继承,下列说法不正确的是(A)
A.继承到派生类中的基类成员,其访问权限保持不变。
B.派生类的成员有自身成员和基类成员两个部分。
C.派生类至少有一个基类。
D.派生类是基类定义的延续。
35.关于虚拟函数,下列说法正确的是(C)
A.包含虚拟函数的类不能生成实例。
B.包含虚拟函数的类被称为抽象类。
C.虚拟函数在基类中定以后,如果没有新的功能需求,无须再在派生类重新定义。
D.纯虚拟函数,在派生类中必须定义实现。
36.友元的作用是(D)
A.增加成员函数的种类。
B.加强类的封装性。
C.实现数据的隐藏性。
D.提高程序的运行效率。
37.关于函数重载,下列说法不正确的是(B)
A.构造函数的重载,使得类对象的初始化更灵活。
B.不要使用重载函数来描述毫不相干的算法。
C.默认参数不能作为区分函数重载的标识。
D.重载函数在编译时是根据参数表来进行选择的。
38.关于类对象构造的顺序,下列说法正确的是(B)
A.自身、成员对象、父类对象。
B.父类对象、成员对象、自身。
C.父类对象、自身、对象成员。
1、VC基础习题总汇3
2、2009-07-0421:
08
第一部分模拟试题
第一题单项选择题
1、下面字符串中可以用做C++标识符的是()。
A、_521B、computer~1C、caseD、3var
2、面向对象程序设计思想的主要特征中不包括()。
A、封装性B、多态性C、继承性D、功能分解,逐步求精
3、下列十六进制数整型常量的写法中,错误的是()。
A、0xafB、2f0xC、0X1bD、0Xae
4、