A.单选题

2-1下列程序代码,正确的输出结果是( )


int a=0xfe;
char b=062;
cout<<a<<","<<b<<endl;

A.

0xfe,062

B.

fe,62

C.

254,2

D.

254,62

2-2下列代码能正确执行的是( )

A.


char a='C';
const char& p=a;

B.


char a='C';
char* const p;
p=&a;

C.


char a='C';
const char& p;
p=a;

D.


char a='C';
char& p;
p=a;

2-3

new和delete运算符正确的使用是( )

A.


int* p=new int[10]; delete p;

B.


int* p=new int(10); delete []p;

C.


vector<int>* v=new vector<int>[10]; delete []v;

D.


int* a=new int[]{1,2,3,4}; delete []a;

2-4

下列哪个代码能够实现x和y值的交换( )

A.


void fun(int a,int b) {int x = a;a = b;b = x;
}
int main() {int x = 1, y = 2;fun(&x, &y);cout << x << ","<<y << endl;return 0;
}

B.

void fun(int* a,int* b) {int x = *a;*a = *b;*b = x;
}
int main() {int x = 1, y = 2;fun(&x,&y);cout << x << ","<<y << endl;return 0;
}

C.

void fun(int& a,int& b) {int x = a;a = b;b = x;
}
int main() {int x = 1, y = 2;fun(&x, &y);cout << x << ","<<y << endl;return 0;
}

D.

void fun(const int&a,const int&b) {int x = a;a = b;b = x;
}
int main() {int x = 1, y = 2;fun(x, y);cout << x << ","<<y << endl;return 0;
}

2-5

下面有一个结构体,对结构体的错误使用是( )

struct Book{string name;double price;
}

A

Book b{"C++",20};

B

Book b;
b->name="C++";
b->price=20;

C

Book *b=new Book[2];
b[0].name="C++";
b[0].price=20;

D

Book *p=new Book();
p->name="C++";
p->price=20;

2-6

下列种类的函数中,哪一种不是类的成员函数?

A.

构造函数

B.

析构函数

C.

友元函数

D.

拷贝构造函数

2-7

父类Base和子类Derive的定义如下。请问在子类中,继承的父类成员f,x,y的访问控制权限分别是:

class Base
{public:void f();protected:int x;private:int y;
};class Derive : protected Base
{
};

A.

public, protected, private

B.

public, public, public

C.

private, private, private

D.

protected, protected, private

2-8

当变量x的输入值是9时,下面程序的运行结果是:

#include <iostream>
#include <string>
using namespace std;
int main()
{int x;cin>>x;try{cout<<"begin"<<endl;if(x>100){cout<<"1"<<endl;throw string("too big.");}else{cout<<"x="<<x<<endl;}cout<<"2"<<endl;}catch(string e){cout<<"3:"<<e<<endl;}cout<<"end"<<endl;return 0;}

A


begin12end

B


begin13: too big.2end

C


beginx=92end

D

begin13: too big.end

2-9

下列哪个代码不会调用对象的拷贝构造函数( C)


A.
MyClass a;
MyClass b=a;B.
MyClass a;
MyClass b(a);C.
MyClass a;
MyClass& b=a;D.
void f(MyClass obj)
{....
}
MyClass a;
f(a);

2-10根据下列类模板声明,正确初始化对象的方式是( A)

template<typename T1, typename T2>
class MyClass{private:T1 x;T2 y;public:MyClass(T1 _x, T2 _y):x(_x),y(_y){}
};

A.
MyClass<int,char> a(10,'a');B.
MyClass a(10,'a');C.
MyClass<int,char> a;D.
MyClass a;

Fn函数题

6-1 类的定义(教师类Teacher)

分数 10

全屏浏览题目

切换布局

作者 刘骥

单位 重庆大学

本题要求定义一个教师类Teacher,数据成员包含姓名name和年龄age,类的声明见给出的代码,请给出类的完整实现,并通过测试程序。

类的声明:


class Teacher{private:string name;int age;public:Teacher(string name,int age);string getName() const;int getAge() const ;void setName(string name);void setAge(int age);
};

测试程序:


