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

江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導(dǎo)
2011秋江蘇省計算機二級C上機真題

2011秋二級C語言上機試卷

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

  一、改錯題(16)

  【程序功能】

  驗證猜想:當(dāng)f41,x分別取1,2,3,4,...,40,由多項式x -x+f產(chǎn)生的數(shù)均為素數(shù)。

  以下程序首先用多項式x -x+f產(chǎn)生40個整數(shù)存放在a指向的數(shù)組中,然后判斷a數(shù)組中各元素的值是否均為素數(shù),如果是則輸出"YES",并將a指向的數(shù)組中的素數(shù)按每行10個數(shù)的形式輸出;否則輸出"NO"。

    【測試數(shù)據(jù)與運行結(jié)果】

    屏幕輸出:

    YES

    41   43   47   53   61   71   83   97   113  131

    151  173  197  223  251  281  313  347  383  421

    461  503  547  593  641  691  743  797  853  911

    971  1033 1097  1163 1231  1301 1373 1447  1523  1601

 

  【含有錯誤的源程序】

  以下源程序已保存在Tmyf1.c文件內(nèi),考生可直接打開該文件調(diào)試程序。

  1    #include <stdio.h>

  2    #include <conio.h>

  3    int allprime(int n,int a[])

  4    {   int i,j,b[];

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

  6        {  b[i]=1;

  7           for(j=1;j<a[i]/2;j++)

  8             if(a[i]%j==0) b[i]=0;

  9        }

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

  11          if(0=b[i])

  12           return 0;

  13       return 1;

  14    }

  15    void main()

  16    {int i,j,x0=1,x1=40,f=41,a[40];

  17     for(j=x0;j<=x1;j++)

  18       a[j-1]=j*j-j+f;

  19     j--;

  20     if(allprime(j,a[]))   

  21     {printf("\nYES\n");

  22      for(i=0;i<j;i++)

  23      {printf("%d\t",a[i]);

  24       if((i+1)%10==0)printf("\n");

  25      }

  26     }

  27     else

  28      printf("\nNO\n");

  29     getch();

  30   }

  【要求】

  1.打開T盤中myf1.c文件或?qū)⑸鲜龀绦蜾浫氲?/SPAN>myf1.c文件中,根據(jù)題目要求及程序中語句之間的邏輯關(guān)系對程序中的錯誤進行修改。

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

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

二、編程題(24)

    【程序功能】

    在已有的一份姓名登記表中刪除重復(fù)出現(xiàn)的姓名,輸出處理后的姓名登記表。

    【編程要求】

    1.編寫函數(shù)int del_name(char s[][20],int n)。函數(shù)功能:在s指向的數(shù)組前n行中存儲的n個字符串中刪除重復(fù)出現(xiàn)的字符串,只保留第一次出現(xiàn)的字符串,函數(shù)返回s指向的數(shù)組中剩余的字符串個數(shù)。

    2.編寫函數(shù)main()。函數(shù)功能:聲明數(shù)組name并用測試數(shù)據(jù)初始化,name作實參調(diào)用函數(shù)del_name,將經(jīng)過刪除后name數(shù)組中剩余的字符串輸出到屏幕及數(shù)據(jù)文件Myf2.out中。最后將考生本人準(zhǔn)考證號輸出到文件Myf2.out中。

  【測試數(shù)據(jù)與運行結(jié)果】

  測試數(shù)據(jù):"Ann","Belle","David","Ann","Mary","Belle","Ken","Ann","Mark","Mary"

  屏幕輸出:Ann

           Belle

           David 

           Mary

           Ken

           Mark

  【要求】

  1.源程序文件名為Myf2.c,輸出結(jié)果文件名為Myf2.out

  2.數(shù)據(jù)文件的打開、使用和關(guān)閉均用C語言標(biāo)準(zhǔn)庫中的文件操作函數(shù)實現(xiàn)。

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

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

    參考答案

  一、改錯題

  4  {int i,j,b[];              改為b[40]

  7    for(j=1;j<a[i]/2;j++)    改為j=2

  11   if(0=b[i])               改為==

  20   if(allprime(j,a[]))        改為a

  二、編程題

    #include<stdio.h>

    #include<string.h>

    #include<conio.h> 

    #define M 20

    #define N 100   

    int del_name(char s[][M],int n)

    {int i,j,k;

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

     {  j=i+1;

        while(j<n)

          if(strcmp(s[i],s[j])==0)

          {for(k=j;k<n-1;k++)strcpy(s[k],s[k+1]);

           s[k][0]=0;

           n--;

          }

          else  j++;

     }

     return n;

    }

    void main()

    {char name[N][M]={"Ann","Belle","David","Ann","Mary",

                      "Belle","Ken","Ann","Mark","Mary"};

     int k,n=10;

     FILE *fp;

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

     n=del_name(name,n);

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

     {puts(name[k]);

      fputs(name[k],fp);

     }

     fprintf(fp,"\nMy Exam number is:0112400123");

     fclose(fp);

     getch();

    }