计算机等考三级数据库上机题及答案6.docx

上传人:b****5 文档编号:2786451 上传时间:2022-11-15 格式:DOCX 页数:13 大小:19.55KB
下载 相关 举报
计算机等考三级数据库上机题及答案6.docx_第1页
第1页 / 共13页
计算机等考三级数据库上机题及答案6.docx_第2页
第2页 / 共13页
计算机等考三级数据库上机题及答案6.docx_第3页
第3页 / 共13页
计算机等考三级数据库上机题及答案6.docx_第4页
第4页 / 共13页
计算机等考三级数据库上机题及答案6.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

计算机等考三级数据库上机题及答案6.docx

《计算机等考三级数据库上机题及答案6.docx》由会员分享,可在线阅读,更多相关《计算机等考三级数据库上机题及答案6.docx(13页珍藏版)》请在冰豆网上搜索。

计算机等考三级数据库上机题及答案6.docx

计算机等考三级数据库上机题及答案6

 76.函数RData()实现从文件IN.dat中读取20行数据存放到字符串数组str中(每行字符串长度均小于80)。

请编写函数stringSort(),其功能是:

以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组str中。

最后调用函数WData(),把结果str输出到OUT.dat文件中。

  条件:

从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。

如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

  例如,位置012345678

  原字符串abcdhgfe

  123498765

  处理后字符串hgfedcba

  位置876594321

  【答案】

  voidstringSort()

  {inti,j,k,strl,half;

  charch;

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

  {strl=strlen(str[i]);

  half=strl/2;

  for(j=0;j

  for(k=j+1;k<>

  if(str[i][j]

  {ch=str[i][j];

  str[i][j]=str[i][k];

  str[i][k]=ch;

  }

  for(j=half-1,k=strl-1;j>=0;j--,k--)

  {ch=str[i][j];

  str[i][j]=str[i][k];

  str[i][k]=ch;

  }

  }

  }

  77.函数RData()的功能是实现从文件IN.dat中读取一篇英文文章存入到字符串数组original中。

请编写函数CharAdd(),其功能是:

以行为单位把字符串中的第1个字符的ASCII值加第2个字符的ASCII值,得到第1个新字符,第2个字符的ASCII值加第3个字符的ASCII值,得到第2个新字符,以此类推,一直处理到倒数第2个字符,最后1个字符的ASCII值加原第1个字符的ASCII值,得到最后1个新的字符。

得到的新字符分别存放在原字符串对应的位置上,最后把已处理的字符串逆转后按行重新存入字符串数组original中。

最后调用函数WData(),把结果original输出到OUT.dat文件中。

  原始数据文件存放的格式是:

每行的宽度均小于80个字符(含标点符号和空格)。

  【答案】

  voidCharAdd(void)

  {inti,j,k,str;

  charch;

  for(i=0;i<>

  {str=strlen(original[i]);

  ch=original[i][0];

  for(j=0;j

  original[i][j]+=original[i][j+1];

  original[i][str-1]+=ch;

  for(j=0,k=str-1;j

  {ch=original[i][j];

  original[i][j]=original[i][k];

  original[i][k]=ch;

  }

  }

  }

  78.编写函数FibValue(),其功能是:

求Fibonacci数列中大于t的最小的一个数,结果由函数返回。

其中Fibonacci数列F(n)的定义为:

  F(0)=0,F

(1)=1

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

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

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

  【答案】

  intFibValue(intt)

  {intf1=0,f2=1,fn;

  fn=f1+f2;

  while(fn<=t)

  {f1=f2;

  f2=fn;

  fn=f1+f2;

  }

  returnfn;

  }

79.下列程序的功能是:

利用"Xn+1=cos(Xn)"迭代方法求方程:

cos(X)-X=0的一个实根。

  迭代步骤为:

①取X1初值为0.0;②X0=X1,把X1的值赋给X0;③X1=cos(X0),求出一个新的X1;④若X0-X1的绝对值小于0.000001,执行步骤⑤,否则执行步骤②;⑤所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。

  请编写函数countValue()实现程序的要求,最后调用函数WData(),把结果输出到文件OUT.dat中。

  【答案】

  floatcountValue()

  {floatX0,X1=0.0;

  while

(1)

  {X0=X1;

  X1=(float)cos(X0);

  if(fabs(X0-X1)<1e-6)

  break;

  }

  returnX1;

  }

  80.函数Rdata()实现从文件IN.dat中读取一篇英文文章,存入到字符串数组string中;请编写encryptChar()函数,其功能是:

按给定的替代关系对数组string中的所有字符进行替代后,仍存入数组string的对应位置上。

最后调用函数Wdata(),把结果string输出到文件OUT.dat中。

  替代关系:

f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是奇数,则该字符不变,否则将f(p)所对应的字符进行替代。

  原始数据文件存放的格式是:

每行的宽度均小于80个字符。

  【答案】

  voidencryptChar()

  {inti;

  char*pf;

  for(i=0;i

  {pf=string[i];

  while(*pf!

=0)

  {if(((*pf*11%256)%2!

=0)||*pf*11%256<=32)

  {pf++;

  continue;

  }

  *pf=*pf*11%256;

  pf++;

  }

  }

  }

  81.现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此人被选中,0表示此人未被选中,全选或全不选均为无效的选票。

给定函数RData()的功能是把选票数据读入字符串数组original中。

请编写函数CountRs()来统计每个人的选票数并把得票数依次存入result[0]到result[9]中,把结果result输出到OUT.dat文件中。

  【答案】

  voidCountRs(void)

  {inti,j=0,k;

  char*str;

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

  result[i]=0;

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

  {str=original[i];

  j=0;

  while(*str)

  {if(*str=='1')

  j++;

  str++;

  }

  if(j!

=0&&j!

=10)

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

  result[k]+=original[i][k]-'0';

  }

  }

82.现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为是无效的选票。

给定函数Rdata()的功能是把选票数据读入到字符串数组str中。

请编写函数CountRs()来统计每个人的选票数并把得票数依次存入result[0]到result[9]中,把结果result输出到OUT.dat文件中。

  【答案】

  voidCountRs(void)

  {inti,count,j;

  char*pf;

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

  result[i]=0;

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

  {pf=str[i];

  count=0;

  while(*pf)

  {if(*pf=='1')

  count++;

  pf++;

  }

  if(count>5)

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

  result[j]+=str[i][j]-'0';

  }

  }

  83.函数ReadDat()实现从文件IN.dat中读取20行数据存放到字符串数组str中(每行字符串长度均小于80)。

请编写函数charSort(),其函数的功能是:

以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组str中。

最后调用函数WriteDat(),把结果str输出到文件OUT.dat中。

  条件:

从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。

如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。

  例如,位置012345678

  原字符串abcdhgfe

  123498765

  则处理后字符串dcbaefgh

  432195678

  【答案】

  voidcharSort()

  {inti,j,k,strl,half;

  charch;

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

  {strl=strlen(str[i]);

  half=strl/2;

  for(j=0;j

  for(k=j+1;k<>

  if(str[i][j]

  {ch=str[i][j];

  str[i][j]=str[i][k];

  str[i][k]=ch;

  }

  if(strl%2)

  half++;

  for(j=half;j

  for(k=j+1;k<>

  if(str[i][j]>str[i][k])

  {ch=str[i][j];

  str[i][j]=str[i][k];

  str[i][k]=ch;

  }

  }

  }

  84.在文件IN.dat中有200个正整数,且每个数均在1000~9999之间。

函数RData()读取这200个数存放到数组original中。

请编写函数DescSort(),其函数的功能是:

按每个数的后3位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行升序排列。

最后调用函数WData(),把结果result

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1