C上机作业答案
- 格式:doc
- 大小:69.50 KB
- 文档页数:37
学而不思则惘,思而不学则殆
第一章作业答案.
1. 编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F-32)
程序代码:
#include
using namespace std;
void main()
{float F,C;
cout<<"Please input F:";
cin>>F;
C=5*(F-32)/9.0;
cout<<"C="<
}
运行结果:
2.编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积。
程序代码:
#include
using namespace std;
#define PI 3.14159
void main()
{float r,h,v; 学而不思则惘,思而不学则殆
cout<<"Please input r h:";
cin>>r>>h;
v=PI*r*r*h;
cout<<"v="<
}
运行结果:
3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area.
若 则area=
程序代码:
#include
#include
using namespace std;
void main()
{float a,b,c,p,area;
cout<<"Please input a b c:";
cin>>a>>b>>c;
if((a+b>c)&&(b+c>a)&&(a+c>b))
{p=(a+b+c)/2.0;
area=sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"area="<
}
else cout<<"input error!"<
}
运行结果:
4.输入a,b,c的值,求一元二次方程:
的解。
程序代码:
#include
#include
using namespace std;
void main()
{float a,b,c,p,x1,x2;
cout<<"Please input a b c:";
cin>>a>>b>>c;
p=b*b-4*a*c;
if(p>=0)
{x1=(-b+sqrt(p))/(2*a);
x2=(-b-sqrt(p))/(2*a);
cout<<"x1="<
cout<<"x2="<
}
else cout<<"NO real root!";
}
运行结果 学而不思则惘,思而不学则殆
第二章作业答案
1. 输入一个整数,计算该数的阶乘。
程序代码:
#include
using namespace std;
void main()
{int i,n,p=1;
cin>>n;
for(i=1;i<=n;i++)
p=p*i;
cout<
}
运行结果:
2. 连续输入若干个整数,输入0结束。统计其正整数的个数,并计算其中正整数的总和、平均值并输出。
程序代码:
#include
using namespace std;
void main()
{int a,n=0; 学而不思则惘,思而不学则殆
float avg,sum=0;
do
{cin>>a;
if(a>0){n++;sum+=a;}
}while(a!=0);
avg=sum/n;
cout<<"n="<
cout<<"avg="<
cout<<"sum="<
}
3. 输出所有的水仙花数。所谓“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。如153=13+53+33
程序代码:
#include
using namespace std;
void main()
{int a,b,c,n;
for(n=100;n<1000;n++)
{a=n%10;
b=n%100/10;
c=n/100; 学而不思则惘,思而不学则殆
if(n==a*a*a+b*b*b+c*c*c)
cout<
}
}
运行结果:
第三章作业答案
1. 编写程序输出两个数的最大公约数和最小公倍数。
2. 计算100---300之内所有素数的和。
3. 计算s=1-1/3+1/5-1/7+…1/99
4. N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。
第一题:
程序代码:
//用辗转相除法求最大公约数;
#include
using namespace std;
void main()
{int m,n,r,temp;
cin>>m>>n;
temp=m*n;
while(r=m%n) 学而不思则惘,思而不学则殆
{m=n;
n=r;
}
cout<<"最大公约数="<
cout<<"最小公倍数="<
}
运行结果:
第二题:
程序代码:
#include
using namespace std;
void main()
{int n,i,s=0;
for(n=100;n<300;n++)
{for(i=2;i
if(n%i==0)break;
if(i==n)s+=n;
}
cout<<"s="<
}
运行结果:
第三题: 学而不思则惘,思而不学则殆
程序代码:
#include
using namespace std;
void main()
{int n=1;
float s=0,f=1,p;
for(n=1;n<100;n+=2)
{p=f/n;
s=s+p;
f=-f;
}
cout<<"s="<
}
运行结果:
第四题:
程序代码:
#include
using namespace std;
void main()
{int n,a,b,c,d; 学而不思则惘,思而不学则殆
for(n=1000;n<10000;n++)
{a=n/1000; //千位
b=n%1000/100;//百位
c=n%100/10; //十位
d=n%10; //个位
if(9*n==d*1000+c*100+b*10+a)
cout<
}
}
运行结果:
第四次作业答案
1. 编写两个函数,分别计算两个整数的最大公约数和最小公倍数,并在主函数中调用该函数,并输出结果。
2. 编写一个判断素数的函数,函数原型为: int isprime(int n),在主函数中调用该函数,计算100—1000之间所有素数的和。
3. 编写一个函数,f(n)= ,并在主函数中输出f(10)的值。
(说明自然对数 ln的函数原型为 double log(float x) .
4. 编写一个计算阶乘的函数,函数原型为 int fac(int n),在主函数中调用该函数,计算:
S=M!+N! .
第一题: 学而不思则惘,思而不学则殆
程序代码:
#include
using namespace std;
//求最大公约数
int gcd(int m,int n)
{int r;
while(r=m%n)
{
m=n;n=r;
}
return n;
}
//求最小公倍数
int lcd(int m,int n)
{return m*n/gcd(m,n);
}
void main()
{int a,b;
cin>>a>>b;
cout<<"最大公约数为:"<
cout<<"最小公倍数为:"<