
试卷代号:1008 座位■■ 中央广播电视大学2006一?:学三寞菜二学期“开放本科”期末考试 计算机专业 面向对象程序设计 试题 ·“年7月 题 号 二 三 四 五 总 分 分 数 得分 评卷人 一、单项选择(每小题2分,共20分)】 1.字符串”a十b=12\n"的长度为()。 A.6 B.7 C.8 D.9 2.假定-个二维数组的定义语句为“inta[3][4]=(3,4},{2,8,6};”,则元素a[2][1] 的值为( )。 A.0 B.4 C.8 D.6 3.以下正确的描述是()。 A.函数的定义可以嵌套,函数的调用不可以嵌套 B.函数的定义不可以嵌套,函数的调用可以嵌套 C.函数的定义和函数的调用均可以嵌套 D.函数的定义和函数的调用均不可以嵌套 61

4.设有定义“double array[l0];”,则表达式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,队首元素位置为fist,队列长B 为length,则队首的后一个位置为( ) A.first+1 B.(first+1)%MS C.(first-1)%MS D.(first+length)%MS 9.假定一个类的构造函数为“A(int aa=l,int bb=0){a=aa;b=bb;}”,则执彳 “Ax(4):”语句后,x.a和x.b的值分别为( ). A.1和0 B.1和4 C.4和1 D.4和0 10.假定AB为一个类,则执行“ABa(2),b[3],p[4];”语句时共调用该类构造函数 次数为( )。 1.3 B.4 C.8 D.9 62

得分 评卷人 二、填空题(每小题2分,共20分】 1.用于输出表达式值的标准输出流对象是 2.假定x=5,y=6,则表达式x一一¥-一y的值为 3.假定x是一个逻辑量,则x|1rue的值为 4.C十十提供的预处理命令有宏定义命令,条件编译命令和 争令 5.假定a是一个一维数组,则a[i订的指针访问方式为一。 6.变量v定义为“doublev=23.4;”,要使指针pv指向,则定义pv的语句为 7.若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时.其函数 名前必须加上 和两个冒号分隔符。 8.若采用x.abc(y)表达式调用-一个成员函数,在成员函数中使用的 就代表了英 外的x对象。 9.假定用户没有给-一个名为AB的类定义析构函数,则系统为其定义的析构函数为 10.假定用户只为类AB定义了一个构造函数"A3(int aa,itbb=0){a=aa:=bb;}", 则定义该类的对象时,其实参表中至多带有个实参。 得分 评卷人 三、程序填充题,根据题意在横线上填写合适的内容。(每小题6分, 共24分】 1.下面函数是求两个整型参数?和b的最小公倍数。 int f2(int a,in:b) int i=2,p=1; do 63

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=0;i>next; t->next= 64

p= return p; 4.类A的定义 class A int a;int n;int MaxLen; public: A():a(0),n(0),MaxLen(0){)//无参构造函数 A(int*aa,int nn,int MM){/带参构造函数 n=nn; MaxLen=MM; if(n>>MaxLen)exit(1); a=new int[MaxLen]; for(int i=0;i<n;i++) ;/利用数组aa给数组a赋值 } A(){ /释放动态存储空间 int Get Value(inti){return a[i门;}/函数体返回a[i们的值 〉: 得分 评卷人 四、理解问答题,分别写出前2小题的程序运行结果和指出后2小题 的程序或函数功能。(每小题6分,共24分) 1.include<iostream.h const int B=2; void main() int p=1,s=1; while(s<50){ 65

p¥=B; s十=p; } cout class CE{ private: int a,b; int getmin()(return (aSet Value(x+y,y-z,10); coutGetMin()<<endl; 正洁果:

3.int ff(int x,int y,char op){ int z; switch(op){ case+': cout>z; if(x+y==z)return 1;else return 0: break; case-: cout>z; if(x-y==z)return 1;else return 0; break; case′¥': cout>z; if(x¥y==z)return 1;else return0; break; case/': cout>z; if(x/y==z)return 1;else return 0; break; default:cout='a'&&si门<='z)r[i]=s[i]-'a'+'A': 67

else r[i]=s[i]; r[n]=0'; return r; 函数功能: 得分 评卷人 五、编程题(每小题6分,共12分)》 1.按照下面函数原型语句编写个递归函数求出并返回数组a中n个元素的平方和。 int f(int a[],int n); 2.根据下面类中拷贝构造函数的原型写出它的类外定义。 class Array int x a; /指向动态分配的整型数组空间 int n; /记录数组长度 public: Array(int aa[],int nn); //构造函数,利用aa数组长度nn初始化n, //利用aa数组初始化a所指向的数组空间 Array(Array&aa); /拷贝构造函数 }; 68

试卷代号:1008 中央广播电视大学2C05一200?学年度第二学期“开放本科”期末考试 计算机专业面向对象程序设计 试题答案及评分标准 (供参考) 2007年7月 一、单项选择题(每小题2分,共20分) 1.B 2.A 3.B 4.B 5.A 6.C 7.D 8.B 9.D 10.B 二、填空题(每小题2分,共20分】 1.cout 2.25 3.true(或1) 4.文件包含 5.*(a十i) 6.double¥pv=&v; 7.类名 8.this 9.AB(){} 10.2 三、程序填充题,根据题意在横线上填写合适的内容。(每小题5分,共24分) 评分标准:每空3分。 1.b%i==0 b>=i 2.a[i]=a[n-i-l] a[n-i-1]=x 3.pt 4.a[i门=aa[i] delete []a 四、理解问答题,分别写出前2小题的程序运行结果和指出后2小题的程序或函数功能。(每 小题6分,共24分】 评分标准:第3、4小题根据叙述完整程度酌情给分。 1.s=63 69

2.4 3.以参数x和y作为运算对象,以参数O叩所存字行作为运算爷,要求从键盘上输人运 结果,若正确则返回1否则返回0。 4.根据参数s所指向的字符串,生成一个由r所指向的新字符并返回,该字符串使5 符串中的小写字母均变为大写 五、编程题(每小题6分,共12分》 评分标准:按编程完整程度酌情给分。 1.int f(int at],int n) if(n==()return 0; /11分 else return a[n-13 a[n-1]+f(a,n-1); 116公 2.Array:Array(Array&.aa( n=aa.n; /1分 a=new int[n]; /13分 for(int i=0;i<n;i++)ali]=aa.alij; /6分 70