1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            2018年3月江蘇C改錯題與填空題

            2(改錯題):

            【要求】

            1.打開T盤中文件myf1.c,按以下程序功能改正文件中程序的錯誤。

            2.可以修改語句中的一部分內容,調整語句次序,增加變量聲明或預處理命令,但不能增加其他語句,也不能刪去整條語句。

            3.修改后的源程序仍保存在Tmyf1.c文件中,請勿改變myf1.c的文件名。

            【程序功能】

               以下程序中函數maxequalseq的功能是在a指向數組的前n個元素中存儲的一個整數序列中找出最長等值子序列。將構成最長等值子序列的數據項值保存到num指向的變量中,函數返回最長等值子序列的長度。

            【測試數據與運行結果】

                測試數據:2,2,2,5,5,5,5,5,1,1,8,8,8,8,8,8,8,7,7,7

                    輸出:number=8, length=7

            【含有錯誤的源程序】

            #include<stdio.h>

            #include<conio.h>

            void maxequalseq(int a[],int n,int *num)

            {

                int i,k=0,p[50][2],len;

                p[k][0]=a[0];

                p[k][1]=1;

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

                    if(a[i]==a[i-1])

                        p[k][1]++;

                    else

                    {

                        p[k++][0]=a[i];  

                        p[k][1]=1;

                    }

                *num=p[0][0];

                len=p[0][1];

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

                    if(p[i][1]<len)

                    {

                        *num=p[i][0];

                        len=p[i][1];

                    }

                return len;

            }

            int main()

            {

                int x[20]={2,2,2,5,5,5,5,5,1,1,8,8,8,8,8,8,8,7,7,7};

                int length,number;

                length=maxequalseq(x[20],20,&number);

                printf("number=%d,length=%d",number,length);

                getch();

                return 0;

            }

             

            maxequalseq(x[20],20,&number)修改為maxequalseq(x,20,&number)@ void maxequalseq修改為int  maxequalseq@ p[k++][0]=a[i]修改為p[++k][0]=a[i]@ p[i][1]<len修改為p[i][1]>len

             

             

            3(編程題):

            【要求】

            1.打開T盤中文件myf2.c,在其中輸入所編寫的程序。

            2.數據文件的打開、使用、關閉均用C語言標準庫中緩沖文件系統的文件操作函數實現。

            3.請勿改變myf2.c的文件名。

            【程序功能】

                矩陣變換并統計變換區域元素中素數個數。

            【編程要求】

            1.編寫int encode(int a[4][4])函數。函數功能是對a指向的二維數組中存儲的44矩陣中包含主對角線元素在內的左下三角區域內每個元素的值做如下判斷和變換:若該數值是素數則用大于該數值的最小素數替換,否則保持原數值不變。函數返回包含主對角線元素在內的左下三角區域內的元素中素數的個數。

            2.編寫main函數。函數功能是聲明一個二維數組并用測試數據初始化。用二維數組作實參調用encode函數對該數組中的矩陣作變換。將變換后的二維數組內存儲的矩陣全部元素值及包含主對角線元素在內的矩陣左下三角區域內元素中素數的個數輸出到屏幕及文件myf2.out中。最后將考生本人準考證號輸出到文件myf2.out中。

            【測試數據與運行結果】

                測試數據:                    

                       13   4   6    3                

                        8   5   9   10                

                       12  17  11   20                

                       13   6  23   30                

                輸出:

                       17   4    6    3

                       8    7    9   10

                       12  19   13   20

                       17   6   29   30

                       count=6

             

            #include <stdio.h>

            int prime(int k)

            {

              int i;

              for(i=2;i<=k/2;i++)

                     if(k%i==0)

                            return 0;

              return 1;

            }

             

            int encode(int a[4][4])

            {

               int i,j,n,k=0;

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

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

                     {

                     if(prime(a[i][j]))

                           {

                        for(n=a[i][j]+1; ; n++)

                                        if(prime(n))

                                        {

                                               k++;

                               a[i][j]=n;

                                           break;

                                        }

                           }

                     }

                   return k;

            }

             

            int main()

            {

               FILE *fp;

               int a[4][4]= {{13,4,6,3},{8,5,9,10},{12,17,11,20},{13,6,23,30}};

               int k,i,j;

              if((fp=fopen("myf2.out","w+"))==NULL)

              {

                 printf("Error");

              }

              k=encode(a);

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

              {

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

                     {

                            printf("%5d",a[i][j]);

                      fprintf(fp,"%5d",a[i][j]);

                     }

                     printf("%5d\n",a[i][j]);

                     fprintf(fp,"%5d",a[i][j]);

             

              }

              printf("Count=%d\n",k);

              fprintf(fp,"Count=%d\n",k);

              fprintf(fp,"My exam is 123456");

              fclose(fp);

            }

            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