c++ 1
(二)程序设计题
1用三种循环语句来分别实现输出10~50之间的3的倍数。
#include<iostream>
using namespace std;
int main()
{
int i;
i=12;
while(i<50)
{
if(i%3==0)
cout<<i<<' ';
i++;
}
cout<<endl;
i=12;
do{
if(i%3==0)
cout<<i<<' ';
i++;
}while(i<50);
cout<<endl;
for(i=12;i<50;i++)
{
if(i%3==0)
cout<<i<<' ';
}
cout<<endl;
return 0;
}
2从键盘上读入两数,比较两个数的大小,并按从小到大的次序输出。
#include<iostream>
using namespace std;
int main()
{
int x,y;
cout<<"please input two integers:"<<endl;
cin>>x;
cout<<endl;
cin>>y;
if(x<y)
cout<<x<<endl<<y;
else
cout<<y<<endl<<x;
return 0;
}
3输出1到100的偶数,一行5个。
#include<iostream>
using namespace std;
int main()
{
int i,n=0;
for(i=2;i<=100;i=i+2)
{
cout<<i<<' ';
n=n+1;
if(n%5==0)
cout<<endl;
}
return 0;
}
4打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”,因为153=13+53+33。
#include<iostream>
using namespace std;
int main()
{
int a,b,c,i;
cout<<"the numbers are as follow:"<<endl;
for(i=100;i<1000;i++)
{
a=i%10;
b=i/10%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
cout<<i<<endl;
}
return 0;
}
5打印一个三角形的1~9的乘法表。
#include<iostream>
using namespace std;
int main()
{
int i,j,sum;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
sum=i*j;
cout<<i<<'*'<<j<<'='<<sum<<' ';
if((j+1)>i)
break;
}
cout<<endl;
}
return 0;
}
6、写一个程序,100~200间的所有素数 。
#include<iostream>
using namespace std;
int main()
{
int i,m,n=0;
cout<<"the result is:"<<endl;
for(m=100;m<=200;m++)
{
for(i=2;i<=m;i++)
if(m%i==0)
break;
if(i==m)
{ cout<<m<<' ';
n++;
if(n%3==0)
cout<<endl;}
}
return 0;
}
7给出一个百分制的成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
#include<iostream>
using namespace std;
int main()
{
int i;
cout<<"please input the score:"<<endl;
cin>>i;
cout<<"the level is:"<<endl;
if(i>=90)
cout<<'A';
if(i>=80&&i<90)
cout<<'B';
if(i>=70&&i<80)
cout<<'C';
if(i>=60&&i<70)
cout<<'D';
if(i<60)
cout<<'E';
cout<<endl;
return 0;
}
8求(即求1!+2!+3!+4!+……+10!)。
#include<iostream>
using namespace std;
int fun(int n);
int main()
{
int i,sum=0;
for(i=1;i<=10;i++)
sum=sum+fun(i);
cout<<"1!+2!+3!+...+10!="<<sum<<endl;
return 0;
}
int fun(int n)
{
int sum=1,i=1;
for(i=1;i<=n;i++)
sum=sum*i;
return sum;
}
9
求1+……的和。
#include<iostream>
using namespace std;
int fun(int n);
int main()
{
int i;
double sum=0.0;
for(i=1;i<=20;i++)
sum=sum+1.0/i;
cout<<"1+1/2+1/3+...+1/20="<<sum<<endl;
return 0;
}
10有一分数序列,,,,,……,求出这个数列的前20项之和。
#include <iostream>
using namespace std;
int main ()
{
int a,b,i,temp;
a=1;
b=2;
double c,sum;
sum=0.0;
for(i=0;i<20;i++)
{
c=(double)b/a;
sum+=c;
temp=b;
b=a+b;
a=temp;
}
cout<<"2/1+3/2+...the sum of the 20 first items is "<<sum<<endl;
return 0;
}
11、一个10个整数的数组(34,91,83,56,29,93,56,12,88,72),找出最小数和其下标,并在主函数中打印最小数和下标。
#include <iostream>
using namespace std;
int main ()
{
int s[10]={34,91,83,56,29,93,56,12,88,72};
int min,a,i;
min=s[0];
a=0;
for(i=0;i<10;i++)
{
if(min>s[i+1])
{
min=s[i+1];
a=i+1;
}
}
cout<<"the minimum number is:"<<min<<endl;
cout<<"the order number of the minmimum is:"<<a+1<<endl;
return 0;
}
12、编程求矩阵的加法:。
#include <iostream>
using namespace std;
int main ()
{
int a1[3][3]={{5,7,8},{2,-2,4},{1,1,1}};
int a2[3][3]={{4,-2,3},{3,9,4},{8,-1,2}};
int i,j;
int a3[3][3];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
a3[i][j]=a1[i][j]+a2[i][j];
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<a1[i][j]<<" ";
cout<<endl;
}
cout<<"+"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<a2[i][j]<<" ";
cout<<endl;
}
cout<<"="<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<a3[i][j]<<" ";
cout<<endl;
}
return 0;
}
13、编写一个程序,用来分别求2个整数、3个整数、2个双精度数和3个双精度数的最大值。要求使用重载函数来完成。
#include <iostream>
using namespace std;
int max1(int x,int y)
{
if(x>y)
return x;
else return y;
}
double max1(double x,double y)
{
if(x>y)
return x;
else return y;
}
int max2(int x,int y,int z)
{
int temp;
temp=x;
if(temp<y)
temp=y;
if(temp<z)
temp=z;
return temp;
}
double max2(double x,double y,double z)
{
int temp;
temp=x;
if(temp<y)
temp=y;
if(temp<z)
temp=z;
return temp;
}
int main ()
{
int a1,a2,a3;
double b1,b2,b3;
cout<<"a1=";
cin>>a1;
cout<<"a2=";
cin>>a2;
cout<<"the max is;"<<max1(a1,a2)<<endl;
cout<<"a3=";
cin>>a3;
cout<<"the max is;"<<max2(a1,a2,a3)<<endl;
cout<<"b1=";
cin>>b1;
cout<<"b2=";
cin>>b2;
cout<<"the max is;"<<max1(b1,b2)<<endl;
cout<<"b3=";
cin>>b3;
cout<<"the max is;"<<max2(b1,b2,b3)<<endl;
return 0;
}
14、编写一个程序,计算并输出Fibonacci数列的前n项的值,n是用户由键盘的输入值。
#include <iostream>
using namespace std;
int main()
{
int n,a,b,c,i;
int fibonacci[100];
cout<<"please input the number:";
cin>>n;
a=1;
b=2;
fibonacci[0]=1;
fibonacci[1]=2;
for(i=2;i<100;i++)
{
c=a+b;
a=b;
b=c;
fibonacci[i]=c;
}
cout<<"the first "<<n<<" numbers are :"<<endl;
for(i=0;i<n;i++)
cout<<fibonacci[i]<<endl;
return 0;
}