版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计复习题详解1、求100999中的。所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为153135333,所以153为水仙花数。(P86.T19)#include <iostream>using namespace std;int main ()int i,j,k,n; cout<<"narcissus numbers are:"<<endl; for (n=100;n<1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n = i*i*i + j*j*j + k*k*
2、k) cout<<n<<" " cout<<endl;return 0; 2、从键盘里输入n个整数,然后对n个整数从小到大排序后输出,要求n也从键盘输入。方法1#include<iostream>using namespace std;int main()int i,j,n;int a100=1;cout<<"输入数字的个数:"cin>>n;cout<<"输入要比较的数字:"<<endl;for(i=0;i<n;i+)cin>&
3、gt;ai;cout<<"排序后的数字为:"<<endl;for(j=0;j<n-1;j+)for(i=0;i<n-1-j;i+)if(ai>ai+1)int t;t=ai;ai=ai+1;ai+1=t;for(i=0;i<n;i+)cout<<ai<<" "cout<<endl;return 0;方法2#include<iostream>using namespace std;struct Numberint num;Number *next;int mai
4、n()void add(Number *);void output_num(Number *);void sort(Number *);Number *head=new Number;/初始化头指针head->next=NULL;add(head);cout<<endl<<"你输入的要排序的数为:"<<endl;output_num(head);sort(head);cout<<endl<<"排序后的数为:"<<endl;output_num(head);return 0;vo
5、id add(Number *head)Number *p1=NULL,*p2=NULL;p1=head;for(;)cout<<"请输入要排序的数字,输入结束:"<<endl;cin>>p1->num;if(p1->num=0)break;p2=new Number;p1->next=p2;p1=p2;p1->next=NULL;void output_num(Number *head)Number *p=head;while(p->next!=NULL)cout<<p->num<&
6、lt;" "p=p->next;cout<<endl;void sort(Number *head)Number *p1;Number *p2;Number temp;bool bsort;for(;)bsort=true;p1=head;for(;(p1->next->next)!=NULL;)p2=p1->next; if(p1->num)>(p2->num) temp.num=p1->num; p1->num=p2->num; p2->num=temp.num;bsort=false; p1
7、=p1->next;if(bsort)break;3、求1+2+3+100。(例3.10)#include<iostream>using namespace std;int main()int i,sum=0;for(i=1;i<=100;i+)sum=sum+i;cout<<sum<<endl;return 0;4、用下面公式求的近似值。/41-1/3+1/5-1/7+直到最后一项的绝对值小于10-7为止。(例3.12)#include<iostream>#include<iomanip>#include<cmat
8、h>using namespace std;int main()int s=1;double n=1,t=1,pi=0;while(fabs(t)>1e-7)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;cout<<"pi="<<setiosflags(ios:fixed)<<setprecision(6)<<pi<<endl;return 0;5、编写程序,判断某一年是否为闰年。(例3.8)#include<iostream>using namespace std;in
9、t main()int year;bool leap;cout<<"please enter year:"cin>>year;if(year%4=0)if(year%100=0)if(year%400=0) leap=true;else leap=false;else leap=true;else leap=false;if(leap)cout<<year<<" is"elsecout<<year<<" is not"cout<<" a le
10、ap year."<<endl;return 0;6、求数学式子:a+aa+aaa+.+aa.a的值,其中:a是一个数字,最后一项是一个由n个a构成的数字。如:2+22+222+2222+22222(此时,a为2,n为5),a和n由键盘输入。#include<iostream>using namespace std;int main() int a,n,i,s=0,t=0; cout<<"a,n=:" cin>>a>>n; for(i=1;i<=n;i+) t=t+a; s=s+t; a=a*10;
11、 cout<<"a+aa+aaa+.="<<s<<endl; return 0;7、有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人,他说是10岁。请问第5个人多大?(例4.10)#include<iostream>using namespace std;int age(int);int main()cout<<age(5)<<endl;return 0;int age(int
12、 n)int c;if(n=1) c=10;else c=age(n-1)+2;return c;8、写一个递归程序函数,求n!。(例4.11)#include<iostream>using namespace std;int f(int);int main()int n;cin>>n;if(n<0)cout<<"n<0,错误!"<<endl;elsecout<<n<<"!="<<f(n)<<endl;return 0;int f(int n)in
13、t i;if(n=1) i=1;if(n=2) i=2;else i=n*f(n-1);return i;9、分别利用非递归和递归的方法编写函数求斐波那契数列第 n 项。输出数列中前20个元素的值。(3.13)非递归法:#include <iostream>#include <iomanip>using namespace std;int main()long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i+) cout<<setw(12)<<f1<<setw(12)<<f2; if(i
14、%2=0) cout<<endl; f1=f1+f2; f2=f2+f1; return 0; 递归法:#include <iostream>#include <iomanip>using namespace std;int f(int);int main()int i=20 ; for (i=1;i<=20;i+)cout<<setw(12)<<f(i)<<" "if(i%5=0) cout<<endl;return 0; int f(int n) int a; if(n=1|n=2
15、) a=1;else a= f(n-1)+f(n-2); return a; 10、输入3个字符串,要求将字母按由小到大的顺序输出。(例5.11)#include<iostream>#include<string>using namespace std;int main()string string1,string2,string3,temp;cout<<"请输入3个字符串:"cin>>string1>>string2>>string3;if(string2>string3) temp=strin
16、g2;string2=string3;string3=temp;if(string1<=string2) cout<<string1<<" "<<string2<<" "<<string3<<endl;else if(string1<=string3) cout<<string2<<" "<<string1<<" "<<string3<<endl;else co
17、ut<<string2<<" "<<string3<<" "<<string1<<endl;11、对候选人得票的统计程序。设有3个候选人,最终只能有1人当 选为领导。今有10个人参加投票,从键盘先后输入这10个人所投的候选人的名字,要求最后输出这3候选人的得票结果。(例7.2)#include<iostream>using namespace std;struct Personchar name20;int count;int main()Person leader3=&
18、quot;xiao",0,"zhang",0,"sun",0;int i,j;char leader_name20;for(i=0;i<10;i+)cin>>leader_name;for(j=0;j<3;j+)if(strcmp(leader_name,)=0) leaderj.count+;cout<<endl;for(i=0;i<3;i+)cout<<<<":"<<leaderi.count&l
19、t;<endl;return 0;12、输入a,b,c 3个整数,按由大到小的顺序输出。(例6.4)#include<iostream>using namespace std;int main()void exchange(int *,int *,int *);int a,b,c,*p1,*p2,*p3;cin>>a>>b>>c;p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);cout<<a<<" "<<b<<"
20、"<<c<<endl;return 0;void exchange(int *q1,int *q2,int *q3)void s *,int *);if(*q1<*q2) s);if(*q1<*q3) s);if(*q2<*q3) s);void s *pt1,int *pt2)int temp;temp=*pt1;*pt1=*pt2;*pt2=temp;13、将字符串str1复制为字符串str2。(例6.13)#include<iostream>using namespace std;int main()char str120=
21、"I love CHINA!",str220,*p1,*p2;p1=str1;p2=str2;for(;*p1!='0'p1+,p2+)*p2=*p1;*p2!='0'p1=str1;p2=str2;cout<<"str1 is:"<<p1<<endl;cout<<"str2 is:"<<p2<<endl;return 0;14、分别利用指针参数和引用形参,实现两个变量的值互换。(例6.20)法1 #include<iostr
22、eam>using namespace std;int main()void s &,int &);int i=3,j=5;s);cout<<"i="<<i<<" "<<"j="<<j<<endl;return 0;void s &a,int &b)int t;t=a;a=b;b=t;法2 #include<iostream>using namespace std;int main()void s *,int *)
23、;int i=3,j=5;s);cout<<"i="<<i<<" "<<"j="<<j<<endl;return 0;void s *a,int *b)int t;t=*a;*a=*b;*b=t;15、有一个结构体变量stu,内含学生学号、姓名和3门课的成绩。要求在main函数中为各成员赋值,在另一函数print中将它们的值输出。(例7.5)法1 #include<iostream>#include<string>using namespa
24、ce std;struct Studentint num;string name;float score3;int main()void print(Student);Student stu;stu.num=12345;="Li Fung"stu.score0=67.5;stu.score1=89;stu.score2=78.5;print(stu);return 0;void print(Student stu)cout<<stu.num<<" "<<<<" &q
25、uot;<<stu.score0<<" "<<stu.score1<<" "<<stu.score2<<endl;法2 #include<iostream>#include<string>using namespace std;struct Studentint num;string name;float score3;int main()void print(Student*);Student stu;stu.num=12345;="
26、;Li Fung"stu.score0=67.5;stu.score1=89;stu.score2=78.5;print(&stu);return 0;void print(Student *p)cout<<p->num<<" "<<p->name<<" "<<p->score0<<" "<<p->score1<<" "<<p->score2<<en
27、dl;法3 #include<iostream>#include<string>using namespace std;struct Studentint num;string name;float score3;int main()void print(Student &);Student stu;stu.num=12345;="Li Fung"stu.score0=67.5;stu.score1=89;stu.score2=78.5;print(stu);return 0;void print(Student &p
28、)cout<<p.num<<" "<<<<" "<<p.score0<<" "<<p.score1<<" "<<p.score2<<endl;16、有两个长方柱,其长、宽、高分别为: (1)12,20,25;(2)10,14,20。求它们的体积。编一个基于对象的程序,在类中用带参数的构造函数。(例9.2)#include<iostream>using namespace s
29、td;class Boxpublic:Box(int,int,int);int volume();private:int height;int width;int length;Box:Box(int h,int w,int len)height=h;width=w;length=len;int Box:volume()return (height*width*length);int main()Box box1(12,25,30);cout<<"The volume of box1 is "<<box1.volume()<<endl;B
30、ox box2(15,30,21);cout<<"The volune of box2 is "<<box2.volume()<<endl;return 0;17、写一个程序,定义学生基类student 其数据成员有 学号Number,姓名 Name,年龄 age,成绩 score,成员函数有显示成员函数displayStudent(),由它派生出2个派生子类: L_student(小学生),M_student(中学生)。 L_student(小学生)增加有math(数学)成绩 , M_student(中学生)增加有math(数学),En
31、glish(英语)成绩。(1)在主函数中分别定义 L_student ,M_student对象,并输出他们各自的信息。(2)能否在M_student类的基础上派生一个G_student类,增加Computer(计算机)成绩。#include <iostream>#include <string>using namespace std;class Student public: Student(int n,string nam,int a,float sco) number=n;name=nam;age=a;score=sco;void show() cout<&l
32、t;"number:"<<number<<endl; cout<<"name:"<<name<<endl;cout<<"age:"<<age<<endl; cout<<"score:"<<score<<endl; protected: int number; string name; int age; float score;class L_student: public Studen
33、t public: L_student(int n,string nam,int a,float sco,float m):Student(n,nam,a,sco) math=m; void display1() cout<<"number:"<<number<<endl; cout<<"name:"<<name<<endl;cout<<"age:"<<age<<endl; cout<<"score:&qu
34、ot;<<score<<endl;cout<<"math:"<<math<<endl; protected:float math;class M_student: public Student public: M_student(int n,string nam,int a,float sco,float m,float e):Student(n,nam,a,sco) math=m;english=e; void display2() cout<<"number:"<<n
35、umber<<endl; cout<<"name:"<<name<<endl;cout<<"age:"<<age<<endl; cout<<"score:"<<score<<endl;cout<<"math:"<<math<<endl; cout<<"english:"<<english<<endl; pr
36、otected: float math;float english; int main( ) L_student stuL(200703686,"Li ming",12,87,83); stuL.display1(); cout<<endl<<endl; M_student stuM(200703684,"wang fan",18,94,86,97); stuM.display2(); return 0;18、定义复数类complex,采用友元函数的形式进行重载运算符:复数输出的插入符<<,采用成员函数的形式进行复数加
37、法运算的运算符重载。#include <iostream>using namespace std;class Complex public: Complex()real=0;imag=0; Complex(double r,double i)real=r;imag=i; Complex operator + (Complex &c2); friend ostream& operator << (ostream&,Complex&); private: double real; double imag; ;Complex Complex:o
38、perator + (Complex &c2) return Complex(real+c2.real,imag+c2.imag); ostream& operator << (ostream& output,Complex& c)output<<"("<<c.real<<"+"<<c.imag<<"i)"<<endl; return output;int main()Complex c1(2,4),c2(6,10),c
39、3; c3=c1+c2; cout<<c3; return 0;19、定义一个基类有姓名、性别、年龄,再由基类派生出教师类和学生类,教师类增加工号、职称和工资,学生类增加学号、班级、专业和入学成绩。(参考11.9)#include <iostream>#include <string>using namespace std;class Person public: Person(string nam,char s,int a) name=nam;sex=s;age=a; protected: string name; char sex; int age;cl
40、ass Teacher: public Person public: Teacher(string nam,char s,int a,int n1,string t,float w):Person(nam,s,a) w_number=n1;title=t; wage=w; void show( ) cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl;cout<<"age:"<<age<
41、<endl; cout<<"w_number:"<<w_number<<endl; cout<<"title:"<<title<<endl; cout<<"wage:"<<wage<<endl; protected:int w_number; string title;float wage;class Student: public Person public: Student(string nam,char s,int
42、a,int n2,string g,string spe,float sco): Person(nam,s,a) s_number=n2;grade=g;speciality=spe;score=sco; void show( ) cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; cout<<"age:"<<age<<endl; cout<<"s_num
43、ber:"<<s_number<<endl;cout<<"grade:"<<grade<<endl; cout<<"speciality:"<<speciality<<endl;cout<<"score:"<<score<<endl; protected: int s_number;string grade;string speciality; float score; ;int main( )
44、 Teacher tea1("Wan-li",'f',34,200615,"assistant",4236.5); tea1.show( ); cout<<endl<<endl; Student stu1("Wang-fen",'m',21,200701,"wl0705","wangluo",489.5); stu1.show( );return 0;二。程序阅读题1、 输出程序的结果。 #include <iostream>u
45、sing namespace std;int f(int a) auto int b=0; static int c=3; b=b+1; c=c+1; return a+b+c; int main( ) int a=2,i; for(i=0;i<3;i+) cout<<f(a)<< ; cout<<endl; return 0; 2、 #include <iostream> using namespace std; void fun(); void main() fun(); fun(); void fun( ) int a=5; a=2*
46、a;static int b=10; b=2*b;cout<<a+b<<endl;3、 #include <iostream> using namespace std;void main() int a,b,c; c=2,c+=10;a =b=10; a * = 2; b / = 2; c % = 2; cout<<a<<","<<b<<","<<c<<endl;4、 #include <iostream> using namespac
47、e std;void main() int i=1,sum=0; while(i<=10) sum+ = +i; cout << "sum=" << sum << ", i=" << i<<endl;5、 #include <iostream> using namespace std;void main() int i; for(i=4 ; i<=10 ; i+ ) if (i%3= =0) continue; cout<<i; 6、 #include <
48、;iostream> using namespace std;void main() char flag='c' ; switch(flag)case 'a' :cout<<"1"<<endl ;case 'b' :cout<<"2"<<endl ; break;case 'c' : cout <<"3"<<endl ; default : cout <<"4"&
49、lt;<endl ; break; 7、 #include <iostream> using namespace std;void main()int b3 = 1,2,3,4,5,6 ;b02=12,b12=18;cout << *b<<"t"<<*(b+1) <<"t"<<*(b+2)<<"t"<<*(*(b+1)+2) <<"n"cout << b02+b12+b22<<
50、endl;8、 #include <iostream> using namespace std;void Swap( int &a, int & b);void main()int x=10 , y=7;cout<<"x="<<x<<" y="<<y<<endl;Swap( x , y );cout<<"x="<<x<<" y="<<y<<endl;void S &am
51、p; a, int & b)int temp;temp = a ;a=b ;b=temp ; 9、 #include <iostream> using namespace std;class Apublic:A();A(int i,int j);A()cout<<"Donstructor.n"void print();private:int a,b;A:A( )a=b=10;cout<<"Default constructor.n"A:A(int i,int j) a=i,b=j;cout<<&qu
52、ot;Constructor.n"void A:print( ) cout<<"a="<<a<<",b="<<b<<endl;void main( )A m,n(15,18);m.print();n.print();10、 #include <iostream> using namespace std;struct A char a5; float b; ; void main() A x="Li",89.6; cout<<x.a<&l
53、t;'t'<<x.b<<endl; 11、 #include <iostream> using namespace std;void main()int i(0);while(+i)if(i= =10) break;if(i%3!=1) continue;cout<<i<<endl;12、 #include <iostream> using namespace std;int a8=1,2,3,4,5,6,7;void fun(int *pa,int n);void main( ) int m=8; fun(a,m); cout<<a7<<endl; void fun(int *pa,int n)for (i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国银行担保合同8篇
- 题型3电热综合计算
- 26秋四年级上册语文1-8单元写作习作范文
- 红色商务工作汇报模板
- 2026云栖大会资料-「Agent 工程化」方向-全域智能运维平台 STAROps 构建Agentic Ops 智能运维闭环
- GB T 20001 10 2024 标准编写规则第 10 部分产品标准编制要点
- 人工智能实训室建设方案
- 分校运营策划方案
- 圆形古堡建设方案
- 高中创客教育建设方案
- 北京市大兴区司法局面向社会招聘劳务派遣人员40人考试备考试题及答案解析
- EN 10088-1-2023 中文版(不锈钢 第 1 部分:不锈钢牌号列表及化学成分)
- 2026年秋季小学语文开学第一课 学科核心素养解读课件
- 2026高考化学试题贵州卷评析及教学启示讲座
- 建筑工地二氧化碳泄漏应急演练脚本
- 成本实操-汽车零部件行业成本核算报表实例
- 浙南名校联盟2025-2026学年高三上学期10月联考思想政治试卷
- 经络推拿课件
- 智慧农业技术专业教学标准(高等职业教育本科)2025修订
- 《钢管混凝土混合结构技术标准》
- DB11T 850-2011 建筑墙体用腻子应用技术规程
评论
0/150
提交评论