《面向对象程序设计》模拟试题及答案0
更新时间:2023-06-09 20:38:01 阅读量: 实用文档 文档下载
《面向对象程序设计》模拟试题及答案0
《面向对象程序设计》模拟试题及答案
一、单项选择题(每小题2分,共20分)
1. C++程序的基本功能模块为( )。
A. 表达式 B. 标识符 C. 语句 D. 函数
2. 当处理特定问题的循环次数已知时,通常采用( )来解决。
A. for循环 B. while循环 C. do循环 D. switch语句
3. 下面函数原型语句正确的是( )。
A. int Function(void a); B. void Function (int);
C. int Function(a); D. int(double a);
4. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为( )。
A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m;
5. 假定变量a和pa定义为“double a[10], *pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是( )。
A. pa[5]=12.35; B. a[5]=12.35;
C. *(pa+5)=12.35; D. *(a[0]+5)=12.35;
6. 假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。
A. x.a B. x.a() C. x->GetValue() D. x.GetValue()
7. 类的构造函数是在定义该类的一个( )时被自动调用执行的。
A. 成员函数 B. 数据成员 C. 对象 D. 友元函数
8. 假定AB为一个类,则执行“AB x;”语句时将自动调用该类的( )。
A. 带参构造函数 B. 无参构造函数 C. 拷贝构造函数 D. 赋值重载函数
9. 假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为( )。
A. AB() {a=0;} B. AB(int aa=0): a(aa) {}
C. AB(int aa): a(aa) {} D. AB() {}
10. 如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。
A. a.operator++() B. operator++(a)
C. operator++(a,1) D. operator++(1,a)
二、填空题(每小题2分,共20分)
1. 存储字符’a’和字符串”a”分别需要占用________和________个字节。
2. 重载一个函数的条件是:该函数必须在参数的________或参数对应的__________上与其它同名函数不相同。
3. 假定p是一个指向整数对象的指针,则用________表示该整数对象,用________表示指针变量p的地址。
4. 元素a[i]和b[i][j]的指针访问方式分别为__________和__________。
5. 已知有定义“int x, a[]={5,7,9}, *pa=a;”,在执行“x=++*pa;”语句后,x的值是________,*(pa+1)的值为________。
6. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队列为空和队列为满的条件分别为__________和__________。
7.对类中________和________成员的初始化只能通过在构造函数中给出的初始化表项来实现的。
《面向对象程序设计》模拟试题及答案0
8.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条______________语句。
9. 假定派生类及其基类中都定义有同名函数成员,若要在派生类中调用基类的同名函数成员时,就需要在其函数名前加上______和__________。
10. 派生类的成员函数能够直接访问所含基类的__________成员函数和___________成员函数。
三、程序填充题,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序后面的标号处。(每小题5分,共20分)
1. 统计字符串中英文字母个数的程序。
#include<iostream.h>
int count(char str[]);
void main(){
char s1[80];
cout<<”Enter a line:”;
cin>>s1;
cout<<”count=”<<count(s1)<<endl;
}
int count(char str[]){
int num=0; //给统计变量赋初值
for(int i=0;str[i];i++)
if (str[i]>=’a’ && str[i]<=’z’ ||___(1)___ ) ___(2)___; ___(3)___;
}
(1) (2) (3)
2. 对数组a[n]中的n个元素按升序进行的选择排序算法。
void SelectSort(int a[], ___(1)___)
{
int i,j,k;
for(i=1;i<n;i++) { //进行n-1次选择和交换
k=i-1;
for(j=i;j<n;j++)
if(a[j]<a[k]) ___(2)___;
int x=a[i-1]; a[i-1]=a[k]; ___(3)___;
}
}
(1) (2) (3)
3. 下面是一维数组类ARRAY的定义,ARRAY与普通一维数组的区别是:(a)用()而不是
[]进行下标访问,(b)下标从1而不是从0开始,(c)要对下标是否越界进行检查。 class ARRAY{
int *v; //指向存放数组数据的空间
int s; //数组大小
public:
ARRAY(int a[], int n);
~ARRAY(){delete []v;}
《面向对象程序设计》模拟试题及答案0
int size(){ return s;}
int& operator()(int n);
};
___(1)___ operator()(int n) // ()的运算符成员函数定义
{
if(___(2)___) {cerr<<"下标越界!"; exit(1);}
return ___(3)___;
}
(1) (2) (3)
4. 一种类定义如下:
class Goods
{
private:
char gd_name[20]; //商品名称
int weight; //商品重量
static int totalweight; //同类商品总重量
public:
Goods (char*str,int w){ //构造函数
strcpy(gd_name,str);
weight=w;
totalweight+=weight;
}
~Goods (){totalweight -= weight;}
char* GetN(){___(1)___;} //返回商品名称
int GetW(){return weight;}
___(2)___ GetTotal_Weight() { //定义静态成员函数返回总重量 ___(3)___;
}
}
(1) (2) (3)
四、理解问答题,写出前三小题的程序运行结果和指出后两小题的程序(或函数)所能实现的功能。(每小题6分,共30分)
1. #include<iomanip.h>
const int N=3;
void main()
{
int a[N][N]={{7,-5,3},{2,8,-6},{1,-4,-2}};
int b[N][N]={{3,6,-9},{2,-8,3},{5,-2,-7}};
int i,j,c[N][N];
for(i=0;i<N;i++) //计算矩阵C
for(j=0;j<N;j++)
c[i][j]=a[i][j]+b[i][j];
for(i=0;i<N;i++) { //输出矩阵C
for(j=0;j<N;j++)
《面向对象程序设计》模拟试题及答案0
cout<<setw(5)<<c[i][j];
cout<<endl;
}
}
运行结果:
2. #include<iostream.h>
#include<string.h>
class A{
char *a;
public:
A(char *s) {
a=new char[strlen(s)+1];
strcpy(a,s);
cout<<a<<endl;
}
~A(){delete []a;}
};
void main() {
A x("xuxiaokai");
A *y=new A("weirong");
delete y;
}
运行结果:
3. #include<iostream.h>
class A {
int a,b;
public:
A() {a=b=0;}
A(int aa, int bb) {a=aa; b=bb;}
int Sum() {return a+b;}
int* Mult() {
int *p=new int(a*b);
return p;
}
};
void main() {
A x(2,3), *p;
p=new A(4,5);
cout<<x.Sum()<<’ ’<<*(x.Mult())<<endl;
cout<<p->Sum()<<’ ’<<*(p->Mult())<<endl;
}
运行结果:
4. void fun5(char* a, const char* b)
{
《面向对象程序设计》模拟试题及答案0
while(*b) *a++=*b++;
*a=0;
}
函数功能:
5. template<class T>
bool fun8(T a[], int n, T key)
{
for(int i=0;i<n;i++)
if(a[i]==key) return true;
return false ;
}
函数功能:
五、编程题(每小题5分,共10分)
1. 按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。 int f(int a[],int n);
2. 根据下面类中拷贝构造函数的原型写出它的类外定义。
class Array {
int *a; //指向动态分配的整型数组空间
int n; //记录数组长度
public:
Array(int aa[], int nn); //构造函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间 Array(Array& aa); //拷贝构造函数
Array& Give(Array& aa); //实现aa赋值给*this的功能并返回*this Array Uion(Array& aa); //实现*this和aa中的数组合并的
//功能,把合并结果存入临时对象并返回 int Lenth() {return n;} //返回数组长度
void Print() { //输出数组
for(int i=0; i<n; i++)
cout<<a[i]<<’ ’;
cout<<endl;
}
};
答案供参考
一、单项选择题(每小题2分,共20分)
1. D 2. A 3. B 4. B 5. D
6. D 7. C 8. B 9. D 10. C
二、填空题(每小题2分,共20分)
评分标准:每小题若有两个空,则每空1分;若只有一个空,则每空2分。
1. 1 2 2. 个数(或数目) 类型
3. *p &p 4. *(a+i) *(*(b+i)+j)
5. 6 7 6. length==0 length==MS
《面向对象程序设计》模拟试题及答案0
7. 对象 基类 常量 引用(四取二即可) 8. delete []pa;
9. 基类名 类区分符 10. 公有 保护
三、程序填充题,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序后面的标号处。(每小题5分,共20分)
评分标准:对一空给2分,对两空给4分,对三空给5分。
1. (1) str[i]>=’A’&& str[i]<=’Z’
(2) num++
(3) return num
2. (1) int n
(2) k=j
(3) a[k]=x
3. (1) int& ARRAY::
(2) n<1 || n>s
(3) v[n-1]
4. (1) return gd_name
(2) static int
(3) return totalweight
四、理解问答题,写出前三小题的程序运行结果和指出后两小题的程序(或函数)所能实现的功能。(每小题6分,共30分)
1. 10 1 -6 //2分
4 0 -3 //2分
6 -6 -9 //2分
2. xuxiaokai //3分
weirong //3分
3. 5 6 //3分
9 20 //3分
4. 实现字符串系统函数strcpy的功能,把b所指的字符串拷贝到a所指的字符数组空间中。
5. 函数模板,从一维数组a[n]中查找值为key的元素,若查找成功则返回真否则返回假。
第4、5小题评分标准:按叙述完整程度酌情给分。
五、编程题(每小题5分,共10分)
评分标准:按编程完整程度酌情给分。
1. int f(int a[],int n)
{
if(n==0) return 0;
else return a[n-1]*a[n-1]+f(a,n-1);
}
2. Array::Array(Array& aa) {
n=aa.n;
a=new int[n];
for(int i=0; i<n; i++) a[i]=aa.a[i];
}
正在阅读:
《面向对象程序设计》模拟试题及答案006-09
看海浪作文600字07-06
四年级科学上册期末测试卷05-19
有妈妈真好作文800字06-16
小学生食品安全知识竞赛题09-23
得满分的感觉真好作文600字07-13
模板简历:个性简历精致:16个经典面试问题回答思路12-08
中班50个体育游戏03-25
我敬佩的一个人作文350字07-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 模拟试题
- 程序设计
- 面向
- 对象
- 答案
- 建设和发展中的青海电子政务网络平台
- 第6章_领导决策的艺术
- 桐庐县建设健康城市工作情况汇报
- 福建农林大学考试试卷 (A)卷
- 市政道路工程资料目录(全)
- 2015年山东山东省名校联考试题,有答案
- 技术服务和售后服务内容及措施
- 8杭州市十二五循环经济发展规划
- 大学篮球课程第一学期教案
- 国际标准情商测试题目
- 消防报警招标文件2
- 家长学校《未成年人保护法》专题讲座:我想有个家
- 发展轻质材料和轻型结构
- 关于律师事务所纳税筹划的文章
- 大学物理内容复习(下)
- --学校开展精细化管理工作总结
- 基于QForm extrusion结合建模软件的挤压模具设计及改进方法
- asp无限级分类加js收缩伸展功能代码
- 平面直角坐标系(二)演示文稿
- 第八章 阶段专题复习