试卷代号:1008 座位号■ 中央广播电视大学2006一2007学年度第一学期“开放本科”期末考试 计算机专业面向对象程序设计 试题 2007年1月 题 号 二 三 四 五 总 分 分 数 得 分 评卷人 一、单项选择题(每小题2分,共20分) 1.由C+十源程序文件编译而成的目标文件的默认扩展名为()。 A.cpp B.exe C.obj D.lik 2.设x和y均为bool量,则x&&.y为真的条件是( )。 A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 3.在下面的二维数组定义中,正确的语句是()。 A.int a[5]]; B.int a]5]; C.inta[][3]={1,3,5},{2}; D.int a[](10); 4.在文件包含命令中,被包含文件的扩展名()。 A.必须是.h B.不能是.h C.可以是.h或.cpp D.必须是,cpp 5.要使语句“p=new int[10][20];”正确,p应事先定义为( )。 A.int¥p; B.int**p; C.int¥p[20]; D.int(*p)[20]; 6.在关键字public后面定义的成员为该类的( )成员。 A.私有 B.公用 C.保护 D.任何 7.假定AA为一个类,a为该类私有的数据成员,若要在该类的一个成员函数中访问它, 则书写格式最好为()。 A.a B.AA::a C.a() D.AA::a() 62
试卷代号:1008 座位号口口 中央广播电视大学2006-2007学年度第一学期“开放本科”期末考试 计算机专业 面向对象程序设计 试题 200 年 1月 题 号 四 五 总 分 分 数 得 分 评卷人 一、单项选择题 (每小题 2分 ,共 20分 ) 1.由 C+十源程序文件编译而成的目标文件的默认扩展名为( )。 A. cpp B. exe C. obj U. lik 2.设x和Y均为bool量,则x乙乙Y为真的条件是( )。 A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 3.在下面的二维数组定义中,正确的语句是( ) A, int a仁5][]; B. int a[]仁5]; C. int a[][3]={{1,3,5},{2}}; U. int a[](Io); 4.在文件包含命令中,被包含文件的扩展名( )。 A.必须是.h B.不能是.h C.可以是.h或.cpp D.必须是.cpp 5.要使语句“p=new int[10]巨20];”正确,P应事先定义为( )。 A. int x p; I3. int } } p; C. int -} p仁20口; D. intC -} p)三20]; 6.在关键字 public后面定义的成员为该类的( )成员。 A.私有 B.公用 C.保护 D.任何 7.假定 AA为一个类,a为该类私有的数据成员,若要在该类的一个成员函数中访问它, 则书写格式最好为( )。 A. a ‘ B. A A::a C. a() D. AA::a()
8.队列具有( )的操作特性。 A.先进先出 B.先进后出 C进出无序 D.仅进不出 9.假定AB为一个类,则执行“ABa,b(3),p:”语句时共调用该类构造函数的次数为 ()次。 A.5 B.4 C.3 D.2 10.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()。 A.作为友元函数重载的1元运算符 B.作为成员函数重载的1元运算符 C.作为友元函数重载的2元运算符 D.作为成员函数重载的2元运算符 得 分 评卷人 二、填空题(每题2分,共20分) 1.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置 移动到 的开始位置。 2.假定x和y为整型,其值分别为16和5,则x/y和double(x)/y的值分别为 和 3.strlen(“apple'")的值为 4.C+十程序运行时的内存空间可以分成全局数据区,堆区,栈区和 区。 5.假定a是一个一维指针数组,则a十i所指对象的地址比a大 字节。 6.如果一个派生类只有一个唯一的基类,则这样的继承关系称为 7.假定AA是一个类,“AA¥abc()const;”是该类中一个成员函数的原型,在该函数体中 向this或其成员赋值。 8.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为 9.假定用户为类AB定义了一个构造函数“AB(int aa){a=aa;}”,该构造函数实现对数 据成员 的初始化。 ]0.作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有 个操作数。 63
8.队列具有( )的操作特性。 A.先进先 出 B.先进后 出 C.进出无序 D.仅进不出 9.假定 AI3为一个类,则执行“AB a, b(3), } p;”语句时共调用该类构造函数的次数为 )次。 A.} B. 4 C.3 D.2 10.在重载一个运算符时,其参数表中没有任何参数 ,这表明该运算符是( )。 A.作为友元函数重载的 1元运算符 B.作为成员函数重载的 1元运算符 C.作为友元函数重载的 2元运算符 U.作为成员函数重载的 2元运算符 得 分 评卷人 二、填空题(每题 2分,共 20分) 1.当执行 。u,语句输出 endl数据项时,将使 C -E-十显示输出屏幕上的光标从当前位置 移动到 的开始 位置 。 假定 、}1i y为整型.其值分别为 16和 5,则 x/y和 double<x)/y的值分别为 和 :}. strlen(`'apple")的值为___。 i. C-f--}-程序运行时的内存空间可以分成全局数据区,堆区,栈区和_____区。 J.假定 。是一个一维指针数组,则 a十i所指对象的地址比 a大 字节。 6.如果一个派生类只有一个唯一的基类,则这样的继承关系称为_ _ 。 7.假定 AA是一个类,"AA } abc( ) const;”是该类中一个成员函数的原型,在该函数体中 向 ‘this或其成员赋值。 8.假定用户没 有给一 个名 为 A13的类定 义 构造 函数 ,则 系统 为其 定义 的 构造 函数为 9.假定用户为类 AI3定义了一个构造函数“ABGnt aa) { a=aa; }",该构造函数实现对数 据成员 的初始化 。 10.作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有 个操作数
得 分 评卷人 三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标 号把合适的内容填写到程序下面相应标号的后面。每小题6分, 共24分】 1.打印出2至99之间的所有素数(即不能被任何数整除的数) #include<iostream.h #include<math.h void main() inti,n; for(n=2;n<=99;n++){ int temp=int(sqrt(n));/求出n的平方根并取整 for(i=2; (1) ;i+十) if(n%i==0) (2) if(i>temp)cout<<n<<’’: cout<<'n'; (1) (2) 2.下面是对按从小到大排列的有序数组a[]中进行二分查找x的算法,若查找成功返 回该元紫下标,否则返回一1。 int BinarySearch(int a],int n,int x) int low=0,high=n一l;/定义并初始化区间下界和上界变量 int mid; /定义保存中点元素下标的变量 while(low<=high)( mid=(low++high)/2; if(x==a[mid]) (1) else if(x<a mid])high=mid-1; else (2) 3 return -1; (1) (2) 64
得 分 评卷人 三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标 号把合适的 内容填写到程序下面相应标号的后面。每小题 6分。 共 24分 ) 1.打印出2至 99之间的所有素数(即不能被任何数整除的数)。 井include<.iostream. h> 共include<tnath. h void main() m t i,n for(n=2; n`!=99; n+一十){ int temp=int(sgrt(n));//求出n的平方根并取整 for(i=--2; (1) ;t十十) if(n0oi二二()) (2) i{(i;>temp) cout<<',n+ S 〔out<< ’\n’; (1) 2,下面是对按从小到大排列的有序数组 (2) a[n〕中进行二分查找 x的算法 ,若查 找成功返 回该元素下标 ,否则返回一to int BinarySearchGnt a仁」,int m int x) { int low=0, high=n-1;//定义并初始化区间下界和上界变量 int mid; //定义保存中点元素下标的变量 while( low<=high){ mid= ( low-F-high) /2; if(x==a[mid〕) (1) ; else if(x<a[mid]) high=mid一1; else (2) ; } return一1; (1) (2)
3.请补充完整如下的类定义: class A char a; public: a(){a=0;}/定义无参构造函数,使a的值为空 A(char aa){ a= (1) ;/进行动态存储分配 strcpy(a,aa);/用aa所指字符串初始化a所指向的动态存储空间 (2) //定义析构函数,剔除a所指向的动态存储空间 〉: (1) (2) 4.…种类定义如下: class Goods private: char gd_name[20]; /商品名称 int weight; //商品重量 static int totalweight; /同类商品总重量 public: Goods (char str,int w)( /1构造函数 strepy(gd_name,str); weight-w; totalweight+=weight; } ~Goods ()(totalweight -weight; char¥GetN()f (1) ;} /返回商品名称 int Get W(){return weight;) static int Get Total_Weight()( //定义静态成员函数返回总重量 (2) } (1) (2) 65
3.请补充完整如下的类定义 : class A{ char二a; public: a( ){a=0;}//定义无参构造函数,使 a的值为空 A(char*aa){ a= (1) ;//进行动态存储分配 strcpy(a,aa);//用 as所指字符串初始化 a所指向的动态存储空间 } (2) //定义析构函数 ,删除 a所指 向的动态存储空间 、 . 声 、j 了 ; , 上 g J 、 、 月 了 、 了百、 4.一种类定义如下 : class Goods .rt 刀 private: char gd_name[20]; int weight; static int totalweiglzt; public: Goods (char } str,int w){ strcpy( gd_name,str); weight=w; totalweight-f-=weight; 商品名称 /商品重 量 //同类商品总重量 i/构造函数 } 一('roods(){totalweight一= weight; char* GetN(){ (1) ;} int GetW<){return weight;} static int GeiTotal_Weight(){ 刀返回商品名称 //定义静态成员函数返回总重量 (2) 65
得分 评卷人 四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程 序(或函数)所能实现的功能。每小题6分,共24分) 1.include<iostream.h const int T=8; void main() int i,s=0; for(i=1;i<=T;i+=2){ s十=i*i: cout<<s<< cout<<endl; 运行结果: 2.#include<iostream.h class CE{ private: int a,b; int getmax(){return (a>b?a:b);} public: int c; void SetValue(int xl,int x2,int x3){ a=x1;b=x2;c=x3; } int GetMax(); }; int CE:GetMax() int d=getmax(); return (d>c?d:c); 66
得 分 评卷人 四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程 序(或函数)所能实现的功能。每小题 6分,共 24分) 1.井includeGiostream. h} const int T = 8 void main() Int I,S=0; for(i= 1 s+ = 1< = i关 t; T ; i-}=2){ cout< < s+ ' ' cout+ endl 运 行结果 : 2. #include<iostream. h} class CE{ pnvate: int a, b; int getmax(){return (alb? a:b);} public; m t c; void SetV alue(int x1,int x2,int x3){ a=xl;b= x2;c = x3; int GetMax(); int CE::GetMax< ) int d=getmax(); return (d} c? d:c) 66