C++期中考试试卷

玛丽莲梦兔
709次浏览
2020年08月03日 09:10
最佳经验
本文由作者推荐

天使之城结局-公司停电通知


长沙理工大学考试试卷
„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„

试卷编号 拟题教研室(或教师)签名 教研室主任签名

„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„

课程名称(含档次) 面向对象与可视化编程 课程代号

专 业 计通学院各专业 层次(本、专) 本 考试方式(开、闭卷) 闭



一、选择题(每空2分,共20分)
1. 下面选项中不属于面向对象程序设计特征的是(C ) 。
A)继承性 B)多态性 C)相似性 D)封装性
2. 可用作C++语言用户标识符的一组标识符是( B )。
A) void define +WORD B) a3_b3 _123 YN
C) for -abc Case D) 2a DO sizeof
3. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。
A) 0 B) 4 C) 8 D) 6
4. 以下哪一关键字可用于重载函数的区分( C )
A)extern B)static C)const D)virtual
5. 下列有关继承和派生的叙述中,正确的是( C )
A)派生类不能访问通过私有继承的基类的保护成员
B)多继承的虚基类不能够实例化
C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数
D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现
6. 下列关于this指针的说法正确的是( B )
A)this指针存在于每个函数之中
B)在类的非静态函数中this指针指向调用该函数的对象
C)this指针是指向虚函数表的指针
D)this指针是指向类的函数成员的指针
7. 在下列关于C++函数的叙述中,正确的是( C )
A)每个函数至少要有一个参数 B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明 D)函数不能自己调用自己
8. 下列运算符中,不能重载的是 ( C )
A)&& B)!= C). D)->
9. 关于结构化程序设计方法说法错误的是( )。
A)在数据处理过程中,采用的是自顶向下、分而治之的方法。
B)将整个程序按功能划分为几个可独立编程的子过程模块。
C)以“对象”或“数据”为中心。
D)数据和处理数据的过程代码是分离的、相互独立的实体。
10. 关于静态成员的描述中,( )是错误的。
A)静态成员可分为静态数据成员和静态成员函数。
B)静态数据成员定义后必须在类体内进行初始化。
C)静态数据成员初始化不使用其构造函数。
第 1 页 共 7 页


C++程序设计试卷
D)静态数据成员函数中不能直接引用非静态成员。


二、阅读程序写出程序运行结果(每题6分,共30分)
1、
#include
class Sample
{
int n;
public:
Sample(int i){n=i;}
friend int add(Sample &s1,Sample &s2);
};
int add(Sample &s1,Sample &s2)
{
return s1.n+s2.n;
}
void main()
{
Sample s1(10),s2(20);
cout<}


