>a>>b">

选择、循环结构练习题12 - 及答案

  • 格式:docx
  • 大小:34.86 KB
  • 文档页数:11

1.输入三个整数x,y,z,把这三个数由小到大输出。

#include<iostream>using namespace std;int main(){int a,b,c,t;cout<<"请输入三个整数:";cin>>a>>b>>c;if(a>b){t=a;a=b;b=a;}if(a>c){t=a;a=c;c=t;}if(b>c){t=c;c=b;b=t;}cout<<a<<b<<c<<endl;return 0;}2.输入任意10个数,求他们的平均值。

#include<iostream>using namespace std;int main(){int b;double sum=0.0,a[10];cout<<"请输入十个数:";for(b=0;b<10;b++){cin>>a[b];sum+=a[b];}cout<< sum/10<<endl;return 0;}3.从键盘输入三个整数,输出最大的那个数。

#include<iostream>using namespace std;int compare(int a,int b){if(a>b)return a;elsereturn b;}int main(){int a[3],d;cout<<"请输入三个整数:";for(d=0;d<3;d++){cin>>a[d];}cout<<compare(compare(a[0],a[1]),a[2])<<endl;return 0;}4.输入任意一个三位数,将其各位数字反序输出#include<iostream>using namespace std;int main(){int a,b,c,d;cout<<"请输入一个三位数:";cin>>a;b=a%10;c=a/10%10;d=a/100;cout<<b<<c<<d<<endl;return 0;}5.编写程序输出如下图形:** ** * ** * * *#include<iostream>using namespace std;void compare(int a){int b=1;for(;b<=a;b++){cout<<"*";}cout<<endl;}int main(){int a;for(a=1;a<5;a++){compare(a);}return 0;}6.输入一个三位数,判断是否是一个“水仙花数”,水仙花数是指3位数的各位数字的立方和等于这个三位数本身。

例如153=1*1*1+5*5*5+3*3*3。

#include<iostream>using namespace std;int lifang(int a){int b=3,c=1;while(b--)c*=a;return c;}int main(){int a,b,c,d;cout<<"请输入一个三位数:";cin>>a;if(a<99||a>999)cout<<"输入错误";else{d=a/100;c=a/10%10;b=a%10;}if(a==lifang(b)+lifang(c)+lifang(d))cout<<"这是个水仙花数";elsecout<<"这不是个水仙花数";return 0;}7.输入年号,判断它是否为闰年#include<iostream>using namespace std;int main(){int year;bool isLeapYear;cout<<"Enter the year:";cin>>year;isLeapYear=((year%4==0 && year%100!=0)||(year%400==0));if(isLeapYear)cout<<year<<" is a leap year"<<endl;elsecout<<year<<"is not a leap year"<<endl;return 0;}8.从键盘输入一个正整数n,计算该数的各位数字之和并输出。

例如,输入数是5246,则计算5+2+4+6=17并输出。

#include<iostream>using namespace std;int main(){int a,b,c,sum=0;;cout<<"请输入一个正整数:";cin>>a;for(c=0;c<=sizeof(a);c++){b=a%10;sum+=b;a=a/10;}cout<<sum<<endl;return 0;}9.输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。

#include<iostream>using namespace std;void main(){int a,b,c,d;char ch;a=b=c=d=0;while((ch=getchar())!='\n'){if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'){a++;}else if(ch>='0'&&ch<='9'){b++;}else if(ch=' '){c++;}elsed++;}cout<<"字符"<<a<<endl;cout<<"数字"<<b<<endl;cout<<"空格"<<c<<endl;cout<<"other"<<d<<endl;}11.编写程序实现输入整数n,输出如下所示由数字组成的菱形。

(图中n=5)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 11#include<iostream>using namespace std;void jixu(int n){int a=1;n-=1;while(n>=2){--n;cout<<n;}cout<<endl;}int main(){int a,b,c=1;cout<<"请输入一个数:";cin>>a;while(c<=a){for(b=1;b<=c;b++){cout<<b;}jixu(b);c++;}c-=2;while(c>0&&c<a){for(b=1;b<=c;b++){cout<<b;}jixu(b);c--;}return 0;}12.求1!+2!+…10!的和。

#include<iostream>using namespace std;int jixu(int n){int a=1,k=1;while(a<=n){k*=a;a++;}return k;}int main(){int a,sum=0;for(a=1;a<=10;a++){sum+=jixu(a);}cout<<sum<<endl;return 0;}13.有分数序列2/1,3/2,5/3,8/5,13/8,21/13…求这个数列的前20项和#include<iostream>using namespace std;int main(){int a;double sum=0.0,b=2.0,c=1.0,t;for(a=1;a<=20;a++){sum+=b/c;t=b;b=b+c;c=t;}cout<<sum<<endl;return 0;}14.输出显示1~100之间可以被13整除的所有整数,#include<iostream>using namespace std;void jixu(int n){if(n%13==0)cout<<n<<endl;}int main(){int a;for(a=1;a<=100;a++)jixu(a);return 0;}15.键盘输入0-6之间的整数,分别代表每周的星期日、星期一、…、星期六#include<iostream>using namespace std;int main(){int a;cout<<"请输入一个0-6之间的数字:"<<endl;cin>>a;if(a<0||a>6)cout<<"输入错误";elseswitch(a){case 0:cout<<"SUNDAY"<<endl;break;case 1:cout<<"MONDAY"<<endl;break;case 2:cout<<"TUESDAY"<<endl;break;case 3:cout<<"THURSDAY"<<endl;break;case 4:cout<<"WEDNESDAY"<<endl;break;case 5:cout<<"FRIDAY"<<endl;break;case 6:cout<<"SATURDAY"<<endl;break;}return 0;}16.某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。