《C语言程序设计》第四章练习与习题答案

【练4-1】
0.0000;无法通过while循环语句。会;循环次数减少。
【练4-2】
没有变化。0.00;负数不符合循环语句条件,直接跳出语句。
【练4-3】
#include<stdio.h>
int main(void)
{
int flag,denominator;
double eps,item,s;
printf("Enter eps:");
scanf("%lf",&eps);
flag=1;
s=0;
denominator=1;
item=1;
while(item>=eps)
{
s=s+flag*item;
denominator=denominator+3;
item=1/denominator;
flag=-flag;
}
s=s+flag*item;
printf("s = %.2f\n",s);
return 0;
}
【练4-4】
#include<stdio.h>
int main(void)
{
int grade,count;
double sum;
printf("Enter grades:");
scanf("%d",&grade);
sum=0;
count=0;
while(grade>=0)
{
sum=sum+grade;
count++;
scanf("%d",&grade);
}
if(count!=0)
{
printf("The average is %.2f\n",sum/count);
}
else
{
printf("The average is 0\n");
}
return 0;
}
【练4-5】
会;循环语句会多进行一次。在while语句末尾加"if(number==0)break;"。
【练4-6】
不可以;会重复打印语句。
【练4-7】
#include<stdio.h>
int main(void)
{
int i,j,n,m;
printf("Enter n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Enter #%d number:",i);
scanf("%d",&m);
for(j=2;j<=m/2;j++)
{
if(m%j==0)
{
break;
}
}
if(j>m/2)
{
printf("%d is prime number.\n",m);
}
else
{
printf("%d isn't prine number.\n",m);
}
}
return 0;
}
【练4-8】
#include<stdio.h>
int main(void)
{
int i,j,n;
double item,sum;
printf("Enter n:");
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++)
{
item=1;
for(j=1;j<=i;j++)
{
item=item*j;
}
sum=sum+1/item;
}
printf("e = %.2f\n",sum);
return 0;
}
【练4-9】
最高分是第一个输入的成绩;加一个if语句。
【练4-10】
最高分是输入的负数;加一个if语句。
【练4-11】
#include<stdio.h>
int main(void)
{
int min,n,i,number;
printf("Enter n:");
scanf("%d",&n);
printf("Enter #1 number:");
scanf("%d",&number);
min=number;
for(i=2;i<=n;i++)
{
if(min>number)
{
min=number;
}
printf("Enter #%d number:",i);
scanf("%d",&number);
}
printf("The min number is %d\n",min);
return 0;
}
【练4-12】
#include<stdio.h>
int main(void)
{
int number,m;
printf("Enter a number:");
scanf("%d",&number);
if(number<0)
{
number=-number;
}
do
{
m=number;
printf("%d",m);
number=number/10;
}
while(number!=0);
printf("\n");
return 0;
}
【练4-13】
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,j,count;
count=0;
for(i=100;i<=200;i++)
{
for(j=2;j<sqrt(i);j++)
{
if(i%j==0)
{
break;
}
}
if(j>sqrt(i))
{
printf("m",i);
count++;
}
if(count/8>0&&count%8==0)
{
printf("\n");
}
}
printf("\n");
return 0;
}
【练4-14】
#include<stdio.h>
int main(void)
{
int x,x1,x2,i,count;
x1=1;
x2=1;
count=2;
printf("mm",x1,x2);
for(i=1;i<=18;i++)
{
x=x1+x2;
printf("m",x);
count++;
x1=x2;
x2=x;
if(count/10>0&&count==0)
{
printf("\n");
}
}
return 0;
}
【习题4-1】
#include<stdio.h>
int main(void)
{
int number,sum;
printf("Enter number:");
scanf("%d",&number);
sum=0;
if(number>0)
{
while(number%2==0)
{
sum=sum+number;
scanf("%d",&number);
}
printf("sum = %d\n",sum);
}
return 0;
}
【习题4-2】
#include<stdio.h>
#include<math.h>
int fact(int n);
int main(void)
{
int i,j;
double s,x,item;
printf("Enter x:");
scanf("%lf",&x);
s=0;
i=1;
j=1;
item=pow(x,i)/fact(j);
while(fabs(item)>0.00001)
{
s=s+item;
i++;
j++;
item=pow(x,i)/fact(j);
}
printf("s = %.2f\n",s);
return 0;
}
int fact(int n)
{
int i,s;
s=1;
for(i=1;i<=n;i++)
{
s=s*i;
}
return s;
}
【习题4-3】
#include<stdio.h>
int main(void)
{
int number,sum,digit,item;
printf("Enter number:");
scanf("%d",&number);
sum=0;
digit=0;
while(number>0)
{
item=number;
sum=sum+item;
digit++;
number=number/10;
}
printf("sum = %d,digit = %d\n",sum,digit);
return 0;
}
【习题4-4】
#include<stdio.h>
int main(void)
{
int numerator,i,n,x;
double item,sum, denominator;
printf("Enter n:");
scanf("%d",&n);
sum=0;
denominator=1;
numerator=2;
for(i=1;i<=n;i++)
{
item=numerator/denominator;
sum=sum+item;
x=numerator;
numerator=numerator+denominator;
denominator=x;
}
printf("sum = %.2f\n",sum);
return 0;
}
【习题4-5】
#include<stdio.h>
int main(void)
{
int a,n,i,j,sum,item;
printf("Enter a:");
scanf("%d",&a);
printf("Enter n:");
scanf("%d",&n);
sum=0;
item=0;
for(i=1;i<=n;i++)
{
item=item*10+a;
sum=sum+item;
}
printf("s = %d\n",sum);
return 0;
}
【习题4-6】
#include<stdio.h>
int main(void)
{
int a,b,c;
for(a=1;a<=10;a++)
{
for(b=1;b<=5;b++)
{
for(c=1;c<=2;c++)
{
if(a+b*2+c*5==10)
{
printf("1fen = %d,2fen = %d,5fen = %d\n",a,b,c);
}
}
}
}
return 0;
}
【习题4-7】
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,m,x,count;
double sum;
for(i=1;i<=10000;i++)
{
x=i;
sum=0;
while(x!=0)
{
m=x;
sum=sum+pow(m,3);
x=x/10;
}
if(sum==i)
{
printf("m",i);
count++;
}
if(count>0&&count%5==0)
{
printf("\n");
}
}
printf("\n");
return 0;
}
【习题4-8】
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,k,j,l,count,n;
double m;
for(i=6;i<=100;i++)
{
if(i%2==0)
{
for(j=2;j<=i/2;j++)
{
m=sqrt(j);
for(k=2;k<=m;k++)
{
if(j%k==0)
{
break;
}
}
if(k>m)
{
n=i-j;
if(n>0)
{
m=sqrt(n);
for(l=2;l<=m;l++)
{
if(n%l==0)
{
break;
}
}
if(l>m)
{
printf("m=%d+%d",i,j,n);
count++;
if(count!=0&&count%5==0)
{
printf("\n");
}
}
}
}
}
}
}
printf("\n");
return 0;
}
【习题4-9】
#include<stdio.h>
int main(void)
{
int n,a,b,c;
printf("Enter number:");
scanf("%d",&n);
b=0;
while(n!=0)
{
b=b*10;
a=n;
n=n/10;
b=b+a;
}
while(b!=0)
{
c=b;
printf("=",c);
b=b/10;
}
printf("\n");
return 0;
}
【习题4-10】
#include<stdio.h>
int main(void)
{
int n,i,m;
printf("Enter number:");
scanf("%d",&n);
printf("%d=",n);
m=n/2;
for(i=2;i<=m;i++)
{
if(n%i==0)
{
printf("%d",i);
n=n/i;
break;
}
}
while(n>1)
{
for(i=2;i<=m;i++)
{
if(n%i==0)
{
printf("*%d",i);
n=n/i;
break;
}
}
}
printf(".\n");
return 0;
}
【习题4-11】
#include<stdio.h>
int main(void)
{
int m,n,k,l,max,min,i;
printf("Enter m:");
scanf("%d",&m);
printf("Enter n:");
scanf("%d",&n);
max=1;
min=m*n;
l=m*n;
if(m>n)
{
k=m;
}
else
{
k=n;
}
for(i=2;i<=k;i++)
{
if(m%i==0&&n%i==0)
{
if(i>max)
{
max=i;
}
}
}
for(i=2;i<=min;i++)
{
if(min%i==0)
{
if(m%i==0&&n%i==0)
{
l=min/i;
if(l<min)
{
min=l;
}
}
}
}
printf("max = %d,min = %d\n",max,min);
return 0;
}
【习题4-12】
#include<stdio.h>
int main(void)
{
int i;
double n,sum;
sum=100;
n=100;
for(i=2;i<=10;i++)
{
sum=sum+n;
n=n/2;
}
printf("sum = %.4f,high = %.4f\n",sum,n);
return 0;
}
【习题4-13】
#include<stdio.h>
int main(void)
{
int i,j,k;
for(i=1;i<=4;i++)
{
for(j=1;j<(5-i);j++)
{
printf(" ");
}
j=2*i-1;
for(k=1;k<=j;k++)
{
printf("*");
}
printf("\n");
}
for(i=3;i>=1;i--)
{
for(j=1;j<(5-i);j++)
{
printf(" ");
}
j=2*i-1;
for(k=1;k<=j;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
【习题4-14】
#include<stdio.h>
int main(void)
{
int i,n;
n=1;
for(i=1;i<=9;i++)
{
n=(n+1)*2;
}
printf("n = %d\n",n);
return 0;
}

猜你喜欢

转载自blog.csdn.net/sometimesnevermind/article/details/82720089