资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。面向对象程序设计网上教学活动文本( .10.20) 唐龙: 同学们现在开始答疑, 请大家提问。 问: 怎样学好这门课程? 唐龙: 最简单一句话说是: 在初步理解主要基本概念的基础上多上机实践。 问: 在C+进行程序开发时, 遇到大批量的数据需要处理时, 是用函数还是结构链, 是不是还有其它的办法? 唐龙: 这不能一概而论, 要看所处理的是什么数据, 有什么处理要求, 先要选择采用合理的数据结构和算法, 才可能开发出适用的程序。 问: 我们怎样才能考好这门课程? 它的考试题型有哪些? 徐孝凯: 1.认真听好老师的面授辅导课; 2.认真按照实验教材的要求做好每个实验; 3.认真做好形成性作业; 4.到期末复习阶段, 按照实验教材的附录中所给的综合练习题重复做好练习。5.参考以前考过的试卷, 题型基本不变。 问: 面向对象程序设计的重点内容? 唐龙: 本课程着重对C+语言的基本概念和语法规则理解, 掌握其使用方法, 进而初步学会运用于实际编程。最重要的基本概念, 例如, 类与对象, 继承, 重载等一定要清楚理解, 并学会在简单的编程应用。 徐孝凯: 往届试卷, 供同学们复习时参考中央广播电视大学计算机科学与技术专业面向对象程序设计试题( 3) 8月题 号一二三四五六七总 分得 分一、 单项选择( 每小题1分, 共12分) 1设x和y均为bool量, 则x | y为假的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 2. 假定一个二维数组的定义语句为”int a34=3,4,2,8,6;”, 则元素a12的值为( ) 。 A. 2 B. 4 C. 6 D. 8 3. 以下错误的描述是( ) 。 函数调用能够 A. 出现在一个表示式中 B. 出现在执行语句中 C. 作为一个函数的实参 D. 作为一个函数的形参 4. 关于局部变量, 下面说法正确的是( )。 A. 定义该变量的程序文件中的函数都能够访问 B. 定义该变量的函数中的定义处以下的任何语句都能够访问 C. 定义该变量的复合语句中的定义处以下的任何语句都能够访问 D. 定义该变量的函数中的定义处以上的任何语句都能够访问 5. 假定p是具有int*类型的指针变量, 则给p赋值的正确语句为( ) 。 A. p=new int; B. p=new int*; C. p=new int*; D. p=new int10; 6. 软件产品在需求发生变化、 运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( ) 。 A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 7. 若需要把一个类外定义的成员函数指明为内联函数, 则必须把关键字( ) 放在函数原型或函数头的前面。 A. in B. inline C. inLine D. InLiner 8. 在一个用数组实现的队列类中, 假定数组长度为MS, 队首元素位置为first, 队列长度为length, 则队尾的后一个位置为( )。 A. length+1 B. first+length C. (first+length-1)%MS D. (first+length)%MS 9. 假定一个类的构造函数为 ”A(int aa, int bb) a=aa; b=aa*bb;”, 则执行 ”A x(4,5);”语句后, x.a和x.b的值分别为( )。 A. 4和5 B. 5和4 C. 4和20 D. 20和5 10. 假定AB为一个类, 则执行”AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。 A. 0 B. 1 C. 2 D. 3 11. 一个类的成员函数也能够成为另一个类的友元函数, 这时的友元说明( ) 。 A. 需加上类域的限定 B. 不需加上类域的限定 C. 类域的限定可加可不加 D. 不需要任何限定 12. 关于插入运算符的重载, 下列说法不正确的是( ) 。 A. 运算符函数的返回值类型是ostream & 。 B. 重载的运算符必须定义为类的成员函数。 C. 运算符函数的第一个参数的类型是ostream & 。 D. 运算符函数有两个参数。二、 填空( 每空1分, 共14分) 1. 当执行cout语句输出endl数据项时, 将使C+显示输出屏幕上的光标从当前位置移动到_的开始位置。 2. 假定x和y为整型, 其值分别为16和5, 则x/y和double(x)/y的值分别为_和_。 3. 执行switch语句时, 在进行作为条件的表示式求值后, 将从某个匹配的标号位置起向下执行, 当碰到下一个标号位置时_执行。 4. strlen(”apple”)的值为_, strcmp(”a”,”A”)的值为_。 5. C+程序运行时的内存空间能够分成全局数据区, 堆区, 栈区和_区。 6假定a是一个一维指针数组, 则a+i所指对象的地址比a大_字节。 7. 已知语句”coutp;”的输出是”Hello!”, 则语句”cout*p;”输出的是_。 8. 如果一个派生类只有一个唯一的基类, 则这样的继承关系称为_。 9假定AA是一个类, ”AA* abc()const;”是该类中一个成员函数的原型, 在该函数体中_向*this或其成员赋值。 10假定用户没有给一个名为AB的类定义构造函数, 则系统为其定义的构造函数为_。 11假定用户为类AB定义了一个构造函数AB(int aa) a=aa;, 该构造函数实现对数据成员_的初始化。 12. 作为类的成员函数重载一个运算符时, 参数表中只有一个参数, 说明该运算符有_个操作数。三、 程序填充, 对程序、 函数或类中划有横线的位置, 根据题意按标号把合适的内容填写到程序下面相应标号的后面( 每小题6分, 共24分) 1. 下面程序计算出的值。 #include void main() double x,p1=1,p2=1,s=0; int i,j=1; coutx; for(i=1;i=10;i+) p1*=_(1)_; p2*=_(2)_; s+=j*p1/p2; /j的值为(-1)i+1 j=_(3)_; coutsendl; (1) (2) (3) 2. 假定有定义为”struct NODEint data; NODE* next;”, 下面算法是依次显示输出以L为表头指针的链表中各结点的值。void ff(NODE* L) for(_(1)_; p!=NULL; _(2)_) cout_(3)_ ; coutnext=_(2)_; p=t; _(3)_;(1) (2) (3) 4. 已知一个利用数组实现栈的类定义如下: const int ARRAY_SIZE=10;class Stack public:void Init() top=-1; /初始化栈为空 void Push(int newElem); /向栈中压入一个元素int Pop(); /从栈顶弹出一个元素bool Empty() /判栈空 if(top=-1) return true;else return false;int Depth() return top+1; /返回栈的深度void Print(); /按照后进先出原则依次输出栈中每个元素, 直到栈空为止private:int elemARRAY_SIZE; /用于保存堆栈元素的数组int top; /指明栈顶元素位置的指针; 该类的Pop和Print函数的实现分别如下: _(1)_ if(top=-1) cout栈空!endl;exit(1); /中止运行return _(2)_;void Stack:Print() while(!Empty() cout_(3)_ ; c
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号