首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > C语言 > 模拟试题 > 正文

2009年9月计算机等级考试二级C语言模拟试题(3)

本套试题对考生复习备考具有直接的指导作用,帮助考生提高解题能力。

  上机部分

  一、填空题

  程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其他学生数据不变;若找不到,则什么都不做。

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

  注意:不得增行或删行,也不得更改程序的结构!

  #include  <stdio.h>

  #define    N    5

  typedef struct student

  {long sno;

  char name[10];

  float score[3];

  }STU;

  void fun(char *filename, long sno)

  {

  FILE *fp;

  STU n;  int i;

  fp=fopen(filename,"rb+");

  while(!   1   )

  {

  fread(&n,sizeof(STU),1,fp);

  if(n.sno   2   )  break;

  }

  if(!feof(fp))

  {

  for(i=0;i<3;i++)  n.score[i]+=3;

  fseek(fp,1L*   3   ,SEEK_CUR);

  fwrite(&n, sizeof(STU), 1, fp);

  }

  fclose(fp);

  }
  main()

  {

  STU t[N]={{10001,"MaChao",91,92,77},

  {10002,"CaoKai",75,60,88},

  {10003,"LiSi",85,70,78},

  {10004,"FangFang",90,82,87},

  {10005,"ZhangSan",95,80,88}},ss[N];

  int i,j;  FILE *fp;

  fp=fopen("student.dat","wb");

  fwrite(t, sizeof(STU), N, fp);

  fclose(fp);

  printf("\nThe original data :\n");

  fp=fopen("student.dat","rb");

  fread(ss, sizeof(STU), N, fp);

  fclose(fp);

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

  {

  printf("\nNo:%ld  Name:%-8sScores: ",

  ss[j].sno,ss[j].name);

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

  printf("%6.2f ",ss[j].score[i]);

  printf("\n");

  }

  fun("student.dat",10003);

  fp=fopen("student.dat","rb");

  fread(ss,sizeof(STU),N,fp);

  fclose(fp);

  printf("\nThe data aftermodifying :\n");

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

  {

  printf("\nNo:%ld  Name: %-8s Scores:",

  ss[j].sno,ss[j].name);

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

  printf("%6.2f",ss[j].score[i]);

  printf("\n");

  }

  }

  【答案及解析】

  相关推荐:计算机二级C技巧:VC6.0控制鼠标反方向移动
       计算机等级考试二级C语言考试辅导教程汇总
文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。