---恢复内容开始---

第九章构造数据类型实验

一、实验项目:

1、结构体变量的应用。

2、结构体数组的应用。

3、共用体的应用。

4、机构体指针的应用。

姓名:李儿龙    实验地点:教学楼514教室     实验时间:6月28日

二、实验目的

1、巩固学生对结构体这种数据机构概念的理解,增强程序设计能力。

2、巩固学生对结构体这种数据机构概念的理解,增强程序设计能力。

3、巩固学生对结构体、共用体这种数据机构概念的理解,增强程序设计能力。

4、巩固学生对结构体这种数据机构概念的理解,增强程序设计能力。

三、实验内容

实验9.3.1

1、问题分析

  • 定义结构体类型struct data,它含有年、月、日3个成员。
  • 定义struct data类型的变量,并从键盘输入初值。
  • 利用循环语句,计算天数;
  • 利用分支语句判断闰年;

2、流程图:

3、实验代码:

#include<stdio.h>
main()
{   struct date{int year,month,days;}a;int i,days;printf("请输入年、月、日\n");scanf("%d,%d,%d",&a.year,&a.month,&a.days);
for(i=1;i<a.month;i++){if(i==1||i==3||i==5||i==7||i==8||i==10)days+=31;else if (i==4||i==6||i==9||i==11)days+=30;else if (i%400==0)days+=29;else days+=28; }   days+=a.days;printf("%d年%d月%d日是该年的第%d天",a.year,a.month,a.days,days);} 

4、运行结果:

实验9.3.2

1、问题分析:

  • 定义候选人struct person结构体,含有姓名、初始票为0;
  • 定义struct person结构体数组,人数自定,初始值数为0;
  • 利用循环输入候选人的名字,该人员票数加1;
  • 输入的候选人不是规定的候选人时,相当于废票,不累计;

2、流程图:

3、实验代码:

#include<stdio.h>
#include<string.h>
struct person
{char name[20];int count;};struct person a[6]={"zhang",0,"li",0,"wang",0,"zhao",0,"liu",0,"zhu",0};
main(){int i,j;char abc[20];for(i=1;i<=10;i++){printf("请输入候选人名字");scanf("%s",abc);for(j=0;j<6;j++)if(strcmp(abc,a[j].name)==0)a[j].count++;}for(j=0;j<6;j++)printf("%s,%d\n",a[j].name,a[j].count);} 

4、运行结果:

实验9.3.3

1、实验要求:

  • 定义结构体类型,其成员有编号、姓名、职业和班级;
  • 定义该结构体类型的数组,可有若干个数组元素;
  • 利用循环语句输入每条记录的数据,若该记录的职业为“s”,则该记录是学生的,输入该学生的班级;若该记录的职业为“t”,则该记录是教师的,输入该教师的职务;
  • 根据记录的职业判断,使用哪个printf()语句输出记录;

2、流程图:

3、实验代码:

# include <stdio.h>
#include<stdlib.h>
struct
{int number;char name[20];char job;union{int classes;char position[10];}category;
}person[2];
main()
{int i;for (i=0; i<2; i++){   printf("请输入姓名、学号、职位:");scanf ("%s%d %c", person[i].name, &person[i].number, &person[i].job);if(person[i].job=='s'){printf("请输入班级:");scanf("%d",&person[i].category.classes); }else if(person[i].job=='t'){printf("请输入职位:");scanf("%s",&person[i].category.position);}else{printf("input error!");abort();} }printf("\n");printf("编号    姓名    职业    班级/职务\n");for(i=0;i<2;i++) {if(person[i].job=='s')printf ("%s   %d     %c      %d\n", person[i].name, person[i].number, person[i].job, person[i].category.classes);elseprintf ("%s   %d     %c      %s\n", person[i].name, person[i].number, person[i].job, person[i].category.position);}
}

4、运行结果:

5、问题分析:

由流程图可在输入名字、编号、职业和班级(职务)的输入不是同时的,输入班级应该在判断完成之后。

实验9.3.4

1、实验要求:

  • 定义结构体类型,其成员有人员编号、下一个人员编号;
  • 定义结构体类型的数组,可用n个数组元素;
  • n个人围成一圈,可以考虑用结构体数组元素中的下一人员编号来实现,但最后一个的元素的下一个人员编号指向第一个。

2、流程图

3、实验代码

#include<stdio.h>
#define N 10
struct child
{int no;int next;
};
struct child link[30];
main()
{int i,n,m,s,count,h;printf("输入围圈人数:出圈报数,开始报数位置:");scanf("%d%d%d",&n,&m,&s);for (i=1;i<=n;i++){if(i==n)link[i].next=1;elselink[i].next=i+1;link[i].no=i;}count=0;if(s==1)h=n;else h=s-1;printf("出圈顺序为:");while(count<n-1){i=0;while(i!=m){h=link[h].next;if(link[h].no) i++;}printf("%d,",link[h].no);link[h].no=0;count++;} for(i=1;i<=n;i++)if(link[i].no!=0)printf("%d",link[i].no);
}

4、运行结果:

四、实验小结

1、在使用结构体函数嵌套时,要注意结构体名称逐级输入。

2、数组名可以代表首地址不用加&。

转载于:https://www.cnblogs.com/123456l/p/11109466.html

