试卷代号:1008 座位号■■ 中央广播电视大学2007一2008学年度第一学期“开放本科”期末考试 计算机专业面向对象程序设计 试题 2008年1月 题 号 二 三 四 五 总 分 分 数 得 分 评卷人 一、单项选择题(每小题2分,共20分) 1.设x和y均为bool量,则xI|y为假的条件是( A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 2.假定一个二维数组的定义语句为“inta[3][4]={3,4},{2,8,6};”,则元素a[1][2] 的值为( )。 A.2 B.4 C.6 D.8 3.假定p是具有it类型的指针变量,则给p赋值的正确语句为()。 A.p=new int B.p=new int米 C.p=new int¥¥ D.p=new int[10] 4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进 行相应的软件更新的难易程度叫做软件的( A.可维护性 B.可复用性 C.兼容性 I).正确性 58
试卷代号:1008 座位号巨一口 中央广播电视大学2007-2008学年度第一学期“开放本科”期末考试 计算机专业 面向对象程序设计 试题 2008年 1月 题 号 四 五 总 分 分 数 得 分 评卷人 一、单项选择题(每小题 2分 ,共 20分) 1.设 X和 Y均为 boot量,则 x}}Y为假的条件是( A.它们均为真 B.其中一个为真 ,C.它们均为假 D.其中一个为假 2.假定一个二维数组的定义语句为“inta[3][4] _ {{3,4},{2,8,6}};",则元素 a[1][2] 的值为( A. 2 B. 4 C. 6 D. 8 3.假定 P是具有 int 、类型的指针变量,则给 P赋值的正确语句为( A. p=new int in t 关 关 B.p=r}ew int } C. p=new D. p=new int[10] 4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进 行相应的软件更新的难易程度叫做软件的( A.可维护性 B.可复用性 C.兼容性 D.正确性
5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数 原型或函数头的前面。 A.in B.inline C.inLine D.InLiner 6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为fist,队列长度 为length,则队尾的后一个位置为()。 A.length+1 B.first+length C.(first+length-1)%MS D.(first+length)%MS 7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;}”,则执行“Ax(4, 5);”语句后,×.a和x.b的值分别为( )。 A.4和5 B.5和4 C.4和20 D.20和5 8.假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的 次数为()。 A.0 B.1 C.2 D.3 9.一个类的成员函数也可以成为另一个类的友元函数,这时的友元声明( )类域的限 定。 A.需加上 B.不需加上 C.可加可不加 D.取消 10.队列具有( )的操作特性。 A.先进先出 B。先进后出 C,进出无序 D.仅进不出 59
5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数 原型或函数头的前面。 A. in B. inline C. inline D. InLiner 6.在一个用数组实现的队列类中,假定数组长度为 MS,队首元素位置为 first,队列长度 为 length,则队尾的后一个位置为( A. length+1 B. first}-length G (first-f-length一I)0oMS D. (first-f-length) 0 o MS 7.假定一个类的构造函数为 “A(int aa, int bb) {a=aa; b=aa * bb; }",则执行 “A x(4, });”语句后 ,x. a和 x. b的值分别为( )。 A. 4和 5 B. 5和 4 C. 4和 20 D. 20和 5 8.假定 AB为一个类 ,则执行“AB * p=new AB(1,2);”语句时共调用该类构造函数 的 次数为( A. 0 C.2 B. 1 D. 3 9.一个类的成员函数也可以成为另一个类的友元函数,这时的友元声明( )类域的限 A.需加上 B.不需加上 C.可加可不加 D.取消 10.队列具有( )的操作特性。 A.先进先出 13.先进后出 C.进出无序 D.仅进不出
得分 评卷人 二、填空题(每小题2分,共20分) 1.多行注释的开始标记符为 2.假定x=5,y=6,则表达式x十十*十+y的值为 3.假定x是一个逻辑量,则x&&true的值与x的值 4.含随机函数的表达式rand()%20的值在0至 的整数区间内。 5.程序的编译是以 为单位进行的。 6.一个数组的 实际上是指向该数组的第一个元素的指针,并且在任何 时候都不允许修改它。 7.指针变量pv和pc定义为“void pv=”Hello,word!”;char'pc;”,要将pv值赋给 pC,则正确的赋值语句是pc=( )pv。 8.一个类的 函数通常用于实现释放该类对象中指针成员所指向的动态 存储空间的任务。 9.假定用户为类AB定义了一个构造函数“AB(int aa):a(aa),{)”,则 是该类的数据成员。 l0.在多文件结构的程序中,通常把含有main()函数的文件称为该程序的 得分 评卷人 三、程序填充题,根据题意在横线上填写合适的内容。(每小题6分, 共24分) 1.采用辗转相除法求出两个整数的最大公约数。 #include<iostream.h void main() int a,b; cout<<"请输人两个正整数:”; 60
得 分 评卷人 二、填空题(每小题 2分 ,共 20分 ) 多行注释的开始标记符为 假定 x=5,y=6,则表达式 x-{- + * }- -} Y的值为 3.假定 x是一个逻辑量,则 xa乙 true的值与 x的值 4.含随机函数的表达式 rand() %20的值在 。至 的整数区间内。 5.程序的编译是以 为单位进行的。 6.一个数组的 实际上是指向该数组的第一个元素的指针,并且在任何 时候都不允许修改它。 7.指针变量pv和pc定义为“void }- pv ="Hello, word!"; char } pc;",要将pv值赋给 pc,则正确的赋值语句是 pc=( )Pvo 8一 个类的 函数通常用于实现释放该类对象中指针成员所指向的动态 存储空间的任务。 9.假定用户为类 AB定义了一个构造函数“AB(int aa);a(aa),{}",则 是该类的数据成员。 10.在 多 文 件 结 构 的 程 序 中,通 常 把 含 有 main )函 数 的 文 件 称 为该 程 序 的 得 分 评卷 人 三、程序填充题 。根据题意在横线上填写合适的内容。(每小题 6分 , 共 24分 ) 1.采用辗转相除法求出两个整数的最大公约数 。 #include<iostream. h> void main() IIlt 8,h cout+ }}请输人两个正整数:’‘;
cin>>a>>b while(a<=0I|b<=0){cout<<"重新输人:";cin>>a>>b;} while(b){ int r; r=a%b; ;/分别修改a和b的值 cout<<a<<endl;//输出最大公约数 2.用插入排序方法对table指针数组中size个指针所指向的字符串进行按升序排序的算 法。 void sort(char table[],int size){ for(int i=1;i<size;i++)( char p=tableCi]; for(int j=i-1;j>=0;j--) if(strcmp(p,table[j]<0)table[j1]= else break; table[j+1]= A的定义 class A( char a; public: 61
cin; a; b while(a<二0}}b<=0) {cout+ '‘重新输人:“;cin>>a>>b while(b) int r r=a%b ;//分别修改 a和 b的值 cout+ a+ endl,//输出最大公约数 2.用插入排序方法对 table指针数组中 size个指针所指向的字符串进行按升序排序 的算 法 。 void sort(char*table仁〕,int size){ for(int i=1;i<size;i -f-+){ char‘p=table[i]; for(int j=i一1;j>=0;j一一) if(strcmp(p,table[j])<0) table[j }-1]= else break; table[j+1]= 3.类 A的定义 class A { char * a public F>1
A(){a=NULL;}/定义无参构造函数,使a为空指针 A(char aa){ a= char[strlen(aa)+1]; strcpy(a,aa);/用aa所指字符串初始化a所指向的动态存储空间 /定义析构函数,删除a所指向的动态存储空间 4.类Goods的定义 class private: char Name[20];/商品名称 int Weight;/商品重量 static int totalWeight;/同类商品总重量 public: Goods(char*str,intw){/构造函数 strcpy(Name,str); Weight=w; totalWeight+=Weight; Goods ()(totalWeight-=Weight;) char¥GetN(){ //返回商品名称 int GetW()return weight;) static int GetTotalWeight(){/定义静态成员函数返回,总重量 62
A(){a =NULL; A(char,aa){ //定义无参构造 函数 ,使 a为空指针 a 二二 char[strlen(aa)+1] strcpy(a,aa); 刀用 as所指字符串初始化 a所指向的动态存储空间 //定义析构函数,删除 a所指向的动态存储空间 4.类 Goods的定义 class pnvate: char Name[20]; //商品名称 int Weight; //商品重量 static int totalWeight;//同类商品总重量 public: Goods <char } str,int w) { //构造 函数 strcpyC Name,str); Weight=w; total Weight十“Weight 一Goods(){totalWeight一=Weight; char二 GetN(){ //返回商品名称 int GetW ){return weight;} static int GetTotalWeight(){//定义静态成员函数返回总重量 62