2000年1.输入任意4个字符(如:abcd),并按反序输出(如:dcba)#includeiostream.hvoidmain(){chars[5],t[5];inti;cout请输入四个字符:;cins;for(i=0;i4;i++)t=s[3-i];t[4]='\0';cout反序后结果为:tendl;}2.设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。说明:本题结果唯一。#includeiostream.hvoidmain(){inta,b,c;for(a=1;a10;a++)for(b=1;b10;b++)for(c=0;c10;c++)if((a*100+b*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:e1e2e3......(ei为完数)G:g1g2g3......(gi为盈数)#includeiostream.hvoidsave(ints[],intx,intflag);intfun(intx);voidmain(){intE[60],G[60];intflag,i;for(i=6;i=60;i++){flag=fun(i);if(flag==0)save(E,i,0);elseif(flag==1)save(G,i,1);}coutE:;for(i=0;E!=0;i++)coutE;coutendlG:;for(i=0;G!=0;i++)coutG;coutendl;}voidsave(ints[],intx,intflag){statici=0,j=0;if(flag==0){s=x;s[i+1]=0;i++;}else{s[j]=x;s[j+1]=0;j++;}}intfun(intx){inti,sum=0;for(i=1;i=x/2;i++)if(x%i==0)sum+=i;if(sum==x)return0;elseif(sumx)return1;elsereturn-1;}4.从键盘输入4个学生的数据(包括姓名、年龄和成绩),并存放在文件sf1上。从该文件读出这些数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。说明:我文件操作部分不佳,这题就不贴出来献丑了本文转载于:北理考研论坛,年A1、编写程序,计算下列分段函数y=f(x)的值。y=-x+2.50=x2y=2-1.5(x-3)(x-3)2=x4y=x/2-1.54=x6#includeiostream.hfloatfun(floatx){floaty;if(x=0&&x2)y=2.5-x;elseif(x=2&&x4)y=2-1.5*(x-3)*(x-3);elseif(x=4&&x6)y=x/2-1.5;returny;}voidmain(){floatx;cout请输入x的值:;cinx;while(x0||x6){cout非法,请重新输入:;cinx;}cout结果为:fun(x)endl;}2、编写程序,读入一个整数N。若N为非负数,则计算N到2N之间的整数和;若N为一个负数,则求2N到N之间的整数和。说明:用了下公式#includeiostream.h#includemath.hvoidmain(){intN;cout请输入一个整数:;cinN;coutN到2*N之间的整数和为:(abs(N)+1)*1.5*Nendl;}3、设N是一个四位数,它的9倍恰好是其反序数(例如:1234的反序数是4321),求N的值。说明:本题结果唯一4、N个人围成一圈顺序编号,从1号开始按1、2、3顺序报数,报3者退出圈外,其余的人再从1、2、3开始报数,报3的人再退出圈外,依次类推。请按退出顺序输出每个退出人的原序号。要求使用环行链表编程。说明:约瑟夫环#includeiostream.h#includemalloc.htypedefstructnode{intnum;structnode*next;}LNode;voidmain(){intN,i;LNode*head,*p,*q;cout请输入人数:;cinN;p=(LNode*)(malloc(sizeof(LNode)));p-num=1;head=p;for(i=1;iN;i++){p-next=(LNode*)(malloc(sizeof(LNode)));p=p-next;p-num=i+1;}p-next=head;p=head;cout出列顺序为:;while(p-next!=p){q=p-next;p=q-next;q-next=p-next;coutp-num;deletep;p=q-next;}coutp-numendl;deletep;}本文转载于:北理考研论坛,年B1、请输入高度h,输入一个高为h,上底边长为h的等腰梯形(例如h=4,图形如下)。****************************#includeiostream.hvoidmain(){inti,j,h;cout请输入h:;cinh;for(i=0;ih;i++){for(j=0;jh+i;j++)cout*;coutendl;}}2、请编写一个程序,从键盘上输入n(n的范围是1~20),求n的阶乘。#includeiostream.hintfun(intn);voidmain(){intn;cout请输入n:;cinn;while(n20||n1){cout非法,请重新输入:;cinn;}coutn的阶乘为:fun(n)endl;}intfun(intn){inti,result=1;for(i=1;i=n;i++)result*=i;returnresult;}3、从键盘上任意输入一个长度不超过20的字符串,对所输入的字符串,按照ASCII码的大小从小到大进行排序,请输出排序后的结果。#includeiostream#includestringusingnamespacestd;voidmain(){charstr[21];inti,j,len;charch;cout请输入字符串:;cin.getline(str,20);len=strlen(str);for(i=0;ilen-1;i++)for(j=0;jlen-1-i;j++)if(str[j]str[j+1]){ch=str[j];str[j]=str[j+1];str[j+1]=ch;}cout排序后的字符串为:strendl;}本文转载于:北理考研论坛,年A1、某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?说明:这道题真的找不到好的算法,希望有好算法的朋友发站短给我,多谢#includeiostream.hvoidmain(){inti,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时。11112113311464115101051说明:递归#includeiostream.hintfun(intn,intk){if(k==0||n==k)return1;elsereturnfun(n-1,k-1)+fun(n-1,k);}voidmain(){intn,i,j;cout请输入n:;cinn;for(i=0;in;i++){for(j=0;j=i;j++)coutfun(i,j);coutendl;}}本文转载于:北理考研论坛,年B1、打印所有不超过n(n256)的,其平方具有对称性质的数。如11*11=121。#includeiostream.h#includestdlib.hboolfun(intn){intx,i,t;charstr[10];x=n*n;i=0;while(x){t=x%10;str[i++]=t+48;x/=10;}str='\0';if(n*n==atoi(str))returntrue;elsereturnfalse;}voidmain(){intn,i;cout请输入n:;cinn;for(i=1;i=n;i++)if(fun(i))couti;coutendl;}2、编写一个求菲波那奇数列的递归函数,输入n值,使用该递归函数,输出如下图形。例如:当n=6时。001101123011235801123581321011235813213455说明:递归#includeiostream.hintfun(intn){if(n==0)return0;elseif(n==1)return1;elsereturnfun(n-2)+fun(n-1);}voidmain(){intn,i,j;int*p=newint[60];cout请输入n:;cinn;for(i=0;i2*n-1;i++)p[i]=fun(i);for(i=0;in;i++){for(j=0;j2*i+1;j++)coutp[j];coutendl;}}本文转载于:北理考研论坛,年1、输入球的中心点和球上某一点的坐标,计算球的半径和体积。#includeiostream.h#includemath.hvoidmain(){doubler;intx1,x2,y1,y2,z1,z2;constdoublePI=3.1416;cout请输入中心点坐标:;cinx1y1z1;cout请输入球上某一点的坐标:;cinx2y2z2;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李江男2102刘唐男2303张军男1904王娜女19根据输入的学号,查找文件,输出学生的信息。#includeiostream#includefstream#includestring#includestdlib.husingnamespacestd;voidmain(){constintLEN=100;chars[LEN],k[LEN],*temp;intnum;cout请输入要查找学生的学号:;cinnum;ifstreamfin(myfile.txt);while(fin.getline(s,LEN)){strcpy(k,s);temp=strto