2023年面向对象程序设计网上教学活动文本.docx

上传人:太** 文档编号:72753024 上传时间:2023-02-13 格式:DOCX 页数:28 大小:60.68KB
返回 下载 相关 举报
2023年面向对象程序设计网上教学活动文本.docx_第1页
第1页 / 共28页
2023年面向对象程序设计网上教学活动文本.docx_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《2023年面向对象程序设计网上教学活动文本.docx》由会员分享,可在线阅读,更多相关《2023年面向对象程序设计网上教学活动文本.docx(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向对象程序设计网上教学活动文本(2 0 23.10.20)唐龙:同学们现在开始答疑,请大家提问。问:如何学好这门课程?唐龙:最简朴一句话说是:在初步理解重要基本概念的基础上多上机实践。问:在C+进行程序开发时,碰到大批量的数据需要解决时,是用函数还是结构链,是不是尚 有其它的办法?唐龙:这不能一概而论,要看所解决的是什么数据,有什么解决规定,先要选择采用合理的 数据结构和算法,才也许开发出合用的程序。问:我们如何才干考好这门课程?它的考试题型有哪些?徐孝凯:1 .认真听好老师的面授辅导课;.认真按照实验教材的规定做好每个实验:2 .认真做好形成性作业;.到期末复习阶段,按照实验教材的附录中所

2、给的综合练习题反复做好练习。3 .参考以前考过的试卷,题型基本不变。问:面向对象程序设计的重点内容?唐龙:本课程着重对C+语言的基本概念和语法规则理解,掌握其使用方法,进而初步学会 运用于实际编程。最重要的基本概念,例如,类与对象,继承,重载等定要清楚理解,并学 会在简朴的编程应用。徐孝凯:往届试卷,供同学们复习时参考中央广播电视大学d x. Outpu t ();d y. Ou t put 0 ;)五、指出程序或函数的功能(每小题6分,共12分)1. #include#i n clud e n cl u devoid ma i n ()(int i=10, a;wh i le ( i 0 )

3、(a= r a nd()%9 0 +10;8int j, k=in t (sq r t ( a ) +1 e-5); sqrt (x)为求 x 的平方根函数f or(j=2; jV=k; j+)。 if (a% j= 0 ) break;if (jk) co u t a *; i;)2. void I np u t (IntN o d e*& f)int n;coutn; w h ile( n 0 );i f(n=0) f=NULL; return;)f= n ew I n t Node;IntNode*p =f;coutV ”从键盘输入n n ext= new In t No d e ;ci

4、npdata;)p -n e xt = NULL;p=f; f = f ncx t ; de lete p;)假定IntNode的类型定义为:struct IntNo d e n t da t a;结点值域I n tN o de* n e xt;结点指针域;六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误(6分)。假定规定下面程序的输出结果为“11/15,其主函数中存在着三行语句错误,请指 犯错误语句行的行号并改正错误行。# in c lu d ec 1 ass Fr a n c t i o n 定义分数类。i n t nume:/ /定义分子i nt d en o ; 定义分母p

5、 u b lie:把* th is化简为最简分数,具体定义在此外文献中实现vo i d Fr a nS imp ();返回两个分数* Ihi s和x之和,具体定义在此外文献中实现g Fra n ctio n F r anAdd (co n st Franc t i o n& x):/置分数的分子和分母分别0和1。vo i d Ini t Franction() nume=0; den o= 1 ;置分数的分子和分母分别n和d。 vo i d InitFrancti o n( i nt n, i n t d) nume=n; d e n o =d; 输出一个分数gvoid F r a nOut

