专升本C语言试题分析(二)

编程入门 行业动态 更新时间:2024-10-06 20:25:18

<a href=https://www.elefans.com/category/jswz/34/1768210.html style=专升本C语言试题分析(二)"/>

专升本C语言试题分析(二)

专升本C语言试题分析(二)

前言

尝试对C语言专升本题目进行分析,有不对的地方欢迎指正,在边学习边成长!

一、题目

编写函数 Fun22() 实现如下功能:假设 n 名学生的成绩存储在一个结构体数组变量 scoreLists 中,计算学生成绩的平均分并通过函数返回。其中,结构体类型定义代码如下所示。
struct StudentScore
{
double score;
};

二、分析步骤

1.Fun22()函数的编写

对Fun22()函数编写之前,应当先审题。题中说到“假设 n 名学生的成绩存储在一个结构体数组变量 scoreLists 中”,故在写Fun22()以前,需要对结构体数组变量 scoreList进行定义。

代码如下(示例):

struct StudentScore scoreLists[128];
double Fun22(int n,struct StudentScore scoreLists[]){/*  形参要注意有两个,其一是学生人数n,其二是结构体数组 */double sum=0,avg=0;    /*  两个初始值,sum记录总成绩,avg记录平均成绩,均为double */for(int i=0;i<n;i++){sum+=scoreLists[i].score; /*  遍历结构体数组scoreLists中每一个元素的score值 */}avg=sum/n;       /*  也可以直接写return sum/n; */return avg;
}
}

2.主函数编写

代码如下(示例):

int main(){int i,n;printf("请输入学生人数:");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入第%d名学生的成绩:",i+1);  /*  输入提示 */scanf("%lf",&scoreLists[i].score);    /*  每输入一个学生,就赋值给结构体数组一次 */}printf("平均分为:%lf",Fun22(n,scoreLists));    /*  调用Fun22()函数,注意实参的传递 */return 0;
}

总结

代码如下(示例):

#include <stdio.h>
struct StudentScore scoreLists[128];
double Fun22(int n,struct StudentScore scoreLists[]){/*  形参要注意有两个,其一是学生人数n,其二是结构体数组 */double sum=0,avg=0;    /*  两个初始值,sum记录总成绩,avg记录平均成绩,均为double */for(int i=0;i<n;i++){sum+=scoreLists[i].score; /*  遍历结构体数组scoreLists中每一个元素的score值 */}avg=sum/n;       /*  也可以直接写return sum/n; */return avg;
}
}
int main(){int i,n;printf("请输入学生人数:");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入第%d名学生的成绩:",i+1);  /*  输入提示 */scanf("%lf",&scoreLists[i].score);    /*  每输入一个学生,就赋值给结构体数组一次 */}printf("平均分为:%lf",Fun22(n,scoreLists));    /*  调用Fun22()函数,注意实参的传递 */return 0;
}

以上就是今天要讲的内容,思路大致是,将结构体数组视为一维数组进行操作,注意结构体数组在引用上与一维数组的差异。

更多推荐

专升本C语言试题分析(二)

本文发布于:2024-03-14 00:06:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735186.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:专升本   试题   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!