2022年面向对象中央广播电视大学考试说明 .docx
精品_精品资料_面对对象程序设计课程考核说明( 2022 年版)中心广播电视高校运算机科学与技术专业一、考核说明面对对象程序设计课程是电大系统运算机科学与技术专业本科生(专科起点)的一门必修课程.本课程是数据结构、操作系统、运算机网络、软件工程等的先修课程,在整个专业教案体系中占据特别重要的基础位置.本课程主要介绍C+语言的基本语法规章,各种数据类型的定义、表示和使用,各种流程掌握语句的定义与作用,类和对象的定义与应用,面对过程和面对对象的程序设计方法等内容.面对对象的思想是需要在实践中不断摸索和体会的,同学们在后续课的学习和以后的工作中要主动去运用和实践.教案的主要目标是让同学能够建立起摸索问题的方法,指导以后的软件开发实践.现将该课程考核的有关问题说明如下:1. 考核对象 全国电大系统开放训练试点运算机科学与技术专业(专科起点本科)学生.2. 教案媒体文字主教材 C+面对对象程序设计王萍编著清华高校出版社出版试验教材面对对象程序设计试验徐孝凯等编中心广播电视高校出版社出版录象教材 16 讲 王萍主讲 中心广播电视高校音像出版社出版复习资料 面对对象程序设计期末复习指导中心电大训练杂志社出版发行作业练习 面对对象程序设计形成性考核作业册中心电大训练杂志社出版发行网上辅导在电大在线运算机科学与技术面对对象程序设计课程网页上发表3. 命题依据本考核说明以电大运算机科学与技术专业面对对象程序设计教案大纲为依据编制.本考核说明是考试命题的依据.4. 考核要求本课程是以有用为最终目的,主要考核同学对C+语言的把握程度和对解决一般问题的程序设计才能.不要死记硬背,留意懂得和运用.考核分为以下几个层次:懂得 :要求同学懂得面对过程和面对对象程序设计的基本思想和方法,懂得C+语言程序的基本结构,懂得各种C+语法成分定义、表示和作用.应用 :要求同学能够依据所学的C+语言学问和程序设计学问,分析和懂得一般的程序或函数模块或类模块,能够依据处理简洁问题的要求编写出较规范的并且可读性好的面对过程或面对对象的函数模块或程序.综合应用 :要求同学能够综合运用多个学问点进行比较复杂的程序(函数模块)分析和设计,考察同学综合运用学问的才能和实际解决问题的才能.5. 命题原就(1) 在教案大纲和考核说明所规定的学问范畴内命题.在教案学问范畴之内,需要敏捷运用才能够解决问题的试卷不属于超纲.(2) 试卷的考察要求掩盖面广、区分度高.(3) 试卷兼顾各个才能层次,懂得约占40%,应用约占 40%,综合应用约占 20%.可编辑资料 - - - 欢迎下载精品_精品资料_(4) 试卷的难易程度和题量适当,按难易程度分为四个层次:简洁占20%,较易占30%,较难占 30%,难占 20%.题量支配以平常能够独立完成作业者,能在规定的考试时间内做完并有肯定时间检查为原就.6. 试卷题型单项挑选题 :依据题意,从四种可挑选的答案中挑选合适的一种答案.填空题: 依据题意,在画有横线或空白处填写合适内容.程序填充题: 依据 C+程序或函数(类)模块,及相应的功能描述,在画有横线或空白处填写合适内容.懂得问答题: 依据 C+程序或函数(类)模块,回答一些问题.如写出程序运行结果或函数调用结果,写出程序或函数所能实现的功能,按题意要求指出错误位置并改正.编程题: 给出编程要求和函数原型,编写出相应的程序或函数模块.7. 考核形式:采纳期末考核与形成性考核相结合的方式.形成性考核分为两种,一种视作业完成情形和试验完成情形而定,占总成果的15%.另一种为期末上机考核,占总成果的15%,完成一个指定题目的程序开发和调试,由各省级电大在省内统一命题,时间为60 分钟.期末考核占总成果的 70%,为闭卷考试,由中心电大统一命题,答卷时限从2022 年下学期开头为120 分钟.总成果满分为100 分,合成成果达60 分及以上者可获得该课程规定的4 学分, 否就不获得该课程学分.二、考核内容和要求第一部分程序设计基础考核目的:考核同学对C+程序结构、程序运行过程、各种数据类型的作用、数据常量表示、表达式构成、运算符含义、简洁语句和复合语句格式等的把握程度.考核的学问点:C+语言特点和程序的基本结构.上机输入、编辑、连接、运行一个C+程序的过程.整数、字符、实数、规律等标准数据类型的含义.各种常量的字面表示和符号表示,变量的定义与使用.常用运算符的表示、优先级与结合性.表达式的分类和使用.考核要求:懂得: C+语言的有关基本概念、程序结构、数据类型的分类与作用、常量和变量的表示、运算符含义、表达式构成与运算等内容.应用:能够编写简洁的程序,能完成简洁数据和表达式的输入和输出,能利用变量存放输入数据、暂时数据和运算结果,能利用符号常量存放固定数据,能依据数值运算和数据处理的要求挑选合适的常量或变量表示,能利用运算符进行算术、比较(即关系)和规律运算,能把一般数学算式、不等式或条件表示成相应的 C+表达式.其次部分 流程掌握语句与程序模块的基本结构考核目的:考核同学对各种分支语句、循环语句和跳转类语句的懂得和把握程度,对程序模块的次序、分支和循环这三种基本结构的懂得程度,对运用流程掌握语句编写程序解决实际问题的才能.可编辑资料 - - - 欢迎下载精品_精品资料_考核的学问点:以下各种掌握语句的定义格式、执行过程与作用:if语句、 switch语句、 for语句、 while语句、 do 语句、 break语句、 continue语句、 return语句等.各种分支和循环语句相互嵌套的作用和执行过程.考核要求:懂得:各种语句的格式、执行过程与作用,语句之间相互嵌套的概念.应用:(1) 能够分析含有 if和 switch分支类语句的程序模块并给出功能或执行结果,能够依据分支处理的要求编写出相应的分支程序.(2) 能够分析含有 for 、while和 do 循环类语句的程序模块并给出功能或执行结果, 能够依据循环处理的要求编写出相应的循环程序,如累加运算、数据统计、求最大值、求平均值等程序.(3) 能够实现 if和 switch语句之间的转换,能够实现for 、while和 do 循环语句之间的转换.综合应用:运用各种流程掌握语句和其他语句等已有学问进行比较复杂的程序分析与设计,如双重或三重循环的程序分析与设计.第三部分函数考核目的:考核同学对变量作用域的懂得程度,对函数定义与调用格式的把握程度,对形式参数和实在参数的使用与结合的懂得程度,对模块化程序设计方法的把握程度.考核的学问点:模块化程序设计的概念,多文件结构的程序.函数的定义、声明与调用格式,静态函数的含义.函数定义中值参数、指针参数、数组参数、引用参数、常量参数的声明格式及作用. 函数中带默认值参数的说明与作用.函数调用中的实参加函数定义中的形参之间的结合过程.函数返回值的一般类型、指针类型和引用类型的作用. 变量的作用域和生存期,静态变量的特点.内联函数的定义格式及作用.递归函数的设计方法和调用过程.函数重载的含义和作用.函数模板的定义格式及作用.考核要求:懂得:(1) 模块化程序设计与函数的关系,函数的定义格式与声明格式,函数调用表达式的格式及执行过程,带默认值参数的含义与用法.(2) 全局变量、局部变量、静态变量的含义.(3) 内联函数和函数模板的定义与声明格式,函数模板的实例化,重载函数的作用.应用:(1) 能够分析已知函数,给出所能实现的功能或运行结果.(2) 能够依据处理问题的需要合理的设置函数参数、函数的返回值类型以及编写出函数体.(3) 利用递归函数来简化程序设计.可编辑资料 - - - 欢迎下载精品_精品资料_(4) 利用函数重载来优化程序设计.(5) 利用函数模板来设计能够处理任何数据类型的程序.第四部分数组、结构、指针和引用考核目的:考核同学对数组、字符串、结构、指针、引用等数据类型的懂得和把握程度.考核的学问点:一维数组的概念、定义和初始化.二维及多维数组的概念、定义和初始化.一维和二维数组元素的下标拜访方式.字符串与字符数组的区分与联系,字符串的输入与输出.常用字符串函数(如strlen,strcpy,strcmp,strcat等)的调用格式与作用.结构类型的定义格式和作用,结构变量的定义格式和初始化.结构成员的表示和使用.指针的概念、定义及初始化.针对指针的各种运算操作.数组名的指针含义,数组元素的下标与指针方式的表示及转换.数组形参加指针形参之间的等价表示与转换.引用的定义和初始化,引用参数与值参数的区分.一般变量与数组的储备空间的动态安排与释放.考核要求:懂得:(1) 数组、字符串、结构、指针、引用等的概念、表示和作用.(2) 数组的储备空间安排,数组元素的的址运算,数组元素的下标拜访方式和指针拜访方式.(3) 字符串的储备格式,字符串的输入输出方式,字符串函数的调用.(4) 数据空间的动态安排与释放,链表的结构与拜访结点的过程.应用:(1) 能够分析和设计在一维数组上的次序查找、挑选排序、插入排序等算法.(2) 能够分析和设计在二维数组上的矩阵加、减、转置、乘等运算的算法.(3) 能够分析和设计利用字符串函数进行字符串处理的算法.(4) 能够分析和设计动态生成的链表,在链表头或尾插入或删除结点的算法,以及遍历链表的算法.(5) 能够分析和设计对次序或链接表示的栈或队列进行插入或删除元素(结点)的算法.(6) 能够使用引用类型作为函数的参数类型和返回值类型.综合应用:运用数组、字符串、结构、指针、引用等数据类型进行程序设计.第五部分类与对象考核目的:考核同学对类这种复杂数据类型的懂得和运用程度,对面对对象程序设计方法的把握程度.考核的学问点:面对对象程序设计的概念.类的定义,类与结构的区分和联系.可编辑资料 - - - 欢迎下载精品_精品资料_类成员的拜访掌握与拜访方式.内联与非内联成员函数的声明与定义.对象的生成和初始化.类的作用域.类的构造函数与析构函数.类的拷贝构造函数和赋值重载函数.静态数据成员和静态成员函数.对象成员和一般成员的初始化方式.友元函数与友元类.this指针.用数组和链表实现队列类和栈类.考核要求:懂得:(1) 面对对象程序设计的有关概念.(2) 类的定义,类成员的拜访权限,构造函数与析构函数的定义格式及作用.(3) 静态数据成员定义、初始化与作用,静态函数成员的定义格式与特性.(4) 友元函数和友元类的声明与作用.应用:(1) 能够分析和设计含有简洁类定义的程序.(2) 能够使用数组或链表建立队列类和栈类.综合应用:(1) 能够依据程序要求构造满意要求的类.在构造过程中充分考虑构造函数和析构函数的使用、成员拜访掌握的运用、内联函数的运用、静态成员的选用.(2) 能够依据要求构造多个类完成所要求的程序设计任务,多个类之间可以发生肯定的关系,如一个类作为另一个类的成员或友元、一个类使用另一个类的服务等.第六部分继承与多态性考核目的:考核同学对面对对象机制(封装、继承和多态)的懂得和把握程度.考核的学问点:结构化程序设计和面对对象程序设计思想的不同.继承(单继承与多继承)的含义,派生类的定义和使用.派生类中构造函数和析构函数的执行过程.对派生类和基类中同名成员的拜访方式. 静态联编与动态联编的各自的含义和区分.静态联编与函数重载,动态联编与虚函数,多态性.虚基类,抽象类,纯虚函数.考核要求:懂得:(1) 类继承的概念和作用,派生类的定义格式.(2) 派生类对基类的继承方式,派生类对基类成员的拜访权限.(3) 静态联编和动态联编的含义,函数重载和虚函数的作用.应用:(1) 能分析含有派生类的程序.(2) 能够依据要求构造类的继承层次,并完成肯定的程序设计.可编辑资料 - - - 欢迎下载精品_精品资料_综合应用:能够利用继承、虚函数、动态联编(即多态性)等机制完成面对对象的程序设计.第七部分运算符重载考核目的:考核同学对运算符重载的懂得和把握程度.考核的学问点:运算符重载的概念与函数定义格式.一般函数的运算符重载和成员函数的运算符重载.引用在运算符重载中的作用.作为友元函数的运算符重载. 单目和双目算术运算符的重载.增 1 和减 1 运算符的重载.插入运算符和抽取运算符的重载.圆括号运算符和中括号运算符作为成员函数的重载.考核要求:懂得:(1) 运算符重载的概念及作用.(2) 引用在运算符重载中的作用.(3) 运算符重载作为一般函数和成员函数在参数上的区分.应用:能够分析和设计带有运算符重载的函数或类.可编辑资料 - - - 欢迎下载精品_精品资料_一、单项挑选三、期末考核试卷样例及解答可编辑资料 - - - 欢迎下载精品_精品资料_1. C+ 源程序文件的缺省扩展名为.A. cppB. exeC. objD. lik2. x>0 | y=5的相反表达式为().A. x<=0 | y.=5B. x<=0 && y.=5C. x>0 | y.=5D. x>0 && y=53. 在下面的字符数组定义中,有语法错误选项.A. char a20=“abcdefg ”.B. char a=“x+y=55. ”.C. char a15.D. char a10=5.4. 以下正确的函数原型语句是.A. double funint x,int yB. double funint x.int yC. double funint,int.D. double funint x,y.5. 在下面储备类中,()的对象不是局部变量.A. 外部静态类 B.自动类C.函数形参D.寄存器类6. 假 定 有 “ structBOOKchartitle40. floatprice. . BOOK *book=new BOOK.”,就正确的语句是().A. strcpybook->title,”Wang Tao” . B. strcpybook.title,”Wang Tao” .C.strcpy*book.title,”Wang Tao” .D.strcpy*book->title,”Wang Tao” .可编辑资料 - - - 欢迎下载精品_精品资料_7. 软件产品所具有的全部或部分的再用于新的应用的才能称为该软件的().A. 可保护性B.可复用性C.兼容性D.正确性8. 在多文件结构的程序中,通常把含有main 函数的文件称为().A. 主文件B.实现文件C.程序文件D.头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用elem 表示,包含的指针域用 next表示,链队的队首指针用elemHead 表示,队尾指针用elemTail表示,如链队为空,就进行插入时必需把新结点的的址赋给.A. elemHeadB. elemTailC. elemHead和 elemTailD. elemHead或 elemTail10. 假定 AB 为一个类,就执行“AB a, b2, c3, *p=&a.”语句时共调用该类无参构造函数的次数为 .A. 5B. 6C. 3D. 411. 引入友元的主要目的是为了().A.增强数据安全性B.提高程序的牢靠性C. 提高程序的效率和敏捷性D.保证类的封装性12. 假如是类 B 在类 A 的基础上构造,那么,就称().A. 类 A 为基类或父类,类B 为超类或子类B. 类 A 为基类、父类或超类,类B 为派生类或子类C. 类 A 为派生类,类B 为基类D. 类 A 为派生类或子类,类B 为基类、父类或超类二、填空1. C+语言是在语言的基础上进展起来的.2. 假定 x=5 , y=6 ,就执行表达式y*=x+ 运算后, x和 y的值分别为和 .3. 假定 x 是一个规律量,就x && false的值为.4. 在 if语句中,每个else关键字与它前面同层次并且最接近的 关键字相配套.5. 一个二维字符数组a1020能够储备个字符串,每个字符串的长度至多为.6. 局部变量具有局部生存期,存放在内存的 区中.7假定p 所指对象的值为25, p+1 所指对象的值为42,就执行 *p+ 或*p+ 运算后, p 所指对象的值为.8. 已知语句“ cout<<s .”的输出是“apple ”,就执行语句“ cout<<s+2 .”的输出结果为.9. 面对对象软件开发的生命周期分为三个阶段,即分析、 和.10. 如采纳p->abcy表达式调用一个成员函数,在成员函数中使用的 就代表了类外的 p 指针.可编辑资料 - - - 欢迎下载精品_精品资料_11当用户为一个类定义有构造函数. 时,就系统不会为该类再自动生成一个默认可编辑资料 - - - 欢迎下载精品_精品资料_12 假定用户为类AB 定义了一个构造函数 "ABint aa, int bb:aaa,bbb",就定义该类的对象时,有种定义格式.13 假定用 户只 为类 AB 定 义 了一 个 构造函 数 "ABintaa, int bb=0a=aa .b=bb." ,就定义该类的对象时,其实参表中至少带有 个实参.可编辑资料 - - - 欢迎下载精品_精品资料_14. 在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的 .15. 如要保证一个公共的基类在派生类中只产生一个基类子对象,就必需都以 的方式继承它.三、程序填充.对程序、函数或类中划有横线的位置,依据题意按标号把合适的内容填写到程序下面相应标号的后面1. 把从键盘上输入的一个大于等于3 的整数分解为质因子的乘积.如输入24 时得到的输出结果为“ 2 2 2 3”,输入 50 时得到的输出结果为“2 5 5 ”,输入 37 时得到的输出结果为“ 37”.#include<iostream.h> void mainint x.cout<<" 请输入一个整数,如小于3 就重输 :" .do cin>>x . while1.int i=2.dowhile2 cout<<i<<' '.x/=i . 3.whilei<x.ifx.=1 cout<<x.cout<<endl . 1232. 假定有定义为“ struct NODEint data. NODE* next . .”,下面算法依据table数组中的 n 个元素建立一个表头指针为L 的链表,链表中结点值的次序与数组元素值的次序正好相反.void f6NODE*& L, int table, int nL=NULL.ifn<=0 return.int i=0.NODE* p.while1 p=new NODE.p->data=2.p->next=L.可编辑资料 - - - 欢迎下载精品_精品资料_ 3.123i+.可编辑资料 - - - 欢迎下载精品_精品资料_3. 已知一个利用数组实现栈的类定义如下: const int ARRAY_SIZE=10.class Stack public:void Init top=-1. /初始化栈为空void Pushint newElem. /向栈中压入一个元素int Pop. /从栈顶弹出一个元素bool Empty /判栈空return top=-1.可编辑资料 - - - 欢迎下载精品_精品资料_private:.int Depth return top+1. /返回栈的深度void Print. /依据后进先出原就依次输出栈中每个元素,/直到栈空为止int elemARRAY_SIZE. /用于储存栈元素的数组int top. /指明栈顶元素位置的指针可编辑资料 - - - 欢迎下载精品_精品资料_void Stack:Pushint newElem if1 cout<<"栈满."<<endl.exit1. /中止运行可编辑资料 - - - 欢迎下载精品_精品资料_ 2.123elemtop=3.可编辑资料 - - - 欢迎下载精品_精品资料_四、写出程序或程序段的运行结果1. #include<iostream.h> void mainint x=5.switch2*x-3 可编辑资料 - - - 欢迎下载精品_精品资料_case 4: cout<<x<<.case 7: cout<<2*x+1<<.case 10: cout<<3*x-1<<. break .default: cout<<"default"<<endl.cout<<"switch end."<<endl.2. #include<iostream.h> void mainint i,j,len3.char a38="year","month","day".fori=0.i<3 .i+ forj=0.j<8 .j+ ifaij='0' leni=j.break .cout<<ai<<":"<<leni<<endl.3. #include <iostream.h> #include <string.h> class Point int x,y.public:Pointint x1=0, int y1=0 :xx1, yy1 cout<<"Point:"<<x<<' '<<y<<'n'.Point cout<<"Point des.n".class Text char text100. / 文字内容public:Textchar * str strcpytext,str.cout<<"Text con.n".Textcout<<"Text des.n".可编辑资料 - - - 欢迎下载精品_精品资料_class CircleWithText : public Point,public Text public:CircleWithTextint cx,int cy, char *msg: Pointcx,cy,Textmsg cout<<"Point with Text con.n".CircleWithText cout<<"Point with Text desn".void mainCircleWithText cm3,4,"hello".五、指出程序或函数的功能1. double f1double a, double b, char op switchop case+: return a+b.case- : return a-b.casecase* : return a*b/ : ifb=0 .可编辑资料 - - - 欢迎下载精品_精品资料_功能:cout<<"divided by 0."<<endl.exit1.else return a/b.default: cout<<"operator error."<<endl.exit1.可编辑资料 - - - 欢迎下载精品_精品资料_2. IntNode* FindMaxIntNode *fif.f return NULL.IntNode *p=f.f=f->next.whilef iff->data>p->datap=f.f=f->next.return p.可编辑资料 - - - 欢迎下载精品_精品资料_假定 IntNode的类型定义为:struct IntNode int data./结点值域IntNode* next. /结点指针域.功能:可编辑资料 - - - 欢迎下载精品_精品资料_六、编程1. 编一程序求出满意不等式1112315 的最小 n 值并输出.n可编辑资料 - - - 欢迎下载精品_精品资料_2. 依据下面类中MaxMin 函数成员的原型和注释写出它的类外定义. class AA int* a.int n.int MS.public:void InitAAint aa, int nn, int ms ifnn>ms cout<<"Error."<<endl. exit1.MS=ms.n=nn.a=new intMS.forint i=0. i<MS . i+ ai=aai.int MaxMinint& x, int& y. /从数组 a 的前 n 个元素中求出/最大值和最小值,并分别由引用参数x 和 y 带回,/同时如 n 大于 0 就返回 1,否就返回 0. .试卷参考解答: 一、单项挑选1. A2. B3. D4. C5. A6. A7. B8. A9. C10. D11. C12. B二、填空1. C2. 6 30 3. false或 0 4. if5. 10 196.栈7. 258. ple9.设计实现 10. this11.构造函数12. 113. 114.成员函数15.虚基类三、程序填充1. 1 x<3 或 x<=22 x%i=03 i+(或+i 或 i=i+1或 i+=1 )2. 1 i<n可编辑资料 - - - 欢迎下载精品_精品资料_(2) tablei(3) L=p3. 1 top=ARRAY_SIZE-1 或 Depth=ARRAY_SIZE(2) top+(或+top )(3) newElem四、写出程序或程序段的运行结果1. 11 14 switch end.2. year:4 month:5 day:33. Point:3 4 Text con.Point with Text con. Point with Text des Text des.Point des.五、指出程序或函数的功能1. 以参数 a 和 b 为运算对象,以参数op 为四就算术运算符,求出运算结果并返回.2. 从表头指针 f 指向的、由 IntNode类型的结点所构成的链表中查找出data 域的值最大的结点并返回指向该结点的指针.六、编程#include<iostream.h> void mainint i=0. double s=0.whiles<5 s+=double1/+i.cout<<"n="<<i<<endl.如采纳 for循环编写程序,就如下所示:#include<iostream.h> void mainint i. double s=0.fori=1. s<5 . i+ s+=1.0/i.cout<<"n="<<i-1<<endl./留意:此 i-1的值为所求的 n 值2 int AA:MaxMinint& x, int& yint mx,my.可编辑资料 - - - 欢迎下载精品_精品资料_mx=my=a0.forint i=1. i<n . i+ ifai>mx mx=ai.ifai<my my=ai.x=mx. y=my.ifn>0 return 1. else return 0.可编辑资料 - - - 欢迎下载