6、p ut 0 co u t n u m e / / denoend 1 ;);8VoicI main ()/I 行(2行。Franctiona, b, c;/3 行。a. InitF r a n c tion (6, 15);/4 行b . In i tFran c t ion ( 1 ) ;/5 行c . In i tFr a nctionO ;/6 行。 c= F r a n Ad d ( a , b);/ / 7 行ocoutc. n u mefor( i nt i = 0; i n ; i +)c o u t a i V V;。 coutnext(3 ) p- data3.(1) q-

7、 n ex t(2) p(3 ) ret urn4.(3) NODE* p=L(4) p= p-next(3 ) p- data5.(3) q- n ex t(4) p(3 ) ret urn/ / 2分2分/ 2分2分2分P /2 分4.4.(a) int Stack: : PopO(b) c 1 cm t op-(c) Pop()2分/ 2分/2分四、写出程序运营结果(每小题8分,共16分)1. 114 138 55每个数据占3分,全对给8分2.abcdef 3 04分,每个数据2分abed e f x y z 50abed e f x y z 50/4分,每个数据2分1.随机产生出10个

8、10至1 0 0 (或99)之间的素数并显示出来。2. 一方面从键盘上输入一个整数给n,然后依次输入n个整数建立以表头指针为f的链表。 评分标准:根据叙述情况酌情给分。六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误(6分)。错误行的行号为5 7 8分别改正为 b. InitF r anction(l, 3) ; c = a . F r a nAdd( b ) ; c. FranO u t put () 评分标准:共6个数据,每个数据1分。七、编程(每小题8分,共16分)评分标准:根据编程情况酌情给分。1. # i nclud e voi d ma i n ()(0int i; 用

9、i作为循环变量in t p=l; 用p作为累乘变量。int s=l;/ /用s作为累加循环变量for ( i =1; i=l 0 ; i+) p*=3; s + = p ;ocouts e n d 1;2.Array A r ray: :Ui o n (A r ra y & aa) int k = n+ a a. n;int* w二new intk;f o r ( i =0; i n; i+) w i =ai;for ( i =0; iA. f irst+ 1B. (fi rs t +1)%MSC. (fi r st-1) %MS D. (f irst+1 ength)%MS9 .假定一个类的

10、构造函数为 “ A (int aa=l, i n t bb=0) a =aa; b = bb;“,则 执行“Ax(4); ”语句后,x.a和x. b的值分别为()。A. 1 和 0 B. 1 和 4 C. 4 和 1 D. 4 和 010 .假定AB为一个类,则执行“AB a (2) , b3, *p4; ”语句时共调用该类构造函数的次数为(A. 3 B. 4 C. 5 D. 911.在成员函数中进行双目运算符重载时,其参数表中应带有()个参数。A. 0 B. 1C. 2 D. 31 2.在重载一运算符时,若运算符函数的形参表中没有参数,则不也许的情况是 ()。A.该运算符是一个单目运算符。B

11、.该运算符函数有一个隐含的参数thi s。C.该运算符函数是类的成员函数。D .该运算符函数是类的友元函数。13.派生类的对象对其基类中()可直接访问。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员二、填空(每空1分,共17分)1 .多行注释的开始标记符和结束标记符分别为 和 o2 .假定x=5, y=6,则表达式x+*+y的值为。3 .假定x是一个逻辑量,则x&true的值为。4 .含随机函数的表达式rand()%20的值在至区间内。5 .若需要把一个字符串 a a a赋值到字符数组a中,则需要执行 字符串函计算机科学与技术专业面向对象程序设计试题(

12、3)20 2 3年8月题号二三四五六七总分得分一、单项选择(每小题1分,共12分)1.设x和y均为bool量,则x | | y为假的条件是(A.它们均为真B.其中一个为真C.它们均为假1). 其中一个为假2 .假定一个二维数组的定义语句为“in t的值为()。A. 2 B. 4 C. 63 .以下错误的描述是()o函数调用可以A.出现在一个表达式中C.作为一个函数的实参4 .假定一个二维数组的定义语句为“in t的值为()。A. 2 B. 4 C. 65 .以下错误的描述是()o函数调用可以A.出现在一个表达式中C.作为一个函数的实参a34 = 3, 4,2, 8,6;”,则元素D. 8B.出

13、现在执行语句中D.作为一个函数的形参4 .关于局部变量,下面说法对的的是(A.定义该变量的程序文献中的函数都可以访问B.定义该变量的函数中的定义处以下的任何语句都可以访问C.定义该变量的复合语句中的定义处以下的任何语句都可以访问D.定义该变量的函数中的定义处以上的任何语句都可以访问.假定p是具有int*类型的指针变量,则给p赋值的灼的语句为( )oA. p = n ew int;B. p=n e w int*;C. p=new int*;D. p数的调用来实现。5 .程序的编译是以 为单位进行的。6 . 一个数组的数组名事实上是指向该数组的 元素的指针,并且在任何时候都不允许 它。7 .指针变

14、量 pv 和 p c 定义为 “ v o id *p v =H e Ho, wor d !”; c ha r *pc; ,要将pv值赋给pc,则对的的赋值语句是。8 . C+支持两种多态性: 时的多态性和 时的多态性。9 .在一个用数组实现的队列类中,除了保存队列元素的叔祖成员外,还包具有两个数 据成员,一个指明队首元素位置,另一个指明队列 o11 . 一个类的函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。12 .假定用户为类AB定义了一个构造函数“AB (in t aa , c ha r *bb=NUL L):a(aa),b(b b ) ,则该类中至少包具有 个数据成员。

15、13 .重载插入运算符时,其运算符函数的返回值类型应当是_ O三、程序填充,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到 程序下面相应标号的后面(每小题6分,共18分)1 .打印出2至99之间的所有素数(即不能被任何数整除的数)。#inc 1 u d e#in c 1ude void main()in t i, n;fo r (n=2; (1) ; n+)in t t em p =int (sqr t ( n ); 求出n的平方根并取整for( i = 2 ;( 2 ); i + +)if (n %i=0) i f (item p ) cout n n(3)2.下面是对按

16、从小到大排列的有序数组an中进行二分查找x的算法,若查找成功 返I可该元素下标,否则返回一 1。1 n t Binar y Searc h (int a , i nt n, i n t x)(。int low= 0 , high二nT;定义并初始化区间下界和上界变量i n t m i d ;/ /定义保存中点元素下标的变量w h ile(low =high) amid=(1);i f (x=am i d) (2);els e if (xa mid) high =mid-l;8else (3);)。r e turn -1;(1)3.cl a ss A n t a, b;pu b lie:A (i

17、nt aa=O, int b b =0) (1) /分另U用 a a 和 b b 相应初始化a和b;main () (2 ) ; 定义类A的对象x并用5初始化,同时定义y并用x初始化 一 ;定义P指针,使之指向对象x)(1) (2)(3)四、写出程序运营结果(每小题6分,共18分)1. # i n c 1 ude const i nt N=5;void m a i n ()(int i, p=l, s= 0 ;for(i= 1 ; iN; i+) gp=p*i:co u t s e t w( 5 ) i s e t w (5)p;c o u t s e t w (5) s endl;2. #i

18、nc 1 udevo i d m a in O(char s 3 5 = f 1 2 34, abed /+-*/char *p3;f or( i n t i=0; i=0: i) coutp i ;c oute n dl;)3.#inc 1 ude clas s Date(pu b lie:Mo n th=m; Dvoid S e t D a tc( i nt y, in t m, i nt d ) ( Ycar= y ;v oid PrintDateO c o u t Year V V V VMonth / D a y endl;)Da t e () SetDat e (20 2 3, 1

19、, 1 ) ;Da t e(int y, in t m, int d ) (Set Date(y, m, d) ; protected:int Y e ar, Mo n t h , D a y ;;class Timep u b 1 i c:v o id SetTime(int h, i n t m, in t s) H o u r e= h ; Mi nutes = m; S econ ds=s;void Prin t T i m e () coutH o ure :z,Minutesz,:z,S e co n ds e ndl;)T i me () SetTime(0, 0, 0) ;T

20、ime (int h, int m, int s) Se t Time (h, m, s);p r otect e d :i nt Hou r e ,Min u te s , Se c o n d s;);c 1 ass Date T i me:c 1 ass Date T i me:pub 1 ic Date, pub 1 ic T imepublic:I) a te_T ime():Da t e(), TimeO ;Dat e _Time(inty, i n t mo, int d, int h, int m i , int s):Date (y, mo, d), Time(h, mi,

21、s) void Pr i n t Date_T ime() P rintDateO ;Pr i n tTime (););void ma i n()(Date_T i m e d t_a, d t _b (202 3 , 10, 1, 6, 0,0);d t _a. Pr i n t D ate_ T i me();dt_b. Set T ime(2 3 , 59, 5 9);d t_b. Pri n t Da t e_Tim e ();d t_a. Se t Da t e(2 0 23, 12,3 1 );d t_a. PrintDat e T i me ();五、指出程序或函数的功能(每小

22、题6分,共12分)1 . ttinclu dedouble f 1 (int n) d ouble sign=l s=l;for (int i=2;i= n ; i+) 8s+=sig n / (i*i );sign*=-l;0 )。return s ;voi d main()in t a;cina;c o utfl (a)data n e xt;)co u tendl;假定IntN ode的类型定义为:st r uct IntNod e (i n t data;结点值域IntNo de* ne x t; 结点指针域);六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误(6分) 下面

