pta C++

分数 2

作者 董俊

单位 燕山大学

编译预处理指令#include的处理方式是在编译代码前使用string.h文件的内容替换这条指令。

T

F

答案正确:2 分


1-2

分数 2

作者 罗艳

单位 成都锦城学院

下面两个全局函数构成函数重载。

int Add(int a, int b) {return a+b;}

int Add(int x, int y) {return x-y;}。

T

F

答案正确:2 分


1-3

分数 2

作者 郑远

单位 中国民用航空飞行学院

定义了构造函数之后,类不再提供默认的构造函数。

T

F


1-4

分数 2

作者 Gloria

单位 沈阳师范大学

动态联编调用函数操作是指向对象的指针或对象引用。

T

F

答案正确:2 分


1-5

分数 2

作者 Gloria

单位 沈阳师范大学

派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型。

T

F

答案正确:2 分


1-6

分数 2

作者 杨雪华

单位 沈阳师范大学

point *p[3];point是类名,p为定义指向对象数组的指针 。

T

F


1-7

分数 2

作者 杨雪华

单位 沈阳师范大学

在定义对象数组时,可以直接进行初始化,也可以通过赋值语句实现赋值。

T

F

答案正确:2 分


1-8

分数 2

作者 黄淑伟

单位 沈阳师范大学

通过基类引用调用基类和派生类中的同名虚函数时,若该引用引用的是一个派生类的对象,那么被调用的是派生类的虚函数。

T

F

答案正确:2 分


1-9

分数 2

作者 黄淑伟

单位 沈阳师范大学

如果公有派生,则可以用基类对象的地址赋值给派生类的指针。

T

F


1-10

分数 2

作者 黄淑伟

单位 沈阳师范大学

静态成员的特点是不管这个类创建了多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象共享,或者说静态成员为类所有。

T

F

答案正确:2 分


1-11

分数 2

作者 黄淑伟

单位 沈阳师范大学

如果A是B的友元类,那么B的成员函数可以访问A的私有成员。

T

F


1-12

分数 2

作者 董俊

单位 燕山大学

基类中的私有成员不论通过何种派生方式,到了派生类中均变成不可直接访问成员。

T

F

答案正确:2 分


1-13

分数 2

作者 董俊

单位 燕山大学

int i; int &ri=i;对于这条语句,ri和i这两个变量代表的是同一个存储空间。

T

F

答案正确:2 分


1-14

分数 2

作者 黄万丽

单位 曲阜师范大学

静态成员函数不能是虚函数,所以不能实现动态多态,即运行时多态。

T

F

答案正确:2 分

创建提问


1-15

分数 2

作者 黄淑伟

单位 沈阳师范大学

已知类 A 是类 B 的友元,类 B 是类 C 的友元,则类 A 一定是类 C 的友元 。

T

F

2-1命名空间应用于:

A.

在类外定义类的成员函数

B.

避免各个不同函数、变量等的名称冲突

C.

提高代码的执行速度

D.

以上答案都正确


2-2

分数 2

作者 李祥

单位 湖北经济学院

关于函数的重载

下面 4 组重载函数的声明中,▁▁▁▁▁ 是正确的。

A.

void F();
char F();
int F();
double F();

B.

void F(int a);
void F(int b);
void F(int c);
void F(int d);

C.

void F();
void F(int x);
void F(double x);
void F(int x, int y);

D.

void F();
void F(int x);
void F(int x, int y);
void F(int x = 0, int y = 0);

答案正确:2 分


2-3

分数 2

作者 李祥

单位 湖北经济学院

关于赋值兼容规则

赋值兼容规则是指在需要基类对象的任何地方, 都可以使用 ▁▁▁▁▁ 派生类的对象来替代。

A.

私有

B.

保护

C.

公有

D.

任何

答案正确:2 分


2-4

分数 2

作者 董卫萍

单位 绍兴文理学院元培学院

下面对静态数据成员的描述中,正确的是( )

A.

静态数据成员是类的所有对象共享的数据

B.

类的每个对象都有自己的静态数据成员

C.

类的不同对象有不同的静态数据成员值

D.

静态数据成员不能通过类的对象调用

答案正确:2 分


2-5

分数 2

作者 董卫萍

单位 绍兴文理学院元培学院

有如下类定义:
class Point
{
        int x,y;
public:
        Point():x(0),y(0){}
        Point(int a,int b=0):x(a),y(b){}
};
若执行语句 Point a(2),b[3],*c[4]; 

则Point类的构造函数被调用的次数是( )

A.

2次

B.

3次

C.

4次

D.

5次


2-6

分数 2

作者 李祥

单位 湖北经济学院

关于封装性

在 C++ 中,实现封装性需借助于 ▁▁▁▁▁。

A.

枚举

B.

C.

数组

D.

函数

答案正确:2 分


2-7

分数 2

作者 文冬

单位 燕山大学

