C上机作业答案讲解Word文件下载.docx
《C上机作业答案讲解Word文件下载.docx》由会员分享,可在线阅读,更多相关《C上机作业答案讲解Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
2.编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积。
#definePI3.14159
{floatr,h,v;
Pleaseinputrh:
r>
h;
v=PI*r*r*h;
v="
v<
3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area.
若则area=
math.h>
{floata,b,c,p,area;
Pleaseinputabc:
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));
area="
area<
}
elsecout<
inputerror!
4.输入a,b,c的值,求一元二次方程:
的解。
{floata,b,c,p,x1,x2;
p=b*b-4*a*c;
if(p>
=0)
{x1=(-b+sqrt(p))/(2*a);
x2=(-b-sqrt(p))/(2*a);
x1="
x1<
x2="
x2<
NOrealroot!
运行结果
第二章作业答案
1.输入一个整数,计算该数的阶乘。
{inti,n,p=1;
n;
for(i=1;
i<
=n;
i++)
p=p*i;
n<
!
="
p<
2.连续输入若干个整数,输入0结束。
统计其正整数的个数,并计算其中正整数的总和、平均值并输出。
{inta,n=0;
floatavg,sum=0;
do
{cin>
a;
if(a>
0){n++;
sum+=a;
}while(a!
=0);
avg=sum/n;
n="
avg="
avg<
sum="
sum<
3.输出所有的水仙花数。
所谓“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。
如153=13+53+33
程序代码:
{inta,b,c,n;
for(n=100;
1000;
n++)
{a=n%10;
b=n%100/10;
c=n/100;
if(n==a*a*a+b*b*b+c*c*c)
cout<
第3章作业答案
1.
编写程序输出两个数的最大公约数和最小公倍数。
2.
计算100---300之内所有素数的和。
3.
计算s=1-1/3+1/5-1/7+…1/99
4.N是一个四位数,它的9倍恰好是其反序数(例如:
123的反序数是321),求N的值。
第一题:
//用辗转相除法求最大公约数;
{intm,n,r,temp;
m>
temp=m*n;
while(r=m%n)
{m=n;
n=r;
最大公约数="
最小公倍数="
temp/n<
第二题:
{intn,i,s=0;
300;
{for(i=2;
if(n%i==0)break;
if(i==n)s+=n;
s="
s<
第三题:
{intn=1;
floats=0,f=1,p;
for(n=1;
100;
n+=2)
{p=f/n;
s=s+p;
f=-f;
第四题:
{intn,a,b,c,d;
for(n=1000;
10000;
{a=n/1000;
//千位
b=n%1000/100;
//百位
c=n%100/10;
//十位
d=n%10;
//个位
if(9*n==d*1000+c*100+b*10+a)
第四次作业答案
编写两个函数,分别计算两个整数的最大公约数和最小公倍数,并在主函数中调用该函数,并输出结果。
编写一个判断素数的函数,函数原型为:
intisprime(intn),在主函数中调用该函数,计算100—1000之间所有素数的和。
编写一个函数,f(n)=,并在主函数中输出f(10)的值。
(说明自然对数ln的函数原型为doublelog(floatx).
4.
编写一个计算阶乘的函数,函数原型为intfac(intn),在主函数中调用该函数,计算:
S=M!
+N!
.
//求最大公约数
intgcd(intm,intn)
{intr;
{
m=n;
n=r;
returnn;
//求最小公倍数
intlcd(intm,intn)
{returnm*n/gcd(m,n);
{inta,b;
b;
最大公约数为:
gcd(a,b)<
最小公倍数为:
lcd(a,b)<
//判断素数的函数,若n为素数,函数返回1,否则返回0;
intisprime(intn)
{inti;
for(i=2;
if(n%i==0)return0;
return1;
{inti,s=0;
for(i=100;
if(isprime(i))s=s+i;
doublef(intn)
doubles=0;
s=s+log(i);
returnsqrt(s);
{
f(10)<
//用递归编写计算阶乘的函数
intfac(intn)
{if(n==0||n==1)return1;
elsereturnn*fac(n-1);
{intM,N,s;
M>
N;
s=fac(M)+fac(N);
M<
+"
N<
第五章
第六次上机内容
1、
定义一个3行4列的数组,计算所有数据的平均值,并输出最大值和最小值和它的行号和列号。
2、
编写程序,实现一个一维数组的反序存放。
3、
用选择排序法实现10整数由小到大排序。
4、
用冒泡法实现10整数由大到小排序。
iostream.h>
{inta[3][4]={{12,6,25,10},{14,9,20,16},{30,22,5,21}};
inti,j,m,n,k,l,max,min;
max=min=a[0][0];
m=n=0;
for(i=0;
3;
for(j=0;
j<
4;
j++)
if(a[i][j]>
max){max=a[i][j];
m=i;
n=j;
elseif(a[i][j]<
min){min=a[i][j];
k=i;
l=j;
max="
max<
行号:
m<
列号:
min="
min<
k<
l<
#defineN6
{inta[N]={12,10,20,21,30,25};
inti,t;
N/2;
{t=a[i];
a[i]=a[N-i-1];
a[N-i-1]=t;
a[i]<
"
co