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)) { scanf(\ } system(\ } 2. #include #define MAX(a,b) ((a)>(b)?(a):(b)) main() { int a,b,c; printf(\ scanf(\ printf(\ system(\ } 3. 见作业9.2 4. 见作业9.4 5. 见作业9.3 实验八(第8章实验一) 实验目的: 1. 通过实验进一步掌握指针的概念,会定义和使用指针变量。 2. 掌握指向变量的指针变量的使用方法。 3. 掌握指向一维数组的指针变量来处理数组元素。 4. 掌握指向字符串的指针变量的使用方法。 5. 掌握指针作为函数参数的用法。 实验内容: 1.用指针变量按从小到大的顺序输出三个整数。 2.输入n(不大于20)个单精度数存入一维数组,用指针变量处理数组元素的方式将其逆序存放后输出。n从键盘输入。 3.利用指针完成两个变量值互换。 4.编写一个程序,用12个月份的英文名称初始化一个字符指针数组,当键 盘输入整数为1到12 时,显示相应的月份名,键入其他整数时显示错误信息。 5.用选择法对10个整数排序(降序)。 6.编一个程序,从键盘上输入一串符号(以回车键为结束),将其以字符串形式存入一维字符数组,然后再输出该字符型数组中的字符串。 7.编写一个程序计算一个字符串的长度。 8.编写一个程序求一个子串在一个字符串中出现的次数,如果该字符不出现则返回0。 实验过程: 实验结果:1.见作业10.1 2. //输入n(不大于20)个单精度数存入一维数组,用指针变量处理数组元素的方式将其逆