Contest1888 - 2025-2026-1学期《C语言程序设计》:结构体【25计算机】(15-16周)
结构体单元作业(作业1888)上机在线编程实验要求
实验目的
-
巩固结构体(struct)的定义、初始化及成员访问方法;
-
掌握结构体作为函数参数的传递方式(值传递/引用传递);
-
学会使用结构体解决实际问题(如数据封装、复杂对象表示、排序等);
-
提高在线编程平台的使用能力及代码调试技巧;
-
熟练运用结构体处理不同类型的数据集合(如学生信息、复数、分数等)。
实验环境
实验内容
本次作业包含13道结构体相关编程题,需登录WebTuring平台完成。题目涵盖结构体的基本使用、函数传递、排序、复数运算、分数运算等多个知识点:
第一类:基础数据统计与排序(题目A-H)
Problem A: C语言11.1-候选人得票
Problem B: C语言11.2
-
结构体基本操作练习(具体内容以平台题目描述为准)。
Problem C: C语言11.6
-
结构体数组操作及数据处理(具体内容以平台题目描述为准)。
Problem D: C语言11.8
-
复杂结构体应用及数据筛选(具体内容以平台题目描述为准)。
Problem E: 复数加法
-
定义复数结构体(实部、虚部),实现两个复数的加法运算。
Problem F: 复数乘积
Problem G: 复数求和
Problem H: 谁拿了最多奖学金?
-
定义学生结构体,包含姓名、学号、成绩、获奖情况等,计算并找出获得奖学金最多的学生。
第二类:排序与特殊运算(题目I-M)
Problem I: 一种排序
-
使用结构体存储待排序数据及其原始位置,按照特定规则排序并输出。
Problem J: 结义兄弟
-
结构体的高级应用,处理复杂的关系数据(具体内容以平台题目描述为准)。
Problem K: 电子表A+B
-
使用结构体表示时间(时、分、秒),实现时间的加法运算。
Problem L: a/b + c/d
-
定义分数结构体,实现两个分数的加法运算并化简结果。
Problem M: 精挑细选
-
结构体数组的筛选与组合问题(具体内容以平台题目描述为准)。
实验要求
-
结构体使用规范:所有题目必须使用结构体实现数据封装,根据题目需求合理设计结构体成员;
-
函数传递方式:结构体作为函数参数时,优先使用引用传递(如const Complex&)以提高效率;
-
代码风格:
-
变量名、函数名命名规范,见名知意;
-
添加必要注释,解释关键逻辑;
-
代码缩进一致,结构清晰;
-
输入输出格式:严格按照平台题目要求的格式进行输入输出,避免多余空格或换行;
-
边界情况处理:
-
分数运算中注意分母为0的情况;
-
复数运算中注意虚部符号的处理;
-
排序问题中注意相等元素的处理;
-
算法效率:对于大规模数据(如n>1000),需考虑算法的时间复杂度。
提交方式
-
登录WebTuring平台,进入“作业1888”竞赛页面;
-
选择对应题目,在代码编辑器中编写并提交;
-
平台自动评测代码,显示“Accepted”(通过)或错误信息(需调试修改);
-
完成所有题目并通过评测后,实验结束。
注意事项
-
时间限制:自发布起至截止日期前完成提交;
-
独立完成:禁止抄袭他人代码,平台会进行相似度检测;
-
调试技巧:
-
本地编写代码并测试后再提交;
-
利用平台的测试用例提示进行调试;
-
注意数据类型溢出问题(如使用long long处理大数值);
-
技术支持:如遇平台技术问题,及时联系课程助教。
知识点回顾
在完成作业前,建议回顾以下结构体相关知识点:
-
结构体的定义与初始化
-
结构体成员的访问与修改
-
结构体数组的定义与使用
-
结构体作为函数参数(值传递 vs 引用传递)
-
结构体排序(自定义比较函数)
-
嵌套结构体的使用
-
Start Time:
2025-12-04 08:00:00
End Time:
2025-12-23 00:00:00
Current Time:
2025-12-08 02:40:43
Status:
Running
Public
[Status]
[Standing]
[Statistics]