鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
2008秋江蘇省計算機二級C語言上機試卷

2008秋季考試試卷分析:

上機試卷1

一:改錯題:

[程序功能]

  NN列二維數(shù)組的每一行排序,偶數(shù)行(0當作偶數(shù))由小到大排序,奇數(shù)行由大到小排序

[測試數(shù)據(jù)與運行結果]

測試數(shù)據(jù):

3   4   2    1

8   7   5    6

12  10  11   9

15  14  16   13

運行結果:

1   2   3  4

8   7   6  5

9  10  11  12

16  15  14  13

含有錯誤的源程序:

#include

#define N 4

void swap(int *p1, int *p2)

{int p;

 p=p1;p1=p2;p2=p;

}

 

void sort(int a[N][N])

{int i,j,k;

 for(i=0;i

   for(j=0;j

      for(k=j+1;k

         if(i%2==0?a[i][j]a[i][k])

             swap(a[i]+j,a[i]+k);

}

 

void main()

{int a[N][N]={{3,4,2,1},{8,7,5,6},{12,10,11,9},{15,14,16,13}};

 int i,j;

 sort(a[N][N]);

 for(i=0;i

 {for(j=0;j

    printf(“=”,a[i][j]);

  printf(“\n”);

}

}

解析:做本改錯題目的時候,首先將題目輸入計算機中,然后運行,運行的時候一定會有錯誤出現(xiàn),在改錯題目中有兩種錯誤:(1)語法錯誤(2)邏輯錯誤,在本題目中,運行后會出現(xiàn)3個警告,警告1指向swap函數(shù)的p變量,我們可以看到p是變量,p1p2是指針變量,兩者不匹配,所以我們可以得到第一個錯誤,警告2指向sort(a[N][N]),我們知道在C語言中,調用函數(shù)的參數(shù)時,如果參數(shù)是數(shù)組,則只傳遞數(shù)組的名稱,所以可以知道第二個錯誤sort(a[N][N])應改為sort(a),剩下的錯誤是邏輯錯誤,在考試中,一定要把a[N][N]數(shù)組中的具體數(shù)據(jù)代入函數(shù)sort,我們可以發(fā)現(xiàn)k是有問題的,應改為K這樣才能每一個數(shù)組的值進行比較,否則就缺少最后一個沒有被比較,在本題目中,swap函數(shù)作用是交換數(shù)值,sort函數(shù)的作用是比較每一行元素的值調用swap進行交換

錯誤1: p=p1;p1=p2;p2=p;    應改為: p=*p1;*p1=*p2;*p2=p;

錯誤2: for(k=j+1;k  應改為: for(k=j+1;k

錯誤3: i%2==0?a[i][j]a[i][k]  應改為: i%2==0?a[i][j]>a[i][k]:a[i][j]

錯誤4: sort(a[N][N]);        應改為: sort(a);

:編程題:

[程序功能]:

找出符合以下條件的Troitsky數(shù),將該數(shù)的首位數(shù)字移動到末位數(shù)字之后得到的數(shù)是原數(shù)的整數(shù)倍

例如:142857的首位數(shù)字1移動到末位之后得到的數(shù)是428571,428571=3*142857,因此142857Troitsky數(shù)

編程要求:

1.       編寫函數(shù)int Troitsky(long a[]),其功能是求出1 000 000以內的所有Troitsky數(shù),并將它們依次放入a指向的數(shù)組中,函數(shù)返回找到的Troitsky數(shù)的個數(shù).

2.       編寫main函數(shù),調用Troitsky函數(shù),將運行結果輸出到屏幕及結果文件myf2.out中。

最后將考生的準考證號也保存到結果文件myf2.out.

[測試數(shù)據(jù)與運行結果]

142857     285714

1.將源文件取名為myf2c,輸出結果文件取名為myf2out。 

2.數(shù)據(jù)文件的打開、使用和關閉等操作均用C標準庫中緩沖文件系統(tǒng)的文件操作函數(shù)實現(xiàn)。

3.源程序文件和運行結果文件均須保存在T:盤的根目錄下供閱卷用。

4.不要將myf2objmyf2exe保存到T:盤中。

解析:本題目中主要考察的是如何將一個數(shù)轉化為另一個數(shù),因為判分標準是按照步驟給分,所以,對文件操作的一定要記住,從FILE *fp開始到結束的格式一定要背過

答案:

#include

int Troitsky(long a[])

{int count=0,i=0;

 long n,n1;

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

 {n1=(n0000)*10+n/100000;

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

         if(i*n==n1&&n!=n1)

         {a[count++]=n;

       break;

         }

 }

 return count;

}

 

void main()

{long a[10],i;

 int k;

 FILE *fp;

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

 if(fp==NULL) exit(0);

 k=Troitsky(a);

 for(i=0;i

 {printf("ld",a[i]);

  fprintf(fp,"ld",a[i]);

 }

 printf("\n");

 fprintf(fp,"\n");

 fprintf(fp,"\nmy exam number is:012345678\n");

 fclose(fp);

}