#include<iostream>
#include<string>
using namespace std;
class Teacher{private:string name;int age;public:Teacher(string name,int age);string getName() const;int getAge() const ;void setName(string name);void setAge(int age);
};/* 请在这里填写答案 */int main(){Teacher a("Wang",20);cout<<"name:"<<a.getName()<<endl;cout<<"age:"<<a.getAge()<<endl;a.setName("Zhang");a.setAge(30);cout<<"name:"<<a.getName()<<endl;cout<<"age:"<<a.getAge()<<endl;return 0;
}

测试程序的输入:


测试程序的输出:

name:Wang
age:20
name:Zhang
age:30

注意:“:”是英文冒号

提示

下列代码为类实现的骨架代码

Teacher::Teacher(string name,int age){//代码
}
string Teacher::getName() const{//代码
}
int Teacher::getAge() const{//代码
}
void Teacher::setName(string name)
{//代码
}
void Teacher::setAge(int age)
{//代码
}

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

参考答案

/* 请在这里填写答案 */
Teacher::Teacher(string name, int age)
{//代码this->name = name;this->age = age;
}
string Teacher::getName() const
{//代码return name;
}
int Teacher::getAge() const
{//代码return age;
}
void Teacher::setName(string name)
{//代码this->name = name;
}
void Teacher::setAge(int age)
{//代码this->age = age;
}

6-2 加、不等和输入输出的运算符重载(2维向量Vec2)

分数 10

全屏浏览题目

切换布局

作者 刘骥

单位 重庆大学

本题要求定义一个二维向量类Vec2,类的声明见给出的代码,请给出类的完整实现,并通过测试程序。类的声明包括如下内容:

  1. 数据成员,向量的第一维u和第二维v;
  2. u和v的访问函数;
  3. 构造函数;
  4. 加号、减号运算符重载(遵守二维向量的运算规则);
  5. ==和!=运算符重载(遵守二维向量的运算规则)
  6. 输入、输出运算符重载。

类实现代码需要补充构造函数以及加、不等、输入输出运算。

类的声明:

class Vec2{private:double u;double v;public:Vec2(double u=0,double v=0);double getU() const;double getV() const;Vec2 operator+(const Vec2&b);friend Vec2 operator-(const Vec2&a,const Vec2&b);bool operator==(const Vec2&b) const;friend bool operator!=(const Vec2&a,const Vec2&b);friend ostream&operator<<(ostream&os,const Vec2&c);friend istream&operator>>(istream&is,Vec2&c);
};

测试程序:

#include<iostream>
using namespace std;
class Vec2{private:double u;double v;public:Vec2(double u=0,double v=0);double getU() const;double getV() const;Vec2 operator+(const Vec2&b);friend Vec2 operator-(const Vec2&a,const Vec2&b);bool operator==(const Vec2&b) const;friend bool operator!=(const Vec2&a,const Vec2&b);friend ostream&operator<<(ostream&os,const Vec2&c);friend istream&operator>>(istream&is,Vec2&c);
};
double Vec2::getU() const
{return u;
}
double Vec2::getV() const
{return v;
}
Vec2 operator-(const Vec2&a,const Vec2&b){return Vec2(a.u-b.u,a.v-b.v);
}
bool Vec2::operator==(const Vec2&b) const{return u==b.u&&v==b.v;
}
/* 请在这里填写答案 */int main(){Vec2 a;cin>>a;cout<<"a: "<<a<<endl;Vec2 b(3,4);Vec2 c=a+b;cout<<"c: "<<c<<endl;Vec2 d=a-b;cout<<"d: "<<d<<endl;cout<<"a==a: "<<(a==a)<<endl;cout<<"a!=a: "<<(a!=a)<<endl;return 0;
}

测试程序的输入:

10 5

测试程序的输出:

a: u=10,v=5
c: u=13,v=9
d: u=7,v=1
a==a: 1
a!=a: 0

注意:“:”和“,”为英文,“:”后有一个空格

提示

下列代码为类实现的骨架代码

