就业数据资源平台
当前位置:首页 > 网络技术
2012年计算机三级网络技术考试上机练习题13

题目43(素数题)

下列程序prog1.c的功能是:计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数...的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT11.DAT中。


int isP(int m)


{ int i;


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


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


 return 1;


}


void countValue()


{int i,j,k=1;


 for(i=800;i>500;i--)


if(isP(i))


{


 cnt++;


 sum=sum+k*i;


 k=k*(-1); }


  }


}


★题目44(素数题)


已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果cnt,pjz1,pjz2输


出到out.dat文件。


    例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。


          9812是非素数,则该数不满足条件计算平均值pjz2。


int isP(int m)


{int i;


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


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


 return 1;


}


jsValue()


{int i;


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


    if(isP(a[i])) {pjz1+=a[i];cnt++;}


    else pjz2+=a[i];


 if(cnt==0) pjz1=0;


 else pjz1/=cnt;


 if(300-cnt==0) pjz2=0;


 else pjz2/=(300-cnt);转自:考试网 - [Examw.Com]


}


★题目45(数字运算题)


请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。


   void countValue(int *a,int *n)


{ int i;


  *n=0;


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


    if(i%7==0&&i%11||i%7&&i%11==0)


      a[(*n)++]=i;


}


★题目46(数字统计排序题 )


已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是偶数(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。


void jsVal()


{int i,j,flag;


 for(i=5;i<MAX;i++)


  {for(j=i-5;j<i;j++)


     if(a[i]>a[j]&&a[i]%2==0) flag=1;


     else { flag=0; break;}


   if(flag==1) b[cnt++]=a[i];


  }


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


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


   if(b[i]<b[j]) {flag=b[i];b[i]=b[j];b[j]=flag;}


}


☆题目47(数字统计排序题 )


已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是奇数,且该数必须能被7整除(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。


    void jsVal()


{ int i,j,flag;


  for(i=5;i<MAX;i++)


   { for(j=i-5;j<i;j++)


       if(a[i]>a[j]&&a[i]%2&&a[i]%7==0) flag=1;


        else { flag=0;break;}


    if(flag==1) b[cnt++]=a[i];


   }


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


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


     if(b[i]<b[j]) { flag=b[i]; b[i]=b[j]; b[j]=flag;}


}

就业数据资源平台