中央广播电视大学2006-200?学年度第二学期"开放本科"期末考试
计算机专业 面向对象程序设计 试题
2007年7月
一、单项选择(每小题2分,共20分)
1.字符串" a+b=12\n"的长度为( )。
A.6 B.7
C.8 D.9
2.假定一个二维数组的定义语句为"int a[3][4]={{3,4},{2,8,6}};",则元素a[2][1]的值为( )。
A.O B.4
C.8 D.6
3.以下正确的描述是( )。
A 函数的定义可以嵌套,函数的调用不可以嵌套
B.函数的定义不可以嵌套,函数的调用可以嵌套
C 函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
4.设有定义"double array[10];",则表达式sizeof(array)/sizeof(array[0])的结果为 array数组的( )。
A 首地址 B.元素个数
C 每个元素所占的字节数 D 总字节数
5.若使p指向包含30个整型元素的动态数组空间,则使用的定义语句为( )。
A.int*p=new int[30] B.int* p=new int(30)
C Int* p=new[30] D. *p=new int[30]
6.软件产品与其他软件产品组合成一个整体的难易程度叫做软件的( )。
A 可维护性 B 可复用性
C 兼容性 D.正确性
7.在多文件结构的程序中,通常把类的声明单独存放于( )中。
A 主文件 B,实现文件
C 库文件 D.头文件
8.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首的后一个位置为( )。
A.first+l B.(first+1)%MS
C.(first-1)%MS D.(first+length)%MS
9.假定一个类的构造函数为"A(int aa=1,int bb=O){a=aa; b=bb;}",则执行 "Ax(4);"语句后,x.a和x.b的值分别为( )。
A.1和0 B.1和4
C 4和1 D.4和O
lo.假定AB为一个类,则执行"ABa(2),b[3],*p[4];"语句时共调用该类构造函数的 次数为( ).
A.3 B.4
C 5 D.9
二、填空题(每小题2分,共20分)
1.用于输出表达式值的标准输出流对象是 。
2.假定x=5,y=6,则表达式x--*--y的值为 ·
3.假定x是一个逻辑量,则x||true的值为 ·
4.c++提供的预处理命令有宏定义命令,条件编译命令和 命令。
5.假定a是一个一维数组,则a[i]的指针访问方式为 ·
6.变量v定义为"double v=23.4;",要使指针pv指向v.则定义pv的语句为
7.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上 和两个冒号分隔符.
8.若采用x.abc(y)表达式调用一个成员函数,在成员函数中使用的 就代表了类外的x对象。
9.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为
10.假定用户只为类AB定义了一个构造函数"AB(int aa,int bb=0){a=aa;b=bb;}", 则定义该类的对象时,其实参表中至多带有 个实参。
三、程序填充题,根据窟意在横线上填写合适的内容。(每小题6分,共24分)
1.下面函数是求两个整型参数a和b的最小公倍数。
int f2(int a, int b)
{
int i=2,p=1;
do{
while(a%i= =0 & & ){
p* =I; a/=i ; b/=i;
}
i++;
}while (a<=i && );
Return p*a*b;
}
2.对数组a中的元素按相反次序重新排列。
Void PV(int a[] , int n )
{
int i ;
for ( i=o ;i
;
;
}
}
3.假定有定义为"struct NODE{int data;NODE*next;};",下面算法是把以L为表头
指针的链表中各结点依次按相反次序链接并返回新链表的表头指针.
NODE*f8(NODE*L)
{
if(L==NULL)return NULL;
NODE*p=NULL,*q=L,*t; //p为新链表的表头指针,初始值为空
while(q!=NULL){
t=q;
q=q->next;
t->next= ;
p= ;
}
Return p;
}
4.类A的定义
class A{
int *a;int n;int MaxLen;
public:
A():a(O),n(O),MaxLen(O){} //无参构造函数
A(int *aa,int nn,int MM){ //带参构造函数
n=nn;
MaxLen=MM;
if(n>MaxLen) exit(1);
a=new int[MaxLen]
for(int i=O;i
~A(){ ;} //释放动态存储空间
int GetValue(int i){return a[i];} //函数体返回a[i]的值
};
四、理解问答题.分别写出前2小题的程序运行结果和指出后2小题
的程序或函数功能。{每小题6分,共24分)
1.#include
const Int B=2;
void main()
{
int p=1,s=1;
while(s<50){
p*=B;
s+=p;
}
cout<<"s="<
运行结果:
2.#include
class CE{
private;
int a,b;
int Setmin(){return(a public;
int c;
voidSetValue(int x1,int x2,int x3){
a=x; b=x2;c=x3:
}
int GetMin();
};
int CE::GetMin(){
int d=getmin();
return(d
void main()
{
int x=5,y=12,z=8;
CE*ep=new CE;
ep->SetValue(x+y,y-2,lO);
cout<
运行结果:
3.int ff(int x,int y,char op){
int z;
switch(op){
case'+';
cout<
if(x+y==z)return 1;else return O;
break;
case'-';
cout<
if(x-y==z)return 1;else return O;
break;
case'*':
cout<
if(x * y = =z)return 1 ; else return O;
break;
case'/';
cout<
if(x/y==z)return 1;else return O;
break;
default:cout<<"运算符错,退出!"; exit(1);
}
)
函数功能:
4.char*f(char *s){
int n=strlen(s);
char *r=new char[n+1];
for(int i=O;i
else r[i]=s[i];
r[n]='/0';
函数功能:
五、编程题(每小题6分,共12分)
1.按照下面函数原型语句编写一个递归函数求出并返回数组a中n个元素的平方和。
int f(int a[],int n);
2.根据下面类中拷贝构造函数的原型写出它的类外定义。
class Array{
int *a; //指向动态分配的整型数组空间
int n; //记录数组长度
public ;
Array(intaa[], int nn); //构造函数,利用aa数组长度nn初始化n,
//利用aa数组初始化a所指向的数组空间
Array(Array& aa); //拷贝构造函数
};
试卷代号:1008
中央广播电视大学2006-200?学年度第二学期"开放本科"期末考试
计算机专业 面向对象程序设计 试题答案及评分标准
(供参考)
2007年7月
一、单项选择题(每小属2分,共20分)
1.B 2.A 3.B 4.B 5.A
6.C 7.D 8.B 9.D lO.B
二、填空题(每小题2分,共20分)
1. cout
2. 25
3. true(或1)
4. 文件包含
5. *(a+i)
6. double *pv=&v;
7. 类名
8. *this
9. ~AB(){}
1O. 2
三、程序填充题,根据题意在横线上填写合适的内容。(每小题6分,共24分)
评分标准:每空3分。
1.b%i==O b>=i
2.a[i]=a[n-i-1] a[n-i-1]=x
3. p t
4.a[i]=aa[i] delete[]a
四、理解问答题,分别写出前2小题的程序运行结果和指出后2小题的程序或函数功能。(每
小题6分,共24分)
评分标准;第3、4小题根据叙述完整程度酌情给分。
1. s=63
2. 4
3.以参数x和y作为运算对象,以参数op所存字符作为运算符,要求从键盘上输入运算结果,若正确则返回1否则返回o。
4.根据参数s所指向的字符串,生成一个由r所指向的新字符申并返回,该字符串使s字符串中的小写字母均变为大写。
五、编程题(每小题6分,共12分)
评分标准:按编程完整程度酌情给分。
1.int f(int a[[],int n)
{
if(n==O) return O; //1分
else return a[n - 1],a[n - 1]+f(a,n-1); //6分
}
2.Array::Array(Array & aa){
n=aa.n; //1分
a=new int[n] //3分
for(int i=0;i
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
该教师运用的教学方法是04-27
下列选项中对维果斯基的者成就表述正确的是04-27
人的需要是多种多样的,需要按照起源分为自然需要和社会04-27
这首歌主要体现了教师的职业形象有04-27
这首歌主要体现了教师的职业劳动特点有04-27
随着心理学的研究领域不断扩展和发展,出现了很多交叉学04-27
“今天的教育,明天的科技,后天的经济”说明教育在社会发04-27
问题解决除受策略、知识等因素影响外,还受到其它心理因04-27
学生认知方式的差异表现为多个方面。下列关于认知方式04-27
该教学片段反映出的师生关系的类型有04-27