23、是一个类的定义,存在着3处语法错误(有的为单个字符),请指犯错误行的行号并改正。/I行c 1 as s CE p r i v a t e:/2 行int a, b;/3 行in t ge t mi n () re t ur n (ab? a :b) ; 4 行pub lie/ / 5 行int c;/6 行v oid SetV a lu e ( i n t xl, i n t x2, int x3) /7 行a=xl; b =x2; c= x 3;8行。:/ /9 行i nt G etM i n () ; 1。行);“行int Ge t Min() 1 2 行aint d=g e tmin()

24、; 1 3 行retu r n (dc? d:c) ;14 行/16 行错误行的行号为、和 o分别改正为、和七、编程(每小题8分,共16分)1 .求满足不等式22+ 42+. +n210 0 0的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。2 .根据下面类中Uio n函数的原型和注释写出它的类外定义。class Str ings 。 char * s ;/指向动态分派的字符串数组空间into: / /记录字符串长度public:8 S t ring s (charts t r); 构造函数,运用s l r字符串长度初始化n,/运用str字符串初始化s所指的字符

25、串空间St r i n gs(Strings& s t r);拷贝构造函数String s & G i ve(Strin g s & st r );/ / 实现 str 赋值给* this 的功能并返回*thi sStrin g s U i on(St r i ngs& str); 实现*t h i s 和 str 中的字符串连接 的功能,/把连接结果存入临时对象并返回。 i n t LonthO retu r n n ;/返回字符串长度。 vo i d Pr i nt() couts e ndl; /输出字符串;.中央广播电视大学计算机科学与技术专业面向对象程序设计试题答案及评分标准(供参考

26、)一、单项选择(每小题1分,共13分)1. B2. A3. B4. B6.7.8. B9. D10. B11.12.13.二、填空(每空1分,共1 7分)/*/2. 3 53.4.19rcpy6.文献6.文献7.第一个修改 8. p c = ( c ha r*) P V;9.编译运营10.长度(或为队尾位置)11.析构11.析构12. 213. o s t ream &三、程序填充,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面(每小题6分,共18分)1.(1)n=99/2分(2)i=t e m p/2分(3 )break/2分2.(1)(low+ h

27、 i g h)/2(2)return in i d/2分(3 )low=mid+12分3.=new int 1 0;6 .软件产品在需求发生变化、运营环境发生变化或发现软件产品自身的错误或局 限性时进行相应的软件更新的难易限度叫做软件的()。A.可维护性 B.可复:用性C.兼容性D.对的性7 .若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。A. i n B. inlineC. inL i ne D. I nLiner8 .在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为f i rst,队列 长度为length,则队尾的后一个位置为()

28、。A. length+ 1B. fi r s t +le n gthC. ( f irst+le ngth-l)%MSD. ( f i rst + length) %MS9 .假定一个类的构造函数为 “A(in t aa, i n t 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 和 510 .假定AB为一个类,则执行AB *p=new AB(1, 2)语句时共调用该类构造 函数的次数为()。A. 0 B. 1 C. 2 D. 311 . 一个类的成员函数也可以成

29、为另一个类的友元函数,这时的友元说明()。A.需加上类域的限定B.不需加上类域的限定C.类域的限定可加可不加D.不需要任何限定12.关于插入运算符V的重载,下列说法不对的的是()。A.运算符函数的返回值类型是。s t ream & 。(a) :a(aa) , b( b b )2 分注:x (5)与x=5等效,y (x)与y = x等效注:x (5)与x=5等效,y (x)与y = x等效(b) A x (5), y (x)/ / 2分A *p=&x2 分四、写出程序运营结果(每小题6分,共18分)1.111/I分2231分369/2分42433/2分2.+-*/ abed 1 2346分3.2

