C语言第五章课后答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return 0;
}
xt5-5
#include <stdio.h>
int main()
{
int a,n,i=1,sn=0,tn=0;
printf("a,n=:");
scanf("%d,%d",&a,&n);
while (i<=n)
{
tn=tn+a; /*赋值后的tn为i个a组成数的值*/
sn=sn+tn; /*赋值后的sn为多项式前i项之和*/
if (n>8) printf(",%d",k9);
if (n>9) printf(",%d",k10);
printf("\n");
}
}
return 0;
}
xt5-9-2
#include <stdio.h>
int main()
{int m,s,i;
for (m=2;m<1000;m++)
{s=0;
for (i=1;i<m;i++)
count++; // count累加1
}
pi=pi*4; //多项式的和pi乘以4,才是π的近似值
printf("pi=%10.8f\n",pi); //输出π的近似值
printf("count=%d\n",count); //输出循环次数
return 0;
}
xt5-3
#include <stdio.h>
{x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=1e-5);
printf("The square root of %5.2fis %8.5f\n",a,x1);
return 0;
}
xt5-14
#include <stdio.h>
#include <math.h>
int main()
return 0;
}
xt5-12
#include <stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/
x2=x1;
day--;
}
printf("total=%d\n",x1);
printf("x=%6.2f\n",x0);
return 0;
}
xt5-16
#include <stdio.h>
int main()
{int i,j,k;
for (i=0;i<=3;i++)
{for (j=0;j<=2-i;j++)
printf(" ");
for (k=0;k<=2*i;k++)
printf("*");
for (n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if (n==i*i*i + j*j*j + k*k*k)
printf("%d ",n);
}
printf("\n");
return 0;
}
xt5-9-1
#define M 1000 /*定义寻找范围*/
printf("A--%c\nB--%c\nC--%c\n",i,j,k);
while(fabs(term)>=1e-8) //检查当前项term的绝对值是否大于或等于10的(-6)次方
{
pi=pi+term; //把当前项term累加到pi中
n=n+2; // n+2是下一项的分母
sign=-sign; // sign代表符号,下一项的符号与上一项符号相反
term=sign/n; //求出下一项的值term
printf("\n");
}
for (i=0;i<=2;i++)
{for (j=0;j<=i;j++)
printf(" ");
for (k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return 0;
}
xt5-17
#include <stdio.h>
int main()
{
char i,j,k; /*是a的对手;j是b的对手;k是c的对手*/
for (i='x';i<='z';i++)
for (j='x';j<='z';j++)
if (i!=j)
for (k='x';k<='z';k++)
if (i!=k && j!=k)
if (i!='x' && k!='x' && k!='z')
{double x1,x0,f,f1;
x1=1.5;
do
{x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
}while(fabs(x1-x0)>=1e-5);
printf("The root of equation is %5.2f\n",x1);
a=a*10;
++i;
}
printf("a+aa+aaa+...=%d\n",sn);
return 0;
}
xt5-6
#include <stdio.h>
int main()
{double s=0,t=1;
int n;
for (n=1;n<=20;n++)
{
t=t*n;
s=s+t;
}
printf("1!+2!+...+20!=%22.15e\n",s);
return 0;
}
xt5-15
#include <stdio.h>
#include <math.h>
int main()
{float x0,x1,x2,fx0,fx1,fx2;
do
{printf("enter x1 & x2:");
scanf("%f,%f",&x1,&x2);
fx1=x1*((2*x1-4)*x1+3)-6;
#include <stdio.h>
int main()
{
int k1,k2,k3,k4,k5,k6,k7=2;a<=M;a++) /* a是2-1000之间的整数,检查它是否完数*/
{n=0; /* n用来累计a的因子的个数*/
s=a; /* s用来存放尚未求出的因子之和,开始时等于a */
printf("它们的最小公约数为:%d\n",p/n);
return 0;
}
xt5-4
#include <stdio.h>
int main()
{
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一行字符:\n");
while((c=getchar())!='\n')
{case 1:
k1=i; break; /*找出的笫1个因子赋给k1 */
case 2:
k2=i; break; /*找出的笫2个因子赋给k2 */
case 3:
k3=i; break; /*找出的笫3个因子赋给k3 */
case 4:
k4=i; break; /*找出的笫4个因子赋给k4 */
case 5:
{s2=s2+k*k;}
for (k=1;k<=n3;k++) /*计算1到10的各倒数和*/
{s3=s3+1/k;}
printf("sum=%15.6f\n",s1+s2+s3);
return 0;
}
xt5-8
#include <stdio.h>
int main()
{
int i,j,k,n;
printf("parcissus numbers are ");
xt5-2
#include <stdio.h>
#include <math.h> //程序中用到数学函数fabs,应包含头文件math.n
int main()
{
int sign=1,count=0; // sign用来表示数值的符号,count用来统计循环次数
double pi=0.0,n=1.0,term=1.0; // pi开始代表多项式的值,最后代表π的值, n代表分母,term代表当前项的值
{
if (c>='a' && c<='z' || c>='A' && c<='Z')
letters++;
else if (c==' ')
space++;
else if (c>='0' && c<='9')
digit++;
else
other++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其它字符数:%d\n",letters,space,digit,other);
for (i=1;i<a;i++) /*检查i是否a的因子*/
if (a%i==0) /*如果i是a的因子*/
{n++; /* n加1,表示新找到一个因子*/
s=s-i; /* s减去已找到的因子,s的新值是尚未求出的因子之和*/
switch(n) /*将找到的因子赋给k1...k9,或k10 */
k5=i; break; /*找出的笫5个因子赋给k5 */
case 6:
k6=i; break; /*找出的笫6个因子赋给k6 */
case 7:
k7=i; break; /*找出的笫7个因子赋给k7 */
case 8:
k8=i; break; /*找出的笫8个因子赋给k8 */
case 9:
k9=i; break; /*找出的笫9个因子赋给k9 */
case 10:
k10=i; break; /*找出的笫10个因子赋给k10 */
}
}
if (s==0)
{
printf("%d ,Its factors are ",a);
if (n>1) printf("%d,%d",k1,k2); /* n>1表示a至少有2个因子*/
if (n>2) printf(",%d",k3); /* n>2表示至少有3个因子,故应再输出一个因子*/
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d,%d,",&n,&m);
if (n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
return 0;
}
xt5-13
#include <stdio.h>
#include <math.h>
int main()
{
float a,x0,x1;
printf("enter a positive number:");
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
do
fx2=x2*((2*x2-4)*x2+3)-6;
}while(fx1*fx2>0);
do
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6;
if ((fx0*fx1)<0)
{x2=x0;
fx2=fx0;
}
else
{x1=x0;
fx1=fx0;
}
}while(fabs (fx0)>=1e-5);
if (n>3) printf(",%d",k4); /* n>3表示至少有4个因子,故应再输出一个因子*/
if (n>4) printf(",%d",k5); /*以下类似*/
if (n>5) printf(",%d",k6);
if (n>6) printf(",%d",k7);
if (n>7) printf(",%d",k8);
return 0;
}
xt5-7
#include <stdio.h>
int main()
{
int n1=100,n2=50,n3=10;
double k,s1=0,s2=0,s3=0;
for (k=1;k<=n1;k++) /*计算1到100的和*/
{s1=s1+k;}
for (k=1;k<=n2;k++) /*计算1到50各数的平方和*/
{
double sn=100,hn=sn/2;
int n;
for (n=2;n<=10;n++)
{
sn=sn+2*hn; /*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
printf("第10次落地时共经过%f米\n",sn);
}
xt5-5
#include <stdio.h>
int main()
{
int a,n,i=1,sn=0,tn=0;
printf("a,n=:");
scanf("%d,%d",&a,&n);
while (i<=n)
{
tn=tn+a; /*赋值后的tn为i个a组成数的值*/
sn=sn+tn; /*赋值后的sn为多项式前i项之和*/
if (n>8) printf(",%d",k9);
if (n>9) printf(",%d",k10);
printf("\n");
}
}
return 0;
}
xt5-9-2
#include <stdio.h>
int main()
{int m,s,i;
for (m=2;m<1000;m++)
{s=0;
for (i=1;i<m;i++)
count++; // count累加1
}
pi=pi*4; //多项式的和pi乘以4,才是π的近似值
printf("pi=%10.8f\n",pi); //输出π的近似值
printf("count=%d\n",count); //输出循环次数
return 0;
}
xt5-3
#include <stdio.h>
{x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=1e-5);
printf("The square root of %5.2fis %8.5f\n",a,x1);
return 0;
}
xt5-14
#include <stdio.h>
#include <math.h>
int main()
return 0;
}
xt5-12
#include <stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/
x2=x1;
day--;
}
printf("total=%d\n",x1);
printf("x=%6.2f\n",x0);
return 0;
}
xt5-16
#include <stdio.h>
int main()
{int i,j,k;
for (i=0;i<=3;i++)
{for (j=0;j<=2-i;j++)
printf(" ");
for (k=0;k<=2*i;k++)
printf("*");
for (n=100;n<1000;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if (n==i*i*i + j*j*j + k*k*k)
printf("%d ",n);
}
printf("\n");
return 0;
}
xt5-9-1
#define M 1000 /*定义寻找范围*/
printf("A--%c\nB--%c\nC--%c\n",i,j,k);
while(fabs(term)>=1e-8) //检查当前项term的绝对值是否大于或等于10的(-6)次方
{
pi=pi+term; //把当前项term累加到pi中
n=n+2; // n+2是下一项的分母
sign=-sign; // sign代表符号,下一项的符号与上一项符号相反
term=sign/n; //求出下一项的值term
printf("\n");
}
for (i=0;i<=2;i++)
{for (j=0;j<=i;j++)
printf(" ");
for (k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return 0;
}
xt5-17
#include <stdio.h>
int main()
{
char i,j,k; /*是a的对手;j是b的对手;k是c的对手*/
for (i='x';i<='z';i++)
for (j='x';j<='z';j++)
if (i!=j)
for (k='x';k<='z';k++)
if (i!=k && j!=k)
if (i!='x' && k!='x' && k!='z')
{double x1,x0,f,f1;
x1=1.5;
do
{x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
}while(fabs(x1-x0)>=1e-5);
printf("The root of equation is %5.2f\n",x1);
a=a*10;
++i;
}
printf("a+aa+aaa+...=%d\n",sn);
return 0;
}
xt5-6
#include <stdio.h>
int main()
{double s=0,t=1;
int n;
for (n=1;n<=20;n++)
{
t=t*n;
s=s+t;
}
printf("1!+2!+...+20!=%22.15e\n",s);
return 0;
}
xt5-15
#include <stdio.h>
#include <math.h>
int main()
{float x0,x1,x2,fx0,fx1,fx2;
do
{printf("enter x1 & x2:");
scanf("%f,%f",&x1,&x2);
fx1=x1*((2*x1-4)*x1+3)-6;
#include <stdio.h>
int main()
{
int k1,k2,k3,k4,k5,k6,k7=2;a<=M;a++) /* a是2-1000之间的整数,检查它是否完数*/
{n=0; /* n用来累计a的因子的个数*/
s=a; /* s用来存放尚未求出的因子之和,开始时等于a */
printf("它们的最小公约数为:%d\n",p/n);
return 0;
}
xt5-4
#include <stdio.h>
int main()
{
char c;
int letters=0,space=0,digit=0,other=0;
printf("请输入一行字符:\n");
while((c=getchar())!='\n')
{case 1:
k1=i; break; /*找出的笫1个因子赋给k1 */
case 2:
k2=i; break; /*找出的笫2个因子赋给k2 */
case 3:
k3=i; break; /*找出的笫3个因子赋给k3 */
case 4:
k4=i; break; /*找出的笫4个因子赋给k4 */
case 5:
{s2=s2+k*k;}
for (k=1;k<=n3;k++) /*计算1到10的各倒数和*/
{s3=s3+1/k;}
printf("sum=%15.6f\n",s1+s2+s3);
return 0;
}
xt5-8
#include <stdio.h>
int main()
{
int i,j,k,n;
printf("parcissus numbers are ");
xt5-2
#include <stdio.h>
#include <math.h> //程序中用到数学函数fabs,应包含头文件math.n
int main()
{
int sign=1,count=0; // sign用来表示数值的符号,count用来统计循环次数
double pi=0.0,n=1.0,term=1.0; // pi开始代表多项式的值,最后代表π的值, n代表分母,term代表当前项的值
{
if (c>='a' && c<='z' || c>='A' && c<='Z')
letters++;
else if (c==' ')
space++;
else if (c>='0' && c<='9')
digit++;
else
other++;
}
printf("字母数:%d\n空格数:%d\n数字数:%d\n其它字符数:%d\n",letters,space,digit,other);
for (i=1;i<a;i++) /*检查i是否a的因子*/
if (a%i==0) /*如果i是a的因子*/
{n++; /* n加1,表示新找到一个因子*/
s=s-i; /* s减去已找到的因子,s的新值是尚未求出的因子之和*/
switch(n) /*将找到的因子赋给k1...k9,或k10 */
k5=i; break; /*找出的笫5个因子赋给k5 */
case 6:
k6=i; break; /*找出的笫6个因子赋给k6 */
case 7:
k7=i; break; /*找出的笫7个因子赋给k7 */
case 8:
k8=i; break; /*找出的笫8个因子赋给k8 */
case 9:
k9=i; break; /*找出的笫9个因子赋给k9 */
case 10:
k10=i; break; /*找出的笫10个因子赋给k10 */
}
}
if (s==0)
{
printf("%d ,Its factors are ",a);
if (n>1) printf("%d,%d",k1,k2); /* n>1表示a至少有2个因子*/
if (n>2) printf(",%d",k3); /* n>2表示至少有3个因子,故应再输出一个因子*/
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d,%d,",&n,&m);
if (n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
return 0;
}
xt5-13
#include <stdio.h>
#include <math.h>
int main()
{
float a,x0,x1;
printf("enter a positive number:");
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
do
fx2=x2*((2*x2-4)*x2+3)-6;
}while(fx1*fx2>0);
do
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6;
if ((fx0*fx1)<0)
{x2=x0;
fx2=fx0;
}
else
{x1=x0;
fx1=fx0;
}
}while(fabs (fx0)>=1e-5);
if (n>3) printf(",%d",k4); /* n>3表示至少有4个因子,故应再输出一个因子*/
if (n>4) printf(",%d",k5); /*以下类似*/
if (n>5) printf(",%d",k6);
if (n>6) printf(",%d",k7);
if (n>7) printf(",%d",k8);
return 0;
}
xt5-7
#include <stdio.h>
int main()
{
int n1=100,n2=50,n3=10;
double k,s1=0,s2=0,s3=0;
for (k=1;k<=n1;k++) /*计算1到100的和*/
{s1=s1+k;}
for (k=1;k<=n2;k++) /*计算1到50各数的平方和*/
{
double sn=100,hn=sn/2;
int n;
for (n=2;n<=10;n++)
{
sn=sn+2*hn; /*第n次落地时共经过的米数*/
hn=hn/2; /*第n次反跳高度*/
}
printf("第10次落地时共经过%f米\n",sn);