<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  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();

                      }

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看