C_上机实验答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L a b3R e p e t i t i o n S t r u c t u r e
⒈从500开始,求被3、5、7除余数均为2的前
50个数。
void main()
{
int i,j;
j=500,i=1;
for(;j>=500&&i<=50;j++)
{
if(j%3==2&&j%5==2&&j%7==2)
{
printf("%d",j);
i++;
printf(" ");
}
}
}
⒉打印形状为正方形和直角三角形的乘法九九表。void main()
{
int i,j,a;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
a=j*i;
printf("%d*%d=%-3d",a);
printf(" ");
}
printf("\n");
}
}
#include
void main()
{
int i,j,k,a;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
a=j*i;
printf("%d*%d=-3%d",j,i,a);
printf(" ");
}
for(k=1;k<=9-i;k++)
{
printf(" ");
}
printf("\n");
}
}
⒊由键盘输入一个正整数,判断它是否为素数(只
能被1和自身整除的数)。
void main()
{
int num,n;
printf("enter a number");
scanf("%d",&num);
for(n=2;n<=num-1;n++)
{
if(num%n==0)
{
printf("not a prime number");
break;
}
}
if(n==num)
printf("prime number");
}
⒋按下面的近似公式计算常量e的值,e的计算公式如下:
e=1+1/1!+1/2!+1/3!+……+1/n!
由键盘输入误差δ,当最后一个子项1/n!的值小
于δ时,计算结束。
void main()
{
int i=1;
float a,sum=1,n=1;
printf("enter a:\n");
scanf("%f",&a);
for(;1/n>=`a;i++)
{
sum=sum+1/n;
n=n*i;
}
printf("sum=%f",sum);
}
#include
void main()
{
- 1 -
int i=1;
float x,e=1,t=1;
printf("enter x:\n");
scanf("%f",&x);
while(1/t>=x)
{ e=e+1/t;
i++;
t=t*i;
}
printf("e=%f",e);
}
⒌百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两个小马驮1担。问有大、中、小马各多少匹?
#include
void main()
{
int i,j;
for(i=0;i<=34;i++)
{
for(j=0;j<(100-i*3)/2+1;j++)
if((100-i-j)%2==0 && 3*i+2*j+(100-i-j)/2==100)
printf("%d %d %d\n",i,j,100-i-j);
}
}_
⒍编写程序输出以下的图形:
1
2 3
4 5 6
7 8 9 10
void main()
{
int i,j,k,a=1;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf(" ");
for(k=1;k<=i;k++)
{
printf("%d",a);
printf(" ");
a++;
}
printf("\n");
}
}
L a b4F u n c t i o n(P a r tⅠ)
⒈求m!/(n!*(m-n)!) 的值。要求:求某个数的阶层必须用自定义的函数实现。
#include
int fl(int x,int y,int z);
void main()
{
int m,n,k;
printf("enter m and n:\n");
scanf("%d %d",&m,&n);
k=fl(m,n,m-n );
printf("%d",k);
}
int fl(int x,int y,int z)
{
int a=1,b=1,c=1,i,j;
for(i=1;i<=x;i++)
a=a*i;
for(i=1;i<=y;i++)
b=b*i;
for(i=1;i<=z;i++)
c=c*i;
j=a/(b*c);
return(j);
}
⒉用二分法求下面方程2x3-4x2+3x-6=0的根,要求误差小于10-5。
#include
#include
float root(float x1,float x2);
float f(float x);
void main()
{
float x1,x2,f1,f2,x;
do
{
- 2 -