栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

西南交通大学840数据结构编程大题-2017年

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

西南交通大学840数据结构编程大题-2017年

文章目录

第一题第二题

第一题

1.已知穿线二叉树结点数据类型定义如本试卷第二大题第8.小题所示,若二叉
树已线索化,试编写算法函数,形参传入根结点地址root,函数值返回二叉
树的叶子结点数。(提示:叶子结点的判断条件是: ltag==0&&rtag==0
) (10分)

#include 

typedef struct bt_node {
    char data;
    int ltag, rtag;
    struct btsnode *lchild, *rchild;
} BTNode, *BT;

int Leaf(BT root) {
	if (root == NULL) return 0;
    if (root->ltag == 0 && root->rtag == 0) return 1;
    return Leaf(root->lchild) + Leaf(root->rchild);
}
第二题

2、有N个学生,每个学生有3门课的成绩,从键盘输入数据(包括学生学号,姓名,三门课成绩),求出每个学生的课程平均成绩,将原来的数据和课程平均成绩存放在D盘student目录下std文本文件中(D:student)(10分)。
(要求:定义结构体类型存储学生:学号、姓名、三门课成绩、平均成绩)

#include 
#define N 5
typedef struct {
    char number[20];              //学号
    char name[20];                // 姓名
    float score1, score2, socre3; //三门课成绩
    float avg;                    // 平均成绩
} student;

int main() {
    student arr[N];
    for (int i = 0; i < N; i++) {
        scanf("%s%s%f%f%f", arr[i].number, arr[i].name, &arr[i].score1, &arr[i].score2, &arr[i].socre3);
        arr[i].avg = (arr[i].score1 + arr[i].score2 + arr[i].socre3) / 3;
    }
    FILE *fp = fopen("D:\student\std", "w");
    if (fp == NULL) {
        puts("can't open");
        return 0;
    }
    for (int i = 0; i < N; i++) {
        fprintf(fp, "number=%s name=%s score1=%f score2=%f score3=%f avg=%fn", arr[i].number, arr[i].name, arr[i].score1, arr[i].score2, arr[i].socre3, arr[i].avg);
    }
    fclose(fp);
    return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号