2、
#
include
class A
{
public:
A();
A(int i,int j);
~A(){cout< void print();
private:
int a,b;
};
A::A()
{ a=b=10;cout<<
A::A(int i,int j)
{ a=i,b=j;cout<<
void A::print()
{cout<<
void main()
{

第 2 页 共 7 页


C++程序设计试卷
A m,n(15,18);
();
();
}


3、
#include
using namespace std;
class Base
{
public:
Base(int i) { cout << i; }
~Base () { }
};
class Base1: virtual public Base
{
public:
Base1(int i, int j=0) : Base(j) { cout << i; }
~Base1() {}
};
class Base2: virtual public Base
{
public:
Base2(int i, int j=0) : Base(j) { cout << i; }
~Base2() {}
};
class Derived : public Base2, public Base1
{
public:
Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c),
Base2(d), Base(a)
{ cout << b; }
private:
Base2 mem2;
Base1 mem1;
};
void main() { Derived objD (1, 2, 3, 4); }


4、
#include
using namespace std;
class Test{

第 3 页 共 7 页


C++程序设计试卷
public:
Test(){}
~Test(){cout<<'#';}
};
int main(){
Test temp[2], *pTemp[2];
return 0;
}


5、
#include
using namespace std;
class point
{
public:
static int number;
public:
point() { number++;}
~point() {number--;}
};
int point::number=0;
void main()
{ point *ptr;
point A,B;
{
point *ptr_point=new point[3];
ptr=ptr_point;
}
point C;
delete[] ptr;
cout< }


三、程序编写题(第一题为必做题,后面三题选做二题)
1、首先编写一个选择排序函数,然 后在主函数中调用排序函数对10个整数从小到大进行排序。
提示:采用数组名作为函数参数。选择排序 :每一趟从待排序的序列中选出一个最小的数据。(10分)
代码:
#include
using namespace std;
int *select(int a[],int n)
{
int i,j,k,temp;

第 4 页 共 7 页


C++程序设计试卷










}
void main(){









int data[10],i,*q;
cout<<请输入个整数:<for(i=0;i<10;i++)
{
cin>>data[i]; }
q=select(data,10);
for(i=0;i<10;i++)
{ cout<<*q<<; if(i!=9) q=q+1;}
cout<}

int *p;
for(i=0;i{




}
p=a;
return p;
k=i;
for(j=i;j k=j;}
if(i!=k) {temp=a[k]; a[k]=a[i]; a[i]=temp;} 2、建立一个CPoint类,该类有两个私有成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标,还有两个公有的成员函数:分别用于获取x和y 的坐标。由CPoint派生出CCircle类 ,派
生类CCircle增加一个私有成员变量用于表示半径,并用派生类的构造函数设置半径,同时增 加三
个成员函数:一个用于获取半径,另两个分别用于获取圆外接正方形左上角的x坐标和y坐标。(2 0
分)
#include
using namespace std;
class Point{
private:




};
Point::Point(int a,int b)
{x=a;y=b;}
int Point::getx()
{return x;}
int Point::gety()
{return y;}
class Circle:public Point{

第 5 页 共 7 页
int x,y;
Point(int a,int b);
int getx();
int gety();
public:


C++程序设计试卷
private:




};
int Circle::getr()
{return r;}
void main()
{




Point a(2,2);
cout<<()<Circle b(1,2,3);
cout<<()<}

int r;
Circle(int a,int b,int c):Point(a,b)
{r=c;}
int getr();
public:
3、设计一个类 Time(时间),该类用于表示时间值(时、分、秒)。要求能设置时间和输出时间。
再设计一个日期 类Date,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设
置和获取日期值 外,还能够实现将日期加一天的操作。利用建立的日期类和时间类多重派生出日期
时间类DateTim e,并实现日期和时间的设置和输出。(20分)
#include
using namespace std;
class Time{
private:



};
Time::Time(int h,int m,int s){


hour=h;minute=m;second=s;}
cout<Time::~Time(){
class Date{
private:



};
Date::Date(int y,int mo,int d){

{

第 6 页 共 7 页
year=y;month=mo;day=d;}
Date::~Date()
int year,month,day;
Date(int y,int mo,int d);
~Date();
public:
int hour,minute,second;
Time(int h,int m,int s);
~Time();
public:


C++程序设计试卷
cout<class DateTime:public Time,public Date{
public:

};
void main(){
DateTime today(2006,6,29,7,38,30);}
DateTime(int y,int mo,int d,int h,int m,int s):Date(y,mo,d),Time(h,m,s){}

4、建立一个名为CSt udent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。
有一个成员函数:用于 初始化学生姓名、学号、性别和年龄的构造函数。还有一个用于输出学生信
息的友元函数。编写一个主函 数,声明一个学生对象,然后调用友元函数在屏幕输出学生信息。(20
分)
#include
#include
using namespace std;
class CStudent
{










};
void show(CStudent st){


}
void main(){


}

CStudent st(念奴娇,,女,19);
show(st);
cout<<姓名:< <<性别:<friend void show(CStudent);
char m_Name[20];
char m_ID[20];
char m_Sex[10];
int m_Age;
CStudent::CStudent(char*name,ch ar*ID,char*sex,int age){




strcpy(m_Name,name);
strcpy(m_ID,ID);
strcpy(m_Sex,sex);
m_Age=age;}
private:
public:

第 7 页 共 7 页


长沙理工大学考试试卷
„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„

试卷编号 拟题教研室(或教师)签名 教研室主任签名

„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„

课程名称(含档次) 面向对象与可视化编程 课程代号

专 业 计通学院各专业 层次(本、专) 本 考试方式(开、闭卷) 闭



一、选择题(每空2分,共20分)
1. 下面选项中不属于面向对象程序设计特征的是(C ) 。
A)继承性 B)多态性 C)相似性 D)封装性
2. 可用作C++语言用户标识符的一组标识符是( B )。
A) void define +WORD B) a3_b3 _123 YN
C) for -abc Case D) 2a DO sizeof
3. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。
A) 0 B) 4 C) 8 D) 6
4. 以下哪一关键字可用于重载函数的区分( C )
A)extern B)static C)const D)virtual
5. 下列有关继承和派生的叙述中,正确的是( C )
A)派生类不能访问通过私有继承的基类的保护成员
B)多继承的虚基类不能够实例化
C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数
D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现
6. 下列关于this指针的说法正确的是( B )
A)this指针存在于每个函数之中
B)在类的非静态函数中this指针指向调用该函数的对象
C)this指针是指向虚函数表的指针
D)this指针是指向类的函数成员的指针
7. 在下列关于C++函数的叙述中,正确的是( C )
A)每个函数至少要有一个参数 B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明 D)函数不能自己调用自己
8. 下列运算符中,不能重载的是 ( C )
A)&& B)!= C). D)->
9. 关于结构化程序设计方法说法错误的是( )。
A)在数据处理过程中,采用的是自顶向下、分而治之的方法。
B)将整个程序按功能划分为几个可独立编程的子过程模块。
C)以“对象”或“数据”为中心。
D)数据和处理数据的过程代码是分离的、相互独立的实体。
10. 关于静态成员的描述中,( )是错误的。
A)静态成员可分为静态数据成员和静态成员函数。
B)静态数据成员定义后必须在类体内进行初始化。
C)静态数据成员初始化不使用其构造函数。
第 1 页 共 7 页


