2021年面向对象程序设计形成性考核册作业三.doc
《2021年面向对象程序设计形成性考核册作业三.doc》由会员分享,可在线阅读,更多相关《2021年面向对象程序设计形成性考核册作业三.doc(15页珍藏版)》请在咨信网上搜索。
面向对象程序设计形成性考核册作业三 一、填空题: 1. 关于面向对象系统分析,下列说法中不对的是( B )。 A. 术语“面向对象分析”可以用缩写OOA表达 B. 面向对象分析阶段对问题域描述比实现阶段更详细 C. 面向对象分析涉及问题域分析和应用分析两个环节 D. 面向对象分析需要辨认对象内部和外部特性 2. 在核心字public背面定义成员为类( B )成员。 A. 私有 B. 公用 C. 保护 D. 任何 3. 假定AA为一种类,a()为该类公有函数成员,x为该类一种对象,则访问x对象中函数成员a()格式为( B )。 A. x.a B. x.a() C. x->a D. x->a() 4. 假定AA为一种类,int a()为该类一种成员函数,若该成员函数在类定义体外定义,则函数头为( A )。 A. int AA::a() B. int AA:a() C. AA::a() D. AA::int a() 5. 在多文献构造程序中,普通把类定义单独存储于( D )中。 A. 主文献 B. 实现文献 C. 库文献 D. 头文献 6. 一种C++程序文献扩展名为( C )。 A. .h B. .c C. .cpp D. .cp 7. 假定AA是一种类,abc是该类一种成员函数,则参数表中隐含第一种参数类型为( D )。 A. int B. char C. AA D. AA* 8. 假定AA是一种类,“AA* abc()const;”是该类中一种成员函数原型,若该函数返回this值,当用x.abc()调用该成员函数后,x值( C )。 A. 已经被变化 B. 也许被变化 C. 不变 D. 受到函数调用影响 9. 当类中一种字符指针成员指向具备n个字节存储空间时,它所能存储字符串最大长度为( C )。 A. n B. n+1 C. n-1 D. n-2 10. 在一种用数组实现队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾后一种位置为( D )。 A. length+1 B. first+length C. (first+length-1)%MS D. (first+length)%MS 11. 在一种用链表实现队列类中,假定每个结点包括值域用elem表达,包括指针域用next表达,链队队首指针用elemHead表达,队尾指针用elemTail表达,若链队非空,则进行插入时必要把新结点地址赋给( C )。 A. elemHead B. elemTail C. elemHead和elemTail D. elemHead或elemTail 12. 对于一种类构造函数,其函数名与类名( A )。 A. 完全相似 B. 基本相似 C. 不相似 D. 无关系 13. 类析构函数是一种对象被( B )时自动调用。 A. 建立 B. 撤除 C. 赋值 D. 引用 14. 假定AB为一种类,则执行 “AB x;”语句时将自动调用该类( B )。 A. 带参构造函数 B. 无参构造函数 C. 拷贝构造函数 D. 赋值重载函数 15. 假定AB为一种类,则执行 “AB r1=r2;”语句时将自动调用该类( D )。 A. 无参构造函数 B. 带参构造函数 C. 赋值重载函数 D. 拷贝构造函数 16. 假定一种类构造函数为 “A(int aa,int bb) {a=aa;b=aa*bb;}”,则执行 “A x(4,5);”语句后,x.a和x.b值分别为( C )。 A. 4和5 B. 5和4 C. 4和20 D. 20和5 17. 假定一种类构造函数为 “B(int ax,int bx):a(ax),b(bx) {}”,执行 “B x(1,2),y(3,4);x=y;”语句序列后x.a值为( C )。 A. 1 B. 2 C. 3 D. 4 18. 对于任一种类,顾客所能定义构造函数个数至多为( D )。 A. 0 B. 1 C. 2 D. 任意个 二、填空题 1. 若p指向x,则___*p_____与x表达是等价。 2. 假定p为指向二维数组int d[4][6]指针,则p类型为__ int(*)[6]______。 3. 若y是x引用,则对y操作就是对____x___操作。 4. 执行char *p=new char(’a’)操作后,p所指向数据对象值为___’a’_____。 5. 执行__ delete[] p ______操作将释放由p所指向动态分派数组空间。 6. 已知语句“cout<<s;”输出是“apple”,则执行语句“cout<<s+2;”输出成果为____ ple ______。 7. 与构导致员访问表达式p->name等价表达式是____(*p).name ________。 8. 已知有定义“int x,a[]={5,7,9},*pa=a;”,在执行“x=++*pa;”语句后,x值是____6____。 9. 以面向对象办法构造系统,其基本单位是___对象_______。 10. 复杂对象可以由简朴对象构成,这种现象称为____聚合______。 11. 如果一种派生类基类不止一种,则这种继承称为___多继承(或多重继承)_____。 12. 面向对象软件开发生命周期分为三个阶段,即分析、___设计_______和____实现______。 13. 类中数据成员访问属性普通被指明为__ private(私有)______。 14. 为了使类中成员不能被类外函数通过成员操作符访问,则应把该成员访问权限定义为__ private ______。 15. 若在类定义体中只给出了一种成员函数原型,则在类外给出完整定义时,其函数名前必要加上类名和两个__冒号(::)_____分隔符。 16. 成员函数参数表在类作用域中,成员函数返回值类型___不在_____类作用域中。 17. 若采用x.abc(y)表达式调用一种成员函数,在成员函数中使用___*this _____就代表了类外x对象。 18.在一种用数组实现队列类中,包具有两个数据成员,一种指明队首元素位置,另一种指明_____队列长度_______。 19. 在一种用数组实现队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则删除一种元素后队首位置为__(first+1)%MS ________。 三、程序填空: 1. 已知一维数组类ARRAY定义如下,ARRAY与普通一维数组区别是:其重载运算符[ ]要对下标与否越界进行检查。 class ARRAY{ int *v; //指向存储数组数据空间 int s; //数组大小 public: ARRAY(int a[],int n); ~ ARRAY(){delete []v;} int size(){ return s;} int& operator[](int n); }; ___(1)___ operator[](int n) //[ ]运算符成员函数定义 { if(n<0 || ___(2)___) {cerr<<"下标越界!";exit(1);} return ___(3)___; } (1) int& ARRAY:: (2) n>=s (3) v[n] 或*(v+n) 2. 已知一种类定义如下: #include<iostream.h> class AA { int a[10]; int n; public: void SetA(int aa[],int nn);//用数组aa初始化数据成员a, //用nn初始化数据成员n int MaxA(); //从数组a中前n个元素中查找最大值 void SortA(); //采用选取排序办法对数组a中前n个元素 //进行从小到大排序 void InsertA();//采用插入排序办法对数组a中前n个元素进行从小到大排序 void PrintA(); //依次输出数组a中前n个元素 }; //该类中MaxA()函数实现如下,请在标号位置补充恰当内容。 int ____(1)_____ { int x=a[0]; for(int i=1;i<n;i++) if(a[i]>x) ___(2)___; ___(3)___; } (1) AA::MaxA() (2) x=a[i] (3) return x 3. 已知一种类定义如下: #include<iostream.h> class AA { int a[10]; int n; public: void SetA(int aa[],int nn);//用数组aa初始化数据成员a, //用nn初始化数据成员n int MaxA(); //从数组a中前n个元素中查找最大值 void SortA(); //采用选取排序办法对数组a中前n个元素 //进行从小到大排序 void InsertA();//采用插入排序办法对数组a中前n个元素进行从小到大排序 void PrintA(); //依次输出数组a中前n个元素 //最后输出一种换行 }; //使用该类主函数如下: void main() { int a[10]={23,78,46,55,62,76,90,25,38,42}; AA x; ___(1)___; int m=___(2)___; ___(3)___; cout<<m<<endl; } 该程序运营成果为: 23 78 46 55 62 76 78 (1) x.SetA(a,6) (2) x.MaxA() (3) x.PrintA() 四、写出程序运营成果 1. #include<iostream.h> void main() { int a[10]={76,83,54,62,40,75,90,92,77,84}; int b[4]={60,70,90,101}; int c[4]={0}; for(int i=0;i<10;i++) { int j=0; while(a[i]>=b[j]) j++; c[j]++; } for(i=0;i<4;i++) cout<<c[i]<<’ ’; cout<<endl; } 程序运营成果为: 2 1 5 2 Press any key to continue 2. #include<iostream.h> void main() { char s[3][5]={"1234","abcd","+-*/"}; char *p[3]; for(int I=0;I<3;I++) p[I]=s[I]; for(I=2;I>=0;I--) cout<<p[I]<<' '; cout<<endl; } 程序运营成果为: +-*/ abcd 1234 Press any key to continue 3. #include<iostream.h> class CE { private: int a,b; int getmax() {return (a>b?a:b);} public: int c; void SetValue(int x1,int x2,int x3) { a=x1;b=x2;c=x3; } int GetMax(); }; int CE::GetMax() { int d=getmax(); return (d>c?d:c); } void main() { int x=5,y=12,z=8; CE ex,*ep=&ex; ex.SetValue(x,y,z); cout<<ex.GetMax()<<endl; ep->SetValue(x+y,y-z,20); cout<<ep->GetMax()<<endl; } 程序运营成果为: 12 20 Press any key to continue 五、指出程序或函数功能 1. void f4(char a[M][N]) { int c1,c2,c3; c1=c2=c3=0; for(int i=0;i<M;i++) if(strlen(a[i])<5) c1++; else if(strlen(a[i])>=5 && strlen(a[i])<15) c2++; else c3++; cout<<c1<<’ ’<<c2<<’ ’<<c3<<endl; } 程序或函数功能为: 对于二维字符数组a中保存M个字符串,分别记录并输出其长度不大于5、不不大于等于5且不大于15、不不大于等于15字符串个数。 2. char* f8(char* str1,const char* str2) { int i=0,j=0; while(str1[i]) i++; while(str2[j]) str1[i++]=str2[j++] ; str1[i]='\0'; return str1; } 程序或函数功能为: 实现strcat函数功能,把str2所指字符串连接到str1所指字符串背面,并返回str1指针。 六、程序改错,请依照程序段或函数模块功能改写个别地方错误。 1. 下面程序段第10-17行中存在着三条语句错误,请指出错误语句行号并阐明因素。 class A { //1行 int a; //2行 public: //3行 A(int aa=0):a(aa){} //4行 }; //5行 class B { //6行 int a,b; //7行 const int c; //8行 A d; //9行 public: //10行 B():c(0) {a=b=0;} //11行 B(int aa,int bb):d(aa+bb) { //12行 a=aa;b=bb;c=aa-bb; //13行 } //14行 } //15行 B a,b(1,2); //16行 B x=a,y(b),z(1,2,3),; //17行 错误行行号为__13____、_15_______和__17______。 错误因素分别为_常量c只能通过初始化表赋值(P.281)而不能在函数体中赋值,第12-13行应改为:B(int aa,int bb):d(aa+bb),c(aa-bb) { //12行 a=aa;b=bb;//13行 ____、__缺少分号___ 和__定义z多一种参数_多一种逗号_。 七、编程: 1. 依照下面类中CompareBig 函数成员原型和注释写出它类外定义。 class AA { int* a; int n; int MS; public: void InitAA(int aa[],int nn,int ms) { if(nn>ms) {cout<<"Error!"<<endl;exit(1);} MS=ms; n=nn; a=new int[MS]; for(int i=0;i<MS;i++) a[i]=aa[i]; } int CompareBig(AA b); //比较*this与b大小,从前向后按两数组 //中相应元素比较,若*this中元素值大则返回1,若b中 //元素值大则返回-1,若相等则继续比较下一种元素,直到 //一种数组中无元素比较,此时若两者n值相似则返回0, //否则若*this中n值大则返回1,若b中n值大则返回-1。 }; // CompareBig(AA b)类外定义如下: int AA::CompareBig(AA b) { int k; if(n>b.n) k=b.n;else k=n; for(int i=0;i<k;i++) if(a[i]>b.a[i]) return 1; else if(a[i]<b.a[i]) return -1; if(k==n && k==b.n) return 0; else if(k<n) return 1; else return -1; } 2. 依照下面类中构造函数原型和注释写出它类外定义。 class Array { int *a; //指向动态分派整型数组空间 int n; //记录数组长度 public: Array(int aa[],int nn); //构造函数,运用aa数组长度nn初始化n, //运用aa数组初始化a所指向数组空间 Array(Array& aa); //拷贝构造函数 Array& Give(Array& aa); //实现aa赋值给*this功能并返回*this Array Uion(Array& aa); //实现*this和aa中数组合并 //功能,把合并成果存入暂时对象并返回 int Lenth() {return n;} //返回数组长度 void Print() { //输出数组 for(int i=0;i<n;i++) cout<<a[i]<<' '; cout<<endl; } }; //Array(int aa[],int nn)类外定义如下: Array::Array(int aa[],int nn) { n=nn; a=new int[n]; for(int i=0;i<n;i++) a[i]=aa[i]; } 3.依照下面类中Give函数原型和注释写出它类外定义。(此题作业本上缺漏) #include<iostream.h> class Array{ int *a;//指向动态分派整型数组空间 int n;//记录数组长度 public: Array(int aa[],int nn);//构造函数,运用aa数组长度nn初始化n, //运用aa数组初始化a所指向数组空间 Array(Array& aa); //拷贝构造函数 Array& Give(Array& aa);//实现aa赋值给*this功能并返回*this Array Uion(Array& aa);//*this和aa中数组合并 //功能,把合并成果存入暂时对象并返回 int Lenth(){return n;} //返回数组长度 void Print(){ //输出数组 for (int i=0;i<n;i++) cout<<a[i]<<' '; cout<<endl; } }; Give函数类外定义为: Array& Array::Give(Array& aa) { delete []a; n=aa.n; a=new int[n]; for(int i=0;i<n;i++) a[i]=aa.a[i]; return *this; }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 面向 对象 程序设计 形成 考核 作业
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文