<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>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  2011春江蘇省計算機二級C上機真題1

                   

                      二級C語言上機試卷

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

                      一、改錯題(16)

                      【程序功能】

                      對存儲在string數組內的英文句子中所有以a開始并以e結尾的單詞做加密處理。加密規則:若單詞長度為偶數個字符,則將組成該單詞的所有字母循環左移一次;否則循環右移一次。例如,單詞able經循環左移一次后變為blea;單詞abide經循環右移一次后變為eabid。

                      【測試數據與運行結果】

                      測試數據:she is able to abide her.

                      屏幕輸出:she is blea to eabid her.

                      【含有錯誤的源程序】

                      #include <stdio.h>

                      #include <ctype.h>

                      void wordchange(char str[])

                      {  int i,j,k,m; 

                         char c;

                         for(i=0;str[i];i++)

                         {for(j=i,k=i;isalpha(str[k]);k++);

                           if(str[j]=='a' || str[k-1]=='e')

                             {if((k-j)%2=0)

                               {c=str[j];

                                for(m=k-1;m>j;m--)

                                 str[m]=str[m+1];

                                str[k-1]=c;

                               }

                           else

                           {c=str[k-1];

                            for(m=k-1;m>j;m--)

                              str[m]=sty[m-1];

                            str[j]=c;

                           }

                      }

                      i=k;

                      }    。

                    }

                    void main()

                    { char string[80]="she is able to abide her.";

                      wordchange(string[80]);

                      puts(string);

                    }

                      【要求】

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

                  序中的錯誤進行修改。

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

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

                   二、編程題(24)

                      【程序功能】

                      矩陣數據生成及排序。

                      【編程要求】

                      1.編寫函數void cresort(int a[][3],int n)。函數功能是先根據a指向的二維數組中第1(列下標為0)和第2(列下標為1)的值按下表所列規則生成第3列各元素的值,再以行為單位重排a數組的各行,使得所有行按第3列元素值從小到大排列。

                    3列生成規則:

                    對任意的i(0<=i<=n-1):

                    

                    2.編寫main函數。函數功能是聲明53列二維數組a并用測試數據初始化,用數組a

                  作為實參調用cresort函數,a數組中的數據輸出到屏幕及文件myf2.out中。最后將考生本人的準考證號字符串輸出到文件myf2.out中。

                      【測試數據與運行結果】

                      測試數據:

                      27  16     0

                      11  12     0

                      6    9     0

                      7    13    0

                      8    5     0

                   

                  屏幕輸出:

                  27    16    1

                   6    9    1

                   8    5    2

                  11    12    3

                   7    13    4

                  【要求】

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

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

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

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

                      參考答案

                  一、改錯題

                      if(str[j]=='a' || str[k-1]=='e')    改為 &&

                      if((k-j)%2=0)    改為==

                      for(m=k-1;m>j;m--)    改為m=j;m<k-1;m++

                      wordchange(string[80]);    改為string

                  二、編程題

                      #include<stdio.h>

                      #define N 5

                      int isprime(int m)

                      {  int i;

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

                           if(m%i==0)return 0;

                         retum 1;

                      }

                      void cresort(int a[][3],int n)

                      {  int i,j,k,m,c,t;

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

                         {c=isprime(a[i][0])+isprime(a[i][1]);

                          switch(c)

                          {case 0:a[i][2]=1;break;

                           case 2:a[i][2]=4;break;

                           case 1:if(isprime(a[i][0]))a[i][2]=3;

                                    else a[i][2]=2;break;

                          }

                      }

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

                      {k=i;

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

                   

                   

                   

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