当前位置: 首页 > 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.lryc.cn/news/592100.html

相关文章:

  • 在 ASP.NET Core 和 JavaScript 中配置 WebSocket
  • 【计算机网络】MAC地址与IP地址:网络通信的双重身份标识
  • 依托CCLinkIE转ModbusTCP网关的转换达成西门子PLC连接配置案例
  • 计算机网络基础:从协议到通信全解析(大致框架)
  • Selenium自动化浏览器操作指南
  • websocket案例 599足球比分
  • IDEA高效开发:Database Navigator插件安装与核心使用指南
  • 【后端】.NET Core API框架搭建(10) --配置163邮件发送服务
  • 应用集成体系深度解析:从数据互通到流程协同
  • 实现库存显示和状态按钮的Question
  • nginx定制http头信息
  • python实现Markdown转化PDF的方案
  • 关于字符编辑器vi、vim版本的安装过程及其常用命令:
  • 小架构step系列18:工具
  • web3 区块链技术与用
  • 6 种无线传输照片从安卓到 Mac 的方法
  • 在ComfyUI中CLIP Text Encode (Prompt)和CLIPTextEncodeFlux的区别
  • 5 种可行的方法:如何将 Redmi 联系人备份到 Mac
  • AI进入自动驾驶时代:OpenAI发布革命性ChatGPT Agent
  • 飞牛上使用Docker方式部署LibreTV,再配合内网穿透,实现免费无广告刷剧的服务教程
  • 深度剖析:最新发布的ChatGPT Agent 技术架构与应用场景
  • uniapp+vue2——自定义底部导航tabbar
  • android版本编译问题之Hvac 应用体积优化问题处理记录
  • 从一开始的网络攻防(四):XSS
  • 推荐算法召回:架构理解
  • 正则表达式,Collection集合,迭代器
  • 正则表达式完全指南:从入门到实战
  • Kotlin集合分组
  • 黑马Node.js全套入门教程,nodejs新教程含es6模块化+npm+express+webpack+promise等_ts对象笔记
  • Kotlin集合过滤