c語言程式改錯

來源:互聯網
上載者:User

 一、程式改錯   共139題 (共計1390分)

第1題 (10.0分)  題號:351

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

【程式改錯】

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

 

功能:在鍵盤上輸入一個3行3列矩陣的各個元素的值(值為整數),

      後輸出矩陣第一行與第三行元素之積,並在fun()函數中輸出。

 

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

 

#include "stdio.h"

 

main()

  int i,j,s,a[3][3];;

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

  {

    for(j=0;j<3;j++)

      scanf("%d",&a[i][j]);

  }

  s=fun(a);

  printf("Sum=%d\n",s);

  getch();

}

int fun(int a[3][3])

{

  int i,j,sum;

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

  sum=0;

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

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

    for(j=0;j<3;j++)

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

      sum=*a[i][j];

  return sum;

}

 

答案:

   1). sum=1;

   2). for(i=0;i<3;i+=2) 或 for(i=0;i<3;i=i+2) 或 for(i=0;i<3;i++,i++)

   3). sum=sum*a[i][j]; 或 sum*=a[i][j];

 

 

第2題 (10.0分)  題號:403

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

【程式改錯】

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

 

功能:編寫函數fun求20以內所有5的倍數之積。

 

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

 

#define N 20

#include "stdio.h"

main()

{

  int sum;

  sum=fun(5);

  printf("%d以內所有%d的倍數之積為: %d\n",N,5,sum);

  getch();

}

 

int fun(int m)

{

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

  int s=0,i;                                

  for(i=1;i<N;i++)

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

    if(i%m=0)                                

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

      s=*i;                                

  return s;

}

 

 

 

答案:

   1). int s=1,i;

   2). if(i%m==0)

   3). s*=i;

 

 

第3題 (10.0分)  題號:424

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

【程式改錯】

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

 

功能:一個偶數總能表示為兩個素數之和。

 

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

 

#include "stdio.h"

#include <math.h>

 

main()

{

  int a,b,c,d;

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

  scanf("%d",a);

  for(b=3;b<=a/2;b+=2)

  {

    for(c=2;c<=sqrt(b);c++)

      if(b%c==0) 

        break;

    if(c>sqrt(b))

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

      d=a+b;

    else

      break;

    for(c=2;c<=sqrt(d);c++)

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

      if(d%c=0)

    break;

     if(c>sqrt(d))

    printf("%d=%d+%d\n",a,b,d);

    getch();

  }

}

 

 

 

 

 

 

 

 

 

答案:

   1). scanf("%d",&a);

   2). d=a-b;

   3). if(d%c==0)

 

 

第4題 (10.0分)  題號:395

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

【程式改錯】

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

 

功能:統計出若干個學生的平均成績,最低分以及得最低分的人數。

例如:輸入10名學生的成績分別為92,87,68,56,92,84,67,

      75,92,66,則輸出平均成績為77.9,最低高分為56,得最

      低分的人數為1人。

 

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

 

#include "stdio.h"

 

float Min=0;

int J=0;

float fun(float array[],int n)

{

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.