Vec2::Vec2(double u,double v){//代码
}
Vec2 Vec2::operator+(const Vec2&b){//代码
}
bool operator!=(const Vec2&a,const Vec2&b)
{//代码
}
ostream&operator<<(ostream&os,const Vec2&c){//代码
}
istream&operator>>(istream&is,Vec2&c){//代码
}

参考答案

Vec2::Vec2(double u, double v)
{//代码this->u = u;this->v = v;
}
Vec2 Vec2::operator+(const Vec2& b)
{//代码Vec2 temp;temp.u = this->u + b.u;temp.v = this->v + b.v;return temp;
}
bool operator!=(const Vec2& a, const Vec2& b)
{//代码if (a.u == b.u && a.v == b.v){return 0;}return 1;
}
ostream& operator<<(ostream& os, const Vec2& c)
{//代码os << "u=" << c.u << ",v=" << c.v;return os;
}
istream& operator>>(istream& is, Vec2& c)
{//代码is >> c.u >> c.v;return is;
}

6-3 继承和多态(水果和香蕉)

请设计水果和香蕉类,并通过测试程序,具体要求如下:

  1. 水果(Fruit)是基类,成员包含:

    • 保护成员变量重量(weight,int类型)
    • 公有构造函数
    • 公有析构函数
    • 公有函数display
  2. 香蕉(Banana)从水果类公有继承,成员包含:
    • 私有成员变量产地(origin,string类型)
    • 公有构造函数
    • 公有析构函数
    • 公有函数display

对应代码

Fruit f(10);
f.display();

输出为:

Fruit Constructor
weight=10
Fruit Destructor

对应代码

Banana a("Chongqing",10);
a.display();

输出为:

Fruit Constructor
Banana Constructor
origin=Chongqing,weight=10
Banana Destructor
Fruit Destructor

对应代码

Fruit *pf=new Banana("Chongqing",10);;
pf->display();
delete pf;

输出为:

Fruit Constructor
Banana Constructor
origin=Chongqing,weight=10
Banana Destructor
Fruit Destructor

测试程序

#include<iostream>
#include<string>
using namespace std;/* 请在这里填写答案 */
int main(){Fruit *pf=new Banana("Chongqing",10);;pf->display();delete pf;return 0;
}

测试程序的输入

测试程序的输出

Fruit Constructor
Banana Constructor
origin=Chongqing,weight=10
Banana Destructor
Fruit Destructor

参考答案

class Fruit
{
public:Fruit(){cout << "Fruit Constructor" << endl;}Fruit(int a){cout << "Fruit Constructor" << endl;weight = a;}virtual void display(){cout << "weight=" << weight << endl;}virtual ~Fruit(){cout << "Fruit Destructor" << endl;}
protected:int weight;
};class Banana :public Fruit
{
public:Banana(string str, int weit){cout << "Banana Constructor" << endl;weight = weit;origin = str;}void display(){cout << "origin=" << origin << ",weight=" << weight << endl;}~Banana(){cout << "Banana Destructor" << endl;}
private:string origin;
};

编程题

7-1 约数

分数 10

全屏浏览题目

切换布局

作者 葛亮

单位 重庆大学

当整数a除以整数b(b≠0),除得的商正好是整数而没有余数时,称b是a的约数。给你两个正整数A和B, 如果B是A的约数,请打印输出A+B, 否则打印输出A−B。

输入格式:

输入包括两个正整数A和B(1≤B≤A≤100)。

输出格式:

输出结果。

输入样例1:

12 4

输出样例1:

16

输入样例2:

20 8

输出样例2:

12

输入样例3:

1 1

输出样例3:

2
#include<iostream>using namespace std;int main()
{int a, b;cin >> a >> b;bool flag = 0;if (a % b == 0){flag = 1;}if (flag == 1){cout << a + b;}else{cout << a - b;}}

7-2 逆序整数

分数 10

全屏浏览题目

切换布局

作者 葛亮

单位 重庆大学

对于n位的两个正整数x和y,可以把x表示为x1​x2​…xn​,其中xi​(1≤i≤n)表示整数x第i位上的数字;把y表示为y1​y2​…yn​,其中yi​(1≤i≤n)表示整数y第i位上的数字。如果x1+k​=yn−k​(0≤k≤n−1)始终成立,则x和y互为逆序整数。

