printf(\ scanf(\
printf(\ system(\ }
2. //裴波那契数列的前两项是1、1,以后的每一项都是其相邻前两项之和。编写函数过程求: ⑴ 数列前n项和FS;⑵ 前n项的平均值V。并就n=20计算并输出FS与V。 #include
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 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 {//牛顿迭代法公式为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 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 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 #define odd(a) (a%2==0) main() { int a,b,c; printf(\ scanf(\ while(odd(a)) {