printf(\}
7. 用牛顿迭代法求高次方程f(X)=2x-4x+5x-18=0的根。牛顿迭代公式为:Xn=Xn-1-f(Xn-1)/f’(Xn-1),其中f’(Xn-1)为导函数在点Xn-1的值。 答:程序参见文件Cprogram\\xt5_4_07.c
#include \#include \main()
{float x,f,f1;
x=8; // x的初值可为任意值 do
{f=2*x*x*x-4*x*x+5*x-18; f1=6*x*x-8*x+5; x=x-f/f1; }while(fabs(f)>0.00001); printf(\}
8. 用弦截法求高次方程2x-3x+7x-13=0的根。 答:程序参见文件Cprogram\\xt5_4_08.c
#include \#include \main()
{float a,b,c,fa,fb,fc; do
{printf(\ scanf(\ fa=2*a*a*a-3*a*a+7*a-13; fb=2*b*b*b-3*b*b+7*b-13; }while(fa*fb>0); do
{c=(a*fb-b*fa)/(fb-fa);
fc=2*c*c*c-3*c*c+7*c-13; if(fa*fc>0)
{a=c;fa=fc;} else
{b=c;fb=fc;}
}while(fabs(fc)>0.0001); printf(\}
9. 有这样一些真分数:其分子和分母都是两位正整数,且分子的个位数与分母的十位数相同,如果把该分数的分子的个位数与分母的十位数同时去掉,所得到的新的分数正好与原分数的值相等,如26/65=2/5。试编程求出所有满足上述条件的真分数。 答:程序参见文件Cprogram\\xt5_4_09.c
#include \main()
{int a,b,c; //设这个分数为ab/bc for(a=1;a<=9;a++) for(b=1;b<=9;b++) for(c=1;c<=9;c++)
9
3
2
3
2
}
if((a 10. 编写程序,求数列:1、(1+1/2)、(1+1/2+1/3)、(1+1/2+1/3+1/4)、(1+1/2+1/3+1/4+1/5)? 的前10项之和。 答:程序参见文件Cprogram\\xt5_4_10.c #include \main() {float s,t; int i; s=0,t=0; for(i=1;i<=10;i++) {t=t+1.0/i; s=s+t; } printf(\} 11. 编写程序,求3到100之间的所有素数之和。 答:程序参见文件Cprogram\\xt5_4_11.c #include \main() {int s,i,k,flag; s=0; for(i=3;i<=100;i++) {flag=1; for(k=2;k {s=s+i;printf(\ } printf(\} 12. 编写程序,求Fibonacci数列中大于800的最小的一个数。 答:程序参见文件Cprogram\\xt5_4_12.c #include \void main() {int f1=1,f2=1,f3; while(f3<=800) {f3=f1+f2; f1=f2; f2=f3; } printf(\数列中大于800的最小数是]\\n\} 习题六 数组 一、选择题 1~10: BDBCD CDBAB 10 11~20:BCDCC DABBC 21~30:CCADC ABBCB 31~41:BDDDD CDCCB A 二、填空题 1. 9 、 0 2. 先行后列 3. 连续的存储空间中 4. QuickC 5. (c=getchar( )) 、 ‘A’+i或65+i 6. ‘\\0’ 、 str1[i]-str2[i] 7. CDABC 8. 10 14 9. 6 10. 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 11. 600 12. AzyD 13 4 some string *test 三、编程题 1. 定义一个有20个元素的整型数组,分别求出下标为奇数和偶数的元素的平均值。 答:程序参见文件Cprogram\\xt6_3_01.c #include \#include \main() {int i,s0=0,s1=0,a[20]; for(i=0;i<20;i++) a[i]=rand()0; for(i=0;i<20;i+=2) {printf(\ s0=s0+a[i]; } printf(\ sum is:%d ave=%f\\n\ for(i=1;i<20;i+=2) {printf(\ s1=s1+a[i]; } printf(\ sum is:%d ave=%f\\n\ } 2. 设有一个整型数组,另输入一个整数,编程查找这个整数是否在数组中出现过,若出现,则输出第一次出现的位置,否则,输出no found。 答:程序参见文件Cprogram\\xt6_3_02.c #include \#include \main() 11 {int i,s,a[20]; for(i=0;i<20;i++) a[i]=rand()0; scanf(\ for(i=0;i<20;i++) if(a[i]==s) {printf(\ break; } if(i==20) printf(\ for(i=0;i<20;i++) printf(\ printf(\} 3. 设有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。 答:程序参见文件Cprogram\\xt6_3_03.c #include \#define N 10 main() {int i,j,s; //int a[N]={1,3,5,7,9,11,13,15,17}; int a[N]={17,15,13,11,9,7,5,3,1}; scanf(\ i=0; if (a[0] while(s>a[i]) i++; else while(si;j--) a[j]=a[j-1]; a[j]=s; for(i=0;i printf(\ printf(\} 4. 编一程序,从一个已排好序的数组中删去某个位置上的元素。 答:程序参见文件Cprogram\\xt6_3_04.c #include \#define N 10 main() {int i,j; int a[N]={1,3,5,7,9,11,13,15,17,19}; for(i=0;i printf(\ printf(\ scanf(\ for(j=i;j 12