C++题库.doc_第1页
C++题库.doc_第2页
C++题库.doc_第3页
C++题库.doc_第4页
C++题库.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*1、 编写一个程序,要求输入三个整数,输出其中最大者。*/ #includeusing namespace std;main()int a,b,c;int max;cout请输入三个整数,用空格或回车隔开abc;if(a=b) if(a=c) max=a; else max=c;else if(b=c) max=b; else max=c; cout最大数为:maxendl; system(pause);return 0;/*2、 编写一个程序,要求输出从50到300之间(含50和300)的整数和。*/ #includeusing namespace std;main()int x;int sum=0;for(x=50;x=300;x+)sum=sum+x;cout从50到300之间(含50和300)的整数和为:sumendl; system(pause);return 0;/*3、 计算2009年12月18日这一天属于该年的第几天。 要求编写计算闰年的函数和计算日期的函数。*/ #includeusing namespace std;int run(int);int days(int,int,int);int main()cout2009年12月18日属于该年的第days(2009,12,18)天。n;system(pause);return 0;int run(int ra)if(ra%4=0&ra%100!=0|ra%400=0)return 1;elsereturn 0;int days(int y,int m,int d)int yue14=0,31,28,31,30,31,30,31,31,30,31,30,31;int x,sum=0;for(x=0;x=3) sum+;return sum+d;/*4、 编写递推程序输出斐波那契数列的前20项。*/ #includeusing namespace std;int main()int x1=1,x2=1;int x3;coutx1 x2 ;for(int i=1;i=18;i+) x3=x1+x2; coutx3 ; x1=x2; x2=x3;coutendl;system(pause);return 0;/*5、 编程将文本文件zifuchuan.txt中的内容显示在屏幕上。*/ #include#includeusing namespace std;int main()char str100;ifstream mytxt(zifuchuan.txt);if(!mytxt) cout文件打开失败!endl; return 0;while(!mytxt.eof() mytxt.getline(str,sizeof(str); coutstrendl;system(pause);return 0;/*6、 编写一个程序,假定a=1,b=3,c=2三个实数作为一元二次方程的三个系数,输出方程的一个根。*/ #include#includeusing namespace std;int main()int a=1,b=3,c=2;cout一个根为(-1*b+sqrt(b*b-4*a*c)/(a*2)endl;system(pause);return 0;/*7、 已知矩阵A为: 1 2 3 4矩阵B为: 1 1 2 2编写一个程序,计算C=A+B,输出矩阵C。*/ #includeusing namespace std;int main()int a22=1,2,3,4;int b22=1,1,2,2;int c22;int i,j;for(i=0;i=1;i+)for(j=0;j=1;j+)cij=aij+bij;coutC矩阵为nn; for(i=0;i=1;i+) for(j=0;j=1;j+) coutcij ; coutendl;system(pause);return 0;/*8、 甲乙两个乒乓球队进行团体赛,各出三名选手(甲队为A、B、C,乙队为X、Y、Z)进行三场单打。 根据抽签结果得知: 甲队的A不和乙队的X对阵; 甲队的C不和乙队的X对阵; 甲队的C不和乙队的Z对阵。 试编程求出对阵的抽签结果。*/ #include#includeusing namespace std;int main()int a,b,c;for(a=0;a=2;a+) for(b=0;b=2;b+) for(c=0;c=2;c+) if(a=b|a=c|b=c|a=0|c=0|c=2) continue; cout抽签结果为:endl; coutA vs char(a+88)endl;/X的ASCII码为88 coutB vs char(b+88)endl; coutC vs char(c+88)endl; system(pause);return 0;/*9、 编写一个程序,要求输入a,b,c三个实数,输出sin(a)+b*c的值。*/ #include#includeusing namespace std;int main()double a,b,c;coutabc;coutsin(a)+b*c的值为 sin(a)+b*cendl; system(pause);return 0;/*10、编写一个程序,将下述33矩阵中的最大元素复制到矩阵中心,其余元素的值不变。 1 2 4 3 5 6 7 8 9*/ #include #include using namespace std;int main() int a33=1,2,3,5,4,6,7,8,9; int i,j; int max=a00; int p; for(i=0;i=2;i+) for(j=0;j=max) max=aij; a11=max; for(i=0;i=2;i+) for(j=0;j=2;j+) coutaij ; coutendl; system(pause); return 0;11题写得很麻烦,完全可以不这样,自己想想。/*11、编写一个程序,求出下述33矩阵中的最大元素。 1 2 4 3 5 6 7 8 9*/#include #include using namespace std;int main() int a33=1,2,3,5,4,6,7,8,9; int i,j; int x; int p; for(x=0;x=2;x+) for(i=0;i=1;i+) for(j=i+1;j=2;j+) if(axiaxj) p=axi;axi=axj;axj=p; for(i=0;i=1;i+) for(j=i+1;j=2;j+) if(ai0aj0) p=ai0;ai0=aj0;aj0=p; cout最大元素为a00n; system(pause); return 0;/*12. 鸡兔共有35只,脚共有100只,编程计算鸡兔各有多少只。*/ #includeusing namespace std;int main()int x,y;for(x=1;x=35;x+) for(y=1;y=35;y+) if(x+y=35&2*x+4*y=100) cout鸡的数量为 xn兔的数量为 yendl;system(pause);return 0;13好像有问题,题目里那个方程根本没正根。/*13. 编写一个函数,用牛顿迭代法求方程f(x)=ax3+bx2+cx+d=0(为乘方号)在1附近的根。a、b、c、d分别为1、2、3、4。提示:牛顿迭代公式为:x1=x0-f(x0)/f(x0)=x0-(a*x0*x0*x0+b*x0*x0+c*x0+d)/(3*a*x0*x0+2*b*x0+c)*/ #include#includeusing namespace std;double niudun(double,double,double,double);int main()coutax3+bx2+cx+d=0(为乘方号)在1附近的根为:n;coutniudun(1,2,3,4)1e-6) x0=x1; x1=x0-(a*x0*x0*x0+b*x0*x0+c*x0+d)/(3*a*x0*x0+2*b*x0+c);return x1;/*14. 编程将如下学生信息写入二进制文件Student.bin中:张芳 W 19880318孟文 M 19830201雷宇 M 19841210*/ #include#includeusing namespace std;struct studentchar name20;char sex;int birthday;int main()student ss3= 张芳 ,W,19880318, 孟文 ,M,19830201, 雷宇 ,M,19841210 ;ofstream mytxt(Student.bin,ios:binary);if(!mytxt) cout文件打开失败!endl; return 0;for(int x=0;x3;x+)mytxt.write(char*)&ssx,sizeof(ssx);mytxt.close();cout文件已写入n ;system(pause);return 0;/*15. 使用流的格式控制输出下面图形: * * * * */ #include#includeusing namespace std;int main()int i;for(i=5;i=1;i-)coutsetfill( )setw(i-1)setfill(*)setw(11-2*i)*endl;system(pause);return 0;/*16. 编写一个程序,要求输出从2到12之间的所有偶数的连乘积。*/ #includeusing namespace std;int main()int i,j=1;for(i=2;i=12;i=i+2)j=j*i;cout从2到12之间的所有偶数的连乘积为:jendl;system(pause);return 0;/*17. 一个案件涉及A、B、C、D4个嫌疑人,但是只有一个是罪犯,调查中,4人有如下回答:A说:我冤枉。B说:是A。C说:是B。D说:不是我。已知3个人说的是真话,一个人说的是假话。请编程找出罪犯。*/ #includeusing namespace std;int main()int a,b,c,d;char zuifan;for(zuifan=A;zuifan=D;zuifan+) a=zuifan!=A; b=zuifan=A; c=zuifan=B; d=zuifan!=D; if(a+b+c+d=3) cout罪犯为:zuifan1时,p(n,x)=(2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x)/n.*/ #includeusing namespace std;double lerang(double,double);int main()cout当n=10、x=2时让德多项式的值为:lerang(10,2)1) return (2*n-1)*x-lerang(n-1,x)-(n-1)*lerang(n-2,x)/n;19. 编程将文本文件zifuchuan.txt中的内容按二进制格式读入内存,并显示在屏幕上。(提示:调试本程序前,请使用记事本随意建立一个文本文件,要注意文件名为zifuchuan.txt)*/ #include#includeusing namespace std;int main()char str10000;/最大的可读入字符数 ifstream mytxt(zifuchuan.txt,ios:binary);if(!mytxt) cout文件打开失败!endl; return 0;mytxt.read(char*)&str,sizeof(str);coutstr;mytxt.close();system(pause);return 0;/*20. 编写一个程序,在屏幕上显示如下信息:% Hello, I am a beautiful girl!%*/#includeusing namespace std;int main()cout%n;cout Hello, I am a beautiful girl!n;cout%n;system(pause);return 0;/*21用迭代法求150的算术平方根,迭代公式为:x1=1/2*(x+150/x)相邻两次求出的x的差的绝对值硝小于10的-4次方,停止迭代。*/#include#includeusing namespace std;int main()double x1,x=1.0;x1=1/2.0*(x+150.0/x);while(fabs(x-x1)1e-4) x=x1; x1=1/2.0*(x+150.0/x);cout150的算术平方根为:n;coutxendl;system(pause);return 0;/*22. 一个案件涉及A、B、C、D4个嫌疑人,他们均有可能是罪犯,调查中,得出以下结论:A、B中至少一人作案;C、D中至少一人作案;A、C不是同案犯;A、D不是同案犯;B、D不是同案犯。请编程找出哪几个人罪犯。*/#includeusing namespace std;int main()int a4;char info29=是罪犯,不是罪犯; int x;for(a0=0;a0=1;a0+)for(a1=0;a1=1;a1+)for(a2=0;a2=1;a2+)for(a3=0;a3=1;a3+) if(a0=1|a1=1)&(a2=1|a3=1)&(!(a0=1&a2=1) &(!(a0=1&a3=1)&(!(a1=1&a3=1) for(x=0;x=3;x+) if(ax=1) coutchar(64+x)info0endl; coutendl; system(pause);return 0;/*23编写求2的n次幂的递推函数,主函数调用该函数,实参为10(即求2的10次幂)。*/#includeusing namespace std;int mi(int);int main()cout2的10次幂为:mi(10)endl;system(pause);return 0;int mi(int b)int x;int result=1;for(x=1;x=b;x+) result=result*2;return result;/*24. 使用指针编写程序,输出字符串a768bc1234d987efg的长度。*/#includeusing namespace std;int main()char str=a768bc1234d987efg;char *p;int sum=0;p=str;while(*p) sum+; p+;cout字符串a768bc1234d987efg的长度为:sum (不包括结束标志)endl;system(pause);return 0;/*25. 编写程序,用牛顿迭代法求方程f(x)= 5x3+2x2-12x-16=0(其中表示幂运算)在区间1,2上的近似实根,迭代初值自选,精确到0.0001。提示: 计算公式为x1=x0-f(x0)/f(x0)=x0-(5x03+2x02-12x0-16)/(15x02+4x0-12)*/#include#include#includeusing namespace std;int main()double x1,x0=1.0;x1=x0-(5*pow(x0,3.0)+2*pow(x0,2.0)-12*x0-16)/(15*pow(x0,2.0)+4*x0-12);while(fabs(x0-x1)1e-4) x0=x1; x1=x0-(5*pow(x0,3.0)+2*pow(x0,2.0)-12*x0-16)/(15*pow(x0,2.0)+4*x0-12);cout5x3+2x2-12x-16=0(为乘方号)在区间1,2上的近似实根:n;coutsetprecision(5)x1endl;system(pause);return 0;/*26. 100圆一张的人民币,换成10圆、20圆、50圆等三种币值的人民币,编程计算有多少种换法。*/#include#includeusing namespace std;int main()int i=0,j=0,h=0;int sum=0;for(i=0;i=10;i+)for(j=0;j=10;j+)for(h=0;h=10;h+)if(i*10+j*20+h*50=100)sum+;cout有sum种换法1时,sum(n)=sum(n-1)+n。)*/#includeusing namespace std;int sum(int);int main()int n=100;cout1到100的和为sum(n)endl;system(pause);return 0;int sum(int n)if(n=1)return 1;return n+sum(n-1);/*28. 编程将100内的奇数的平方写入文本文件oddsqr.txt中。*/#include#include#includeusing namespace std;int main()double re51;double n;for(n=1;n100;n=n+2) reint(n+1)/2)=pow(n,2.0);ofstream file(oddsqr.txt);if(!file) cout文件打开失败endl; return 0; for(n=1;n=50;n+) filereint(n)endl;cout输入完毕n; system(pause);return 0;/*29. 编写程序,用普通迭代法求方程f(x)=x+lnx-1.7=0的近似实根,迭代初值为1.5,精确到0.0001。 提示:必须把原方程同解变形为迭代形式:x=1.7-lnx 其中:lnx表示x的自然对数(头文件math.h中有对应的函数log(x)*/#include#include#includeusing namespace std;int main()double x1,x0=1.5;x1=1.7-log(x0);while(fabs(x1-x0)1e-4) x0=x1; x1=1.7-log(x0);coutx+lnx-1.7=0的近似实根为:t;coutsetprecision(5)x1endl;system(pause);return 0;/*30. 编写一个程序,要求输出从1到12之间的所有奇数的连乘积。*/ #includeusing namespace std;int main()int x;int ji=1;for(x=1;x12;x=x+2)ji=ji*x;cout从1到12之间的所有奇数的连乘积为:jiendl;system(pause);return 0;/*31. 编写程序,用牛顿迭代法求方程f(x)= x3+4x2-8=0(其中表示幂运算)在区间0,2上的近似实根,迭代初值自选,精确到0.0001。提示: 牛顿迭代公式为:x1=x0-f(x0)/f(x0)=x0-(x03+4*x02-8)/ (3*x02+8*x0)*/#include#include#includeusing namespace std;int main()double x1,x0=1.0;x1=x0-(pow(x0,3.0)+4*pow(x0,2.0)-8)/(3*pow(x0,2.0)+8*x0);while(fabs(x0-x1)1e-4) x0=x1; x1=x0-(pow(x0,3.0)+4*pow(x0,2.0)-8)/(3*pow(x0,2.0)+8*x0);coutx3+4x2-8=0(为乘方号)在区间0,2上的近似实根:n;coutsetprecision(5)x1endl;system(pause);return 0;/*32.使用递归方法编程将整数34564转换为一个字符串输出(即将34654转换为34564)。*/#include#includeusing namespace std;char ins16;int i;void str(int);int main()const int M=34564;int m=M;i=0;while(m)/计算m是几位数 m/=10; i+; str(M);/调用函数将m的各位数字拆成字符存到 ins 中 m=M;while(m)/再次计算m是几位数并把 ins 的第 i 个字符赋值为空(0), 使其成为字符串 m/=10; i+;insi=0;coutinsendl;/insendl;system(pause);return 0;void str(int num) if(num/10=0) ins0=num+48; else i-; insi=num%10+48; str(num/10); /*33. 5位跳水高手将参加10m高台跳水决赛,有好事者让5人据实力预测比赛结 果。A选手说:B第二,我第三。B选手说:我第二,E第四。C选手说:我第一,D第二。D选手说:C最后,我第三。E选手说:我第四,A第一。决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错。编程解 出比赛的实际名次。*/#includeusing namespace std;int main()int player5;int as,bs,cs,ds,es;int x,y,m=0,n=0;for(player0=1;player0=5;player0+)for(player1=1;player1=5;player1+)for(player2=1;player2=5;player2+)for(player3=1;player3=5;player3+)for(player4=1;player4=5;player4+) if(player0=player1|player0=player2|player0=player 3| player0=player4|player1=player2|player1=player 3| player1=player4|player2=player3|player2=player 4| player3=player4) continue; as=(player1=2)+(player0=3); bs=(player1=2)+(player4=4); cs=(player2=1)+(player3=2); ds=(player2=5)+(player3=3); es=(player4=4)+(player0=1); if(as=1&bs=1&cs=1&ds=1&es=1) for(m=1;m=5;m+) for(n=0;n=4;n+) if(playern=m) coutchar(n+65)选手排第mendl; system(pause);return 0;/*34.编写一个程序,输出下述矩阵的转置矩阵: 1 2 3 4 5 6 7 8 9*/#includeusing namespace std;int main()int a33=1,2,3,4,5,6,7,8,9;int b33; int x,y;for(x=0;x3;x+) for(y=0;y3;y+) bxy=ayx;for(x=0;x3;x+) for(y=0;y3;y+) coutbxy ; coutendl; system(pause);return 0;/*35. 编写程序,用普通迭代法求方程f(x)=x-ex+2.5=0的近似实根,迭代初值为-2.5,精确到0.0001。 提示:必须把原方程化成其等价的迭代形式:x=ex-2.5 其中:ex表示e的x次幂(头文件math.h中有对应的函数exp(x)*/#include#includeusing namespace std;i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论