华北电力大学c汇总题库_第1页
华北电力大学c汇总题库_第2页
华北电力大学c汇总题库_第3页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、C+ 期中题库顺序结构上机题1. 输入圆的半径和圆柱的高,依次输出圆周长、圆面积、圆球表面积、圆柱体积(以空格分隔,取 3.14 )。样例输入: 1.5 3样例输出: 9.42 7.065 28.26 21.195#include<iostream.h>int main()float s,c,d,v,r,h;cin>>r>>h;c=3.14*2*r;s=3.14*r*r;d=4*3.14*r*r;v=s*h;cout<<c<<" "<<s<<" "<<d<

2、;<" "<<v<<endl;2 输入一个华氏温度,要求输出摄氏温度。公式为:c=5/9*(F-32)。样例输入: 100样例输出: 37.7778#include<iostream.h>int main()float c,f;cin>>f;c=5.0/9*(f-32);cout<<" "<<c;3 输入三角形的三条边长a, b, c(要求能构成三角形) ,求三角形面积。样例输入: 3.2 4.4 5.6样例输出: 7.02624#include <iostream.h&

3、gt;#include <math.h>int main()float a,b,c,area,s;cin>>a>>b>>c;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);cout<<area;4. 输入大写字母,输出对应的小写字母。样例输入: B样例输出: b#include <iostream.h>int main()char c1,c2;cin>>c1;c2=c1+32;cout<<c2;5. 输入一个正整数 n(100<=n<=999),依次输

4、出 n 的百位数字、十位数字、个位数字(以空格分隔)。样例输入: 153样例输出: 1 5 3include<iostream.h>int main()int n,a,b,c;cin>>n;a=n/100;n=n-a*100;b=n/10;n=n-b*10;c=n;cout<<a<<" "<<b<<" "<<c;选择结构上机题1 输入5 个小写字母,将其译成密码。密码规律是:用原来的字母后面第4 个字母代替原来的字母。例如,输入“ahoux”, a-> b->

5、 c-> d-> e,所以字母 a后面第4 个字母是 e,用 e代替 a;字母 x后面不足 4 个字母,则从 a开始补充, x -> y-> z-> a-> b,所以字母 x后面第 4 个字母是 b,用 b代替 x。因此,“ ahoux”应译为“ elsyb ”。样例输入: ahoux样例输出: elsyb#include<iostream.h>int main()char a,b,c,d,e;cin>>a>>b>>c>>d>>e;if(a<119)a=a+4;elsea=a-22

6、; if(b<119)b=b+4;elseb=b-22; if(c<119)c=c+4;elsec=c-22; if(d<119)d=d+4;elsed=d-22; if(e<119)e=e+4;elsee=e-22;cout<<a<<b<<c<<d<<e;return 0;2. 有一分段函数如下,请编写程序,输入x 值,输出y 值。样例输入: -2样例输出: 14.5样例输入: 1样例输出: 0.393654样例输入: 6样例输出: 0.848872#include <iostream.h>#in

7、clude <math.h>int main()float x,y;cin>>x;if(x<0)y=3*x*x-(5/x);else if(x<5)y=1/(2+cos(x);elsey=sqrt(sin(x)+1);cout<<y;3 有一分段函数如下,请编写程序,输入x 值,输出y 值。样例输入: 0.5样例输出: 0.5样例输入: 1样例输出: 1样例输入: 15样例输出: 34#include <iostream.h>int main()float x,y;cin>>x;if(x<1)y=x;else if(

8、x<10)y=2*x-1;elsey=3*x-11;cout<<y;4. 输入一个不多于 5 位的正整数, 要求分 3 行输出以下信息, 第 1 行输出它是几位数; 第 2行从高位到低位依次输出每一位数字(以空格分隔,下同);第 3 行从低位到高位依次输出每一位数字。样例输入: 32100样例输出:53210000123样例输入:样例输出:4024 00 4#include<iostream.h>int main()int x,a,b,c,d,e;cin>>x;a=x/10000;b=(x-a*10000)/1000;c=(x-a*10000-b*10

9、00)/100;d=(x-a*10000-b*1000-c*100)/10;e=x-a*10000-b*1000-c*100-d*10;if(a>0)cout<<"5"<<"n"<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<"n"<<e<<" &q

10、uot;<<d<<" "<<c<<" "<<b<<" "<<a<<endl;else if(b>0)cout<<"4"<<"n"<<b<<" "<<c<<" "<<d<<" "<<e<<"n"<

11、;<e<<" "<<d<<" "<<c<<" "<<b<<endl; else if(c>0)cout<<3<<"n"<<c<<" "<<d<<" "<<e<<"n"<<e<<" "<<d<<&quo

