求学快递网是国内领先的B2M2C教育培训网上信息平台!

首页 | 分站加盟 | 课程发布 | 最新课程 | 最新机构 | 培训专题 | 全国分站 | 帮助中心

计算机等级考试_计算机等级考试报名_计算机考试成绩查询_求学快递网

计算机等级考试一步到位
您的位置:求学快递网 > 计算机等级考试 > 计算机三级 > 每日一练 > 2016计算机三级考试网络技术精选练习题(1) - 正文内容

2016计算机三级考试网络技术精选练习题(1)

 

求学快递网计算机等级考试专题重点推荐:2016年计算机级考试报考时间 2016年计算机三级考试证书领取时间2016年计算机三级考试报考指南2016年计算机三级考试大纲2016年计算机三级考试政策2016年计算机三级考试报考条件2016年计算机三级考试科目等最新新闻资讯。

 

3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。

  注意:部分源程序已给出。

  请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。

  #include

  #include

  #include

  #include

  #define MAX 100

  typedef struct

  {

  char dm[5] ; /*产品代码 */

  char mc[11] ;/* 产品名称 */

  int dj ; /* 单价 */

  int sl ; /* 数量 */

  long je ; /* 金额*/

  } PRO ;

  PRO sell [MAX] ;

  void ReadDat() ;

  void WriteDat() ;

  void SortDat()

  {

  int i,j; /*定义循环控制变量*/

  PRO temp; /*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/

  for(i=0;i<99;i++) /*利用选择法进行排序*/

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

  if(strcmp(sell[i].mc,sell[j].mc)>0) /*按产品名称从小到大进行排列*/

  {

  temp=sell[i];

  sell [i]=sell[j];

  sell[j]=temp;

  }

  else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/

  if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/

  {

  temp=sell[i];

  sell[i]=sell[j];

  sell[j]=temp;

  }

  }

  void main()

  {

  memset(sell, 0, sizeof(sell)) ;

  ReadDat() ;

  SortDat() ;

  WriteDat() ;

  }

  void ReadDat()

  {

  FILE *fp ;

  char str[80], ch[11] ;

  int i ;

  fp = fopen("IN3.DAT", "r") ;

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

  {

  fgets(str, 80, fp) ;

  memcpy(sell[i].dm, str, 4) ;

  memcpy(sell[i].mc, str + 4, 10) ;

  memcpy(ch, str + 14, 4) ; ch[4] = 0 ;

  sell[i].dj = atoi(ch) ;

  memcpy(ch, str +18, 5) ; ch[5] = 0 ;

  sell[i].sl = atoi(ch) ;

  sell[i].je = (long)sell[i].dj * sell[i].sl;

  }

  fclose(fp) ;

  }

  void WriteDat()  {

  FILE *fp;

  int i ;

  fp = fopen("OUT3.DAT", "w") ;

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

  {

  fprintf(fp, "%s %s %4d %5d %10ldn", sell[i].dm, sell[i].mc, sell[i].dj,sell[i].sl, sell[i].je) ;

  }

  fclose(fp) ;

  }

  4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。

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

  注意:部分源程序已给出。

  原始数据文件存放的格式是:每行的宽度均小于80个字符。

  请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。

  #include

  #include

  #include

  #include

  unsigned char xx[50][80] ;

  int maxline = 0 ;/* 文章的总行数 */

  int ReadDat(void) ;

  void WriteDat(void) ;

  void encryptChar()

  {

  int i,j; /*定义循环控制变量*/

  int str; /*存储字符串的长度*/

  char ch; /*存储当前取得的字符*/

  for(i=0;i

  {

  str=strlen(xx[i]); /*求得当前行的字符串长度*/

  for(j=0;j

  {

  ch=xx[i][j]*11%256;

  if(ch<=32 || ch>130)

  continue; /*如果计算后的值小于等于32或大于130,则该字符不变*/

  else

  xx[i][j]=ch; /*否则将所对应的字符进行替代*/

  }

  }

  }

  void main()

  {

  system("CLS");

  if(ReadDat())

  {

  printf("数据文件ENG4.IN不能打开!n

相关推荐

计算机等级考试最新机试技巧
计算机等级考试高效利用技巧

最新计算机资讯

热点专题

计算机等级考试经验技巧分享

关于本站  诚征英才  广告服务  招生服务  免责声明  分站加盟  VIP会员  联系我们  网站地图  网站记事

版权所有 CopyRight 2008-2017 粤ICP备14009694号 www.studyems.com, Inc. All Rights Reserved
违法和不良信息举报邮箱:2881796407@qq.com 举报电话: