江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
2013秋江蘇省計算機二級C上機真題第1套

2013秋江蘇省高校計算機等級考試

二級  C語言上機試卷第1

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

 一、改錯題(16分)

    【程序功能】

    統計一組單詞(本題中含2個單詞)中的每個單詞在一篇文章中各自出現的次數,單詞中的字母字符區分大小寫。

    【測試數據與運行結果】

    測試數據:

    文章正文: The Olympic Games will be held just outside the capital and the whole area will be called 'Olympic City'.

    被統計的一組單詞:Olympic, will

    屏幕輸出:Olympic2

             wi11:2

    【含有錯誤的源程序】

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

1    #include< stdio.h>

2    #include< conio.h>

3    #include< string.h>

4    #include< ctype.h>

5    void count( char str[] ,char substr[][10] ,int ct[],int n)

6    {

7    int i,j,k =0,m =0;

8    char t[];

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

10   {

11     for(j=i;isalpha(str[j]);i++)

12     {

13      t[m]=str[j];

14      j++;m++;

15     }

16     t[m]=’/0';

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

18      if( t == substr[k])

19        ct[k]++;

20     m=0;

21    }

22   }

23   int  main()

24   {

25    char line[]="The Olympic Games will be held just outside the capital and the whole area will be

26       called 'Olympic City,.”;

27    char word[][10]={”Olympic”,”will”};

28    int ic[2]={0};

29    count(line[] ,word[][],c,2);

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

31      printf("\n%8s:%2d",word[i],c[i]);

32    getch();

33    return 0;

34    }

    【要求】

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

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

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

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

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

    二、編程題(24分)

    【程序功能】

    找出[ab]區間內所有滿足以下條件的整數:(1)該數是素數;(2)該數的十進制表示是

4位數并且是降序數(即從高位到低位的各位數字依次減小或不增加的整數)。例如,4211既是素數又是4位降序數,因此4211是滿足上述條件的整數。

    【編程要求】

    1.編寫函數int decend(long n1long n2long x[])。函數功能:找出[n1n2]區間內滿足上述條件的所有整數并依次存放到x指向的一維數組中,函數返回滿足條件的整數個數。

    2.編寫main函數。函數功能:聲明變量ab及一維數組c,鍵盤輸入ab的值,調用decend函數找出[ab]區間內所有滿足上述條件的整數并保存到c數組,輸出c數組中的結果數據到屏幕及文件myf2.out中,最后將考生本人的準考證號輸出到文件myf2.out中。

    【測試數據與運行結果】

    測試數據:a =1000 b=5000

    屏幕輸出:2111  2221  3221  3331  4111  4211  4421  4441

    【要求】

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

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

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

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

 

    參考答案

一、改錯題

8  char t[];    改為t[10]

16  t[m]='/0';    改為'\0'

18  if(t== substr[k])    改為  !strcmp(tsubstr[k])strcmp(t, substr[k] ==0)

29  count (line[] ,word[][],c,2);  改為  (line, word,c2)

二、編程題

    #include <stdio.h>

    #include <stdlib.h>

    #include <conio.h>

    int prime(long n)

    {

      int i =2;

      while( n%i&&i<=n/2)i++;

      if(i<n/2)  return 0;

       else return 1;

    }

    int decend( long n1 ,long n2,  long x[])

    {

      long int i,y;  

      int a[4] ,k,j =0;

      for(i=n1;i<=n2;i++)

        if( prime(i))

        {k=0;y=i;

         while(y){a[k++]=y% 10;y/= 10;}

         if(k==4)

         {  k--;

            while(k>0&&a[k]>=a[k-1])k--;

            if(k==0)

              x[j++]=i;

         }

        }

       return j;

    }

    int  main()

    {  FILE *fp;

    int k,i;

    long a,b,c[100];

    printf( "a,b: ");

    scanf("%ld%ld",&a,&b);

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

    if( fp==NULL)

    {printf( "Create  File myf2. out failed !  \n") ;    exit(0) ;}

     k = decend( a,b,c) ;

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

     {

       printf("%10ld",c[i] ) ;

       fprintf(fp,"%lOld",c[i] ) ;

      }

     fprintf( fp,  "my examination number is 00123456789\n") ;

     fclose ( fp) ;

     getch( ) ;

     return 0;

    }

 

彩票30选5开奖结果