给你两个正整数A和B, 判断两个整数是否互为逆序整数,并输出相应的结果。

注:题目保证正整数A和B的个位数字不是0。

输入格式:

先在第一行输入位数n,然后在接下来的两行分别输入位数为n的正整数A和B(1≤n≤50)。

输出格式:

输入样例1:

2
89
98

输出样例1:

89 and 98 are reverse.

输入样例2:

3
981
289

输出样例2:

981 and 289 are not reverse.

提示:

输入的两个正整数可能会超过long long int所能表示数的范围。可以用字符串来表示正整数。

输出结果以“.”结尾。

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
using namespace std;
int main()
{int n; string A; string B;cin >> n;cin >> A >> B;int cishu = 0;for (int k = 0; k < n; k++){if (A[k] == B[n - 1 - k]){cishu;}else { cishu++;}}if (cishu == 0) { cout << A << " and " << B << " are reverse.";}else {cout << A << " and " << B << " are not reverse."; }
}

7-3 一维世界的疫情传播

分数 10

全屏浏览题目

切换布局

作者 葛亮

单位 重庆大学

可怕的阿尔法病毒正在一维世界传播,如果某人的活动范围与病毒携带者的活动范围有交集,则有被感染的可能。假设有一名病毒携带者A在位于X的家附近活动,他到过的地方用xi​表示(这些地点不重复),对于X和xi​之间的区域,都认为是A的活动范围。另外有一名健康者B,他在位于Y的家附近活动,他到过的地方用yi​表示(这些地点不重复),对于Y和yi​之间的区域,都认为是B的活动范围。所有的地点都位于整数点上,−100≤X,Y,xi​,yi​≤100,X=Y,xi​=X,yi​=Y。现在需要判断B是否有被感染的可能。

输入格式:

第一行输入N,M,X,Y四个整数,接下来2行分别是N个xi​和M个yi​的值。整数值之间都用空格隔开。具体如下:

NMXY

x1​x2​…xN​

y1​y2​…yM​

输出格式:

用家的位置表示A和B两人,输出是否有被感染的可能,具体格式请参见样例。

输入样例1:

3 2 10 20
8 15 13
16 22

输出样例1:

10 and 20: impossible

输入样例2:

4 2 -48 -1
-20 -35 -91 -23
-22 66

输出样例2:

-48 and -1: possible

输入样例3:

5 3 6 8
-10 3 1 5 -100
100 6 14

输出样例3:

6 and 8: possible

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include <iostream>
using namespace std;
int main()
{int N, M, X, Y;cin >> N >> M >> X >> Y;int* x = new int[N];int* y = new int[M];//lipu    int x_Max = X, x_Min = X;int y_Max = Y, y_Min = Y;for (int i = 0; i < N;i++){cin >> x[i];if (x[i] > x_Max){x_Max = x[i];}if (x[i] < x_Min){x_Min = x[i];}//找到x小组数据区间x_Min-x_Max;}for (int i = 0; i < M; i++){cin >> y[i];if (y[i] > y_Max){y_Max = y[i];}if (y[i] < y_Min){y_Min = y[i];} //找到y小组数据区间x_Min-x_Max;}bool isPossible = 0;if (x_Max < y_Min || y_Max < x_Min){isPossible = 0;}else{isPossible = 1;}if (isPossible == 1){cout << X << " and " << Y << ": possible";}else{cout << X << " and " << Y << ": impossible";}return 0;
}

