1、全国1月高等教诲自学考试 C++程序设计试题 课程代码:04737 一、单项选取题(本大题共20小题,每小题1分,共20分) 在每小题列出四个备选项中只有一种是符合题目规定,请将其代码填写在题后括号内。错选、多选或未选均无分 。 1.在C++中,头文献扩展名为( ) A..cpp B..h C..1ib D..obj 2.下列符号中,不属于分隔符是( ) A., B./ C.; D.{} 3.可替代#definePI3.1415926语句是( ) A.float PI 3.1415926; B.const float PI=3.141
2、5926; C.const PI(3.1415926); D.const 3.1415926; 4.布尔类型标记符是( ) A.void B.short C.long D.bool 5.下列不是C++语言基本数据类型是( ) A.字符类型 B.整数类型 C.逻辑类型 D.枚举类型 6.C++容许在构造中定义函数,这些函数称为( ) A.静态函数 B.构造函数 C.析构函数 D.成员函数 7.设函数void inc(int)将形参加1,如有整型变量int i=10;则执行inc(i);后,i值为( ) A.9 B.10 C.11
3、D.未知 8.下列哪种默认参数声明是不对的( ) A. int max(int a,int b,int c,int d=0); B. int max(int a,int b,int c=0,int d=0); C. int max(int a=0,int b,int c=0,int d=0); D. int max(int a,int b=0,int c=0,int d=0); 9.设int &max(int &,int &)返回两参数中较大者,如有两整型变量int a=10;int b=15;在执行max(a,b)++后,a,b值分别为( ) A.10,15
4、 B.11,15 C.10,16 D.1l,16 10.包括哪种语句函数不能声明为内联函数( ) A.循环 B.变量自增自减 C.if...else… D.变量声明 11.定义函数模板中使用参数类型标记符需使用下列哪组符号括起来( ) A.<> B.“” C.() D.{} 12.一种类拥有各种构造函数,则这些构造函数间为( ) A.重载关系 B.重复关系 C.拷贝关系 D.无关系 13.对于拷贝构造函数point::point(point& p),下列阐明对的是( ) A.该函数只能访问P私有成员 B.该函数不能访问P公有成员
5、 C.该函数可以访问P私有和公有成员 D.该函数不能访问P成员 14.使用delete[]删除对象数组时,描述对的是( ) A.数组中各元素都调用析构函数 B.数组中各元素都调用构造函数 C.不调用析构函数 D.只有首元素调用析构函数 15.下列哪个指令属于条件编译指令( ) A. #elif B. #error C. #pragma D. #include 16.设类Test中存在成员static int x,则下列哪种初始化方式是对的( ) A.Test::int x=25; B.int x=25; C.int Test::x=25; D.i
6、nt Test x=25; 17.下列关于友元描述错误是( ) A.成员函数不可作友元 B.类可以作友元 C.普通函数可以作友元 D.静态函数可以作友元 18.在继承中,派生类拥有基类个数为( ) A.0个 B.1个 C.各种 D.至少1个 19.基类中protected成员,通过public派生,其在派生类中可见性为( ) A.不可访问 B.private C.protected D.public 20.下列哪个不是面向对象核心要素( ) A.抽象性 B.构造性 C.封装性 D.多态性 二、填空题(本大题共20小题,每小题
7、1分,共20分)
请在每小题空格中填上对的答案。错填、不填均无分。
21.在STL库中用于实现数组内容反转函数是______。
22.若要使用C++原则类库,需要指定相应命名空间,所用语句是______。
23.C++语言中整数常量有4种描述类型:十进制常量、长整型常量、八进制常量和______。
24.声明一种名为a整型引用变量所使用语句是______。
25.重载运算符仍保存原有优先级、______和语法构造。
26.执行代码
int b=100;
cout< 8、来使用。
28.使用______作为函数参数,实参对象和形参对象代表同一对象,变化形参对象值就是变化实参对象值。
29.UML中对象之间静态关系是通过对象属性之间连接反映,称之为______。
30.如果一种模板声明列出各种参数,则各种参数之间必要使用逗号隔开,每个参数都必要重复使用核心字______。
31.C++类构造函数名与______名称同样,且没有返回值。
32.C++规定,当一种成员函数被调用时,系统自动向它传递一种隐含参数,该参数是一种指向调用该函数对象指针,该指针被称为______指针。
33.声明一种常成员函数Fun,其返回类型为char,第一种参数类型为int, 9、第二个参数类型为double,函数Fun声明原型是______。
34.C++语言中“聚合”隐含了两种实现方式,一种是______,另一种是用一种类对象作为一种广义数据类型来定义整体对象一种属性。
35.简朴成员函数是指声明中不含const、______和static核心字函数。
36.在派生类中继承基类成员初始化,需要由派生类构造函数调用基类______来完毕。
37.在C++中,运用向量类模板定义一种具备20个int向量,其所有元素被置为1,实现此操作语句是______。
38.vector类中用于获取无需再次分派内存就能容纳对象个数办法是______。
39.动态联编是程序运 10、营到需要语句处才动态拟定,这称为______多态性。
40.C++重载“=”运算符函数名是______。
三、改错题(本大题共5小题,每小题4分,共20分)
下面每题中有一处错误,请用下横线标出错误所在行并给出修改意见
41.#include 11、 r * r;
cout<<″圆形面积=″<
class A
{
private:
int x,y;
public:
A(int a=0,b=1);
void Show();
};
A::A(int a,int b)
{
x=a;
y=b;
}
void A::Show()
{
cout<<″x=″< 12、3.#include 13、 public:
void print(int a,int b) {
cout< < ″int:″ < < a < < endl;
cout < < ″int:″ < < b < < endl;
}
void print(char * a,char * b) {
cout< < ″string:″ < < a < < endl;
cout < <″ string:″ < < b < < endl;
}
void print(cha 14、r * a,unsigned int b){
cout < < ″string:″ < < a < < endl;
cout < < ″int:″ < < b < < endl;
}
};
void main()
{
Class cls;
cls. print(10,20);
cls. print(′c′,1);
cls. print(′x′,′y′);
cls. print(″Hello!″,0);
}
45. #incl 15、ude < iostream. h >
class Class
{
private:
int val;
public:
void func( int a)
{
val = a;
}
};
void main()
{
Class * cls ;
cls - > func(10) ;
}
四、完毕程序题(本大题共5小题,每题4分,共20分)
46.将下面程序补充完整,使程序计算100以内所有可被7整除 16、自然数之和。
#include 17、public:
______{
x=a;
}
______{
return x * x;
}
private:
int x;
};
void main()
{
Class a(3);
cout< 18、ass();
};
Class::Class(int num)
{
_______;
}
Class::~Class()
{
_______;
}
49.将下面程序补充完整,使程序输出成果为:
ClassA::Print
ClassB::Print
程序如下:
#include 19、
class ClassA:public Base
{
public:
void Print()const{cout<<″ClassA::Print″< 20、 Print(a);
Print(b);
}
50.下列程序运营成果如下:
x=22,y=22
依照成果将程序补充完整。
#include 21、″< 22、ss::var < < endl;
Class cl ;
cout < <″cl. var=″ < 23、nt c;
};
int A::c =0;
A::A()
{
cout < < ″constructor.″ < < endl;
c+ =10;
}
void A::Show()
{
cout< < ″c=″ < 24、
b. Show();
}
六、程序设计题(本大题共l小题,共10分)
53.运用LOCATION类,使用继承定义圆类CIRCLE,圆由圆心和半径构成。提供得到圆心坐标和半径成员函数、以及计算圆周长和面积成员函数。在主程序中创立两个圆A和B,圆心坐标分别为(0,3)、(3,7),按如下格式输出两个圆圆心坐标、周长和面积,并计算和输出两个圆圆心之间距离。
A:(xl,y1,r1),Girth=g1,Area=a1
B:(x2,y2,r2),Girth=g2,Area=a2
A(xl,y1),B(x2,y2),Distance=d
定义LOCAT 25、ION类,该类没有“继承”等现象。注意二维坐标点之间距离公式。
class LOCATION{
double x,y;
public: virtual double getx()const{return x;};
virtual double gety()const{return y;};
virtual double dist(LOCATION &s)const;
LOCATION(double x,double y):x(x),y(y){};};
double LOCATION::dist(LOCATION &s)const{
double xd=s.x — x,yd=s.y — y;
return sqrt(xd*xd+yd*yd);}






