1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            c語言上機模擬

             一、改錯題(18)

                函數Void fun(char str[][],int m,*pt)的功能是:將數組str中的m(1mlo)個字

            符串依次連接起來,組成一個新串,放入pt所指的字符數組中。

                例如,把3個串"abc"、"CD"、"EF"連起來,所得新字符串是"abcCDEF"。

                含有錯誤的源程序如下:

              1    #include<stdioh>

              2    #include<stringh>

              3    void fun(char str[][],int m,*pt)

              4    {

              5      int k,q,i;

              6      for(k=0;k<m;k++)

              7      {

              8       q=strlen(str[k]);

              9       for(i=O;i<q;i++)   

              10          pt[i]=str[k,i];

              11      pt+=q;

              12      pt[i]='\0;

              13      }

              14    }

              15    main()

              16    {

              17    int m,h;

              18    char s[10][10],P[120];

              19    printf("\nPlease enter m");

              20    scanf("%d",&m);

              21    gets(s);

              22    printf("\nPlease enter%d string\n",m);

              23    for(h=0;h<m;h++)  gets(s[h]);

              24    fun(s,p,m);

              25    printf("\nThe result is%s\n",p);

              26   }

                【要求】

              1•將上述程序錄人到文件myflc中,根據題目要求及程序中語句之間的邏輯關系對

            程序中的錯誤進行修改。

              2•改錯時,可以修改語句中的一部分內容,調整語句次序,增加少量的變量說明或編譯

               預處理命令,但不能增加其他語句,也不能刪去整條語句。

              3.改正后的源程序(文件名myflc)必須放在考試軟盤的根目錄下,供閱卷用,否則不

              予評分。

              二:編程題(22)

              1.函數void fun(int m, int *k, int xx[])的功能是:將所有大于1小于整數m的非素數存入

             xx所指數組中,非素數的個數通過k傳回

              2.編寫main函數,從鍵盤輸入m,調用fun函數,將函數fun返回的全部數據寫入文件myf2.out,

               例如;若輸入10,則輸出為4以及4 6 8 9

              要求:

              1.將源文件取名為myf2.c,輸出結果為myf2.out

              答案:

                一、改錯題   

                1.第3void fun(char str[][],int m,*pt)  

                       改為void fun(char str[][10],int m,char *pt)

                2•第10pt[i]=str[k,i];    改為pt[i]=str[k][i];

                3.12pt[i]='\0';           改為pt[0]='\0';

            4.24 fun(s,p,m);         改為fun(s,m,p);

            二編程題:

            #include <stdio.h>

            void fun( int m, int *k, int xx[ ])

            {

              int i,j;

              *k=0;

              for(i=2; i<m; i++)

              {

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

                   if(i%j==0)  break;

                 if(j<i) xx[(*k)++]=i;

            }

                 } 

                main() 

                {

                  int m,n,zz[100];

                  FILE  *out

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

                  {

                    printf("open file myf2out failed!\n");

                    exit(0);

                   }

                 printf("\nPlease enter n(10<=n<=100)");

                 scanf("%d",&n);

                 fun(n,&m,zz);   

                 fprintf(out,"\n\nThere are%d non-prime numbers less than%d",m,n);

                 for(n=0;n<m;n++)

                   fprintf(out,"\n%4d",zz[n]);

                 fclose(out);   

                } 

                分析:本題主要考查的是求素數的算法。本題的基本思路是判斷從2到指定數m之間

            的每個數是素數還是非素數。   

                判斷某數是否為素數的算法思想是:判斷此數是否只能被1和其自身整除,而不能被其

            他任何數整除。若能被1到自身之間的任何一個數整除,則此數為非素數,將此數存放到數’

            XX中,并且指針k所指向變量中的數值加1。

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