第3次作业
一、填空题(本大题共20分,共 10 小题,每小题 2 分)
1. 面向对象的程序设计语言具有 ______ 等共同特性.
2. C++程序由函数构成,它总是由主函数 ______ 开始.
3. 在C++中,如果一个类具有多个类的特征,则我们常常采用多重继承方式实现;若函数int fun(float r)为类X中的纯虚函数,则在类X中应该使用的声明语句为 ______
4. 假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 ______ .
5. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后, p所指对象的值为 ______ .
6. 已知'A'('Z'的ASCII码为65(90,当执行“char ch=14*5+2;cout< http://course.5any.com/courselearning/App/DataApi/GetData的值,请填空使之完成此功能: float sun(float x) { float s=0.0; int sign=1; ______ ; for(int i=1; ______ ;i++) { t=t*x;s=s+[blank]; sign=-sign; } ______ 8. 执行“cout<<43<<’-’<<18<<<43-18< 9. 下面程序的功能是求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志.请填空完成程序. float FH() { float x,y=0,n=0; cin >>x; while ( ______ ) { ______ ; ______ ; cin >>x; } if (n==0) return y; else return y/n; } 10. 阅读下面的函数fun,写出该函数的功能. ______ int fun(int n1, int n2) { int m1=n1, m2=n2; int tmp; if( n1 < n2 ) { tmp = n1; n1 = n2 ; n2 = tmp ; } if(n2==0) return 0; while( n1%n2 != 0 ) { tmp = n1 % n2; n1 = n2 ; n2 = tmp; } return n2; } (程序功能: ) 二、程序阅读题(本大题共40分,共 4 小题,每小题 10 分) 1. 写出下面程序运行结果。 #include int i; void mypr() { for(i=0;i<10;i++) cout<<'*'; cout< void main() { for(i=0;i<10;i++) mypr(); } 2. 写出下面程序运行结果。 #include class T1 { int x; public: T1(int i) { x=i; } virtual void show() { cout<<\"基类T1的虚函数:show()\"< }; class T2: public T1 { int y; public: T2(int i,int j):T1(j) { y=i; } void show() { cout<<\"派生类T2的函数:show()\"< }; void main() { T1 t1(10),*p; T2 t2(100,20); p=&t1; p->show(); p=&t2; p->show(); } 3. 写出下面程序运行结果。 #include class T { int n; public: T(int a) { n=a; cout<<\"调用构造函数!\"< ~T() { cout<<\"调用析构函数!\"< void show() { cout<<\"n=\"< }; void main() { T *t1=new T(100); T t2(200); (*t1).show(); delete(t1); t2.show(); } 4. 写出下面程序运行结果。 #include class T { public: int x; T *operator->() { return this; } }; void main() { T ob; ob.x=1000; cout< cout< 三、简答题(本大题共20分,共 4 小题,每小题 5 分) 1. 题目:什么是异常,常见的异常有哪些? 2. 阅读下面的函数fac,写出该函数的功能. i nt fac(int n1, int n2) { int m1=n1, m2=n2; int tmp; if( n1 < n2 ) { tmp = n1; n1 = n2 ; n2 = tmp ; } while( n1%n2 != 0 ) { tmp = n1 % n2; n1 = n2 ; n2 = tmp; } return m1*m2/n2; } 3. 为什么不能创建抽象类的实例对象? 4. 阅读程序,写出程序执行时输出结果. #include const int SIZE=10; class stack { char stck[SIZE]; int top; public: void init(); void push(char ch); char pop(); }; void stack::init() { top = 0; } void stack::push(char ch) { if(top==SIZE) { cout<<\"Stack is full.\\n\"; return ; } stck[top++]=ch; } char stack::pop() { if(top==0) { cout<<\"Stack is empty.\\n\"; return 0; } return stck[--top]; } void main() { stack s1, s2; s1.init(); s2.init(); s1.push(''a''); s1.push(''b''); s1.push(''c''); s2.push(''x''); s2.push(''y''); s2.push(''z''); for(int i=0; i < 3; i++) cout<<\"Pop s1:\"<<=\"\" s2:?< 四、程序设计题(本大题共20分,共 2 小题,每小题 10 分) 1. 编程序求表达式xy的最后三位数字,x和y的值从键盘上输入。 2. 编写程序实现功能:通过设计类Student来实现学生数据的输入/输出。学生的基本信息包括姓名、性别和年龄。 答案: 一、填空题(20分,共 10 题,每小题 2 分) 1. 参: 封装性,多态性,继承性 解题方案: 面向对象 评分标准: 每空2分 2. 参: main 解题方案: 主函数 评分标准: 每空2分 3. 参: virtual int fun(float r)=0 解题方案: 多重继承 评分标准: 每空2分 4. 参: *(p->b) *((*p).b) 解题方案: 结构指针 评分标准: 每空2分 5. 参: 26 解题方案: p所指对象 评分标准: 每空2分 6. 参: H 解题方案: ASCII码 评分标准: 每空2分 7. 参: float t=1.0 i<=100 -sign*i/(t+sign*i) return s 解题方案: 表达式 评分标准: 每空 2 分 8. 参: 43-18=25 解题方案: 输出流 评分标准: 每空2分 9. 参: x!=-1 n++ y+=x 解题方案: 输入流 评分标准: 每空2分 10. 参: 找出两个整数n1和n2的最大公约数 解题方案: 函数fun 评分标准: 每空2分 二、程序阅读题(40分,共 4 题,每小题 10 分) 1. 参: ********** 解题方案: 评分标准: 2. 参: 基类T1的虚函数:show() x= 10 派生类T2的函数:show() y= 100 解题方案: 评分标准: 3. 参: 调用构造函数! 调用构造函数! n=100 调用析构函数! n=200 调用析构函数! 解题方案: 评分标准: 4. 参: 1000 100 解题方案: 评分标准: 三、简答题(20分,共 4 题,每小题 5 分) 1. 参: 异常是指在应用程序的运行过程中出现了程序运行时错误.常见的异常有:数组下标超界、不能正确地分配内存、调用无效函数、除数为0等. 解题方案: 异常处理 评分标准: 答对一个要点给2分,没答全扣2分 2. 参: 答案: 找出两个整数n1和n2的最小公倍数. 解题方案: 基础算法 评分标准: 答对一个要点给2分,没答全扣2分 3. 参: 在抽象类中包含着至少一个纯虚函数,纯虚函数是没有完成定义的函数,因而抽象类也可以认为是未定义完成的类,所以不能创建抽象类的实例对象. 解题方案: 抽象类的实例对象 评分标准: 答对一个要点给2分,没答全扣2分 4. 参: Pop s1: c Pop s1: b Pop s1: a Pop s2: z Pop s2: y Pop s2: z 解题方案: 类的调用 评分标准: 答对一个要点给2分,没答全扣2分 四、程序设计题(20分,共 2 题,每小题 10 分) 1. 参: #include void main() { int x,y,last=1; cout<<\"Input the x and y:\"; cin>>x>>y; for(int i=1;i<=y;i++) last=last*x%1000; cout< 解题方案: 评分标准: 2. 参: #include #include class Student { char *chName; bool bSex; int iAge; public: Student() { chName=new char[10]; } ~Student() { delete [] chName; } void GetName(char cn[]) { strcpy(cn,chName); } bool GetSex() { return bSex; } int GetAge() { return iAge; } void SetName(char *cn) { strcpy(chName,cn); } void SetSex(bool sx) { bSex=sx; } void SetAge(int ag) { iAge=ag; } }; void main() { Student st1; char *cn; int isex; int iOld; cn=new char[10]; cout<<\"请输入姓名:\"; cin>>cn; cout<<\"请输入性别:\"; cin>>isex; cout<<\"请输入年龄:\"; cin>>iOld; st1.SetName(cn); if(isex) st1.SetSex(true); else st1.SetSex(false); st1.SetAge(iOld); cout< } 解题方案: 评分标准: 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务