顺序结构
第1题:
输入一个正整数n(100<=n<=999),依次输出n的百位数字、十位数字、个位数字(以空格分隔)。
样例输入:153
样例输出:1 5 3
#include
int main()
{
int n,g,s,b;
cin>>n;
g=n%10;
s=n/10%10;
b=n/100;
cout<
}
第2题:
输入一个四位数,将其加密后输出。方法是将该数每一位的数字加9,然后除以10取余作为该位上的新数字,最后将千位上的数字和十位上的数字互换,组成加密后的新四位数。
样例输入:1368
样例输出:5207
#include
int main()
{
int n,m,a,b,c,d,g,s,h,q;
cin>>n;
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
g=(d+9)%10;
s=(c+9)%10;
h=(b+9)%10;
q=(a+9)%10;
m=s*1000+h*100+q*10+g;
cout< } 第3题: 古代数学问题"鸡兔同笼"。鸡与兔共a只,鸡与兔的总脚数为b,输入a,b,求鸡兔各几只。 样例输入:3 10 样例输出:1 2 #include int main() { int x,y,a,b; cin>>a>>b; x=(4*a-b)/2; y=(b-2*a)/2; cout< } 第4题: 输入大写字母,输出对应的小写字母。 样例输入:B 样例输出:b #include int main() { char xx,dx; scanf("%c",&dx); xx=dx+32; printf("%c\n",xx); } 第5题: 输入三角形的三条边长a,b,c(要求能构成三角形),求三角形面积。 样例输入:3.2 4.4 5.6 样例输出:7.02624 #include #include int main() {float a,b,c,s,area; scanf("%f%f%f",&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("%f\n",area); } 第6题: 输入两个整数,将它们交换后输出。 样例输入:1 2 样例输出:2 1 #include int main() { int a,b,c; cin>>a>>b; c=a; a=b; b=c; cout< } 第7题: 计算表达式的值。输入a,b,c,d,e,输出计算结果。 样例输入:1 2 3 4 5 样例输出:0.347826 #include #include int main() {float a,b,c,d,e,anwser; scanf("%f%f%f%f%f",&a,&b,&c,&d,&e); anwser=a*b/(c/d+e); printf("%f\n",anwser); } 第8题: 计算表达式ax3+bx2+cx+d的值。输入x,a,b,c,d,输出计算结果。 样例输入:2.2 3 4 5 6 样例输出:68.304 #include #include int main() {float x,a,b,c,d,anwser; scanf("%f%f%f%f%f",&x,&a,&b,&c,&d); anwser=a*x*x*x+b*x*x+c*x+d; printf("%f\n",anwser); } 第9题: 输入一个华氏温度,要求输出摄氏温度。公式为:c=5/9*(F-32)。样例输入:100 样例输出:37.7778 #include int main() {float F,c; scanf("%f",&F); c=5.0/9*(F-32); printf("%f\n",c); } 第10题: 输入圆的半径和圆柱的高,依次输出圆周长、圆面积、圆球表面积、圆柱体积(以空格分隔,π取3.14)。 样例输入:1.5 3 样例输出:9.42 7.065 28.26 21.195 #include #include int main() {float r,h,grith,area,surface,volume; scanf("%f%f",&r,&h); grith=2*3.14*r; area=3.14*r*r; surface=4*3.14*r*r; volume=area*h; printf("%f %f %f %f\n",grith,area,surface,volu me); } 选择结构 第1题: 输入3个整数,输出其中最大数。 样例输入:1 3 2 样例输出:3 #include int main() {int a,b,c,x,y; cin>>a>>b>>c; if(a {x=a; a=b; b=x;} if(a {y=a; a=c; c=y;} cout< } 第2题: 输入三角形的三条边a、b、c,如果能构成三角形,求三角形面积和周长,如果不能构成三角形则输出Error。 样例输入:4.5 5.6 6.7 样例输出:12.4875 16.8 样例输入:1 2 3 样例输出:Error #include #include int main() {float a,b,c,s,k,p; cin>>a>>b>>c; if((a+b>c)&&(a+c>b)&&(b+c>a)) {p=(a+b+c)/2.0; s=sqrt(p*(p-a)*(p-b)*(p-c)); k=a+b+c; cout< else cout<<"Error"< return 0; } 第3题: 输入两个整数m和n,判断m能否被n整除,若不能整除,输出NO,否则输出YES。样例输入:6 3 样例输出:YES #include int main(void) {int m,n; cin>>m>>n; if(m%n==0) cout<<"YES"< else cout<<"NO"< return 0; } 第4题: 输入年份year,判断是否是闰年,若不是,输出NO,否则输出YES。样例输入:2012 样例输出:YES #include int main() {int n; cin>>n; if((n%4==0&&n%100!=0)||n%400==0) cout<<"YES"< else cout<<"NO"< } 第5题: 判断一个数是否为“水仙花数”,如果是则输出YES,否则输出NO。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153=13+53+33。 样例输入:1 样例输出:NO 样例输入:153 样例输出:YES #include #include int main() {int n,g,s,b; cin>>n; g=n%10; s=(n/10)%10; b=n/100; if(n==b*b*b+s*s*s+g*g*g) {cout<<"YES"< else {cout<<"NO"< } 第6题: 输入一个正整数n,如果n为偶数则输出Even,否则n为奇数则输出Odd。 样例输入:1 样例输出:Odd #include int main() {int n; cin>>n; if(n%2==0) {cout<<"Even"< else {cout<<"Odd"< } 第7题: 输入一个正整数n,如果n能被3整除,则输出YES和n的立方,否则输出NO和n的平方。 样例输入:3 样例输出:YES 27 样例输入:5 样例输出:NO 25 #include int main() {int n; cin>>n; if(n%3==0) {n=n*n*n; cout<<"YES "< else {n=n*n; cout<<"NO "< } 第1题: 有一分段函数如下,请编写程序,输入x值,输出y值。 样例输入:-2 样例输出:14.5 样例输入:1 样例输出:0.393654 样例输入:6 样例输出:0.848872 #include #include int main() {float x,y; cin>>x; if(x<0) {y=3.0*x*x-5/x;} else if(x<5) {y=1/(2.0+cos(x));} else if(x>=5) {y=sqrt(sin(x)+1.0);} cout< } 第2题: 输入一个不多于5位的正整数,要求分3行输出以下信息,第1行输出它是几位数;第2行从高位到低位依次输出每一位数字(以空格分隔,下同);第3行从低位到高位依次输出每一位数字。 样例输入:32100 样例输出: 5 3 2 1 0 0 0 0 1 2 3 样例输入:40 样例输出: 2 4 0 0 4 #include int main() {int a[20],i=0,x,j; cin>>x; while(x!=0) a[i]=x%10,x=x/10,i++; cout< for(j=i-1;j>=0;j--) cout< cout< for(j=0;j cout< return 0; } 第3题: 输入五级制成绩(A~E),输出相应的百分制(0~100)区间。要求用switch语句。五级制对应的百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D((60~69))、 E (0~59)。 样例输入:B 样例输出:80~89 #include {char a; cin>>a; switch (a) {case 'A': cout<<90<<"~"<<100;break; case 'B':cout<<80<<"~"<<89;break; case 'C':cout<<70<<"~"<<79;break; case 'D':cout<<60<<"~"<<69;break; case 'E':cout<<0<<"~"<<59;break; } cout< } 第4题: 编写程序,输入一个数,判断其是否是3或7的倍数,分4种情况输出:是3的倍数但不是7的倍数时输出1,不是3的倍数但是 7的倍数时输出2,是3的倍数也是7的倍数时输出3,不是3的倍数也不是7的倍数时输出4。 样例输入:21 样例输出:3 #include int main() {int n,gs,t1,t2; cin>>n; t1=n%3;t2=n%7; if(t1==0&&t2!=0) gs=1; else if (t1!=0&&t2==0) gs=2; else if(t1==0&&t2==0) gs=3; else gs=4; cout< } 第5题: 输入收入salary,输出应交的个人所得税tax。计算公式:tax=rate*(salary-850),其中rate 是税率,与收入有关。样例输入:2000.5 样例输出:115.05 #include int main() {float tax,rate,salary; cin>>salary; if(salary<=850) rate=0.00; else if(salary<=1350) rate=0.05; else if(salary<=2850) rate=0.10; else if(salary<=5850) rate=0.15; else rate=0.20; tax=rate*(salary-850); cout< } 第6题: 编写程序计算某年某月的天数。输入年份year和月份month,输出该月份的天数。 样例输入:2012 2 样例输出:29 #include int main() {int x,y,z; cin>>x>>y; if(y==2) {if((x%4==0&&x%100!=0)||x%400==0) z=29; else z=28;} else if(y==4||y==6||y==9||y==11) z=30; else z=31; cout< } 第7题: 一个表达式x()y==z的值为真,其中x,y,z都是整数。括号内可能出现的运算符包括:+、-、*、/、%,请根据输入的x,y,z的值,输出括号内应填写的运算符(数据保证只有一个运算符满足条件)。 样例输入:292 123 415 样例输出:+ #include #include int main() {int x,y,z; char op; cin>>x>>y>>z; if(z==x+y) op='+'; else if(z==x*y) op='*'; else if(z==x-y) op='-'; else if(z==x/y) op='/'; else if(z==x%y) op='%'; putchar(op); } 第8题: 设计一简易计算器,计算两个正整数a、b 的和、差、积、商和余数。输入格式为:a op b,其中,a、b为要计算的两个正整数,op 为算术运算符(包括+、-、*、/、%),输出计算的结果。 样例输入:3+5 样例输出:8 #include #include int main() {int x,y,z; char op; cin>>x>>op>>y; if(op=='+') z=x+y; else if(op=='*') z=x*y; else if(op=='-') z=x-y; else if(op=='/') z=x/y; else z=x%y; cout< } 第9题: 样例输入:0 1 2 样例输出:Not a quadratic equation 样例输入:1 - 2 1 样例输出:Two equal real root 1 样例输入:1 3 1 样例输出:Two unequal real root -0.382 -2.618 样例输入:1 1 1 样例输出:Two imaginary root -0.5+0.866025i -0.5-0.866025i #include #include int main() {double a,b,c,d,t; cin>>a>>b>>c; d=b*b-4*a*c; t=2*a; if(a==0) cout<<"Not a quadratic equation"; else if(d==0) cout<<"Two equal real root"<<" "<<-b/t; else if(d>0) cout<<"Two unequal real root"<<" "<<(-b+sqrt(d))/t<<" "<<(-b-sqrt(d))/t; else cout<<"Two imaginary root "<<-b/t<<"+"< "<<-b/t<<"-"< return 0;} 第10题: 输入一个字符,如果是大写字母则转换为对应的小写字母,如果是小写字母则转换为对应的大写字母,如果是数字字符则转换为对应的数值,如果都不是则不转换,将转换后的结果输出。 样例输入:A 样例输出:a 样例输入:8 样例输出:8 #include int main() {char ch; cin>>ch; if(ch>='A'&&ch<='Z') ch=ch+32; else if (ch>='a'&&ch<='z') ch=ch-32; else ch=ch; cout< return 0;} 第11题: 给出百分制成绩,要求输出成绩等级:90~100分为'A'、80~89分为'B'、70~79分为'C'、60~69分为'D'、0~60分为'E',若成绩大于100或者小于0,则提示“Error”。 样例输入:105 样例输出:Error 样例输入:95.5 样例输出:A #include int main() {int g; cin>>g; if(g>100||g<0) cout<<"Error"; else {switch(g/10) {case 10:cout<<"A";break; case 9:cout<<"A";break; case 8:cout<<"B";break; case 7:cout<<"C";break; case 6:cout<<"D";break; default :cout<<"E";break; }} return 0; } 循环结构 第1题: 输入一行字符,以回车结束,统计出其中英文字符、数字字符、空格和其它字符的个数。(提示:输入字符时用C语言中的输入函数) 样例输入:aB()1 * 样例输出:2 1 1 3 #include int main() {char m1;int y,s,k,q; m1=getchar(); y=0;s=0;k=0;q=0; while(m1!='\n') {if(m1<='z'&&m1>='a'||m1<='Z'&&m1>='A') y++; else if(m1>='0'&&m1<='9') s++; else if(m1==' ') k++; else q++; m1=getchar();} printf("%d %d %d %d",y,s,k,q); return 0; } 第2题: 计算s,直到s大于0.97为止。 s=1/(1*2)+1/(2*3)+1/(3*4)+…+1/(n*(n+1)) 样例输出:0.970589 #include int main() {float a=1,b=2,x,s=0;int n=0; while( s<=0.97) {x=1.0/(a*b); s=s+x; a++; b++; n++;} cout< return 0; } 第3题: 编写程序求a + aa + aaa + aaaa +…+ aaa…a (n个a)之和,其中a和n由键盘输入。样例输入:8 5 样例输出:98760 #include #include int main() {int a,n,sum=0,i=0,x=0; cin>>a>>n; while(i {x=x+a*pow(10,i); sum=sum+x; i++;} cout< return 0;} 第4题: 输入一批整数(以零或负数为结束标志),求其中的偶数和。 样例输入:1 4 6 7 9 19 0 样例输出:10 #include int main() {int a,b,sum=0; cin>>a; while (a>0) {b=a%2; if (b==0) {sum+=a;} cin>>a;} cout< return 0;} 第5题: 编写程序求所有满足下列条件不大于给定数n(100<=n<=999)的三位数的个数:个位数字和百位数字之和等于其十位上的数字。 样例输入:999 样例输出:45 #include int main() {int n,g,s,b,i=100,gs=0; cin>>n; while (i<=n) {b=i/100; s=(i/10)%10; g=i%10; if (s==g+b) {gs++;} i++;} cout< } 第6题: 求数列 计算该序列的前N项和SN,直到SN 大于q 为止,q由键盘输入。 样例输入:50 样例输出:50.4167 #include int main() {float a=1,b=2,x,q,sum=0; cin>>q; while(sum<=q) {x=b/a; sum+=x; a++; b++;} cout< return 0; } 第7题: 编写程序求n的阶乘,n由键盘输入,注意:。样例输入:10 样例输出:3.6288e+006 #include int main() {double s=1,i,n; cin>>n; for(i=1;i<=n;i++) s=s*i; cout< } 第8题: 输入一行字符,以字符0作为结束标志,输出这行字符对应的ASCII码值之和。 样例输入:ABCDE0 样例输出:335 #include int main() {int s=0; char ch; ch=getchar(); while(ch!='0') {s+=ch; ch=getchar();} printf("%d",s); } 第9题: 有一分数序列, 计算该序列的前n项和,n由键盘输入。样例输入:20 样例输出:32.6603 #include int main() {float a=1,b=2,c,x,sum=0; int n,i=1; cin>>n; while(i<=n) {x=b/a; c=b; b=b+a; a=c; i++; sum+=x;} cout< } 第1题: 一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,并且6=1+2+3,因此6是“完数”。编写程序找出小于给定数n的所有“完数”,n由键盘输入。 样例输入:1000 样例输出:6 28 496 #include int main() {int i,n,a,j,S=1; cin>>n; for(i=2;i {for(j=2;j {a=i%j; if(a==0) S+=j;} if(S==i) cout< S=1;} return 0; } 第2题: 一球从100米高度自由落下,每一次落地后反弹回原高度的一半,再落下,求它在第n 次落地时,共经过多少米?第n次反弹多高?n由键盘输入。 样例输入:10 样例输出:299.609 0.0976563 #include "iostream.h" int main() {int n,i; double s,h; s=100.0; h=100.0; cin>>n; for(i=2;i<=n;i++) {h=h/2; s=s+h*2;} cout< } 第3题: 求数列 计算该序列的前n项和,n由键盘输入。 样例输入:2 样例输出: 0.5 #include int main() {int i,n; float sum=0,m=1; cin>>n; for(i=1;i<=n;i++) {sum+=m/i; m=-m;} cout< } 第4题: 求数列 计算该序列的前n项和,n由键盘输入。样例输入:50 样例输出:1.96079 #include int main() {int i,n; float sum=0,x=0; cin>>n; for(i=1;i<=n;i++) {x+=i; sum+=1/x;} cout< } 第5题: 求数列 计算该序列的前N项和,N由键盘输入。样例输入:10 样例输出:4.03791e+006 #include int main() {int i,n; float p,s; cin>>n; p=1;s=0; for(i=1;i<=n;i++) {p*=i;s+=p;} cout< } 第6题: 求数列 计算该序列的和,直到某一项的绝对值小于e为止(小于e的这项不累加),e由键盘输入。 样例输入:1E-4 样例输出:0.866924 #include int main() {int m=1; float sum=0,e,i; cin>>e; for(i=1;1/i>=e;i+=4) {sum+=m/i; m=-m;} cout< } 第7题: 求数列 计算该序列的前n项和,n由键盘输入。样例输入:2 样例输出:2.5 #include int main() {int i,n; float p,s; cin>>n; p=1;s=1; for(i=1;i<=n;i++) {p*=i;s+=1/p;} cout< return 0; } 第8题: 求数列 输入正整数n和任意数x,计算该序列的前n项和。 样例输入:5 0.5 样例输出:1.39349 #include int main() {int i,m,n; float x,p,jc,ai,s; cin>>n>>x; m=1;p=1;jc=1;s=1; for(i=1;i<=n;i++) {p*=x;jc*=i; ai=m*p/jc; s+=ai; m=-m;} cout< } 第1题: 输入两个正整数m和n,编写程序求其最大公约数和最小公倍数。 样例输入:15 25 样例输出:5 75 #include int main() {int m,n,r,t1,t2; cin>>m>>n; t2=m*n; if(m>n) {r=m%n; while(r!=0) {m=n;n=r;r=m%n; } t1=t2/n; cout< else { r=n%m; while (r!=0) {n=m; m=r; r=n%m;}t1=t2/m; cout< return 0;} 第2题: 一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,并且6=1+2+3,因此6是“完数”。编写程序找出小于给定数n的所有“完数”,n由键盘输入。 样例输入:1000 样例输出:6 28 496 #include int main() {int i,n,a,j,S=1; cin>>n; for(i=2;i {for(j=2;j {a=i%j; if(a==0) S+=j;} if(S==i) cout< S=1;} return 0; } 第3题: 编写程序找出一个正整数n的各位数字中最大的数字,n由键盘输入。 样例输入:1234 样例输出:4 #include int main() {int n1,t1=1,n; cin>>n; while (n!=0) {n1=n%10; n=n/10; if(n1>t1) t1=n1;} cout< } 第4题: 编写程序求m到n之间(包括m和n,m<=n)素数的个数及其平均值,如果没有素数则输出NO,m和n由键盘输入。 样例输入:1 10 样例输出:4 4.25 样例输入:8 10 样例输出:NO #include int main() {int m,n,gs,i,j,t=0; float sum=0; cin>>m>>n; for(i=m;i<=n;i++) {gs=0; for(j=1;j<=i;j++) {if(i%j==0) gs++;} if(gs==2) sum+=i,t++; } if(sum!=0) cout< else cout<<"NO"; return 0; } 第5题: 输入一个正整数n,求其位数及各位数字之和并输出。 样例输入:14562 样例输出:5 18 #include int main() {int n,i=0,sum=0,t1; cin>>n; while(n!=0) {t1=n%10; sum+=t1; n=n/10; i++; } cout< } 第6题: 哥德巴赫猜想指出:任何一个不小于6的偶数都可以表示为两个素数之和。例如:6=3+3 8=3+5 …50=3+47。从键盘输入n(n>=6),输出对应的表达式(只输出在所有可能的表达式中第一个素数最小的那个表达式,例如:10=3+7,10=5+5,10=7+3中只输出第一个表达式10=3+7)。 样例输入:10 样例输出:10=3+7 #include #include int main() {int n,a,b,i; int sum(int); cin>>n; for(i=2;i {a=sum(i);b=sum(n-i); if(a==1&&b==1) break;} cout< return 0; } int sum(int x) {int j,k; j=2,k=sqrt(x); while(j<=k) {if(x%j!=0)j++; else break;} if(j==k+1) return 1; else return 0;} 第7题: 将一笔钱(大于8分,小于1元,精确到分)换算成1分、2分和5分的硬币组合(1分、2分、5分的硬币均至少有1枚)。输入整数金额(单位:分),问有几种换算方法? 样例输入:10 样例输出:2 #include int main() {int n,x,y,z; int s=0; cin>>n; for(x=1;x<=n;x++) for(y=1;y<=n/2;y++) for(z=1;z<=n/5;z++) { if(x+2*y+5*z==n) {s++;} } cout< } 第8题: 两个相差为2的素数称为素数对,如5和7、17和19等,本题目要求找出小于等于n范围内的素数对,当输入为10时,输出为3 5和5 7。每对素数为1行,两个数中间用空格隔开。如果没有找到任何素数对,则输出empty。 样例输入:4 样例输出:empty 样例输入:10 样例输出: 3 5 5 7 #include #include int sushu(int n) { int j; for(j=2;j<=sqrt(n);j++) {if(n%j==0) return 0;} return 1; } int main() {int i,n,flag=0; cin>>n; for(i=2;i<=n-2;i++) {if(sushu(i)&&sushu(i+2)) {flag=1; cout< } if(flag==0) cout<<"empty"< } 第9题: 一个正整数,如果它能被7整除,或者它的某一位上的数字为7,则称其为与7相关的数。现求所有小于等于n的与7无关的正整数的平方和。 样例输入:20 样例输出:2336 #include int main() {int a[2],n=0,i,sum=0,m; cin>>m; for(i=1;i<=m;i++) {a[0]=i%10; a[1]=(i-a[0])/10; if(a[0]!=7&&a[1]!=7&&i%7!=0) {sum+=i*i; n++;} } cout< } 数组 第1题: 编写程序,将一个数组中的数循环右移。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5 1 5 3 2 0 样例输出:0 1 5 3 2 #include int main() {int a[50],i,n,last; cin>>n; for(i=0;i cin>>a[i]; last=a[n-1]; for(i=(n-2);i>=0;i--) {a[i+1]=a[i];} a[0]=last; for(i=0;i cout< return 0;} 第2题: 编写程序,利用顺序查找法从一个数列中查找某数是否存在,如果存在则输出该数的下标,否则输出NO。输入分3行:第一行为n的值代表数列中数的个数,第二行为n个 数,第三行为要查找的数。 样例输入: 5 6 2 3 8 5 3 样例输出:2 样例输入: 5 6 2 3 8 5 4 样例输出:NO #include int main() {int a[50],n,k=0,w,i; cin>>n; for(i=0;i cin>>a[i]; cin>>w; for(i=0;i {if(a[i]==w) {k=1;break;}} if(k==1) cout< else cout<<"NO"; return 0; } 第3题: 编写程序,输入若干学生的成绩,计算平均分,并输出低于平均分的学生成绩。输入分2行:第一行为n的值,第二行为n个数;输出分2行:第一行为平均分,第二行为低于平均分的成绩。 样例输入: 5 60 70 80 90 100 样例输出: 80 60 70 #include int main() {int a[100],n,i,m=0,b[100]; double s=0,o; cin>>n; cout< cin>>a[i]; for(i=1;i<=n;i++) s+=a[i]; o=s/n; for(i=1;i<=n;i++) {if(a[i] {m++;b[m]=a[i];} } cout< for(i=1;i<=m;i++) cout< return 0;} 第4题: 编写程序,将一个数组中的数循环左移。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5 1 5 3 2 0 样例输出:5 3 2 0 1 #include int main() {int a[50],i,n,first; cin>>n; for(i=0;i cin>>a[i]; first=a[0]; for(i=0;i<=n-2;i++) {a[i]=a[i+1];} a[n-1]=first; for(i=0;i cout< return 0;} 第5题: 编写程序,将任意n个数按从大到小的顺序排序。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5 1 5 3 2 0 样例输出:5 3 2 1 0 #include int main() {int n,i,j,k,t,a[50],s; cin>>n; for(i=0;i cin>>a[i]; for(k=0;k<=n-2;k++) {t=k; for(j=k+1;j<=n-1;j++) if(a[j]>a[t]) t=j; if(t!=k) s=a[t],a[t]=a[k],a[k]=s; } for(i=0;i cout< return 0;} 第6题: 编写程序,从任意n个数中找出最大数和最小数,并将它们相互交换后输出。输入分2行:第一行为n的值,第二行为n个数。 样例输入: 5 1 5 3 2 0 样例输出:1 0 3 2 5 #include int main() {int a[50],n,x=0,w,i; cin>>n; for(i=0;i cin>>a[i]; w=0; for(i=1;i<=n-1;i++) {if(a[i]>a[w]) w=i;} for(i=1;i<=n-1;i++) {if(a[i]<=a[x]) x=i;} i=a[w];a[w]=a[x];a[x]=i; for(i=0;i cout< return 0;} 第1题: 从任意一组正整数中找出素数,计算素数之和,并按从大到小顺序排序。输出分2行:第一行为素数之和,第二行为素数排序结果。样例输入:1 3 5 2 0 样例输出: 10 5 3 2 #include int prime(int x) {int i; if(x<2)return 0; for(i=2;i if(x%i==0) return 0; return 1; } int main() {int a[100],i,n,k,s,j,b[100],m; k=0;s=0; n=0; for(;;) { cin>>a[n]; if(a[n]==0)break; n++; } for(i=0;i if(prime(a[i])) {s=s+a[i]; b[k]=a[i];k++;} cout< for(i=0;i for(j=i+1;j if(b[i] {m=b[i]; b[i]=b[j];b[j]=m;} for(i=0;i cout< return 0; } 第2题: 编写程序,输出矩阵(3行3列)的右下三角。 样例输入: 1 2 3 4 5 6 7 8 9 样例输出: 3 5 6 7 8 9 #include int main() {int a[3][3],i,j; for(i=0;i<=2;i++) for(j=0;j<=2;j++) cin>>a[i][j]; for(i=0;i<=2;i++) {cout< for(j=0;j<=2;j++) {if(j<2-i) cout<<" "<<" "; else cout< } return 0;} 第3题: 编写程序,输出矩阵(3行3列)的右上三角。 样例输入: 1 2 3 4 5 6 7 8 9 样例输出: 1 2 3 5 6 9 #include int main() {int a[3][3],i,j; for(i=0;i<=2;i++) for(j=0;j<=2;j++) cin>>a[i][j]; for(i=0;i<=2;i++) {cout< for(j=0;j<=2;j++) {if(i>j) cout<<" "<<" "; else cout< } return 0;} 第4题:编写程序,计算矩阵(3行3列)的转置。样例输入: 1 2 3 4 5 6 7 8 9 样例输出: 1 4 7 2 5 8 3 6 9 第5题: 编写程序,从任意n个数(升序排列)中插入某一个数k。输入分3行:第一行为n的值代表数列中数的个数,第二行为n个数,第三行为要插入的数k。 样例输入: 5 1 2 3 4 6 样例输出:0 1 2 3 4 6 样例输入: 5 1 2 3 4 6 5 样例输出:1 2 3 4 5 6 样例输入: 5 1 2 3 4 6 8 样例输出:1 2 3 4 6 8 #include int main() {int a[3][3],i,j; for(i=0;i<=2;i++) for(j=0;j<=2;j++) cin>>a[i][j]; for(j=0;j<=2;j++) {cout< for(i=0;i<=2;i++) cout< return 0;} 第6题: 编写程序,从任意n个数(允许有重复)中删除某一个数k。输入分3行:第一行为n 的值代表数列中数的个数,第二行为n个数, 第三行为要删除的数k。 样例输入: 5 1 1 3 5 2 1 样例输出:3 5 2 样例输入: 5 1 1 3 5 2 4 样例输出:1 1 3 5 2 #include int main() {int a[50],n,x,i,k,f,gs=0; cin>>n; for(i=0;i cin>>a[i]; cin>>x; for(i=0;i {if(x==a[i]) gs++;} while(gs>0) {f=0; for(i=0;i<=n-1;i++) if(x==a[i]) {f=1;break;} if(f) {for(k=i+1;k<=n-1;k++) a[k-1]=a[k];} n--; gs--; } for(i=0;i cout< return 0;} 第7题: 编写程序,计算二维数组中各列之和。输入分m+1行:第一行为m和n的值,以下m 行代表二维数组,其中每一行包括n个数。样例输入: 3 3 1 2 3 4 5 6 7 8 9 样例输出:12 15 18 #include int main() {int a[100][100],m,n,i,j,sum; cin>>m>>n; for(i=0;i for(j=0;j cin>>a[i][j]; for(j=0;j {sum=0; for(i=0;i {sum=a[i][j]+sum;} cout< return 0;} 第8题: 编写程序,找出m行n列的二维数组中所有元素的最大值。输入分m+1行:第一行为m和n的值,以下m行代表二维数组,其中每一行包括n个数。 样例输入: 3 3 1 2 3 4 5 6 7 8 9 样例输出:9 #include int main() {int a[100][100],m,n,i,j,max; cin>>m>>n; for(i=0;i for(j=0;j cin>>a[i][j]; max=a[0][0]; for(i=1;i for(j=1;j {if(a[i][j]>max) max=a[i][j];} cout< return 0;} 第1题: 编写程序,输入字符串(不包含空格)和子串,统计该字符串中指定子串的个数。 样例输入:abababab bab 样例输出:3 #include int main() {char a[20],b[20]; int i=0,j=0,m,n,t=0,s=0,k; cin>>a>>b; while(a[i]!=0) {i++;} m=i;i=0; while(b[j]!=0) {j++;} n=j;j=0; while(a[i]!=0) {if(b[j]==a[i]) {k=i; while(j {if(b[j+1]==a[i+1]) j++,i++,s++; else j++;} if(s==n-1) t++,i=k+1,j=0,s=0; else i=k+1;j=0,s=0; } else i++; j=0,s=0;} cout< return 0; } 第2题: 编写程序,输入字符串(包含多个‘*’),删除所有除前导和尾部以外的‘*’。 样例输入:*******A*BC*DEF*G**** 样例输出:*******ABCDEFG**** #include #include int main() {char a[50],b[50]; gets(a); int i,j=0,k=0,l=0,c=0; for(i=0;;i++) {if(a[i]!='\0') j++; else break;} for(i=0;i {if(a[i]=='*') {l++;} else break;} for(i=j-1;i>=0;i--) {if(a[i]=='*') k++; else break;} for(c=0;c b[c]='*'; for(i=l;i {if(a[i]!='*') {b[c]=a[i]; c++; }} for(i=0;i {b[c]='*'; c++;} for(i=0;i cout< return 0;} 第3题: 编写程序,输入字符串(包含多个‘*’),删除所有前导和尾部的‘*’。 样例输入:*******A*BC*DEF*G**** 样例输出:A*BC*DEF*G #include int main() {char a[40]; int i=0,n; cin>>a; while(a[i]!=0) {i++;} n=i;i=0; while(a[i]!=0&&a[i]==42) {while(i+1 {a[i]=a[i+1]; i++;} a[i]=42; i=0;} i=n-1; while(a[i]==42) {i--;} a[i+1]=0;