12、t; "<<c<<endl; else if(d>0)cout<<2<<"n"<<d<<" "<<e<<"n"<<e<<" "<<d<<endl;elsecout<<1<<"n"<<e<<"n"<<e<<endl;5. 输入三角形的三条边 a、b、

13、c,如果能构成三角形,求三角形面积和周长,如果不能构成三角形则输出 Error 。样例输入: 4.5 5.6 6.7样例输出: 12.4875 16.8样例输入: 1 2 3样例输出: Error#include<math.h>#include<iostream.h>int main()float a,b,c,d,l,s;cin>>a>>b>>c;if(a+b>c&&a+c>b&&b+c>a)d=(a+b+c)/2.0;l=2*d;s=sqrt(d*(d-a)*(d-b)*(d-c);

14、cout<<s<<" "<<l;elsecout<<"Error"6. 有一分段函数如下,请编写程序,输入x 值,输出y 值。样例输入: -1样例输出: -1.84147样例输入: 6.5样例输出:23204.8样例输入:12样例输出:0.048737#include<iostream.h>#include<math.h>int main()float x,y;cin>>x;if(x<0)y=x*x+2/x+sin(x);else if(x<10)y=2*x*

15、x*x*x*x-cos(x);elsey=1/(sqrt(3*x*x-11);cout<<y;7 输入年份year ,判断是否是闰年,若不是,输出样例输入: 2012样例输出: YESNO,否则输出YES。#include<iostream.h>int main()int year,a,b,c;cin>>year;a=year%4,b=year%100,c=year%400;if (a=0)&&(b!=0)|(c=0)cout<<"YES"elsecout<<"NO"8. 判断一

16、个数是否为“水仙花数” ,如果是则输出 YES,否则输出 NO。所谓“水仙花数”是指一个3 位数 , 其各位数字的立方和等于该数本身。例如,153 是一个“水仙花数” ,因为153=13+53+33。样例输入: 1样例输出: NO样例输入: 153样例输出: YES#include<iostream.h>#include<math.h>int main()int a,b,c,d,e;cin>>a;if (a>99&&a<1000)b=a/100;c=(a-b*100)/10;d=a-b*100-c*10;e=b*b*b+c*c*c

17、+d*d*d;if(a=e)cout<<"yes"else cout<<"no"else cout<<"no"9 有一分段函数如下,请编写程序,输入x 值,输出y 值。样例输入: -2样例输出: 7样例输入: 1样例输出: 2样例输入: 11样例输出: 0.222681#include<iostream.h>#include<math.h>int main()float x,y;cin>>x;if(x<=-1)y=3*sqrt(fabs(x)+2)+1;el

18、seif(x>10)y=sqrt(x+1)/(2*x*x);elsey=x*x*x*x*x+1;cout<<y;10.有一分段函数如下,请编写程序,输入x 值,输出 y 值。样例输入: - 1样例输出: - 1.4597样例输入: -0.5样例输出: 1.5874样例输入: 1.57样例输出: 0.999999#include<iostream.h>#include<math.h>int main()float x,y;cin>>x;if(x<=-1)y=2*x+cos(x);else if(x>=1)y=sin(x)*sin(

19、x);elsey=1/(pow(x+1),2.0/3);cout<<y;循环结构1. 输入两个正整数 m和 n,编写程序求其最大公约数和最小公倍数。样例输入: 15 25样例输出: 5 75#include<iostream.h>int main()int a,b,t,i;cin>>a>>b;if(a>b)t=a;a=b;b=t;for(i=1;i<=b;i+)if(a%i=0&&b%i=0)t=i;cout<<t<<" "<<a*b/t;2 输出所有大于给定数n

20、 的“水仙花数” ,n 由键盘输入。 所谓“水仙花数” 是指一个3 位数 ,其各位数字的立方和等于该数本身。例如, 153 是一个“水仙花数” ,因为 153=13+53+33。样例输入: 100样例输出: 153 370 371 407#include<iostream.h>int main()int n,i,g,s,b;cin>>n;for(i=n+1;i<=999;i+) g=i%10;s=i/10%10;b=i/100;if(i=g*g*g+s*s*s+b*b*b)cout<<i<<" "3 一个数恰好等于它的因

21、子之和,这个数就称为“完数”。例如, 6 的因子为 1、2、3,并且6=1+2+3,因此 6 是“完数”。编写程序找出小于给定数n 的所有“完数” , n 由键盘输入。样例输入: 1000样例输出: 6 28 496#include<iostream.h>int main()int n,i,a,b;cin>>n;for(b=2;b<n;b+)a=0;for(i=1;i<b;i+)if(b%i=0) a=a+i;if(a=b)cout<<b<<" "return 0;4 一个数恰好等于它的因子之和,这个数就称为“完数