30、0 2 3/1/ 1/I分0: 0 : 01分2 0 2 3/10/1/I分23 :59: 59/I分20 2 3/12 / 3 11分0:0:01分五、指出程序或函数的功能(每小题6分,共12分)评分标准:根据叙述情况酌情给分。1 .计算并输出1 + 粤的值,其中a的值由键盘输入。2 .对于以表头指针为f的链表,依次显示出每个结点的data域的值。六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误(6分)评分标准:每个数据占1分。错误行的行号为5 912分别改正为 public: int CE:G e tMin () 七、编程(每小题8分,共16分)评分标准:根据编程情况酌情给分。

31、1 .#i n c 1 u d evo i d main ()(int i =0; 用i作为依次取值偶数的变量i n t s = 0 ; 用s作为累加变量do 。i+=2;s += i * i;。)while(s 1000);co u t n = i 2 e n d 1 ;)2.S t r i ngs S t ri n g s: U ion (St r i n gs& str) St r in g s r ;or. n = n +st r . n;r. s=new char r. n+ 1 ;strc p y ( r . s, s): strc a t (r. s, str. s);ret u

32、 rn r;)徐孝凯:今天就到此结束,同学们还可在平常答疑中提出问题来讨论。B.重载的运算符必须定义为类的成员函数。C.运算符函数的第一个参数的类型是。s tream &。D.运算符函数有两个参数。二、填空(每空1分,共14分)1 . 当执行cout语句输出endl数据项时,将使C+ +显示输出屏幕上的光标从当 前位置移动到 的开始位置。2 .假定x和y为整型,其值分别为16和5,则x/y和d。ubl e (x) /y的值分别为 和。3 .执行swit c h语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置 起向下执行,当碰到下一个标号位置时 执行。4 . sir 1 e n (a

33、pple)的值为, s trcm p (a,A)的值为5 . C+程序运营时的内存空间可以提成全局数据区,堆区,栈区和区。6 .假定a是一个一维指针数组,则a +i所指对象的地址比a大 字节。7 .已知语句“ cout Vp;的输出是“Hell。!”,则语句“c。u tVii!# incl u de voi d ma i n ()(3double x, p 1=1, p2= 1 ,s=0;in t i, j= 1 ;coutx;for (i=l; i = l 0 ; i + + ) pl*=( 1 );8p2*= (2);。s +=j*p 1 / p2; j 的值为(-l)e。J=(3) ;)

