当前位置: 首页 > news >正文

全国计算机等级考试二级题库【C语言】:程序修改题型——结构体、可变数组、链表 自制答案详解合辑

二级C语言程序修改题型简介

1、/**********found**********/紧跟的下面一行的程序有误,一般为2~3个错误;
2、常见错误:
(1)函数返回值、形参错误
(1)关键字、变量名的拼写错误
(2)变量初始赋值错误
(3)条件表达式错误(关系运算符错误、逻辑运算符错误等等)
(4)
3、做题推荐步骤:
(1)阅读题干,明确题意。
(2)阅读代码,明确3个区域(输入、输出、算法实现)。
(3)阅读代码,明确各变量的含义。
(4)定点到错误行,重点研究该行中所有变量

---------------一、结构体---------------

18、题目要求【结构体】

给定程序MODI1. C中,函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。
例如:主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是: 76. 125000请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include  <stdio.h>
typedef  struct
{  char  num[8];double  score[2];
}STU ;
double fun(STU  std[], int  n)
{  int   i;
/**********found**********/double  sum ;
/**********found**********/for(i=0; i<2 ; i++)
/**********found**********/sum += std[i].score[]; return  sum/n;
}
main()
{  STU  std[ ]={ "N1001", 76.5,82.0 ,"N1002", 66.5,73.0, "N1005", 80.5,66.0,"N1006", 81.0,56.0 };printf("第1门课程的平均分是:%lf\n", fun(std,4) );getchar();
}

我的答案

#include  <stdio.h>
typedef  struct
{  char  num[8];double  score[2];
}STU ;
double fun(STU  std[], int  n)
{  int   i;
/**********found**********/double  sum =0.0;//(1)sum用于保存成绩和,变量初始化缺失
/**********found**********/for(i=0; i<n ; i++)//(2)循环次数错误 i应为从0到n-1
/**********found**********/sum += std[i].score[0];//(3)数组下标错误:第1门课程成绩 对应 0号下标return  sum/n;
}
main()
{  STU  std[ ]={ "N1001", 76.5,82.0 ,"N1002", 66.5,73.0, "N1005", 80.5,66.0,"N1006", 81.0,56.0 };printf("第1门课程的平均分是:%lf\n", fun(std,4) );getchar();
}

知识点提要
1、结构体:结构体的定义,结构体变量的定义,结构体属性的访问(考察知识);
2、求和算法(前置知识);
3、数组的下标从0开始(前置知识)。

技巧总结
1、变量的定义行:①变量初始化缺失;
2、for循环条件表达式所在行:①循环次数错误;
3、求和表达式行:①右值错误 ——数组下标错误。

---------------二、可变数组---------------

25、题目要求

给定程序modi1.c中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define    N  10
typedef  struct  ss
{  char  num[10];int  s;
} STU;
STU *fun(STU  a[], int  m)
{  STU  b[N], *t;int  i,j,k;
/**********found**********/t=(STU *)calloc(sizeof(STU),m)for(i=0; i<N; i++)  b[i]=a[i];for(k=0; k<m; k++){  for(i=j=0; i<N; i++)if(b[i].s > b[j].s)  j=i;
/**********found**********/t(k)=b(j);b[j].s=0;}return  t;
}
outresult(STU  a[], FILE  *pf)
{  int  i;for(i=0; i<N; i++)fprintf(pf,"No = %s  Mark = %d\n", a[i].num,a[i].s);fprintf(pf,"\n\n");
}
main()
{  STU  a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} };STU  *pOrder;int  i, m;printf("***** The Original data *****\n");outresult(a, stdout);printf("\nGive the number of the students who have better score:  ");scanf("%d",&m);while( m>10 ){ printf("\nGive the number of the students who have better score:  ");scanf("%d",&m);}pOrder=fun(a,m);printf("***** THE  RESULT *****\n");printf("The top  :\n");for(i=0; i<m; i++)printf("   %s    %d\n",pOrder[i].num , pOrder[i].s);free
http://www.dtcms.com/a/286691.html

相关文章:

  • 深度学习入门-深度学习简介
  • 屏显智能电子锁语音芯片方案新选择
  • Hinge Loss(铰链损失函数)详解:SVM 中的关键损失函数
  • C++实现单层时间轮
  • UE5网络联机函数
  • RSTP技术
  • Thread,ThreadLocal,ThreadLocalMap 三者的关系, 以及在实际开发中的应用【AI记录用】
  • mysql复制延迟如何处理
  • js中的微任务和宏任务的理解
  • python 实现将文件的非零数据扇区进行提取,并以偏移地址进行命名保存
  • AI(day10)模块化编程概念(模块、包、导入)及常见系统模块总结和第三方模块管理
  • AE PDW2200电源射频手侧使用安装说明含电路图
  • 70 gdb attach $pid, process 2021 is already traced by process 2019
  • 反序列化漏洞3-反序列化漏洞讲解演示
  • 4. PyQGIS整体框架详解
  • Agent AI(3):Agent分类
  • day30——零基础学嵌入式之线程2.0
  • 多线程-2-线程间通信
  • 推荐算法召回:架构理解
  • 【RK3576】【Android14】开发环境搭建
  • Windows 下 VS2019 编译 libevent-2.1.10 库
  • React 实现人员列表多选、全选与取消全选功能
  • 大疆司空2私有化部署报错解决方案
  • 谷歌浏览器Chrome的多用户配置文件功能
  • Python分组柱形图绘制全攻略
  • 题解:CF1866D Digital Wallet
  • 熔断和降*的区别
  • 使用pt-toolkit工具包进行MySQL性能优化实战指南
  • 算法训练营day24 回溯算法③ 93.复原IP地址 、78.子集、 90.子集II
  • AWS SSL证书无缝迁移完整指南 - 零业务中断方案