第九章构造数据类型实验相关推荐

  1. 【C语言】第九章 复杂数据类型与结构体 题解

    第九章 复杂数据类型与结构体 1.略 2.略 3.略 4.代码如下: #include <stdio.h>struct teacher {int card_id;char name[20] ...

  2. gd32f303 设计中断优先级_ALIENTEK 阿波罗 STM32F767 开发板资料连载第九章 外部中断实验...

    1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第九章 外部中断实验 这 ...

  3. 慕课嵌入式系统(第九章.ucos-ii操作系统实验)

    慕课电子科技大学.嵌入式系统.第九章.嵌入式实时操作系统实验.ucos-ii操作系统实验 0 目录 9 嵌入式实时操作系统实验 9.1 ucos-ii操作系统实验 9.1.1课堂重点 9.1.2测试与 ...

  4. c语言构造数据类型有,《c语言程序设计基础7构造数据类型.ppt

    <c语言程序设计基础7构造数据类型 第7章 构造数据类型 第7章 构造数据类型 第7章 构造数据类型 7.1 构造数据类型概述 构造数据类型是C语言的一个特色,它是由一些简单数据类型构造而来的. ...

  5. c语言程序构造数据类型问题,C语言程序设计课程课件之第四章简单构造数据类型.ppt...

    C语言程序设计课程课件之第四章简单构造数据类型 第四章 简单构造数据类型 目录 4.1 一维数组 4.2 二维数组 4.3 字符数组 4.4 数组与指针 4.5 数组及指针作为函数参数 4.1 一维数 ...

  6. 《C语言程序设计》第五版谭浩强课后答案 第九章《用户自己建立数据类型​》习题答案 (大一大二、考研、计算机二级必看)

    第九章<用户自己建立数据类型​>习题答案 1.定义一个结构体变量(包括年.月.日).计算该日在本年中是第几天,注意闰年问题. 2.写一个函数days,实现第1 题的计算.由主函数将年.月. ...

  7. 第九章:用户自己建立数据类型

    第九章:用户自己建立数据类型 9.1 定义和使用结构体变量 9.1.1 自己建立结构体类型 C语言允许用户自己建立由不同数据类型组成的组合型的数据结构,它称为结构体.可以通过建立结构体类型表示数据结构 ...

  8. c语言第9章实验报告,《经典规范C语言程序设计》实验报告(第九章)文件程序设计.doc...

    <经典规范C语言程序设计>实验报告(第九章)文件程序设计 <高级语言程序设计>实验报告 班级: 学号: 姓名: 成绩: 实验日期: 年 月 日 实验题目: 实验九 文件程序设计 ...

  9. 【计算机网络原理·实验·第九章】搭建内网域名解析服务器

    理论部分:[计算机网络]第九章:应用层 企业内部可以不搭建域名解析服务器,直接通过互联网中的域名解析服务器来实现网络交互也可以.但是如果没有内部的域名解析服务器,则相当于内网内每一台设备,如果要在短时 ...

最新文章

  1. PlayMaker布局技巧:预览GUI界面
  2. 刷个B站的功夫就能把Python学了,微软放出短视频入门课,资料登上GitHub热榜第一...
  3. 处理JSON格式的数据
  4. atomic底层实现是基于无锁算法cas
  5. 博客园个性时钟,Play with me !!!
  6. 《系统集成项目管理工程师》必背100个知识点-24变更的常见原因
  7. android 获取元素的下标_Appium中定位方式by_android_uiautomator
  8. 拉格朗日插值法(Lagrange)
  9. 【PAT - 甲级1045】Favorite Color Stripe(30分)(dp,LIS类问题)
  10. Win7_64位使用32位Mysql配置Mysql Odbc
  11. [机器学习]-[数据预处理]-中心化 缩放 KNN(二)
  12. 介绍一个不错的图书下载网站-顺便推荐几本书
  13. lintcode :sort letters by case字符大小写排序
  14. win8.1硬盘安装ubuntu14.04双系统
  15. 修改浏览器 User-Agent
  16. 2016河北省职称计算机考试试题及答案,2016年最新河北省职称计算机考试试题及答案..doc...
  17. android 图片合成pdf文件,怎样将图片转换成pdf文件时将它们合并成一个pdf文件?...
  18. 遇到svn is already locked 解决办法
  19. Nginx的HTTP健康检测
  20. [渝粤教育] 天津师范大学 中学地理教学设计 参考 资料

热门文章

  1. [生物] - 怎样理解细胞分裂次数是有限制的
  2. Asp.Net 中使用客户端Activex控件需要注意的事情
  3. 以下哪一个不属于python语言的特点-以下不属于python语言特点的是( )_学小易找答案...
  4. 编程没基础学python多长时间-今天就来告诉你,没有编程基础的人适不适合学python...
  5. 基于python的界面自动化测试-Python实现性能自动化测试竟然如此简单
  6. 学python需要什么文化基础-数据分析需要掌握那些基础知识?
  7. python读取excelsheet-python读取excel文件中所有sheet表格
  8. 学python是什么专业-小白学python是自学好,还是专业老师培训好?
  9. 0基础学python难吗-0基础学武汉Python开发课程有多难?该怎么入门?
  10. ubuntu查看python版本-切换Ubuntu默认python版本的两种方法