重庆大学c++2022级-期末模拟考试相关推荐

  1. buaa22级期末模拟

    22级期末模拟 说在前面 我的方法还是有点暴力的. 思路 本题大致上是一个结构体快排的问题. 首先读入信息.对于读到的信息直接进行快排处理. 将ID和machine作为快排元素,接着对于数组进行遍历操 ...

  2. 大一下学期C++期末模拟考试参考答案

    期末模拟考试参考答案 中国传媒大学2020春季学期,C++程序设计期末模拟答案 说在前面:以下并不是官方给出的答案,而是学生自制版,提交结果AC,但不能保证绝对的正确性,仅供大家参考.我在程序中以注释 ...

  3. 北京理工大学 c语言期末试题,北京理工大学C语言期末模拟考试.doc

    北京理工大学C语言期末模拟考试 北京理工大学C语言期末模拟试题 一.单项选择题 - 试答 1 Question 1 分数: 2 已知结构定义如下: struct sk { int a: float b ...

  4. 重庆大学 c++2022级第七次作业——类 7-2 国际贸易统计

    时隔N天 我又更新了 7-2 国际贸易统计 分数 10 全屏浏览题目 切换布局 作者 葛亮 单位 重庆大学 这里给出N个国家之间进行国际贸易的记录,请你统计这些国家进行国际贸易的收益. 输入格式: 输 ...

  5. 计算机2级模拟1答案,全国计算机2级MSOffice模拟考试1答案.doc

    word 1)[解题步骤] 步骤1:打开考生文件夹下的素材文件"Word.docx". 步骤2:单击[页面布局]选项卡下[页面设置]组中的对话框启动器按钮,打开"页面设置 ...

  6. 厦大2021级期末上机考试

    加一 描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字,数组的长度不超过1000. 你可以假设除了整数 0 之外,这 ...

  7. [思科]期末模拟考试

    目录 第一次刷 1 哪个命令可用于手动查询 DNS 服务器来解析特定主机名? 2. POP3 提供了哪些服务? 3 两个学生正在开展网络设计项目. 一个学生在绘图,同时另一个学生在编写提议. 绘图已经 ...

  8. 2022机修钳工(高级)考试题库模拟考试平台操作

    题库来源:安全生产模拟考试一点通公众号小程序 2022年机修钳工(高级)考试试题为机修钳工(高级)考试题历年真题!2022机修钳工(高级)考试题库模拟考试平台操作依据机修钳工(高级)新版教材大纲编写. ...

  9. 2021-2022学年度第二学期21级Java程序设计理论模拟考试

    说明:由于看pdf太难受了,重新编辑好放到博客上,方便自己复习,正确答案加粗标红 考试试卷 页码, 1/4 试卷名称:2021-2022学年度第二学期21级Java程序设计理论模拟考试(3.4.6班) ...

最新文章

  1. mysql最左侧原则的深入理解
  2. DCMTK:DcmAttributeFilter类的测试程序
  3. 如何检测链表中是存在循环
  4. 怎么避免后台被搜索_复星保德信人寿保险有限公司星满意重大疾病保险怎么样?好不好?可信/靠谱吗?有什么优缺点/注意事项?值不值得买?一年多少钱?...
  5. ASP.NET Core 中基于工厂的中间件激活
  6. [No0000101]JavaScript-基础课程1
  7. 只有一条数据线了?iOS 14暗示苹果不在iPhone 12中附赠耳机
  8. 苹果公司首次公布iOS 13和iPadOS 13安装量 都有一颗尝鲜的心
  9. [.net基础]访问修饰符
  10. 两个变量相乘_自动控制原理-信号流图与系统状态变量传递函数之间联系如此紧密...
  11. 第27章 正则表达式
  12. MySQL性能优化的21个最佳实践 和 mysql使用索引
  13. 删除安装的python
  14. 从雅迪赞助FIFA世界杯透视体育营销趋势
  15. app逆向入门分析——破解某APP登陆请求参数
  16. iOS 打开天猫/淘宝/京东客户端并且进入商品详情页/店铺主页的方法
  17. Grafana 6.7的sqlite3数据库报错“database is locked”的修复方法
  18. 插入缺失InDel insertion deletion
  19. linux下终端分屏使用
  20. IOS开发之——更换Storyboard

热门文章

  1. 学习node.js第二天
  2. 更快学习编程的7个重要技巧
  3. 《凡人修真2》 架设
  4. bootstrapNPM淘宝代理镜像
  5. 从0开始建设saas - 优化篇(session访问的问题)
  6. Unity新GUI教程 – 第一部分
  7. day 23-24 面试题:synchronized和volatile的区别;final,finally,finalize区别
  8. [渝粤教育] 南通大学 电路分析 参考 资料
  9. 小白初写Spring核心容器功能
  10. C/C++ 的平方和开平方函数