34、 c o uts e nd 1 ;2. 假定有定义为s tru c t NOD E int d a ta; NODE* next; ; ,下面算法是依次显示输出以L为表头指针的链表中各结点的值。void f f (NODE* L)(。 for ( 1 ); p!=1WLL; (2)a cout(3) next=(2);8 p=t;)4.已知一个运用数组实现栈的类定义如下:c o n st i n t ARR A Y_SIZE=10;c 1 a ss St a ck publ i c:void Ini t () top=-1; 初始化栈为空void Pus h(int newE 1 e m);/

35、 /向栈中压入一个元素int Pop ();从栈顶弹出一个元素abool EmptyO / /判栈空i f (top= = -1) return tr u e;else r e t urn false; in t Depth() return top+1;/返回栈的深度voi d Print ();按照后进先出原则依次输出栈中每个元素,直到栈空为止 p ri v a t e:m nt elemARRAY_SIZB;用于保存堆栈元素的数组“nt top ;指明栈顶元素位置的指针;该类的Pop和Print函数的实现分别如下:(1)_ if ( t op=- 1 ) K:out 栈空!Vendl;e x it (1 );/ /中止运营3r e turn ( 2 );voi d S t ack: Print()owhile ( ! E mpty ()。 co u t(3) c o u t e n d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