专升本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语言试题分析(二)
发布评论