自考C++程序设计2014年4月试题及答案解析
-
在三角形类tri实现两个函数,功能是输入三个顶点坐标判断是否构成等边三角形 #include ﹤iostream.h﹥
#include ﹤math.h﹥
class point { point
private: float x, y;
public: f(float a, float b){x=a; y=b;}
f( ){x=0; y=0;}
Void set(float a, float b){x=a; y=b;}
float getx( ){return x;}
noat gety( ){return y;}
};
class tri{
point x, y, z;
float s1, s2, s3;
public....settri(....); //用于输入三个顶点坐标
....test(....); //用于判断是否构成等边三角形 };
请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)
-
#include ﹤iostream.h﹥
class A
{
public:
A( );
void Show( );
~A( );
private:
static int c;
};
int A:: c=O;
A:: A( )
{
cout﹤﹤"constructor."﹤﹤endl;
c +=10;
}
void A:: Show( )
{
cout﹤﹤"c="﹤﹤c﹤﹤endl;
}
A:: ~A( )
{
cout﹤﹤"destrucator."﹤﹤endl;
}
void main( )
{
A a, b;
a.Show( );
b.Show( );
}
-
#lnclude ﹤iostream.h﹥
void func( );
void main( )
{
for(int i=0; i﹤6; i++)
{
func( );
}
}
void func( )
{
int x=0;
x++;
static int y=0;
y++;
cout﹤﹤"x="﹤﹤x﹤﹤";y="﹤﹤y﹤﹤endl;
}
-
求两个浮点数之差的cha函数的原型声明、调用方法。
#include ﹤iostream﹥
using namespace std;
void main( )
{
float a, b;
_________; //函数cha的原型声明
a=12.5;
b=6.5;
float c=_____________; //调用函数cha
cout﹤﹤c﹤﹤endl;
}
float cha(float x,float y)
{
float w;
w=x-y;
return w;
}
-
下面程序的运行结果如下:
This is line1
This is line2
This is line3
将下列程序补充完整,答案写在答题纸上。源程序如下:
#include ﹤iostream﹥
#include _________
using namespace std;
void main( )
{
fstream fin, fout;
fout.open("my.txt", ios:: out);
if(!fout.is_open( ))
return;
for(int i=0; i﹤3; i=i+1)
fout﹤﹤"This is line"﹤﹤i+1﹤﹤endl;
fout.close( );
fin.open("my.txt", ios:: in);
if(! fin.is_open( ))
return;
char str[100];
while(_________)
{
fin.getline(str,100);
cout﹤﹤str﹤﹤endl;
}
fin.close( );
}
-
#include ﹤iostream﹥
#include ﹤fstream﹥
using namespace std;
class complex
{
public:
int real:
int imag;
complex(int r=0, int i=0)
{
real=r;
imag=i;
}
};
complex operator+(_________,complex&b)
{
int r=a.real+b.real;
int i=a.imag+b.imag;
return _________;
}
void main( )
{
complex x(1, 2), y(3, 4), z;
z=x+y;
cout﹤﹤z.real﹤﹤"+"﹤﹤z.imag﹤﹤"i"﹤﹤endl;
}
-
#include ﹤iostream﹥
using namespace std;
class base
{
private: int x;
public: base(int a){x=a;}
int get( ){return x:}
void showbase( ) {cout﹤﹤"x="﹤﹤x﹤﹤endl; }
};
class Derived: public base
{private: int y;
public: Derived(int a, int b): base(a) {y=b; }
void showderived( )
{cout﹤﹤"x="﹤﹤get( )﹤﹤",y="﹤﹤y﹤﹤endl; }
};
void main( )
{
base b(3);
Derived d(6, 7);
b.showbase( );
d.showderived( );
_________;
b.showbase( );
_________;
b1.showbase( );
base * pb=&b1;
pb-﹥showbase( );
d.showderived( );
b.showbase( );
}
输出结果如下: x=3 x=6,y=7 x=6 x=6 x=6 x=6,y=7 x=6
-
完成下面类中的成员函数的定义。
class point
{
private:
int m, n;
public:
point(int, int);
point(point&);
};
point:: point(int a, int b)
{
m=a;
_________=b;
}
point::point( _________ )
{
m=t.m;
n=t.n;
}
-
#include ﹤iostream.h﹥
class test1{
private: int x;
public: test1( ){x=2;}
void set(int a){x=a;}
void get(){cout﹤﹤x﹤﹤endl;}
};
class test2{
private: int x;
public: test2( ){x=3;}
void set(int a){x=a;}
void get( ){cout﹤﹤x﹤﹤endl;}
};
class test: public test1, public test2. {
private: int x;
public: void set(int a){x=a;}
void gettest( ){cout﹤﹤x﹤﹤endl;}
};
main( ) {
test a; a.get( );
}
-
#include ﹤iostream.h﹥
class f{
private: float x,y;
float get( ){return x+y;}
public:f1(float a,float b){x=a;y=b;}
};
main( ) {
f a;
a.f1(1, 3.8);
cout﹤﹤a.get( )﹤﹤endl;
}
-
#include ﹤iostream.h﹥
class f {
private: T x, y;
public: f1(T a, T b){x=a; y=b;}
T max( ){return(x﹥y)? x: y;}
};
main( ) {
f a;
a.f1(1.5,3.8);
cout﹤﹤a.max( )﹤﹤endl;
}
-
#include ﹤iostream.h﹥
class point {
private: float x,y;
public: point(float a, float b){x=a; y=b; }
f( ){x=0; y=0; }
void getx( ){cout﹤﹤x﹤﹤endl;}
void gety( ){cout﹤﹤y﹤﹤endl;}
};
main( ) {
point a (3.5);
a.getx( );
}
-
写出声明一个复数对象num的语句,并使对象被初始化为单精度2.2+1.3i,此声明语句是_________。
-
#include ﹤iostream.h﹥
main( ){
int x=5, y=6;
const int *p=&x;
* p=y;
cout﹤﹤*p﹤﹤endl;
}
-
C++类成员的访问权限有_________、公有和保护三种。
-
vector类中用于返回向量中第一个对象的方法是_________。
-
C++语言中动态分配内存的关键字是_________。
-
在C++语言中,利用向量类模板定义一个具有20个int类型且初值为1的向量C,实现此操作的语句是_________。
-
执行下列代码:int a=123,b=321; cout﹤﹤setw(3)﹤﹤a﹤﹤b﹤﹤endl; 程序输出结果是:_________。
-
将指向对象的指针作为函数参数,形参是对象指针,实参是对象的_________。
-
UML中对象之间的静态关系是通过对象属性之间的连接反映的,称之为_________。
-
声明一个常成员函数Fun,返回类型为char,第一个参数类型为int,第二个参数类型为double,则该函数的声明原型是_________。
-
C++语言中的整数常量有四种:十进制常量、长整型常量、八进制常量和_________。
-
C++类中的_________函数在对象的生存期结束时被自动调用。
-
对象作为函数参数,就是将实参对象的_________传递给形参对象,这种传递是单向的。
-
执行下列代码:double pi=3.1415926; cout﹤﹤setprecision(5)﹤﹤pi; 程序的输出结果是_________。
-
建立一个对象时,对象的状态是不确定的。为了使对象的状态确定,必须对其进行正确的_________。
-
要关闭一个输出流对象myFile,所用的C++语句是_________。
-
基类的公有成员在通过公有派生得到的子类中访问权限是_________。
-
拷贝构造函数使用_________作为参数初始化创建中的对象。
-
默认参数是在_________中说明的,默认参数可以多于一个。
-
通过C++语言中的_________机制,可以从现存类中构建其子类。
-
C++程序的编译是以_________为单位进行的。
-
下列默认参数的声明不正确的是( )
- 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);
-
一个函数功能不太复杂,但要求频繁使用,则该函数适合作为( )
- A.内联函数
- B.重载函数
- C.递归函数
- D.嵌套函数
-
对于友元描述正确的是( )
- A.友元是本类的成员函数
- B.友元不是本类的成员函数
- C.友元不是函数
- D.以上皆不正确
-
下列描述错误的是( )
- A.在没创建对象前,静态成员不存在
- B.静态成员是类的成员,不是对象成员
- C.静态成员不能是虚函数
- D.静态成员函数不能直接访问非静态成员
-
假定有char * P="Hello";,要输出这个字符串的地址值的正确写法是( )
- A.cout﹤﹤ *P
- B.cout﹤﹤P
- C.cout﹤﹤&P
- D.cout﹤﹤(void *)P
-
对C++中主函数描述正确的是( )
- A.名称为main,可为多个
- B.名称不限,可为多个
- C.名称为main,必须有且只能有一个
- D.名称不限,必须有且只能有一个
-
C++程序文件扩展名为( )
- A..cpp
- B..h
- C..lib
- D..obj
-
下列表达式,能将P声明为常量指针的是( )
- A.const int * P;
- B.int *const P;
- C.const int * const P;
- D.int * P;
-
如P是一指针类型表达式,则下列表达式中不是左值表达式的是( )
- A.P
- B.*P
- C.&P
- D.P+1
-
使用下列流格式控制符能输出一个换行符的是( )
- A.dec
- B.oct
- C.hex
- D.endl
-
下列运算符不能重载的是( )
- A.!
- B.sizeof
- C.new
- D.delete
-
声明一个没有初始化参数的对象,需调用( )
- A.指定参数构造函数
- B.拷贝构造函数
- C.初始化函数
- D.默认构造函数
-
关于对象的性质,下列描述错误的是:( )
- A.同一类对象间可相互赋值
- B.可以使用对象数组
- C.对象不可以用作函数参数
- D.一个对象可以用作另一个类的成员
-
设函数int& index(int * a, int i)返回数组a中下标为i的元素,如存在整型数组int Array[ ]={1,2,3},在执行index(Array, 2)++后,Array中各元素值为( )
- A.{0, 1, 2}
- B.{1, 1, 2}
- C.{1, 2, 4}
- D.{0, 2, 3}
-
设存在数组a,其长度为Len,则下列哪项泛型算法用于在a中寻找值Value的位置( )
- A.reverse(a, a+Len, Value);
- B.sort(a, a+Len, Value);
- C.find(a, a+Len, Value);
- D.copy(a, a+Len, Value);
-
类构造函数定义的位置是( )
- A.类体内或体外
- B.只是在类体内
- C.只在类体外
- D.在类的成员函数中
-
面向对象中的“对象”是指( )
- A.行为抽象
- B.数据抽象
- C.行为抽象和数据抽象的统一
- D.行为抽象和数据抽象的对立
-
在类外定义成员函数时,::运算符两侧分别连接( )
- A.返回值类型 函数名
- B.返回值类型 类名
- C.函数名 类名
- D.类名 函数名
-
下列关于类的权限描述错误的是( )
- A.类本身的成员函数可以访问自身的任何成员
- B.类的对象只能访问公有成员
- C.普通函数可以不通过对象直接访问类的公有成员
- D.一个类可以包含另一个类的对象作为成员
-
只能在自身类和子类成员函数中被访问,无法通过对象在类外访问的成员属于( )
- A.private
- B.protected
- C.public
- D.publish