22、”。例如, 6 的因子为 1、2、3,并且6=1+2+3,因此 6 是“完数”。编写程序判断一个数是否为“完数”,如果是则输出 YES,否则输出 NO。样例输入: 1样例输出: NO样例输入: 6样例输出: YES#include<iostream.h>#include<math.h>int main()int m,j,a;cin>>m;if(m=1)cout<<"no"elsea=0;for(j=1;j<m;j+)if(m%j=0)a=a+j;if(m=a)cout<<"yes"else

23、cout<<"no"5 任何一个大于1 的数如果只能被1 和这个数自身整除,这个数就称为“素数”或“质数”。例如, 2、 3、 5 是“素数”。编写程序判断一个数是否为“素数”,如果是则输出YES,否则输出 NO。样例输入: 1样例输出: NO样例输入: 2样例输出: YES#include<iostream.h>#include<math.h>int main()int n,a,i;cin>>n;a=0;if(n>1)for(i=1;i<=n;i+)if(n%i=0) a+;if(a=2) cout<<

24、;"YES"<<endl;else cout<<"NO"<<endl;if(n=1) cout<<"NO"<<endl;6 任何一个大于1 的数如果只能被1 和这个数自身整除,这个数就称为“素数”或“质数”。例如, 2、 3、 5 是“素数”。输入 m和 n( m<=n),编写程序计算 m,n 范围内“素数”之和。样例输入: 1 10样例输出: 17#include<iostream.h>int main()int m,n,a,b,i,s;cin>&g

25、t;m>>n;s=0;for(a=m;a<=n;a+)b=0;for(i=1;i<=a;i+)if(a%i=0)b+;if(b=2)s=s+a;cout<<s<<endl;return 0;7 有一分数序列,计算该序列的前n 项和, n 由键盘输入。样例输入: 20样例输出: 32.6603#include<iostream.h>#include<math.h>int main()int n,i,a,b,d;float s,c;cin>>n;s=0;a=1;b=2;c=b/a;for(i=1;i<=n;i

26、+)s=s+c;d=a,a=b,b=b+d,c=b*1.0/a;cout<<s;8 求数列计算该序列的前n 项和, n 由键盘输入。样例输入:2样例输出:0.5#include<iostream.h>#include<math.h>int main()float i,n,sum,t;cin>>n;sum=0;for(i=1;i<=n;i+)t=pow(-1),(i+1);sum=sum+(1/i)*t;cout<<sum<<endl;9 编写程序找出一个正整数n 的各位数字中最大的数字,n 由键盘输入。样例输入:12

27、34样例输出:4#include<iostream.h>int main()int n,m,a;cin>>n;a=0;while(n>0)m=n%10;if(m>a)a=m;n=n/10;cout<<a<<endl;10. 编写程序求 m到 n 之间(包括 m和 n, m<=n)素数的个数及其平均值,如果没有素数则输出 NO, m和 n 由键盘输入。样例输入: 1 10样例输出: 4 4.25样例输入: 8 10样例输出: NO#include<iostream.h>int main()int m,n,a,b,j=0

28、,i;float s,e;cin>>m>>n;s=0;for(a=m;a<=n;a+)b=0;for(i=1;i<=a;i+)if(a%i=0)b=b+;if(b=2)j=j+;s=s+a;e=s/j;if(j>0)cout<<j<<" "<<e;elsecout<<"NO"11. 编写程序求n 的阶乘, n 由键盘输入,注意:。样例输入: 10样例输出: 3.6288e+006#include<iostream.h>#include<math.h

29、>int main()float n,i,s;cin>>n;s=1;for(i=1;i<=n;i+)s=s*i;cout<<s;12. 编写程序求 n 以内(包括 n)能被 3 或 7 整除的所有自然数的倒数之和。样例输入: 21样例输出: 1.07857#include<iostream.h>#include<math.h>int main()int n,i;float sum;cin>>n;sum=0;for(i=1;i<=n;i+)if(i%3=0)sum=sum+(1.0/i);elseif(i%7=0) s

30、um=sum+(1.0/i);cout<<sum<<endl;13. 编写程序求所有满足下列条件不大于给定数 n( 100<=n<=999)的三位数的个数: 个位数字和百位数字之和等于其十位上的数字。样例输入: 999样例输出: 45#include<iostream.h>#include<math.h>int main() int i,n,a,b,c,j; cin>>n;j=0;for(i=100;i<=n;i+)a=i%10;b=(i/10)%10;c=i/100;if(b=a+c)j+;cout<<

