c语言复习题(有答案)●

}

return -1; }

void main(void) {

int a[10]={1,2,3,4,5,6,7,8,9,10}; int b,c; b=4;

c=fun(a,10,b); if(c==1)

printf(\ else

printf(\}

答案: 1). low<=high 或 high>=low 2). high=mid-1 3). low= mid + 1 7、功能:计算圆周率的近似值。(π/4=1-1/3+1/5-1/7+…)

-------------------------------------------------------*/ #include #include void main(void) {

int s;

/***********SPACE***********/ float n,【?】; double t;

t=1;pi=0;n=1;s=1;

/***********SPACE***********/ while(【?】>=1e-6) {

pi+=t;n+=2;s=-s;t=s/n; }

/***********SPACE***********/ pi*=【?】;

printf(\}

2 pi fabs(t) 4

五、程序改错

1、功能:编写函数fun求20以内所有5的倍数之积。 #define N 20

#include \void main(void) {

int sum; sum=fun(5);

printf(\以内所有%d的倍数之积为: %d\\n\ getch(); }

int fun(int m) {

/**********FOUND**********/

int s=0,i; for(i=1;i

/**********FOUND**********/

if(i%m=0) /**********FOUND**********/

9

s=*i; return s; }

答案:

1). int s=1,i;

2). if(i%m==0) 或 if(!(i%m)) 3). s*=i; 或 s=s*i; 或 s=i*s;

2、功能:编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。 例如:输入3+5=或5-2=或3*4=或4/2=,求表达式结果。 #include void main(void) {

float x,y;

char operate1;

printf(\ /**********FOUND**********/ scanf(\

/**********FOUND**********/

while((operate1==getchar())!='=') {

printf(\ scanf(\

/**********FOUND**********/ switch(y) {

case '+':

x+=y; break; case '-':

x-=y; break; case '*':

x*=y; break; case '/':

x/=y; break; } }

printf(\ getch(); return; }

答案: 1). scanf(\2). while((operate1=getchar())!='=') switch(operate1)

3、功能:编写函数求2!+4!+6!+8!+10+12!+14!。 #include \long sum(int n) {

/**********FOUND**********/ int i,j

long t,s=0;

/**********FOUND**********/ for(i=2;i<=n;i++) {

t=1;

10

3). for(j=1;j<=i;j++) t=t*j; s=s+t; }

/**********FOUND**********/ return(t); }

void main(void) {

printf(\ getch(); }

答案: 1). int i,j; 2). for(i=2;i<=n;i=i+2) 或 for(i=2;i<=n;i+=2) 或 for(i=2;i<=n;i++,i++)

3). return(s); 或 return s; 或 return (s);

4、功能:找大于m的最小素数 #include #include int fun(int m) { int i,k;

for(i=m+1;;i++)

/**********FOUND**********/ { for(k=2;k

答案: 1). <= 2). == 3). >

5、功能:统计出若干个学生的平均成绩,最低分以及得最低分的人数。 例如:输入10名学生的成绩分别为92,87,68,56,92,84,67, 75,92,66,则输出平均成绩为77.9,最低高分为56,得最低分

的人数为1人。

#include \float Min=0; int J=0;

float fun(float array[],int n) {

int i;float sum=0,ave; Min=array[0]; for(i=0;i

if(Min>array [i]) Min=array [i]; /**********FOUND**********/ sum=+array [i]; }

/**********FOUND**********/ ave=sum\\n;

for(i=0;i

/**********FOUND**********/ if(array [i]=Min) J++; return(ave); }

11

main( ) {

float a[10],ave; int i=0;

for(i=0;i<10;i++) scanf(\ ave=fun(a,10);

printf(\ printf(\ printf(\ getch(); }

sum+=array[i]; ave=sum/n; if(array [i]==Min) J++;

6、功能:一个已排好序的一维数组,输入一个数number,要求按原来 排序的规律将它插入数组中.

main( ) {

int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j; /***********FOUND***********/ for(i=0;i<=10;i++) printf(\ printf(\

scanf(\

/***********FOUND***********/ end=a[10];

if(number>end)

/***********FOUND***********/ a[11]=number;

else //是小于或等于最后那个数 {

for(i=0;i<10;i++) {

/***********FOUND***********/

if(a[i]

temp1=a[i]; a[i]=number;

for(j=i+1;j<11;j++) //后面所有的数后移一个位置 {

temp2=a[j]; a[j]=temp1; temp1=temp2; }

break; } } }

for(i=0;i<11;i++)

printf(\}

for(i=0;i<10;i++) end=a[9]; a[10]=number; if(a[i]>number)

12

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4