欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    面向对象程序设计期末综合练习三(程序填充)资料.doc

    • 资源ID:1614398       资源大小:101KB        全文页数:24页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象程序设计期末综合练习三(程序填充)资料.doc

    面向对象程序设计期末综合练习三(程序填充)1. 斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。#include<iostream.h带格式输出应使用iomanip.h>void main() int f,f1,f2,i; cout<<” 斐波那契数列:n”; f1=0; f2=1; cout<<setw(6)<<f1<<setw(6)<<f2; for(i=3;i<=20;i+) f=_(1)_; cout<<setw(6)<<f;if(_(2)_) cout<<endl;f1=f2;f2=_(3)_; cout<<endl; (1) (2) (3) 2. 计算的值。 #include<iostream.h> void main() double x,p1=1,p2=1,s=0; int i,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<<s<<endl; (1) (2) (3) 3. 打印出2至99之间的所有素数(即不能被任何数整除的数)。 #include<iostream.h> #include<math.h> void main() int i,n; for(n=2; _(1)_; n+) int temp=int(sqrt(n); /求出n的平方根并取整 for(i=2; _(2)_; i+) if(n%i=0) _(3)_; if(i>temp) cout<<n<<' ' cout<<'n' (1) (2) (3) 4. 采用辗转相除法求出两个整数的最大公约数。 #include<iostream.h> void main() int a,b; cout<<"请输入两个正整数:" cin>>a>>b; while(a<=0 | _(1)_) cout<<"重新输入:" cin>>a>>b; while(b) int r; r=a%b; _(2)_; _(3)_; /分别修改a和b的值 cout<<a<<endl; /输出最大公约数 (1) (2) (3) 5. 把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。如输入24时得到的输出结果为“2 2 2 3”,输入50时得到的输出结果为“2 5 5”,输入37时得到的输出结果为“37”。 #include<iostream.h> void main() int x; cout<<"请输入一个整数,若小于3则重输:" do cin>>x; while(_(1)_); int i=2; do while(_(2)_) cout<<i<<' ' x/=i; _(3)_; while(i<x); if(x!=1) cout<<x; cout<<endl; (1) (2) (3) 6. 下面函数是求两个整型参数a和b的最小公倍数。 int f2(int a, int b) int i=2, p=1; do while(a%i=0 && _(1)_) p*=i; a/=i; b/=i; _(2)_; while(a>=i && _(3)_); return p*a*b; (1) (2) (3) 7. 在输出屏幕上打印出一个由字符*组成的等腰三角形,该三角形的高为5行,从上到下每行的字符数依次为1,3,5,7,9。 #include<iostream.h> void main() int i,j; for(i=1;_(1)_;i+) for(j=1;j<=9;j+) if(j<=5-i | _(2)_) cout<< ; else _(3)_; cout<<endl; (1) (2) (3) 8. 统计字符串中英文字母个数的程序。 #include <iostream.h> int count (char str); void main() char s180; cout <<”Enter a line:”; cin >>s1; cout <<”count=”<<count(s1)<<endl; int count(char str) int num=0; /给统计变量赋初值 for(int i=0;stri;i+) if (stri>=a && stri<=z |_(1)_ ) _(2)_; _(3)_; (1) (2) (3) 9. 主函数调用一个fun函数将字符串逆序。 #include<iostream.h> #include<string.h> _(1)_; void main( ) char s80; cin>>s; _(2)_; cout<<”逆序后的字符串:”<<s<<endl ; void fun(char ss) int n=strlen(ss); for(int i=0; _(3)_; i+) char c=ssi; ssi=ssn1i; ssn1i=c; (1) (2) (3) 10. 从一个字符串中删除所有同一个给定字符后得到一个新字符串并输出。 #include<iostream.h> const int len=20; void delstr(char a,char b,char c); void main() char str1len,str2len; char ch; cout<<"输入一个字符串:" cin>>str1; cout<<"输入一个待删除的字符:" cin>>ch; delstr(str1,str2,ch); cout<<str2<<endl; void delstr(char a,char b,char c) int j=0; for(int i=0; _(1)_; i+) if(_(2)_) bj+=ai; bj=_(2)_; (1) (2) (3) 11. 采用指针访问方式从键盘给数组aN输入数据,然后对元素值重新按逆序存放并输出。 #include <iostream.h> const int N=8; void main() int aN,*p,*q; for(p=a; p<a+N; p+) _(1)_; p=a;q=a+N-1; while(p<q) int r=*p; *p=*q; *q=r; _(2)_; _(3)_; for(p=a;p<a+N; p+) cout<<*p<<' ' cout<<endl; (1) (2) (3) 12. 从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。注意二进制数的存放是按照从低位到高位的次序进行的。 #include <iostream.h> void main() int x; cout<<"输入一个整数:" cin>>x; int a20,k=0,r; do r=x%2; ak+=r; x=_(1)_; while(_(2)_); for(-k;k>=0;k-) _(3)_; cout<<endl; (1) (2) (3) 13. 对数组an按升序进行的选择排序算法 void SelectSort(int a, _(1)_) int i,j,k; for(i=1;i<n;i+) /进行n-1次选择和交换 k=i-1; for(j=i;j<n;j+) if(aj<ak) _(2)_; int x=ai-1; ai-1=ak; _(3)_; (1) (2) (3) 14. 对数组an按升序进行的插入排序算法 void InsertSort(_(1)_, int n) int i,j,x; for(i=1;i<n;i+) /进行n-1次循环 x=ai; for(j=i-1;j>=0;j-) /为x顺序向前寻找合适的插入位置 if(x<aj) _(2)_; else _(3)_; aj+1=x; (1) (2) (3) 15. 对按从小到大排列的有序数组an进行二分查找x的算法,若查找成功返回该元素下标,否则返回-1。 int BinarySearch(int a,int x) int low=0, high=N-1; /定义并初始化区间下界和上界变量 int mid; /定义保存中点元素下标的变量 while(low<=high) mid=_(1)_; if(x=amid) _(2)_; else if(x<amid) high=mid-1; else _(3)_; return -1; (1) (2) (3) 16. 用插入排序方法对table指针数组中size个指针所指向的字符串进行按升序排序的算法。void sort(char *table, int size) for(int i=1,_(1)_; i+) char *p=tablei; for(int j=i-1; j>=0 ; j-) if(strcmp(p,tablej)<0) _(2)_; else break; tablej+1=_(3)_; (1) (2) (3) 17. 假定有定义为“struct NODEint data; NODE* next;”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序相同。void f5(NODE*& L, int table, int n) if(n<=0) L=NULL; return;L=new NODE; /生成附加的头结点int i=0; NODE* p=L;while(_i<n_) p=p->next=_new NODE_;p->data=_tablei_;i+;p->next=NULL; /把最后一个结点的指针域置空p=L;L=L->next; /使L指向链表的第一个带值的结点delete p;(1) (2) (3) 18. 假定有定义为“struct NODEint data; NODE* next;”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序正好相反。void f6(NODE*& L, int table, int n) L=NULL;if(n<=0) return;int i=0; NODE* p;while(_i<n_) p=new NODE;p->data=_tablei_;p->next=L;_L=p_;i+;void main()NODE *head;int a=1,2,3,4,5;f6(head,a,5);while(head)cout<<head->data<<' 'head=head->next;cout<<endl;(1) (2) (3) 19. 假定有定义为“struct NODEint data; NODE* next;”,下面算法是依次显示输出以L为表头指针的链表中各结点的值。void f7(NODE* L)for(_(1)_; p!=NULL; _(2)_)cout<<_(3)_ <<' 'cout<<endl;(1) (2) (3) 20. 假定有定义为“struct NODEint data; NODE* next;”,下面算法是把以L为表头指针的链表中各结点依次按相反次序链接并返回新链表的表头指针。NODE* f8(NODE* L) if(L=NULL) return NULL;NODE *p=NULL, *q=L, *t;while(q!=NULL) t=q;q=_(1)_;t->next=_(2)_;p=t;_(3)_;(1) (2) (3) 21. 已知一维数组类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) (2) (3) 22. 已知一维数组类ARRAY的定义如下,构造函数的作用是把参数n的值赋给s,给v动态分配长度为n的数组空间,接着利用数组参数a初始化v所指向的数组。class ARRAY int *v; /指向存放数组数据的空间int s; /数组大小 public: ARRAY(int a, int n); ARRAY()delete v; int size() return s; int& operator(int n); ;_(1)_ ARRAY(int a, int n)if(n<=0) v=NULL;s=0;return;s=n;v=_(2)_;for(int i=0; i<n; i+) _(3)_;(1) (2) (3) 23. 下面是一维数组类ARRAY的定义,ARRAY与普通一维数组区别是:(a)用()而不是进行下标访问,(2)下标从1而不是从0开始,(c)要对下标是否越界进行检查。class ARRAY int *v; /指向存放数组数据的空间int s; /数组大小 public: ARRAY(int a, int n); ARRAY()delete v; int size() return s; int& operator()(int n); int& ARRAY: operator()(int n) / ()的运算符函数定义 if(n<1 | n>s) cerr<<"下标越界!" exit(1); return vn-1;(1) (2) (3) 24. 已知一个类的定义如下:#include<iostream.h>class AA int a10;int n;public:void SetA(int aa, int nn); /用数组aa初始化数据成员a, /用nn初始化数据成员nint MaxA(); /从数组a中前n个元素中查找最大值void SortA(); /采用选择排序的方法对数组a中前n个元素 /进行从小到大排序 void InsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序void PrintA(); /依次输出数组a中的前n个元素; 该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int AA:MaxA() int x=a0;for(int i=1; i<n; i+) if(ai>x) x=ai;return x;(1) (2) (3) 25. 已知一个类的定义如下:#include<iostream.h>class AA int a10;int n;public:void SetA(int aa, int nn); /用数组aa初始化数据成员a, /用nn初始化数据成员nint MaxA(); /从数组a中前n个元素中查找最大值void SortA(); /采用选择排序的方法对数组a中前n个元素 /进行从小到大排序 void InsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序void PrintA(); /依次输出数组a中的前n个元素;void AA:SortA()int i,j;for(i=0; i<n-1; i+) int x=ai, k=i;for(j=i+1; j<n; j+)if(aj<x) x=aj; k=j;ak=ai;ai=x;(1) (2) (3) 26. 已知一个类的定义如下:#include<iostream.h>class AA int a10;int n;public:void SetA(int aa, int nn); /用数组aa初始化数据成员a, /用nn初始化数据成员nint MaxA(); /从数组a中前n个元素中查找最大值void SortA(); /采用选择排序的方法对数组a中前n个元素 /进行从小到大排序 void InsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序void PrintA(); /依次输出数组a中的前n个元素;void AA:InsertA() int i,j;for(i=1; i<n; i+) int x=ai;for(j=i-1; j>=0; j-)if(x<aj) aj+1=aj;else break;aj+1=x;(1) (2) (3) 27. 已知一个类的定义如下:#include<iostream.h>class AA int a10;int n;public:void SetA(int aa, int nn);void AA:SetA(int aa,int nn)n=nn;for(int i=0;i<n;i+)ai=aai; /用数组aa初始化数据成员a, /用nn初始化数据成员nint MaxA(); /从数组a中前n个元素中查找最大值void SortA(); /采用选择排序的方法对数组a中前n个元素 /进行从小到大排序 void InsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序void PrintA(); void AA:PrintA()for(int i=0;i<n;i+)cout<<ai<<' 'cout<<endl; /依次输出数组a中的前n个元素 /最后输出一个换行; 使用该类的主函数如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;AA x; x.SetA(a,6);int m= x.MaxA();x.PrintA();cout<<m<<endl; 该程序运行结果为:23 78 46 55 62 76/ x.PrintA()只输出6个数,所以(1)只能是x.SetA(a,6)78(1) (2) (3) 28. 已知一个类的定义如下:#include<iostream.h>class AA int a10;int n;public:void SetA(int aa, int nn); /用数组aa初始化数据成员a, /用nn初始化数据成员nint MaxA(); /从数组a中前n个元素中查找最大值void SortA(); /采用选择排序的方法对数组a中前n个元素 /进行从小到大排序void PrintA(); /依次输出数组a中的前n个元素, /最后输出一个换行; 使用该类的主函数如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;_(1)_; x.SetA(a,8);int _(2)_;_(3)_;x.PrintA(); cout<<m<<endl; 该程序运行结果为:23 25 46 55 62 76 78 9090(1) (2) (3) 29. 已知一个利用数组实现栈的类定义如下:const int ARRAY_SIZE=10;class Stack public:void Init() top=-1; /初始化栈为空 void Push(int newElem); /向栈中压入一个元素int Pop(); /从栈顶弹出一个元素bool Empty() /判栈空 if(top=-1) return true;else return false;int Depth() return top+1; /返回栈的深度void Print(); /按照后进先出原则依次输出栈中每个元素,直到栈空为止private:int elemARRAY_SIZE; /用于保存栈元素的数组int top; /指明栈顶元素位置的指针;void Stack:Push(int newElem) if(_(1)_) cout<<"栈满!"<<endl;exit(1); /中止运行_(2)_;elemtop=_(3)_;(1) (2) (3) 30. 已知一个利用数组实现栈的类定义如下:const int ARRAY_SIZE=10;class Stack public:void Init() top=-1; /初始化栈为空 void Push(int newElem); /向栈中压入一个元素int Pop(); /从栈顶弹出一个元素bool Empty() /判栈空 if(top=-1) return true;else return false;int Depth() return top+1; /返回栈的深度void Print(); /按照后进先出原则依次输出栈中每个元素,直到栈空为止private:int elemARRAY_SIZE; /用于保存堆栈元素的数组int top; /指明栈顶元素位置的指针; 该类的Pop和Print函数的实现分别如下:_(1)_ if(top=-1) cout<<"栈空!"<<endl;exit(1); /中止运行return _(2)_;void Stack:Print() while(!Empty() cout<<_(3)_ <<' '(1) (2) (3)31class A int a; public: A() a=0; _(1)_ /定义构造函数,用参数aa初始化数据成员a ; main() _(2)_; /定义类A的指针对象p _(3)_; /用p指向动态对象并初始化为整数5 (1) (2) (3)32class A char *a; pub

    注意事项

    本文(面向对象程序设计期末综合练习三(程序填充)资料.doc)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开