• C语言基础例题7例-结构体篇


    1-5题

    C语言基础例题1-3题-指针篇
    C语言基础例题4-5题-二维数组篇

    前言

    本篇文章的题目为C的基础练习题,结构部分。做这些习题之前,你需要确保已经学习了结构的知识。

    题目主要考察结构的初始化,用于巩固初始化结构的知识。

    题目

    例题6(难度★ ☆ ☆ ☆ ☆)

    编写一个C程序,定义一个名为Person的结构,包含以下字段:

    姓名(name):字符串类型
    年龄(age):整数类型
    性别(gender):字符类型

    在主函数中,声明并初始化一个名为person的Person结构变量,其姓名为"Tom",年龄为25,性别为’M’。

    打印出person的信息,格式如下:
    姓名: Tom
    年龄: 25
    性别: M

    在这里插入图片描述

    例题7(难度★ ★ ☆ ☆ ☆)

    编写一个C程序,定义一个名为Student的结构,包含以下字段:
    学生姓名(name):字符串类型
    学号(id):整数类型
    成绩(scores):包含5门课程成绩的数组,每门课程的成绩也是一个整数类型。

    在主函数中,声明并初始化一个包含3个学生的学生数组students。每个学生的姓名、学号和成绩如下:
    学生1:姓名为"Alice",学号为2019001,成绩为{90, 85, 92, 88, 95}
    学生2:姓名为"Bob",学号为2019002,成绩为{78, 82, 80, 85, 88}
    学生3:姓名为"Cathy",学号为2019003,成绩为{92, 88, 95, 90, 87}

    打印出每个学生的姓名、学号和每门课程的成绩。
    在这里插入图片描述

    答案

    例题1

    #include 
    
    typedef struct _Person
    {
        char name[8];
        int age;
        char gender;
    }Person;
    
    int main()
    {
        Person person={
            "Tom",
            25,
            'M'
        };
        printf("姓名:%s\n年龄:%d\n性别:%c\n",person.name,person.age,person.gender);
        getchar();
        getchar();
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    解析

    代码中定义了一个名为Person的结构体类型。Person结构体包含了三个成员:name(姓名),age(年龄)和gender(性别)。

    在主函数中,首先创建了一个名为person的结构体变量,并使用赋值运算符将"Tom"、25和’M’分别赋值给person结构体的name、age和gender成员。然后,使用printf函数打印出person结构体的成员值。

    例题2

    #include 
    typedef struct _Person
    {
        char name[8];
        int id;
        int score[5];
    } Person;
    int main()
    {
        Person students[3] = {
            {"Alice", 2019001, {90, 85, 92, 88, 95}},
            {"Bob", 2019002, {78, 82, 80, 85, 88}},
            {"Cathy", 2019003, {92, 88, 95, 90, 87}}};
    
        for (int i = 0; i < 3; i++)
        {
            printf("学生姓名:%s\n学生学号: %d\n学生成绩: ", students[i].name, students[i].id);
            for (int j = 0; j < 5; j++)
            {
                printf("%d ", students[i].score[j]);
            }
            putchar('\n');
        }
        getchar();
        getchar();
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    解析

    Person结构体有三个成员:name(姓名),id(学号)和score(成绩数组)。

    在主函数中,首先创建了一个名为students的Person类型的数组,数组的大小为3。然后,通过大括号的方式为数组的每个元素赋初值。每个元素都包含了一个学生的姓名、学号和成绩数组。

    接下来,使用两个嵌套的for循环来遍历数组中的每个元素,并通过printf函数打印出每个学生的姓名、学号和成绩。在内层循环中,使用printf函数打印出每个成绩数组的元素值。

  • 相关阅读:
    解决rosbag播放‘[FATAL] [1662351033.122111074]: Expected INDEX_DATA record‘
    在win7中安装node14.0以上版本
    Ourphp建站系统存在SQL注入
    TLS指纹校验原理和绕过
    LeetCode 1403.非递增顺序的最小子序列
    PostgreSQL的学习心得和知识总结(八十六)|深入理解PostgreSQL数据库HOOK技术及开源hooks文档介绍
    SaaSBase:什么是嘉驰国际?
    服务器黑洞,如何秒解
    Himall商城LinqHelper帮助类(1)
    简单的谈谈VPN是什么、类型、使用场景以及工作原理?
  • 原文地址:https://blog.csdn.net/weixin_44499065/article/details/134009483