打印本文 打印本文  关闭窗口 关闭窗口  
2005年4月三级网络技术上机试题汇总
作者:佚名  文章来源:不详  点击数  更新时间:2007/12/21 18:25:07  文章录入:杜斌  责任编辑:杜斌

下列程序prog1.c的功能是:计算出自然数six和nine,它们满足的条件是six+six+six=nine+nine的个数cnt以及满足此条件所有的six与nine的和sum。请编写函数countvalue()实现程序的要求,最后调用函数writedat()把结果cnt和sum,输出到文件out15.dat中。 


    其中的s,i,x,n,e各代表一个十进制数字。 


    部分源程序存在文件prog1.c中。 
    请勿改动主函数main()和输出数据函数writedat()的内容。 
#include <stdio.h> 
int cnt,sum; 

void countvalue() 
{ int s,i,x,n,e,six,nine; 

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

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

    for(x=0;x<10;x++) 

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


      for(e=0;e<10;e++) 

       { six=s*100+i*10+x; 


         nine=n*1000+i*100+n*10+e; 


         if(3*six==2*nine) 

          { cnt++;sum+=six+nine;} 

       } 



void main() 


cnt=sum=0; 

countvalue(); 

printf('满足条件的个数=%d/n',cnt); 

printf('满足条件所有的six与nine的和=%d/n',sum); 


writedat(); 



writedat() 



file *fp; 
fp=fopen('out15.dat','w'); 
fprintf(fp,'%d/n%d/n',cnt,sum); 
fclose(fp); 

另一种经典解法: 
void countvalue() 
{ int i; 

  for(i=666;i<=999;i=i+2) 
    if((i/10%10==(3*i/2)/100%10)&&((3*i/2)/1000==(3*i/2)%100/10)) 
      {cnt++;sum+=i+3*i/2;} 

运算结果为: 
满足条件的个数=4 
满足条件所有的six与nine的和=9430 
某网友:
抽到第一题

题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwritedat()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和函数readwritedat()的内容void num(int m,int k,int xx[]) 
{int data=m+1; 
int half,n=0,i; 
while(1) 
{half=data/2;for(i=2;i<=half;i++) 
if(data%i==0)break; 
if(i>half) 
{xx[n]=data;n++;} 
if(n>=k)break; 
data++; 


打印本文 打印本文  关闭窗口 关闭窗口