<source id="v77gz"></source>
    <u id="v77gz"><p id="v77gz"></p></u>

      <samp id="v77gz"></samp>

      <var id="v77gz"><td id="v77gz"><ins id="v77gz"></ins></td></var>

      <video id="v77gz"></video>
      <source id="v77gz"></source>
    1. 江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
      2012春江蘇省計算機二級C上機考試真題1

          2012春江蘇省高校計算機等級考試

           二級C語言上機試卷1

          (本試卷完成時間為70分鐘)

        一、改錯題(16)

        【程序功能】

        以下程序中函數void csort(char str[][N],int n)str指向的二維數組前n行中存儲的n

      個字符串分別作如下處理:從中間將字符串一分為二,左半部分字符子串按字符的ASCII碼值

      從大到小排序(若字符串的長度為奇數,則中間字符不參加排序)。

        【測試數據與運行結果】

        測試字符串:"abcdefgh","123498765"

        屏幕輸出:dcbaefgh

                 432198765

        【含有錯誤的源程序】

        以下源程序已保存在Tmyf1.c文件內,考生可直接打開該文件的調試程序。

      1    #include<stdio.h>

      2    #include<string.h>

      3    #include<conio.h>

      4    #define N 80

      5    void csort(char str[][N],int n);

      6    void main()

      7    {char s[2][N]="abcdefgh","123498765";

      8     int i;

      9     csort(s,2);

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

      11      puts(s);   

      12    getch();

      13    }

      14    void csort(char str[][N],int n)

      15    {  int i,j,k,len,half;

      16       char temp;

      17       for(i=0;i<n;i++)

      18       {len=strlen(str[i][0]);

      19        half=len/2;

      20        for(j=0;j<half-1;j++)

      21          for(k=j+1;k<half-1;k++)

      22            if(str[i][j]<str[i][k])

      23            {temp=str[i][j];

      24             str[i][j]=str[i][k];

      25             str[i][k]=temp;

      26            }

      27      }

      28    }

          【要求】

          1.打開T盤中myf1.c文件或將上述程序錄入到myf1.c文件中,根據題目要求及程序中

      語句之間的邏輯關系對程序中的錯誤進行修改。

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

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

          3.將改正后的源程序(文件名myf1.c)保存在T盤中供閱卷使用,否則不予評分。

          二、編程題(24)

          【程序功能】

          對于所給的一個自然數n,查找并輸出所有滿足以下條件的等差數列:(1)公差為1;

      (2)數列中各項數值之和等于n。

          【編程要求】

          1.編寫函數int found(int a[][30],int n)。函數的功能:查找滿足上述條件的所有等差

      數列并依次將其保存到a指向的數組中(一行保存一個數列),函數返回找到的數列個數。

          2.編寫函數main()。函數的功能:聲明一個二維整型數組用于保存查找結果,輸入一個整

      數并保存到變量n(n600)。用n和整型數組作實參調用found函數,將找到的所有等差數

      列輸出到屏幕及數據文件myf2.out中。最后將考生本人的準考證號輸出到文件myf2.out中。

          【測試數據與運行結果】

          輸入:n=500

          屏幕輸出:

          8 9 10 11 12 13 14 15 16 17 18 19 20 2l 22 23 24 25 26 27 28 29 30 31 32

          59 60 6l 62 63 64 65 66

          98 99 100 101 102

          500

      【要求】

      1.源程序文件名為myf2.c,輸出結果文件名為myf2.out。

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

      3.源程序文件和運行結果文件均需保存在T盤中供閱卷使用。

      4.不要復制擴展名為objexe的文件到T盤中。

          參考答案

      一、改錯題

      7  {char s[2][N]="abcdefgh","123498765";  改為{"abcdefgh","123498765"}

      11 puts(s);    改為puts(s[i])

      18 {len=strlen(str[i][0]);    改為str[i]

      21 for(k=j+1;k<half-1;k++)    改為k<half

      二、編程題

          #include<stdio.h>

          #include<conio.h>

          int found(int a[][30],int n)   

          {  int i,k=0,s=0,j,count,l=0;

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

             {  for(s=0,j=i;s<n;j++)

                  s=s+j;

                if(s==n)

                {count=0;

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

                  a[1][count++]=k;

                 l++;

                }

             }

          return l;

          }

          void main()

          {int i,j,n,m,a[10][30]={0};

           FILE *fp;

           fp=fopen("myf2.out","w"); 

           printf("input n:");

           scanf("%d",&n);

           m=found(a,n);

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

           {

            for(j=0;a[i][j];j++)

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

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

             printf("\n");

             fprintf(fp,"\n");

            }

            fprintf(fp,"My exam number is:0012400124"); fclose(fp);

            getch();

          }

      中文在线字幕第一页_中文字幕高跟丝袜作品番号_亚洲中文无无码第_日本亚洲欧美国产日韩a??y_在线观看亚洲av无码专区