引入友元的主要目的是为了

A.

增强数据安全性

B.

提高程序的可靠性

C.

提高程序的效率和灵活性

D.

保证类的封装性

答案正确:2 分


2-8

分数 2

作者 黄淑伟

单位 沈阳师范大学

以下关于友元的说法哪个是不正确的?

A.

一个类的友元函数可以访问类对象的私有成员

B.

友元类关系是相互的,即若类A是类B 的友元,类B也是类A的友元

C.

在一个类中可以将另一个类的成员函数声明为友元

D.

类之间的友元关系不能传递


2-9

分数 2

作者 黄淑伟

单位 沈阳师范大学

下列哪一个说法是不正确的?

A.

某个变量的引用等价于这个变量,相当于该变量的一个别名

B.

定义引用时一定要将其初始化成引用某个变量

C.

初始化后,它就一直引用该变量不会再别引用别的变量了

D.

引用可以引用变量,也可以引用常量和表达式


2-10

分数 2

作者 范鹏程

单位 内蒙古师范大学

若类A的构造函数定义为
A(int aa=1, int bb=0) { a = aa; b = bb; }
则执行:A x(4);后,x.a和x.b的值分别是( )

A.

1,0

B.

1,4

C.

4,0

D.

4,1

答案正确:2 分


2-11

分数 2

作者 李廷元

单位 中国民用航空飞行学院

下列关于this指针的叙述中,正确的是

A.

任何与类相关的函数都有this指针

B.

类的成员函数都有this指针

C.

类的友元函数都有this指针

D.

类的非静态成员函数才有this指针

答案正确:2 分


2-12

分数 2

作者 李志明

单位 燕山大学

下面,有关派生类构造函数的论述,错误的是( )

A.

派生类构造函数,需要为基类构造函数传递参数;

B.

派生类构造函数,需要为内嵌子对象的初始化传递参数;

C.

派生类构造函数,仅对派生类的新增数据成员初始化传递参数;

D.

派生类构造函数,可以采用初始化列表的方式为常成员函数传递初始化参数。

答案正确:2 分


2-13

分数 2

作者 李廷元

单位 中国民用航空飞行学院

在公有继承的情况下,在派生类中能够访问的基类成员包括

A.

公有成员

B.

保护成员

C.

公有成员、保护成员和私有成员

D.

公有成员和保护成员

答案正确:2 分


2-14

分数 2

作者 何振峰

单位 福州大学

关于纯虚函数和抽象类的描述中,( )是错误的。

A.

纯虚函数是一种特殊的虚函数,它没有具体的实现

B.

抽象类是指具有纯虚函数的类

C.

一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类

D.

抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

答案正确:2 分

创建提问


2-15

分数 2

作者 王秀

单位 福州大学

以下说法中正确的是()

A.

在虚函数中不能使用this指针

B.

在构造函数中调用虚函数不是动态联编

C.

抽象类的成员函数都是纯虚函数

D.

构造函数和析构函数都不能是虚函数

答案正确:2 分

7-1 计算全班学生C++课程的总成绩和平均成绩

分数 10

全屏浏览

作者 杨雪华

单位 沈阳师范大学

定义一个类Student,记录学生C++课程的成绩。要求使用静态数据成员或静态成员函数计算全班学生C++课程的总成绩和平均成绩。

输入格式:

输入5个不超过100的正整数,作为C++成绩。

输出格式:

在第一行中输出成绩的和,第二行输出平均成绩。

输入样例:

90 80 70 60 50

输出样例:

350
70

#include<iostream>
using namespace std;

class Student
{
	int grade;
	static int sum;
	public:
		Student(int a)
		{
			sum=sum+a;
		}
		static void dis()
		{
			cout<<sum<<endl<<sum/5;
		}
		
};
int Student::sum=0;

int main()
{
	int a;
	for(int i=0;i<5;i++)
	{
		cin>>a;
		Student s(a);
	}
	Student s(0);
	s.dis();
	return 0;
}

7-2 动物爱吃什么

分数 10

全屏浏览

作者 杨雪华

单位 沈阳师范大学

1.设计一个基类动物类(animal),包含private数据成员:动物编号int num;和动物名称string name;public成员函数:getnum( )用于获取其编号, getname( )用于获取其名称和一个纯虚函数eat( ),以及构造函数。

2.由animal类派生出狗类Dog和猫类Cat,每个类中均有自己的构造函数,根据输出结果设计这两个类并在主函数中完成设计类的输出测试

3.要求在主函数中必须使用基类指针调用虚函数eat( ).

输入格式:

输入两行,每一行分别是动物编号num和动物名称name,中间空格分隔。

输出格式:

输出两行,每一行显示动物编号num、动物名称name和爱吃的食物。

输入样例:

在这里给出一组输入。例如:

1 金毛
2 波斯

输出样例:

在这里给出相应的输出。例如:

