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

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
2010春C上機(jī)真題第一套

    二級(jí)  C語(yǔ)言上機(jī)試卷

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

  一、改錯(cuò)題(16)

  【程序功能】

  驗(yàn)證3(n范圍內(nèi)的任意兩個(gè)相鄰素?cái)?shù)的平方之間至少存在4個(gè)素?cái)?shù)。例如,57是兩個(gè)相鄰素?cái)?shù),5^2(25)7^2(49)之間存在6個(gè)素?cái)?shù):29 31 37 41 43 47

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

  顯示:input n

  輸入:10

  輸出:

    3~5    k=5

      11  13   17   19    23

    5~7    k=6

    29    31    37    41    43    47

  【含有錯(cuò)誤的源程序】

    #include<stdio.h>

    include<math.h> 

    int prime(int n)

    {int i,flag=1;

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

      if(n%i==0)flag=0;

      return flag; 

    }

    int fun(int a[],int n)

    { int i,k=0;

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

       if(prime(i)) a[k++]=i;

    return k;

  void fun1(int m,int n, int b[])

    {  int i,k=0;

       if(m>n) return 0;

      for(i=m*m;i<n*n;i++)

        if(prime(i)) b[k++]=i;

      return k;

    }

    void main()

    {int a[50]={0},b[100]={0},i,m,k,j,n;

    printf("input n");

    scanf("%d",&n);   

    m=fun(a,n);

    for(i=O;i<m-1;i++)

    {k=fun1(a[i],a[i+1],b[O]);

    printf("%d~%d  k=%d",a[i],a[i+1],k);

    if(k<4){printf("false");break;}

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

    {if(j%10=O)prinff("\n");

     printf("%5d",b[j]);

    }  

    printf("\n");

    }

    getch();

    }

  【要求】

  1.將上述程序錄入到文件myf1.c,根據(jù)題目要求及程序中語(yǔ)句之間的邏輯關(guān)系對(duì)程序中的錯(cuò)誤進(jìn)行修改。   

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

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

 二、編程題(24)

    【程序功能】

    在給定范圍內(nèi)查找k使得用公式k^2+k+17生成的整數(shù)滿足以下條件:該數(shù)的十進(jìn)制表示中低3位數(shù)字相同,去掉低3位后的整數(shù)是回文數(shù)。例如,當(dāng)k=461時(shí)用公式生成的整數(shù)

212999,該數(shù)滿足所給條件。

  【編程要求】

    1.編寫函數(shù)int findnum(int n1,int n2,long a[][2])實(shí)現(xiàn)以下功能:k依次取n1~n2范圍

內(nèi)的每個(gè)整數(shù),分別用每個(gè)k及公式k2+k+17生成整數(shù)y,y滿足給定條件,則將k值及y

值保存到a指向的數(shù)組中,函數(shù)返回a數(shù)組中k的個(gè)數(shù)。

    2.編寫函數(shù)main實(shí)現(xiàn)以下功能:聲明二維數(shù)組a和變量n1、n2,輸入兩個(gè)整數(shù)并保存到

n1n2,n1、n2a數(shù)組作實(shí)參調(diào)用findnum函數(shù),按所給格式輸出a數(shù)組中的數(shù)據(jù)到屏

幕及文件myf2.out中。最后將考生本人的準(zhǔn)考證號(hào)輸出到文件myf2out中。

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

    輸入:n1=1,n2=10000

    輸出:k    number

         461    212999

         586    343999

         3839    14741777

    【要求】

    1.源程序文件名為myf2c,輸出結(jié)果文件名為myf2out

    2.?dāng)?shù)據(jù)文件的打開、使用、關(guān)閉均用c語(yǔ)言標(biāo)準(zhǔn)庫(kù)中緩沖文件系統(tǒng)的文件操作函數(shù)實(shí)現(xiàn)。

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

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

    參考答案

    一、改錯(cuò)題

    for(i=1;i<=sqrt(n);i++)    改為i=2

    void fun1(int m,int n,int b[])    改為int

    {k=fun1(a[i],a[i+1],b[0]);    改為b

    {if(j%10=0)printf("\n");    改為j%10==0

    二、編程題

    #include<stdio.h>

    int findnum(int n1,int n2,long a[][2])

    {  int i=0,j;

      long x1,x2,x3,y,k;

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

      {y=k*k+k+17;

       x1=x2=y/1000;x3=0;

       while(x1>0)

       {x3=x3*10+x1%10;x1=x1/10;}

       if(x2==x3&y%10==y/10%10&&y%10==y/100%10)

       {  a[i][0]=k;a[i++][1]=y;

       }

      }

    return i;   

    }

    main()

    {int i,j;long a[10][2],n1,n2;  FILE *fp;

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

     scanf("%d%d",&n1,&n2);

     j=findnum(n1,n2,a);

     printf("\n k\t number");

     for(i=0;i<j;i++)prinff("\n%ld\t%ld",a[i][0],a[i][1]);

     fprintf(fp,"\n k \t number");

     for(i=0;i<j;i++) fprintf(fp,"\n%ld\t%ld",a[i][0],a[i][1]);

     fprintf(fp,"\n My exam number is :0112400123");

     fclose(fp);getch();

    }