C++程序设计试卷
D)静态数据成员函数中不能直接引用非静态成员。


二、阅读程序写出程序运行结果(每题6分,共30分)
1、
#include
class Sample
{
int n;
public:
Sample(int i){n=i;}
friend int add(Sample &s1,Sample &s2);
};
int add(Sample &s1,Sample &s2)
{
return s1.n+s2.n;
}
void main()
{
Sample s1(10),s2(20);
cout<}


2、
#
include
class A
{
public:
A();
A(int i,int j);
~A(){cout< void print();
private:
int a,b;
};
A::A()
{ a=b=10;cout<<
A::A(int i,int j)
{ a=i,b=j;cout<<
void A::print()
{cout<<
void main()
{

第 2 页 共 7 页


C++程序设计试卷
A m,n(15,18);
();
();
}


3、
#include
using namespace std;
class Base
{
public:
Base(int i) { cout << i; }
~Base () { }
};
class Base1: virtual public Base
{
public:
Base1(int i, int j=0) : Base(j) { cout << i; }
~Base1() {}
};
class Base2: virtual public Base
{
public:
Base2(int i, int j=0) : Base(j) { cout << i; }
~Base2() {}
};
class Derived : public Base2, public Base1
{
public:
Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c),
Base2(d), Base(a)
{ cout << b; }
private:
Base2 mem2;
Base1 mem1;
};
void main() { Derived objD (1, 2, 3, 4); }


4、
#include
using namespace std;
class Test{

第 3 页 共 7 页


C++程序设计试卷
public:
Test(){}
~Test(){cout<<'#';}
};
int main(){
Test temp[2], *pTemp[2];
return 0;
}


5、
#include
using namespace std;
class point
{
public:
static int number;
public:
point() { number++;}
~point() {number--;}
};
int point::number=0;
void main()
{ point *ptr;
point A,B;
{
point *ptr_point=new point[3];
ptr=ptr_point;
}
point C;
delete[] ptr;
cout< }


三、程序编写题(第一题为必做题,后面三题选做二题)
1、首先编写一个选择排序函数,然 后在主函数中调用排序函数对10个整数从小到大进行排序。
提示:采用数组名作为函数参数。选择排序 :每一趟从待排序的序列中选出一个最小的数据。(10分)
代码:
#include
using namespace std;
int *select(int a[],int n)
{
int i,j,k,temp;

第 4 页 共 7 页


C++程序设计试卷










}
void main(){









int data[10],i,*q;
cout<<请输入个整数:<for(i=0;i<10;i++)
{
cin>>data[i]; }
q=select(data,10);
for(i=0;i<10;i++)
{ cout<<*q<<; if(i!=9) q=q+1;}
cout<}

int *p;
for(i=0;i{




}
p=a;
return p;
k=i;
for(j=i;j k=j;}
if(i!=k) {temp=a[k]; a[k]=a[i]; a[i]=temp;} 2、建立一个CPoint类,该类有两个私有成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标,还有两个公有的成员函数:分别用于获取x和y 的坐标。由CPoint派生出CCircle类 ,派
生类CCircle增加一个私有成员变量用于表示半径,并用派生类的构造函数设置半径,同时增 加三
个成员函数:一个用于获取半径,另两个分别用于获取圆外接正方形左上角的x坐标和y坐标。(2 0
分)
#include
using namespace std;
class Point{
private:




};
Point::Point(int a,int b)
{x=a;y=b;}
int Point::getx()
{return x;}
int Point::gety()
{return y;}
class Circle:public Point{

第 5 页 共 7 页
int x,y;
Point(int a,int b);
int getx();
int gety();
public:


C++程序设计试卷
private:




};
int Circle::getr()
{return r;}
void main()
{




Point a(2,2);
cout<<()<Circle b(1,2,3);
cout<<()<}

int r;
Circle(int a,int b,int c):Point(a,b)
{r=c;}
int getr();
public:
3、设计一个类 Time(时间),该类用于表示时间值(时、分、秒)。要求能设置时间和输出时间。
再设计一个日期 类Date,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设
置和获取日期值 外,还能够实现将日期加一天的操作。利用建立的日期类和时间类多重派生出日期
时间类DateTim e,并实现日期和时间的设置和输出。(20分)
#include
using namespace std;
class Time{
private:



};
Time::Time(int h,int m,int s){


hour=h;minute=m;second=s;}
cout<Time::~Time(){
class Date{
private:



};
Date::Date(int y,int mo,int d){

{

第 6 页 共 7 页
year=y;month=mo;day=d;}
Date::~Date()
int year,month,day;
Date(int y,int mo,int d);
~Date();
public:
int hour,minute,second;
Time(int h,int m,int s);
~Time();
public:


C++程序设计试卷
cout<class DateTime:public Time,public Date{
public:

};
void main(){
DateTime today(2006,6,29,7,38,30);}
DateTime(int y,int mo,int d,int h,int m,int s):Date(y,mo,d),Time(h,m,s){}

4、建立一个名为CSt udent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。
有一个成员函数:用于 初始化学生姓名、学号、性别和年龄的构造函数。还有一个用于输出学生信
息的友元函数。编写一个主函 数,声明一个学生对象,然后调用友元函数在屏幕输出学生信息。(20
分)
#include
#include
using namespace std;
class CStudent
{










};
void show(CStudent st){


}
void main(){


}

CStudent st(念奴娇,,女,19);
show(st);
cout<<姓名:< <<性别:<friend void show(CStudent);
char m_Name[20];
char m_ID[20];
char m_Sex[10];
int m_Age;
CStudent::CStudent(char*name,ch ar*ID,char*sex,int age){




strcpy(m_Name,name);
strcpy(m_ID,ID);
strcpy(m_Sex,sex);
m_Age=age;}
private:
public:

第 7 页 共 7 页

全国安全用药月-国庆放假通知


辽宁省教育考试院-中国注册会计师官网


尖叫的海棠-板报主题


春节晚会主持人-郑州海关


手抄报边框-胞波


安徽中考数学-厨艺大赛


写证明的格式-手抄报中秋节


北京工商大学嘉华学院-厦门大学教务系统