2022年4月自考C++程序设计真题试卷出来了,免费下载哦,欢迎有需要的同学下载学习哦,此外还包含2022年4月高等教育自学考试全国统一命题考试真题试卷免费下载。
绝密★启用前
2022年4月高等教育自学考试全国统一命题考试C++程序设计
(课程代码04737)
注意事项:
- 本试卷分为两部分,第一部分为选择题,第二部分为非选择题。
- 应考者必须按试题顺序在答题卡(纸)指定位置上作答,答在试卷上无效。
- 涂写部分、画图部分必须使用2B铅笔,书写部分必须使用黑色字迹签字笔。
点击免费下载:2022年4月高等教育自学考试全国统一命题考试
9.从一个基类派生岀的各个类的对象之间
- 共享部分数据成员和函数成员
- 共享所有数据成员,每个对象还包含基类的所有属性
- 共享部分数据成员,每个对象还包含基类的所有属性
- 不共享任何数据成员,但每个对象还包含基类的所有属性
表示式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式, 则可表示为
- operator(a+b)
- operator+(a,b) 函数重载是指
- a. operator+(b)
- b.operator+(a)
两个以上的函数名字不同,但形参的个数或类型相同
两个以上的函数取相同的函数名,而且函数的返回类型相同 两个以上的函数取相同的函数名,但形参的个数或类型不同 两个以上的函数取相同的名字且有相同的参数个数,但形参的类型不同
一、单项选择题:本大题共20小题,每小题1分,共20分。在每小题列出的备选项中 只有一项是最符合题目要求的,请将其选出。
下列对C++程序的描述中,不正确的是
A.继承于C语言
C.以.cpp作为文件扩展名 在下面循环语句中循环体执行的次数为 fbr(int i-1; i<n; i++)
if(i>n/2) break;
- n/2
- n-1
B,必有且仅有一个主函数
D.程序从#include指令开始执行
- n/2+l
- n/2-l
有函数原型^int fun(int,float);以下语句正确的是
- int a=fun(); B. cout«fun(l,3-14)
- double a~fun(); D. cout«fun(l+3.13)
关于封装,下列说法中不正确的是
经过封装,
经过封装,
经过封装, 经过封装,
对象的属性都是不可见的
每个对象都成为相对独立的实体
对象的全部属性和操作结合在一起,形成一个整体 一个对象的实现细节被尽可能地隐藏起来(不可见)
假定A为一个类,abc为该类的一个成员函数,则参数表中隐含的第一个参数为
- abc B. *this
- this D. this&
将一个类A或函数f()说明为另一个类B的友元,则A或H)可直接访问类B的 A.只能是公有成员 B.
C.只能是保护成员 D.
具有任何权限的成员 除私有成员之外的任何成员
如果一个类的成员函数print。不修改类的数据成员值,则应将其声明为 A. void print() const; B. void print(const);
- void const print(); D. const void print();
从 ustudent wanghao(“王浩”,”M”,22); wanghao.id(“2005131000”);w 中,可判断 id 是 A,私有成员数据 B.私有成员函数
C.公有成员数据 D.公有成员函数
若一个类的成员函数前用static关键字修饰,则该成员函数
只能用对象名来调用 可以访问该类的所有成员
A.没有this指针
C.可以被声明为const
- C-H-中实现接口重用的是
A.虚函数
C.重载函数
- C++中的虚基类机制能够保证
限定基类只经过一条路径派生岀派生类
当一个类多次间接从基类派生以后,其基类只被一次继承
允许基类经过多条路径派生岀派生类,派生类也就能多次继承该基类 当一个类多次间接从基类派生以后,派生类对象能保留多份间接基类的成员
内联函数
模板函数
- 将标准输入重定向到文件dat的语句是
- freopen(stdin, nrn,”input.dat”); B. freopen(stdout, “input.dat”);
- freopen(ninput.datH, *’r n,stdin); D. freopen(,,input.datn, nr “,stdout);
- 语句”cout«setbase(8)«l6«setw(3)«l8«endl;”的输岀结果是
- 1618 B.
- 2022 D.
17.关于文本文件和二进制文件的描述正确的是 A.二进制文件数据兼容性好
C.文本文件具有较高的兼容性
16 18
20 22
二进制文件以文本形式存储 文本文件便于对数据随机访问
- 关于对象概念的描述中,错误的是 对象就是C语言中的结构变量 对象之间的信息传递是通过消息进行的 对象代表着正在创建的系统中的一个实体 对象是一个状态和操作(或方法)
- 关于析构函数的叙述中,正确的是
A.用户必须定义类的析构函数
C.析构函数的定义只能在类体内
- 假设有类模板声明如下,则选项中正确的是 template <typename T> class Tclass(int a;
public :Tclass(int b){a=b;});
- Tclass t(9);
- Tclass (0.9>t(9));
二、填空题:本大题共15小题,每空1分,共15分。
- C++语言支持的两种多态性分别是编译时的多态性和 的多态性。
- 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移 动到 的开始位置。
- x>0||y==5的相反表示式为 o
- 如果类A继承类B,则类A称为 ,类B称为基类。
- 要想访问基类的private成员变量,只能通过基类提供的 进行间接访问。
- strlen(“apple”)的值为 。
- 假定用户为类AB定义了一个构造函数“AB(intaa){a=aa;}”,则该构造函数实现对 数据 的初始化。
- 通过指向基类的指针调用派生类对象的函数时,采用 调用。
- 复制构造函数使用一个 初始化创建中的对象。
- 在C++中,对于构造函数和析构函数来说, 是不可以重载的。
- 设有一时间类Time,现欲用成员函数方法重载运算符+,实现一个时间与一个整数 的相加运算,所得结果为一个新时间,则成员函数的声明语句为 。
- 在表达式“x+=y”中,”+=”是作为非成员函数重载的运算符,若是使用显式的函 数调用代替直接使用运算符这个表达式还可以表示为 o
- 假定a是一个一维指针数组,则a+i所指对象的地址比a大 字节。
- 如果一个派生类只有一个唯一的基类,则这样的继承称为 o
- C++虚函数有两种调用方式,分别是 和多态调用方式。
三、程序填空题:本大题共5小题,每小题4分,共20分。请按试题顺序和空格顺序 在答题卡(纸)指定位置上填写答案,错填、不填均无分。
- 程序的输出结果为:helo:third
#include <iostream>
using namespace std;
int main()
{ intx=3,y=3;
string sl=”first\n”,s2=”second\rr,s3=”third\n”;
switch(x%2)
{
case 1:
{
case 0: cout«sl;
case 1: cout«s2; break;
default: cout«”hello: ”;
)
case 2: ;
}
return 0;
)
- 函数Convert。将一个数字字符串转换为对应的整数
#include <iostream>
using namespace std;
int Convert(char *str);
int main()
{
char s[10] = ”12345”;
int n = Convert(s);
cout« n « endl;
return 0;
}
int num=0,digit;
fdr(int i=0; i < strlen(str); i++) {
digit = – 48; num = num*10 + digit;}return num;
- 程序的输出结果为:1234
class A ( private: int X,Y; protected: int Z;
public:
A(int a, int b, int c) ( X=a; Y=b; Z=c;} int GetX() ( return X; ) int GetY() ( return Y; }};
class B:public A(
private: int K;
public:
B(int a,int b,int c,int d): A(a,b,c) ( K=d;}
void Show() ( cout«GetX()«GetY()<<Z«K«endl;); int main()
Bb(l,2,3,4);
return 0;)
- Shape类是一个表示形状的抽象类,area()是求图形面积的函数,total。是一个通用的 用以求不同形状的图形面积总和的函数,Shape类派生三角形类Triangle class Shape (
public:
virtual float area()=0;};
float total(Shape *s[],int n)
float sum=0.0; for(int i=0;ivn;i++)
return sum;}
public:
Triangle(double h,double w){H=h;W=w;} double area() const (return H*W*0.5;} private:
double H,W;
- 下面的程序将一个已有文件的内容复制到另一个文件中,请将程序补充完整 #include<fstream> using namespace std;
int main()
infile.openC’d:\\filel.txt”,ios::in); if(! infile)
cout«nfilel.txt can’t open.\nH; outfile.open(“d:\\file2.txt,,,ios::out); if(!outfile)
cout«nfile2.txt can’t openAn”; char str[8O]=H\On; while(!infile.eof())
(infile.read(str,sizeof(str));
cout«str;)
infile.closeQ; outfile.closeQ; return 0;}
四、程序分析题:本大题共5小题,每小题6分,共30分。阅读程序后,填写程序的 正确运行结果。
- #include <iostream>
using namespace std;
enum BoolConst ( False=0 , True=l };
class Boolean(
public:
Boolean(BoolConst x = False) {logic = x; }
void print() const ( logic? cout«H TRUE “: cout«n FALSE ) friend Boolean operator *(const Boolean & objl, const Boolean & obj2);
protected: BoolConst logic;
};
Boolean operator* ( const Boolean & obj 1, const Boolean & obj2 )
( return (obj 1.logic && obj2.logic) ? Boolean(True): Boolean(False); ) int main()
{
Boolean a(False), b(True), c;
c = a * b;
a.print(); b.printQ; c.printQ;};
int main()
( Samp *p;
int N=3;
p= new Samp[N];
if(!p)
( coutvv”内存分配错误\n”;
return 1;
)
for(int i=0;ivN;i++) p[i].SetMuti(i,i+l);
fbr(int i=0;i<N;i-H-) cout«nMuti[,,<<i«n]值是:n«p[i].GetMuti()«endl;
delete []p;
return 0;
}
- #include <iostream>
using namespace std;
class Computer(
public:
Computer() { cout« “Computer constructor’1« endl; }
virtual void subscribe() = 0;
void read() ( cout« “Read paper’* « endl; )
~Computer() { cout«“Computer destructor” « endl;}
};
class Design : public Computer{
public:
DesignQ (cout « ”Design constructor” « endl; )
virtual void subscribeQ ( cout« “Subscribing Design*’ « endl; } void read() (cout«”Reading Design1‘ « endl;}
〜Design。( cout«”Design destructor” « endl;}
};
int main()
( Design journal;
Computer *pjoumal= &journal;
joumal.subscribe();
pjoumal->read();
return 0;
- #include <iostream>
using namespace std;
class A {
private:
int n;
public:
A(int i)( n=i;)
A operator -h-() { n++; }
A operator ++(int) ( n+=2; }
void DisplayO { cout«’*n:=’,«n«endl; }};
int main()
(Aa(2), b(2);
a++;
++b;
- Display();
- Display();}
五、程序设计题:本大题共2小题,第1小题5分,第2小题10分,共15分。
- 根据下面类中Sum函数成员的原型和注释写出它的类外定义。
^include <iostream>
using namespace std;
class AA{
int *a, n,MS;
public:
void InitAA(int aa[],int nn,int ms)
(if(nn>ms){cout«nError!’,«endl;retum;}
MS=ms;
a=new int[MS];
fbr(int i=0;ivn;i++)a[i]=aa[i];}int Sum();〃求出并返回数组a中前n个元素之和};
- 请声明Student类,类中包含数据成员姓名和分数,成员函数compare (用于比较两 名学生的分数)。在主函数中输入n名学生的信息后,输出其中最高分和最低分学 生的姓名及分数。
高等教育自学考试全国统一命题考试
以上就是2022年4月自考C++程序设计真题试卷,有需要的同学可以自行下载使用,有什么问题可以随时留言咨询。
中国自考网:建议开通SVIP超级会员更划算,全站所有资源永久免费下载(正版自考网课除外)
1. 本站所有网课课程资料来源于用户上传和网络收集,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,助力考生上岸!
3. 如果你想分享自己的自考经验或案例,可在后台编辑,经审核后发布在“中国自考网”,有下载币奖励哦!
4. 本站提供的课程资源,可能含有水印,介意者请勿下载!
5. 如有链接无法下载、失效或广告,请联系管理员处理(在线客服)!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 星光不问赶路人,岁月不负有心人,不忘初心,方得始终!
中国自考网 » 2022年4月自考04737C++程序设计试题(历年真题)