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

★☆题目88(选票问题)


现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中


void CountRs(void)


{ int i,j,count;


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


   { count=0;


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


       if(xx[i][j]=='1') count++;


     if(count==0||count==10) continue;


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


       if(xx[i][j]=='1') yy[j]++; 


   }


}


☆题目89(选票问题)


现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。


    void CountRs(void)


{ int i,j,count;


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


   { count=0;


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


       if(xx[i][j]=='1') count++;


     if(count>5) continue;


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


       if(xx[i][j]=='1') yy[j]++; 


   }


}


★☆题目90(级数运算题)


某级数的前两项A1=1,A2=1,以后各项具有如下关系:


    An=An-2+2An-1(注:n-2与n-1为下标)


    下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn<M且Sn+1>=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能, 最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。


    请勿改动主函数main()和写函数writeDat()的内容。


#include <stdio.h>


int b[3];



jsValue()


{int a1=1,a2=1,a12,sn,k=2;


 sn=a1+a2;


 while(1)


  {a12=a1+2*a2;


   if(sn<100&&sn+a12>=100) b[0]=k;


   if(sn<1000&&sn+a12>=1000) b[1]=k;


   if(sn<10000&&sn+a12>=10000) {b[2]=k;break;}


   sn=sn+a12;www.examw.com


   a1=a2;a2=a12;


   k++;


  }


}



运行结果为:


M=100,n=6


M=1000,n=9


M=10000,n=11


☆题目91(单词个数统计题)


编写一个函数findStr(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。(表明了返回值是整数型)


    函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。


   int findStr(char *str,char *substr)


{ int i,j,len1,len2,cnt=0,flag;


  len1=strlen(str);


  len2=strlen(substr);


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


   { for(j=0;j<len2;j++)


       if(str[i+j]==substr[j])   flag=1;


       else {flag=0;break;}


     if(flag==1)  cnt++;


   }


  return cnt;中华考试


}


★题目92(Fibonacci数列题)


编写函数jsValue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:


    F(0)=0,F(1)=1


    F(n)=F(n-1)+F(n-2)


    最后调用函数writeDat()读取50个数据t,分别得出结果且把结果输出到文件out.dat中。


    例如:当t=1000时,函数值为:1597。


 int jsValue(int t)


{ int f0=0,f1=1,fn;


  fn=f0+f1;


  while(fn<=t)


   { f0=f1;


     f1=fn;


     fn=f0+f1;


   }


  return fn;


}

就业数据资源平台