版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2000年1.输入任意4个字符(如:abcd),并按反序输出(如:dcba) #includevoid main() char s5,t5; int i; couts; for(i=0;i4;i+) t=s3-i; t4=0; cout反序后结果为:tendl;2.设a、b、c均是 0 到 9 之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。 说明:本题结果唯一。#includevoid main() int a,b,c; for(a=1;a10;a+) for(b=1;b10;b+) for(c=0;c10;c+) if(a*100+b*
2、10+c+b*100+c*10+c)=532) cout满足条件的a,b,c为:a,b,cendl;/ cout满足条件的a,b,c为:3,2,1endl;3.一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1,则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2到60之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 .(ei为完数) G: g1 g2 g3 .(gi为盈数)#includevoid save(int s,int x,int flag);int fun(int x);void main() int E60,G60; int fl
3、ag,i; for(i=6;i=60;i+) flag=fun(i); if(flag=0) save(E,i,0); else if(flag=1) save(G,i,1); coutE:; for(i=0;E!=0;i+) coutE ; coutendlG:; for(i=0;G!=0;i+) coutG ; coutendl;void save(int s,int x,int flag) static i=0,j=0; if(flag=0) s=x; si+1=0; i+; else sj=x; sj+1=0; j+; int fun(int x) int i,sum=0; for(i
4、=1;ix) return 1; else return -1; 4.从键盘输入4个学生的数据(包括姓名、年龄和成绩),并存放在文件sf1上。从该文件读出这些数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。 说明:我文件操作部分不佳,这题就不贴出来献丑了本文转载于:北理考研论坛,/2001年A1、编写程序,计算下列分段函数y=f(x)的值。 y= -x+2.5 0= x 2 y=2-1.5(x-3)(x-3) 2= x 4 y=x/2-1.5 4= x 6 #includefloat fun(float x) float y; if(x=
5、0&x=2&x=4&x6) y=x/2-1.5; return y;void main() float x; coutx; while(x6) coutx; cout结果为:fun(x)endl;2、编写程序,读入一个整数 N。若 N 为非负数,则计算 N 到 2N 之间的整数和;若 N 为一个负数,则求 2N 到 N 之间的整数和。说明:用了下公式#include#includevoid main() int N; coutN; coutN到2*N之间的整数和为:(abs(N)+1)*1.5*Nendl;3、设N是一个四位数,它的 9 倍恰好是其反序数(例如:1234的反序数是4321),求
6、N的值。说明:本题结果唯一4、N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数,报3的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。说明:约瑟夫环#include#includetypedef struct node int num; struct node *next;LNode;void main() int N,i; LNode *head,*p,*q; coutN; p=(LNode*)(malloc(sizeof(LNode); p-num=1; head=p; for(i=1;inext=(L
7、Node*)(malloc(sizeof(LNode); p=p-next; p-num=i+1; p-next=head; p=head; coutnext!=p) q=p-next; p=q-next; q-next=p-next; coutnumnext; coutnumendl; delete p;本文转载于:北理考研论坛,/2001年B1、请输入高度h,输入一个高为h,上底边长为h的等腰梯形(例如h=4,图形如下)。 * * * * #includevoid main() int i,j,h; couth; for(i=0;ih;i+)
8、for(j=0;jh+i;j+) cout*; coutendl; 2、请编写一个程序,从键盘上输入n(n的范围是120),求n的阶乘。#includeint fun(int n);void main() int n; coutn; while(n20|n1) coutn; coutn的阶乘为:fun(n)endl;int fun(int n) int i,result=1; for(i=1;i=n;i+) result*=i; return result;3、从键盘上任意输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果。 #incl
9、ude#includeusing namespace std;void main() char str21; int i,j,len; char ch; cout请输入字符串:; cin.getline(str,20); len=strlen(str); for(i=0;ilen-1;i+) for(j=0;jstrj+1) ch=strj; strj=strj+1; strj+1=ch; cout排序后的字符串为:strendl;本文转载于:北理考研论坛,/2002年A1、某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一
10、张或若干张可以得到多少中不同的邮资? 说明:这道题真的找不到好的算法,希望有好算法的朋友发站短给我,多谢#includevoid main() int i,j,k; for(i=0;i=5;i+) for(j=0;j=4;j+) for(k=0;k=6;k+) couti*0.8+j+k*1.8 ;2、输入n值,使用递归函数,求杨辉三角形中各个位置上的值,按照如下形式打印输出图形。例如:当n=6时。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 说明:递归#includeint fun(int n,int k) if(k=0|n=k) return 1
11、; else return fun(n-1,k-1)+fun(n-1,k);void main() int n,i,j; coutn; for(i=0;in;i+) for(j=0;j=i;j+) coutfun(i,j) ; coutendl; 本文转载于:北理考研论坛,/2002年B1、打印所有不超过n(n256)的,其平方具有对称性质的数。如11*11=121。 #include#includebool fun(int n) int x,i,t; char str10; x=n*n; i=0; while(x) t=x%10; stri+=t
12、+48; x/=10; str=0; if(n*n=atoi(str) return true; else return false;void main() int n,i; coutn; for(i=1;i=n;i+) if(fun(i) couti ; coutendl;2、编写一个求菲波那奇数列的递归函数,输入n值,使用该递归函数,输出如下图形。例如:当n=6时。 0 0 1 1 0 1 1 2 3 0 1 1 2 3 5 8 0 1 1 2 3 5 8 13 21 0 1 1 2 3 5 8 13 21 34 55 说明:递归#includeint fun(int n) if(n=0)
13、 return 0; else if(n=1) return 1; else return fun(n-2)+fun(n-1);void main() int n,i,j; int *p=new int60; coutn; for(i=0;i2*n-1;i+) p i =fun(i); for(i=0;in;i+) for(j=0;j2*i+1;j+) coutpj ; coutendl; 本文转载于:北理考研论坛,/2003年1、输入球的中心点和球上某一点的坐标,计算球的半径和体积。 #include#includevoid main() dou
14、ble r; int x1,x2,y1,y2,z1,z2; const double PI=3.1416; coutx1y1z1; coutx2y2z2; r=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2); cout半径为:rendl; cout体积为:(4*PI*r*r*r)/3endl;2、手工建立一个文件,文件种每行包括学号、姓名、性别和年龄。每一个属性使用空格分开。文件如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 根据输入的学号,查找文件,输出学生的信息。#include#inc
15、lude#include#includeusing namespace std;void main() const int LEN=100; char sLEN,kLEN,*temp; int num; coutnum; ifstream fin(myfile.txt); while(fin.getline(s,LEN) strcpy(k,s); temp=strtok(k, ); if(atoi(temp)=num) coutnum号学生的信息为:sendl; break; 3、输入年月日,计算该填是本年的第几天。例如1990年9月20日是1990年的第263天,2000年5月1日是2000
16、年第122天。(闰年:能被400正除,或能被4整除但不能被100整除。每年1、3、5、7、8、10为大月)#includevoid main() int i,sum=0,year,month,day; const int num12=31,28,31,30,31,30,31,31,30,31,30,31; coutyearmonthday; for(i=0;imonth-1;i+) sum+=num; sum+=day; if(year%4=0&year%100!=0)|year%400=0) sum+=1; coutyear年month月day日是year年的第sum天endl;本文转载于:
17、北理考研论坛,/2004年第一题是建立一个角类,在这个类中重载减号运算符,并实现求出角度的正弦值的函数。#include#includeconst double PI=3.1416;class anglepublic: angle() angle(int x) X=x; angle operator - (angle c); void xsin();private: int X;#includeangle.hvoid angle:xsin() double x; x=(X*PI)/180; cout正弦值为:sin(x)endl;angle ang
18、le:operator - (angle c) return angle(X-c.X);#includeangle.hvoid main() angle c1(90),c2(60),c3; c3=c1-c2; c1.xsin(); c2.xsin(); c3.xsin();第二题是建立一个求一元二次方程解的类(a*x2+b*x+c=0),输入系数a,b,c的值后打印出这个方程的解来,也比较简单。需要注意的是系数a不能为零以及方程有无解,单解还是双解的情况。#includeclass equationpublic: equation(float a,float b,float c):a(a),b
19、(b),c(c) float D() return b*b-4*a*c; void fun();private: float a,b,c;#include#includeequation.hvoid equation:fun() float d=D(); if(d=0) cout单解为:-b/(2*a)0) cout双解为:(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a)endl; else cout复数解为:-b/(2*a)+sqrt(-d)/(2*a)i,-b/(2*a)+-sqrt(-d)/(2*a)iendl;#includeequation.hvoid main
20、() float a,b,c; coutabc; while(a=0) coutabc; equation e(a,b,c); e.fun();第三道题是实现一个多项式的类(a+b*x+c*x2+d*x3+.+),要求输入该多项式的系数和x的值后打印出这个多项式的值。这道题本身并不难,但他要求用好的算法(实际上就是递归)。#includefloat fun(float s,float x,int n,int N) if(n=0) return sN; else return sN-n+x*fun(s,x,n-1,N);void main() int i,N; float num60,x; co
21、utN; cout请依次输入系数:; for(i=0;inum i ; coutx; cout结果为:fun(num,x,N,N)endl;本文转载于:北理考研论坛,/2005年第一题是给定一个程序,关于字符串的,要求输入并调试,说出此程序的意图。意图是按字母顺序对两个字符串比较排序。第二问要求用尽可能少的语句对该程序进行修改,使其能够对两个字符串比较长度排序。本题满分20。第二题是要求编写一个日期类,要求按xxxx-xx-xx的格式输出日期,实现加一天的操作,不考虑闰年问题,所有月份设为30天。本题黑盒测试时,输入2004年3月20日,得到加一天
22、后时间为2004-3-21,能得一部分分数。输入2004年3月30日,得到加一天后时间为2004-4-1,能得一部分分数。输入2004年12月30日,得到加一天后时间为2005-1-1,且有时间越界处理,能得全部分数。本题满分30。#includeclass datepublic: date(int y,int m,int d):year(y),month(m),day(d) void display(); void addDay();private: int year; int month; int day;#includedate.hvoid date:display() coutyear
23、-month-day30) day%=30; month+; if(month12) month%=12; year+; #includedate.hvoid main() int y,m,d; coutymd; while(y0|m12|d30) coutymd; date d1(y,m,d); d1.addDay(); d1.display();第三题要求编写一个复数类,要求有4条。一是有构造函数,能对复数初始化。二是对复数c1,c2,c3.能实现连加运算,令c=c1+c2+c3+.此处可以重载加法操作符。三是有函数实现两个复数相加,并按照a+ib的形式输出。四是能实现对一个复数c=a+i
24、b,定义double x=c有效,使x的值为实部和虚部之和。本题满分50。”#includeusing namespace std;class complexpublic: complex(double r=0.0,double i=0.0) real=r;imag=i; complex operator + (complex c2); void display(); operator double () /重载类型转换操作 return (real+imag); private: double real; double imag;#includecomplex.hcomplex comple
25、x:operator + (complex c2) return complex(real+c2.real,imag+c2.imag);void complex:display() coutreal+imagiendl;#includecomplex.hvoid main() complex c1(5,4),c2(2,10),c3(6,9),c4; c4=c1+c2+c3; c4.display(); double x=c4; coutxendl;本文转载于:北理考研论坛,/2006年1.写一个程序判断字符串中数字的位置(不限制使用面向对象编程)例
26、如: 输入 a3b4c5 输出 2 4 6#include#include#includeusing namespace std;void main() string str; int i; cout请输入字符串:; getline(cin,str); for(i=0;str i !=0;i+) if(isdigit(str i ) couti+1 ; coutendl;2.写一个类,能接受int型的变量,接收变量后能存储原变量(譬如12345)和其反向变量(54321),最多处理数量为10个,当输入达到10个或者输入变量为0的时候停止。并且在类销毁前输出存储的所有变量。例如: 输入:1234
27、5,2234,0 输出:12345 54321 2234 4322#include#includeclass CInversepublic: CInverse(); void inverse(); CInverse();private: int num10; int inverseNum10; int countNum;#includeCInverse.hCInverse:CInverse() int t,i; coutt; for(i=0;it; countNum=i;void CInverse:inverse() char str10; int t,i,j,x; for(i=0;icoun
28、tNum;i+) x=num; j=0; while(x) t=x%10; strj+=t+48; /加48 x/=10; strj=0; inverseNum=atoi(str); CInverse:CInverse() int i; for(i=0;icountNum;i+) coutnum inverseNumendl;#includeCInverse.hvoid main() CInverse c1; c1.inverse();3.写一个CTriangle类,要求可以接受 CTriangle(y,x)形式的构造,创建在坐标系中的直角三角形样子如下三点的坐标分别是A(0,y) B(0,0
29、) C(x,0)实现+运算,并且能够处理键盘连续输入若干个(少于十个)三角形,并且连加(相加时候三角形边长长度相加,方向同第一个三角形)。输入0后结束并输出最后得出的三角形的三个坐标值。#includeclass CTrianglepublic: CTriangle(int y=0,int x=0) Ay=y;Cx=x; CTriangle operator + (CTriangle c2); void set(int y=0,int x=0) Ay=y;Cx=x; void display();private: int Ay; int Cx;#includeCTriangle.hCTrian
30、gle CTriangle:operator + (CTriangle c2) return CTriangle(Ay+c2.Ay,Cx+c2.Cx);void CTriangle:display() coutA(0,Ay) B(0,0) C(Cx,0)endl;#includeCTriangle.hvoid main() int y,x,i,N; CTriangle c10,sum; couty; for(i=0;y!=0;i+) cinx; c i .set(y,x); ciny; N=i; sum.set(); /置0 for(i=0;iN;i+) sum=sum+c; sum.disp
31、lay();本文转载于:北理考研论坛,/2007年1。一个小球,从高为H的地方下落,下落弹地之后弹起高度为下落时的一半,比如第一次弹起高度为H/2,如此往复,计算从小球H高度下落到第n次弹地往返的总路程。要求:1。用递归的方法实现 2。输入H和n,输出结果 3。注意程序的健壮性 4。可以用C或C+实现#include#includefloat fun(int n) if(n=1) return 1; else return fun(n-1)+1/pow(2,n-2);void main() float H; int n; coutHn; cout小
32、球从H高度下落到第n次弹地往返的总路程为:fun(n)*Hendl;2。创建一个CPoint类,代表平面直角坐标系中的点,创建构造函数和运算符重载函数,运算符重载为类重载(非友元重载),可以实现计算两个点之间的距离。可以根据需要加入自己的成员变量或成员函数要求:1。输入两个点的坐标,输出两个点之间的距离 2。重载运算符为“-”#includeclass CPointpublic: CPoint(int x=0,int y=0) X=x;Y=y; float operator - (CPoint c2);private: int X; int Y;#includeCPoint.h#includefloat CPoint:operator - (CPoint c2) return sqrt(X-c2.X)*(X-c2.X)+(Y-c2.Y)*(Y-c2.Y);#include CPoint.hvoid main() int x1,y1,x2,y2; coutx1y1x2y2; CPoint c1(x1,y1),c2(x2,y2); cout两点间的距离为:c1-c2end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《景观鉴赏》课程教学大纲
- 2026年新版全球共识下脂肪性肝病相关内容
- 无人机多场景作业流程优化方案
- 老人陪护服务免责协议书
- 人教版英语(2024)七年级上册 Unit 2 Section A 练习(含答案)
- 2026年心理测试专业题库与答案
- 2026年个人成长关键能力试题解析
- 快速掌握2026年热点知识模拟题集
- 2026年设施农业用地管理政策与备案流程题库
- 2026年工作纪律与履职尽责负面行为清单问答
- 新能源汽车驱动电机及控制系统检修课件 项目三 电机控制器结构原理与检修
- 【品牌手册】无忧传媒品牌手册-市场营销策划-品牌营销案例与品牌手册
- 《敬老爱老美德永传》主题班会
- 部编版二年级下册语文 小马过河 4 教学课件
- (正式版)CB∕T 4551-2024 船用高处作业吊篮安全管理规定
- 心血管介入护士进修汇报
- 部编版《道德与法治》四年级下册第10课《我们当地的风俗》精美课件
- 心血管病科优势病种诊疗方案
- 光伏系统IV特性分析及深度学习建模研究
- 中国烟草总公司职工进修学院笔试试题2023
- 《中药量效关系》课件
评论
0/150
提交评论