1号金毛啃骨头
2号波斯吃小鱼

#include<iostream>
using namespace std;
class animal
{
private:
    string name; 
    int num;
public:
    animal(string name,int num)
    {
        this->name = name;
        this->num = num;
    }
    int getnum(){
        return this->num;
    }
    string getname() { return this->name; }
    virtual void eat() = 0;
};
class Cat:public animal
{
public:
    Cat(string name ,int num):animal(name,num){}
    void eat()//1号金毛啃骨头
    {
        cout << this->getnum() << "号" << this->getname() << "吃小鱼" << endl;
    }
};
class Dog:public animal
{
public:
    Dog(string name,int num):animal(name,num){}
    void eat()
    {
        cout << this->getnum() << "号" << this->getname() << "啃骨头" << endl;
    }
};
int main()
{
    string name; int num;
    cin >> num>> name;
    Dog D(name, num);
    animal& a = D;
    a.eat();
    cin >> num >> name;
    Cat C(name, num);
    animal* ap = &C;
    ap->eat();
    system("pause");
}

7-3 抽象基类Shape派生3个类

分数 10

全屏浏览

作者 沙金

单位 石家庄铁道大学

声明抽象基类Shape,由它派生出三个类,圆形Circle,矩形Rectangle,三角形Triangle,用一个函数输出三个面积。

输入格式:

在一行中依次输入5个数,圆的半径,长方形的高和宽,三角形的高和底,中间用空格分隔

输出格式:

圆的面积,长方形的面积,三角形的面积,小数点后保留2位有效数字,每个面积占一行。

输入样例:

在这里给出一组输入。例如:

3 3 4 3 4

输出样例:

在这里给出相应的输出。例如:

28.27
12.00
6.00

#include <iostream>
#include <iomanip>
using namespace std;
class Shape
{
public:
	double Area;
 
public:
	void Show()
	{
		cout << fixed << setprecision(2) << Area << endl;
	}
};
class Circle : public Shape
{
private:
	double r;
 
public:
	Circle(double tr)
	{
		r = tr;
		Area = 3.1415926 * r * r;
	}
};
class Rectangle : public Shape
{
private:
	double w, h;
 
public:
	Rectangle(double tw, double th)
	{
		w = tw;
		h = th;
		Area = w * h;
	}
};
class Triangle : public Shape
{
private:
	double d, h;
 
public:
	Triangle(double td, double th)
	{
		d = td;
		h = th;
		Area = d * h / 2;
	}
};
int main()
{
	double a, b, c, d, e;
	cin >> a >> b >> c >> d >> e;
	Circle s1(a);
	s1.Show();
	Rectangle s2(b, c);
	s2.Show();
	Triangle s3(d, e);
	s3.Show();
	return 0;
}

7-4 单继承中的构造函数与析构函数

分数 10

全屏浏览

作者 杨雪华

单位 沈阳师范大学

编写代码实现一个表示点的父类Dot和一个表示圆的子类Cir,求圆的面积。

Dot类有两个private数据成员 float x,y;

Cir类新增一个private的数据成员半径float r 和一个public的求面积的函数getArea( );

主函数已经给出,请编写Dot和Cir类。

#include <iostream>
#include<iomanip>
using namespace std;
const double PI=3.14;
//请编写你的代码
int main(){
    float x,y,r;
    cin>>x>>y>>r;
    Cir c(x,y,r);
    cout<<fixed<<setprecision(2)<<c.getArea()<<endl;
    return 0;
}

输入格式:

输入圆心和半径,x y r中间用空格分隔。

输出格式:

输出圆的面积,小数点后保留2位有效数字,注意:const double PI=3.14,面积=PI*r*r

输入样例:

在这里给出一组输入。例如圆的中心点为原点(0,0),半径为3:

0 0 4

输出样例:

在这里给出相应的输出。例如:

Dot constructor called
Cir constructor called
50.24
Cir destructor called
Dot destructor called

#include <iostream>
#include<iomanip>
using namespace std;
const double PI=3.14;
 
class Dot{
	private:
		float x,y;
	public:
		Dot(int a,int b):x(a),y(b){
			printf("Dot constructor called\n") ;
		}
		Dot(){
			printf("Dot constructor called\n") ;
		}
        virtual ~Dot(){
        	printf("Dot destructor called\n");
		}
};
class Cir:public Dot{
	private :
		float r;
	public :
	Cir(){
		printf("Cir constructor called\n") ;
	} 
	Cir(int a,int b,int c):Dot(a,b),r(c){
		printf("Cir constructor called\n") ;
	}
	 ~Cir(){
        	printf("Cir destructor called\n");
		}
	float getArea(){
		return r*r*PI;
	}
};
int main(){
    float x,y,r;
    cin>>x>>y>>r;
    Cir c(x,y,r);
    cout<<fixed<<setprecision(2)<<c.getArea()<<endl;
    return 0;
}

  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值