31、j<<endl;14. 求数列计算该序列的前n 项和, n 由键盘输入。样例输入: 50样例输出: 1.96079#include<iostream.h>#include<math.h>int main() int i,n; float sum,m; cin>>n;sum=0;m=0;for(i=1;i<=n;i+)m=m+i;sum=sum+(1.0/m);cout<<sum<<endl;15. 求数列计算该序列的前N 项和, N 由键盘输入。样例输入: 10样例输出: 4.03791e+006#include&l

32、t;iostream.h>#include<math.h>int main() double N,i,t,sum; cin>>N; sum=0;t=1;for(i=1;i<=N;i+)t=t*i;sum=sum+t;cout<<sum<<endl;16. 编写程序,从n 个整数中找到最小的数并输出。输入分2 行:第一行为n 的值,第二行为 n 个整数。样例输入:515320样例输出: 0#include<iostream.h>int main()int n,m,a,i;cin>>n;cin>>m;a

33、=m;for(i=1;i<n;i+)cin>>m;if(m<a)a=m;cout<<a;17. 编写程序求a + aa + aaa + aaaa + aaaa( n 个a)之和,其中a 和n 由键盘输入。样例输入:8 5样例输出: 98760#include<iostream.h>#include<math.h>int main() int m,n,i,a,sum; cin>>a>>n; m=0;sum=0; for(i=1;i<=n;i+) m=m*10+a; sum=sum+m; cout<&l

34、t;sum<<endl; 18 求数列计算该序列的前n 项和, n 由键盘输入。样例输入: 2样例输出: 2.5#include<iostream.h>#include<math.h>int main() float i,n,sum,t; cin>>n;sum=1;t=1;for(i=1;i<=n;i+)t=t*i;sum=sum+(1.0/t);cout<<sum;19 求数列其中分母为n 以内(包括n)的素数,计算该序列之和,n 由键盘输入。样例输入:10样例输出:1.17619#include<iostream.h&

35、gt;#include<math.h>int main() float sum,n,c;int i,t;cin>>n;sum=0;for(t=1;t<=n;t+)c=0;for(i=1;i<=t;i+)if(t%i=0)c+;if(c=2)sum=sum+(1.0/t);cout<<sum<<endl;20. 求数列输入正整数 n 和任意数 x,计算该序列的前n 项和。样例输入: 5 0.5样例输出: 1.39349#include<iostream.h>#include<math.h>int main()in

36、t n,i;float x,sum,a;sum=1;a=-1;cin>>n>>x;for(i=1;i<=n;i+)a=a*(-1)*(x/i);sum=sum+a;cout<<sum<<endl;数组上机题1 编写程序, 从任意 n 个数中找出最大数和最小数,并将它们相互交换后输出。输入分2 行:第一行为n 的值,第二行为n 个数。样例输入:515320样例输出: 10325#include <iostream.h>int main() int n,a32,i,j,t,max,min;cin>>n;cin>&g

37、t;a0;max=a0;min=a0;j=0;t=0;for(i=1;i<n;i+)cin>>ai;if(ai>max)max=ai;j=i;if(ai<min)min=ai;t=i;aj=min;at=max;for(i=0;i<n;i+)cout<<ai<<endl;2 编写程序,将任意n 个数按从大到小的顺序排序。输入分2 行:第一行为n 的值,第二行为 n 个数。样例输入:515320样例输出:53210#include<iostream.h>int main()int a100,i,j,t,n;cin>&g

38、t;n;for(i=0;i<n;i+)cin>>ai;for(j=0;j<n-1;j+)for(i=0;i<n-1;i+)if(ai<ai+1)t=ai;ai=ai+1;ai+1=t;for(i=0;i<n;i+)cout<<ai<<" "return 0;3 编写程序,利用折半查找法从一个升序排列的数列中查找某数是否存在,如果存在则输出该数的下标,否则输出 NO。 输入分 3 行:第一行为 n 的值,代表数列中数的个数,第二行为 n 个数(升序排列) ,第三行为要查找的数。样例输入:5012353样例输出:

39、 3样例输入:5012354样例输出: NO#include<iostream.h>#include<math.h>int main()int i,n,j,y=0,z,k;float a100,x;cin>>n;for(i=0;i<n;i+)cin>>ai;cin>>x;z=n-1;for(i=0;i<n;i+)if(ai=x) k=1;break;if(k!=1) cout<<"NO"<<endl;else while(y<=z)j=(y+z)/2; if(aj=x) c

