《C语言程序设计》实验指导书答案 下载本文

printf(\ scanf(\

printf(\ system(\ }

2. //裴波那契数列的前两项是1、1,以后的每一项都是其相邻前两项之和。编写函数过程求: ⑴ 数列前n项和FS;⑵ 前n项的平均值V。并就n=20计算并输出FS与V。 #include #include #define m 20 long Fib(int n) {

long fib[m] = {1,1}; long sum=0; int i;

for(i=2;i

fib[i] = fib[i-1]+fib[i-2]; }

for(i=0;i

sum=sum+fib[i]; }

return sum; }

float Avg(int n) {

float avg=0.0;

avg=Fib(n)*1.0/n;//如果不乘以1.0,结果可能不对,因为整数/整数. return avg; }

main() {

int n;

printf(\ scanf(\

printf(\前%d项和=%d\\n\

printf(\前%d项和平均值=%f\\n\ system(\ }

前20项和为17710,平均值为885.50 3.

4. //编写一个函数程序,其功能是判定一个数是否为素数,若是素数则函数返回值为1, 若不是

素数则函数返回值为0。用此函数判定找出 100 以内最大的 3 个素数。 #include #include #include

int prime(int n)//判断素数的函数 { int flag=1,i; for (i=2;i<=sqrt(n)&&flag==1;i++)//for(i=2;i<=sqrt(n)&&flag==1;i++) if(n%i==0) flag=0; return(flag); }

main() { int i,j=0,a[100]; for(i=0;i<=100;i++) {

if(prime(i))//如果是素数,则记入数组中 {

a[j]=i; j++; } }

printf(\ for(i=j-3;i

5. //编写函数程序,用牛顿迭代法求一元方程 x5+2x3-x2+x+1=0在 0 附近的近似值。 #include #include #include float solut()//

{//牛顿迭代法公式为x=x0-f(x)/f'(x) float x=0,x0,f,f1; do{

x0=x;

f=pow(x0,5)+2*pow(x0,3)-x0*x0+x0+1; f1=5*pow(x0,4)+6*pow(x,2)-2*x0+1; x=x0-f/f1;

} while(fabs(x-x0)>1e-5); return x; }

main()

{

printf(\ system(\ }

6. //编写函数程序,计算正整数 n1~n2 之间所有素数之和。 #include #include #include

int prime(int n)//判断素数的函数 { int flag=1,i; for (i=2;i<=sqrt(n)&&flag==1;i++)//for(i=2;i<=sqrt(n)&&flag==1;i++) if(n%i==0) flag=0; return(flag); }

main() { int i,n1,n2,sum; printf(\ scanf(\ for(i=n1;i<=n2;i++) {

if(prime(i))//如果是素数,则加到和里 sum=sum+i; }

printf(\ system(\ }

7. //用递归方法求 Fibonacci数列前 20 项及其这20项的和。 #include #include #include long Fib(int n) {long fib=0; if(n==1) fib=1; else if(n==0) fib=0; else if(n==2) fib=1; else

fib=Fib(n-1)+Fib(n-2); return fib;

}

int main() {

int i;

long sum=0; for(i=0;i<20;i++) sum=sum+Fib(i); printf(\ system(\ return 0; }

实验七(第九章实验)此实验不做

实验目的:

1. 掌握无参和带参宏的定义和宏替换方法。 2. 掌握文件包含处理方法。 实验内容:

1. 设计一个判断奇数的带参宏。在主函数中连续读取整数,直到输入的整数是奇数时

中止程序运行。

2. 用带参数的宏实现求两个数的最大值功能,再利用上述的带参宏设计一个求三个数

中最大数的带参宏。在主函数中求下列形式数据中的最大值:

(1) (a,b) (2) (a,b,c) (3) (a-2,b+2) 4) (a-2,b,c+2)

3. 输入两个整数,求它们相除的余数。用带参的宏来实现,并写主函数调用宏。 4. 给年份year定义一个宏,以判别该年份是否闰年,并写主函数调用宏。

5. 三角形的面积为:

area?s(s?a)(s?b)(s?c),其中,

s?1(a?b?c)2,a,

b,c为三角形的三边。定义两个带参的宏定义,一个用来求s,另一个用来求area,

在程序中用带实参的宏名来求面积area。

实验过程: 实验结果:1. #include #include

#define odd(a) (a%2==0) main() {

int a,b,c;

printf(\ scanf(\ while(odd(a)) {