C语言实践-结构体

    xiaoxiao2026-06-12  19

    【项目1-复数结构体】

    编写一个程序,首先定义一个复数数据类型,即结构类型。然后按照复数的运算规则进行计算,并按照复数表示的格式进行输出,请将程序补充完整。

    #include <stdio.h> struct complex { int re; int im; }; int main() { struct complex x,y,s,p; scanf("%d%d",&x.re,&x.im); scanf("%d%d",&y.re,&y.im); //复数s是复数xy的和 s.re=_______(1)_______; s.im=_______(2)_______; printf(" sum=]+]i\n",s.re,s.im); //复数p是复数xy的积 p.re=_______(3)_______; p.im=x.re*y.im+x.im*y.re; printf(" product=]+]i\n",p.re,p.im); return 0; }

    [参考解答]


    【项目2-学生成绩处理】

    (1)定义学生结构体,在结构体数组中,输入了学生学号和两门课的成绩,计算均分后,输出成绩单,请在下面的程序基础上,将程序补充完整。

    #include <stdio.h> #define N 100 /*N表示最多允许的学生人数*/ struct Student { int num; //学号 int c; //C语言成绩 int math; //数学成绩 float aver; //两科均分 }; int main( ) { int n; //定义结构体数组存放多名同学的成绩 struct Student stu[N]; printf("请输入学生人数: "); scanf("%d", &n); printf("请输入学号、C和数学课的成绩: \n"); //输入数据 //输出成绩单 return 0; }

    (2)请在上面的程序的基础上增加功能,使运行结果如下图: 其中,需要做出的改动是:

    计算每名学生的学分绩——各科成绩乘以学分的和,再除以总学分(本题中,C语言和数学课的学分分别是3和4); 计算各科的均分;输出得奖学金的同学学号清单——奖学金规则是,学分绩要高于80且没有挂科。 [参考解答]

    【项目3-点结构体】

    下面定义了一个表示平面上一点的结构体类型:

    struct Point { float x; //横坐标 float y; //纵坐标 };

    (1)请编写程序,输入一点的横纵坐标,输出该点到原点的距离 (2)请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果如下图所示: [参考解答]


    最新回复(0)