40、out<<j<<endl;break;if(aj>x) z=j-1;if(aj<x) y=j+1;4 编写程序, 将一个数组中的数循环左移。输入分 2 行:第一行为n 的值,第二行为n 个数。样例输入:515320样例输出: 53201#include<iostream.h>#include<math.h>int main()int i,n,a100,b100;cin>>n;for(i=0;i<n;i+)cin>>ai;for(i=0;i<n-1;i+)bi=ai+1;bn-1=a0;for(i=0

41、;i<n;i+)cout<<bi<<" "cout<<endl;5 编写程序,从任意n 个数中找出素数并输出。输入分2 行:第一行为n 的值,第二行为n个整数。样例输入:513520样例输出: 3 5 2#include <iostream.h>#include <math.h>int main()int i,j,n,a200,gs,t;cin>>n;for(i=0;i<n;i+)cin>>ai;gs=0;for(j=1;j<=ai;j+)t=ai%j;if(t=0) gs

42、+;if(gs=2) cout<<ai<<endl;6 编写程序, 将一个字符串首尾互换,并与原字符串连接后输出。输入字符串 (不包含空格) ,输出处理后的结果。样例输入: china样例输出: chinaanihc#include<iostream.h>int main()char a100;int i,n,k=0;cin>>a;while(ak!=0)k+;for(i=0;i<k;i+)ak+i=ak-i-1;a2*k=0;cout<<a<<endl;7 输入 n 个数,找出其中的偶数并计算平均值后输出。输入分

43、2 行:第一行为 n 的值,第二行为 n 个数;输出分 2 行:第一行为其中的偶数,第二行为所有偶数的平均值。样例输入:515320样例输出:2 0#include<iostream.h> int main()int a50,i,n,p=0,k=0;float av;cin>>n;for(i=0;i<n;i+)cin>>ai;for(i=0;i<n;i+)if(ai%2=0)p+=ai;cout<<ai<<" "k+;av=p*1.0/k;cout<<endl<<av;retur

44、n 0;8 编写程序求 Fibonacci数列前 n 项和, n 由键盘输入。样例输入: 5样例输出: 12#include<iostream.h>int main()int a50,i,n,s=2;a0=1;a1=1;cin>>n;for(i=2;i<n;i+)ai=ai-1+ai-2;s+=ai;cout<<s;return 0;9 编写程序,输入若干学生的成绩,计算平均分,并输出低于平均分的学生成绩。输入分2行:第一行为 n 的值,第二行为 n 个数;输出分 2 行:第一行为平均分,第二行为低于平均分的成绩。样例输入:560 70 80 90 1

45、00样例输出:8060 70#include<iostream.h>int main() int n,a50,i,p=0;float av;cin>>n;for(i=0;i<n;i+) cin>>ai;p=p+ai;av=p*1.0/n;cout<<av<<endl;for(i=0;i<n;i+)if(ai<av)cout<<ai<<" "return 0;10. 编写程序,从任意 n 个数中找出素数,计算素数之和,并按从大到小顺序排序。输入分2 行:第一行为n 的值,第二

46、行为n 个整数;输出分2 行:第一行为素数之和,第二行为素数排序结果。样例输入:513520样例输出:105 3 2#include <iostream.h>#include <math.h>#include <string.h>int main()int n,a200,b200,i,j,k=0,gs,sum=0,t;cin>>n;for(i=0;i<n;i+)cin>>ai;gs=0; for(j=1;j<=ai;j+)if(ai%j=0)gs+;if(gs=2) bk=ai;k+;for(i=0;i<k;i+)s

47、um+=bi;cout<<sum<<endl; for(i=0;i<=k-2;i+) for(j=i+1;j<=k-1;j+) if(bi<bj) t=bi;bi=bj;bj=t;for(i=0;i<k;i+)cout<<bi<<" "11. 编写程序, 计算两个矩阵 (均为 2 行 3 列)之和。输入分 2*2 行:前两行为第一个矩阵,后两行为第二个矩阵。样例输入:1 2 34 5 63 5 91 7 6样例输出:471251212#include<iostream.h>int main(

48、) int i,j,a23,b23,c23; for(i=0;i<2;i+) for(j=0;j<3;j+) cin>>aij;for(i=0;i<2;i+)for(j=0;j<3;j+)cin>>bij;for(i=0;i<2;i+)for(j=0;j<3;j+)cij=aij+bij;for(i=0;i<2;i+) for(j=0;j<3;j+)cout<<cij<<" "cout<<endl;12. 编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。样例输入: 7843028503样例输出: 4 6#include "iostream.h"#

温馨提示

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

评论

0/150

提交评论