最新c++题库及答案

bool fun(long n); void main()

{long a=10,b=30,l=0; if(a%2==0) a++;

for(long m=a;m<=b;m+=2) if(fun(m))

{if(l++==0) cout <

cout <

bool fun(long n)

{int sqrtm=(int)sqrt(n); for(int i=2;i<=sqrtm;i++) if(n%i==0) return false; return true; }

答案:11 13 17 19 23 29

[解析]循环体用来判断n是否是质数的函数,在main函数判断10~30之间质数。 3. 给出下面程序输出结果。 #include class Test {int x,y; public:

Test(int i,int j=0) {x=i;y=j;}

int get(int i,int j) {return i+j;} };

void main()

{Test t1(2),t2(4,6);

int (Test::*p)(int,int=10); p=Test::get;

cout<<(t1.*p)(5)<

cout<<(p1->*p)(7,20)<

答案:15 27

[解析]指向类成员函数的指针的使用,*p指向Test类中有两个参数的函数的一个指针。 P=Test::get.这样p就和get发生了联系。(t1.*p)(5)等价于调用一个参数的get函数。 4. #include #include #include

class student

{char name[8]; int deg;

char level[7];

friend class process; // 说明友元类 public:

student(char na[],int d) { strcpy(name,na); deg=d; } };

class process { public:

void trans(student &s) {int i=s.deg/10; switch(i) {case 9:

strcpy(s.level, \优\case 8:

strcpy(s.level,\良\case 7:

strcpy(s.level,\中\case 6:

strcpy(s.level,\及格\default:

strcpy(s.level,\不及格\} }

void show(student &s)

{cout<

void main()

{ student st[]={student(\张三\李四\王五 \孙六\process p;

cout<<\结果:\姓名\成绩\等级\for(int i=0;i<4;i++) { p.trans(st[i]); p.show(st[i]);} }

答案:结果:姓名成绩等级 张三78中 李四92优 王五62及格

孙六88良

六、程序设计题(本大题共1小题,共10分)

1. 已定义一个Shape抽象类,在此基础上派生出矩形Rectangle和圆形Circle类,二者都有 GetPerim()函数计算对象的周长,并编写测试main()函数。 class Shape {public: Shape(){} ~Shape(){}

virtual float GetPerim()=0; }

答案:class Rectangle:public Shape {public:

Rectangle(float i,float j):L(i),W(j){} ~Rectangle(){}

float GetPerim(){return 2*(L+W);} private: float L,W; };

class Circle:public Shape {public:

Circle(float r):R(r){}

float GetPerim(){return 3.14*2*R;} private: float R; };

void main() {Shape * sp;

sp=new Circle(10);

cout<GetPerim ()<

cout<GetPerim()<

C++程序设计模拟试卷(二)

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中 只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无 分。

1. 静态成员函数没有() A. 返回值 B. this指针 C. 指针参数 D. 返回类型 答案:B

解析:静态成员函数是普通的函数前加入static,它具有函数的所有的特征:返回类型、 形参,所以使用(P107)静态成员函数,指针可以作为形参,也具有返回值。静态成员是类具有的 属性,不是对象的特征,而this表示的是隐藏的对象的指针,因此静态成员函数没有this 指针

。静态成员函数当在类外定义时,要注意不能使用static关键字作为前缀。由于静态成员函数在

类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静态成员函数可以直接

访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访问非静态成员时,必

须通过参数传递的方式得到相应的对象,再通过对象来访问。

2. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数 为() A. 3 B. 4 C. 5 D. 9 答案:B

解析:a(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它 分配空间,没有调用构造函数。所以共调用构造函数的次数为4。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4