-程序改错部分试题及答案 下载本文

内容发布更新时间 : 2024/5/28 7:58:42星期一 下面是文章的全部内容请认真阅读。

第1题/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。

------------------------------------------------------*/ #include #define N 11 main() {

int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};

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

printf(\ for(i=0;i

/**********FOUND**********/ for(i=N-1;i>=0;i--) if(number<=a[i])

/**********FOUND**********/ a[i]=a[i-1]; else {

a[i+1]=number;

/**********FOUND**********/ exit; }

if(number

printf(\ printf(\}

第2题

/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求如下表达式:

1 1 1 S = 1 + —— + ——— + ...... + ———————

1+2 1+2+3

------------------------------------------------------*/

#include main() {

int n;

double fun();

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

print(\ printf(\}

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

fun(int n) {

int i,j,t; double s; s=0;

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

while(i=1;i<=n;i++); {

t=0;

for(j=1;j<=i;j++) t=t+j;

/**********FOUND**********/ =s+1/t;

} return s; }

1+2+3+......+n

第3题/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:判断m是否为素数,若是返回1,否则返回0。

------------------------------------------------------*/ #include

/**********FOUND**********/ void fun( int n) {

int i,k=1;

if(m<=1) k=0;

/**********FOUND**********/ for(i=1;i

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

/**********FOUND**********/ return m; }

int main() {

int m,k=0;

for(m=1;m<100;m++) if(fun(m)==1) {

printf(\ if(k%5==0) printf(\ } }

第4题/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值 小于等于0.0001。

π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7

------------------------------------------------------*/ #include

/**********FOUND**********/ #include fun() {

int i=1;

/**********FOUND**********/ int s=0,t=1,p=1;

/**********FOUND**********/ while(fabs(t)<=1e-4) {

s=s+t; p=-p; i=i+2; t=p/i; }

/**********FOUND**********/ printf(\}

main() {

fun(); }

第5题/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:求1到20的阶乘的和。

------------------------------------------------------*/ #include fun() {

int n,j;

float s=0.0,t=1.0; for(n=1;n<=20;n++) {

/**********FOUND**********/ s=1;

for(j=1;j<=n;j++)

/**********FOUND**********/ t=t*n;

/**********FOUND**********/ s+t=s; }

/**********FOUND**********/ printf(\}

main() {

fun(); }

第6题/*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

功能:输出Fabonacci数列的前20项,要求变量类型定义成浮点型, 输出时只输出整数部分,输出项数不得多于或少于20。

------------------------------------------------------*/