面向对象程序设计网上教学活动文本.docx
- 文档编号:7462596
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:24
- 大小:33.06KB
面向对象程序设计网上教学活动文本.docx
《面向对象程序设计网上教学活动文本.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计网上教学活动文本.docx(24页珍藏版)》请在冰豆网上搜索。
面向对象程序设计网上教学活动文本
面向对象程序设计网上教学活动文本(.10.20)
唐龙:
同学们现在开始答疑,请大家提问。
问:
怎样学好这门课程?
唐龙:
最简单一句话说是:
在初步理解主要基本概念的基础上多上机实践。
问:
在C++进行程序开发时,遇到大批量的数据需要处理时,是用函数还是结构链,是不是还有其它的办法?
唐龙:
这不能一概而论,要看所处理的是什么数据,有什么处理要求,先要选择采用合理的数据结构和算法,才可能开发出适用的程序。
问:
我们怎样才能考好这门课程?
它的考试题型有哪些?
徐孝凯:
1.认真听好老师的面授辅导课;
2.认真按照实验教材的要求做好每个实验;
3.认真做好形成性作业;
4.到期末复习阶段,按照实验教材的附录中所给的综合练习题重复做好练习。
5.参考以前考过的试卷,题型基本不变。
问:
面向对象程序设计的重点内容?
唐龙:
本课程着重对C++语言的基本概念和语法规则理解,掌握其使用方法,进而初步学会运用于实际编程。
最重要的基本概念,例如,类与对象,继承,重载等一定要清楚理解,并学会在简单的编程应用。
徐孝凯:
往届试卷,供同学们复习时参考
中央广播电视大学
计算机科学与技术专业面向对象程序设计试题(3)
8月
题号
一
二
三
四
五
六
七
总分
得分
一、单项选择(每小题1分,共12分)
1.设x和y均为bool量,则x||y为假的条件是()。
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
2.假定一个二维数组的定义语句为”inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。
A.2B.4C.6D.8
3.以下错误的描述是()。
函数调用能够
A.出现在一个表示式中B.出现在执行语句中
C.作为一个函数的实参D.作为一个函数的形参
4.关于局部变量,下面说法正确的是()。
A.定义该变量的程序文件中的函数都能够访问
B.定义该变量的函数中的定义处以下的任何语句都能够访问
C.定义该变量的复合语句中的定义处以下的任何语句都能够访问
D.定义该变量的函数中的定义处以上的任何语句都能够访问
5.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。
A.p=newint;B.p=newint*;C.p=newint**;D.p=newint[10];
6.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的()。
A.可维护性B.可复用性C.兼容性D.正确性
7.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。
A.inB.inlineC.inLineD.InLiner
8.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为()。
A.length+1B.first+length
C.(first+length-1)%MSD.(first+length)%MS
9.假定一个类的构造函数为”A(intaa,intbb){a=aa;b=aa*bb;}”,则执行”Ax(4,5);”语句后,x.a和x.b的值分别为()。
A.4和5B.5和4C.4和20D.20和5
10.假定AB为一个类,则执行”AB*p=newAB(1,2);”语句时共调用该类构造函数的次数为()。
A.0B.1C.2D.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.已知语句”cout<
”,则语句”cout<<*p;”输出的是__________。
8.如果一个派生类只有一个唯一的基类,则这样的继承关系称为__________。
9.假定AA是一个类,”AA*abc()const;”是该类中一个成员函数的原型,在该函数体中__________向*this或其成员赋值。
10.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为__________。
11.假定用户为类AB定义了一个构造函数"AB(intaa){a=aa;}",该构造函数实现对数据成员_________的初始化。
12.作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有________个操作数。
三、程序填充,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面(每小题6分,共24分)
1.下面程序计算出
的值。
#include
voidmain()
{
doublex,p1=1,p2=1,s=0;
inti,j=1;
cout<<"输入x的值:
";
cin>>x;
for(i=1;i<=10;i++){
p1*=___
(1)_____;
p2*=____
(2)____;
s+=j*p1/p2;//j的值为(-1)i+1
j=____(3)____;
}
cout<
}
(1)
(2)(3)
2.假定有定义为”structNODE{intdata;NODE*next;};”,下面算法是依次显示输出以L为表头指针的链表中各结点的值。
voidff(NODE*L)
{
for(___
(1)___;p!
=NULL;___
(2)___)
cout<<___(3)___<<'';
cout< } (1) (2)(3) 3.假定有定义为”structNODE{intdata;NODE*next;};”,下面算法是把以L为表头指针的链表中各结点依次按相反次序链接并返回新链表的表头指针。 NODE*f8(NODE*L) { if(L==NULL)returnNULL; NODE*p=NULL,*q=L,*t; while(q! =NULL){ t=q; q=___ (1)___; t->next=___ (2)___; p=t; } ___(3)___; } (1) (2)(3) 4.已知一个利用数组实现栈的类定义如下: constintARRAY_SIZE=10; classStack{ public: voidInit(){top=-1;}//初始化栈为空 voidPush(intnewElem);//向栈中压入一个元素 intPop();//从栈顶弹出一个元素 boolEmpty(){//判栈空 if(top==-1)returntrue;elsereturnfalse;} intDepth(){returntop+1;}//返回栈的深度 voidPrint(); //按照后进先出原则依次输出栈中每个元素,直到栈空为止 private: intelem[ARRAY_SIZE];//用于保存堆栈元素的数组 inttop;//指明栈顶元素位置的指针 }; 该类的Pop和Print函数的实现分别如下: ___ (1)___{ if(top==-1){ cout<<"栈空! "< exit (1);//中止运行 } return___ (2)___; } voidStack: : Print(){ while(! Empty()) cout<<___(3)___<<''; cout< } (1) (2)(3) 四、写出程序运行结果(每小题8分,共16分) 1.#include inta[8]={36,25,20,43,12,70,66,35}; voidmain() { ints0,s1,s2; s0=s1=s2=0; for(inti=0;i<8;i++){ switch(a[i]%3){ case0: s0+=a[i];break; case1: s1+=a[i];break; case2: s2+=a[i];break; } } cout< } 2.#include #include classCD{ char*a; intb; public: voidInit(char*aa,intbb) { a=newchar[strlen(aa)+1]; strcpy(a,aa); b=bb; } char*Geta(){returna;} intGetb(){returnb;} voidOutput(){cout< }; voidmain() { CDdx,dy; chara[20]; dx.Init("abcdef",30); strcpy(a,dx.Geta()); strcat(a,"xyz"); dy.Init(a,dx.Getb()+20); dx.Output(); dy.Output(); } 五、指出程序或函数的功能(每小题6分,共12分) 1.#include #include #include voidmain() { inti=10,a; while(i>0){ a=rand()%90+10; intj,k=int(sqrt(a)+1e-5);//sqrt(x)为求x的平方根函数 for(j=2;j<=k;j++) if(a%j==0)break;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 网上 教学 活动 文本