C语言程序设计上机指导第8章答案
上 机 报 告
课程名称 计算机程序设计基础(C语言)
专业班级
姓 名
学 号
上机题目函数调用程序设计实 验 室机房同组人数1实验时间年 月 日成 绩指导教师一、实验目的
1、掌握函数的定义方法、参数的传递规则。
2、掌握函数的声明与调用方法。
3、掌握函数的嵌套调用。
二、实验内容(均要求给出运行结果)
1、改错题
(1)以下程序求出两个整数中较大的数,请改正程序中的错误。
# include “stdio.h”
void main ( )
{ int a=1,b=2,c;
c=max(a,b);
printf(“max is %d \n”,z);
}
int max (int x,int y)
{ z=(x>y)? x: y;
return (z);
}
程序清单:
# include "stdio.h"
void main ( )
{ int a=1,b=2,c;
int max (int x,int y);
c=max(a,b);
printf("max is %d \n",c);
}
int max (int x,int y)
{ int z;
z=(x>y)? x: y;
return (z);
}
运行结果:
(2)以下程序求三角形的面积,请改正程序中的错误。
#include “stdio.h”
#include “math.h”
area(float, float, float);
void main()
{ float a,b,c;
scanf(“%f%f%f”,a,b,c);
if(a+b>c&&a+c>b&&b+c>a)
printf(“area=%f\n”, area(a,b,c));
}
area(float a, float b, float c)
{ float s, are;
s=(a+b+c)/2.0;
are=sqrt(s*(s-a)*(s-b)*(s-c));
return are;
}
程序清单:
#include "stdio.h"
#include "math.h"
double area(float a, float b, float c)
{ double s, are;
s=(a+b+c)/2.0;
are=sqrt(s*(s-a)*(s-b)*(s-c));
return are;}
void main()
{float a,b,c;
double s;
scanf("%f%f%f",&a,&b,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a))
s=area(a,b,c);
printf("area=%lf\n", s);
}运行结果:
2、填空题
(1)以下程序根据输入的x,求1到x的累加和。请填空。
#include “stdio.h”
float fun (int n)
{ int i;
float c;
__________;
for (i=1; ____________; i++)_____________;
return c;
}
void main ( )
{ int x;
scanf (“%d”, &x);
printf (“%f\n”, fun (_______));
}
程序清单:
#include "stdio.h"
float fun (int n)
{ int i;
float c;
c=0;
for (i=1; i<=n; i++)c+=i;
return c;
}
void main ( )
{ int x;
scanf ("%d", &x);
printf ("%f\n", fun (x));
}
运行结果:
(2)以下程序对输入的一个整数,调用函数判断其是否是素数,是素数打印“YES”,否则打印“NO”。
# include “stdio.h”
int prime (int a)
{ int i, yes=_______;
for (i=2; i<=a/2&& yes; i++)
if (_________%________==0) yes=0;
return yes;
}
void mai