第九章构造数据类型实验
---恢复内容开始---
第九章构造数据类型实验
一、实验项目:
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
第九章构造数据类型实验相关推荐
- 【C语言】第九章 复杂数据类型与结构体 题解
第九章 复杂数据类型与结构体 1.略 2.略 3.略 4.代码如下: #include <stdio.h>struct teacher {int card_id;char name[20] ...
- gd32f303 设计中断优先级_ALIENTEK 阿波罗 STM32F767 开发板资料连载第九章 外部中断实验...
1)实验平台:alientek 阿波罗 STM32F767 开发板2)摘自<STM32F7 开发指南(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第九章 外部中断实验 这 ...
- 慕课嵌入式系统(第九章.ucos-ii操作系统实验)
慕课电子科技大学.嵌入式系统.第九章.嵌入式实时操作系统实验.ucos-ii操作系统实验 0 目录 9 嵌入式实时操作系统实验 9.1 ucos-ii操作系统实验 9.1.1课堂重点 9.1.2测试与 ...
- c语言构造数据类型有,《c语言程序设计基础7构造数据类型.ppt
<c语言程序设计基础7构造数据类型 第7章 构造数据类型 第7章 构造数据类型 第7章 构造数据类型 7.1 构造数据类型概述 构造数据类型是C语言的一个特色,它是由一些简单数据类型构造而来的. ...
- c语言程序构造数据类型问题,C语言程序设计课程课件之第四章简单构造数据类型.ppt...
C语言程序设计课程课件之第四章简单构造数据类型 第四章 简单构造数据类型 目录 4.1 一维数组 4.2 二维数组 4.3 字符数组 4.4 数组与指针 4.5 数组及指针作为函数参数 4.1 一维数 ...
- 《C语言程序设计》第五版谭浩强课后答案 第九章《用户自己建立数据类型》习题答案 (大一大二、考研、计算机二级必看)
第九章<用户自己建立数据类型>习题答案 1.定义一个结构体变量(包括年.月.日).计算该日在本年中是第几天,注意闰年问题. 2.写一个函数days,实现第1 题的计算.由主函数将年.月. ...
- 第九章:用户自己建立数据类型
第九章:用户自己建立数据类型 9.1 定义和使用结构体变量 9.1.1 自己建立结构体类型 C语言允许用户自己建立由不同数据类型组成的组合型的数据结构,它称为结构体.可以通过建立结构体类型表示数据结构 ...
- c语言第9章实验报告,《经典规范C语言程序设计》实验报告(第九章)文件程序设计.doc...
<经典规范C语言程序设计>实验报告(第九章)文件程序设计 <高级语言程序设计>实验报告 班级: 学号: 姓名: 成绩: 实验日期: 年 月 日 实验题目: 实验九 文件程序设计 ...
- 【计算机网络原理·实验·第九章】搭建内网域名解析服务器
理论部分:[计算机网络]第九章:应用层 企业内部可以不搭建域名解析服务器,直接通过互联网中的域名解析服务器来实现网络交互也可以.但是如果没有内部的域名解析服务器,则相当于内网内每一台设备,如果要在短时 ...
最新文章
- PlayMaker布局技巧:预览GUI界面
- 刷个B站的功夫就能把Python学了,微软放出短视频入门课,资料登上GitHub热榜第一...
- 处理JSON格式的数据
- atomic底层实现是基于无锁算法cas
- 博客园个性时钟,Play with me !!!
- 《系统集成项目管理工程师》必背100个知识点-24变更的常见原因
- android 获取元素的下标_Appium中定位方式by_android_uiautomator
- 拉格朗日插值法(Lagrange)
- 【PAT - 甲级1045】Favorite Color Stripe(30分)(dp,LIS类问题)
- Win7_64位使用32位Mysql配置Mysql Odbc
- [机器学习]-[数据预处理]-中心化 缩放 KNN(二)
- 介绍一个不错的图书下载网站-顺便推荐几本书
- lintcode :sort letters by case字符大小写排序
- win8.1硬盘安装ubuntu14.04双系统
- 修改浏览器 User-Agent
- 2016河北省职称计算机考试试题及答案,2016年最新河北省职称计算机考试试题及答案..doc...
- android 图片合成pdf文件,怎样将图片转换成pdf文件时将它们合并成一个pdf文件?...
- 遇到svn is already locked 解决办法
- Nginx的HTTP健康检测
- [渝粤教育] 天津师范大学 中学地理教学设计 参考 资料
热门文章
- [生物] - 怎样理解细胞分裂次数是有限制的
- Asp.Net 中使用客户端Activex控件需要注意的事情
- 以下哪一个不属于python语言的特点-以下不属于python语言特点的是( )_学小易找答案...
- 编程没基础学python多长时间-今天就来告诉你,没有编程基础的人适不适合学python...
- 基于python的界面自动化测试-Python实现性能自动化测试竟然如此简单
- 学python需要什么文化基础-数据分析需要掌握那些基础知识?
- python读取excelsheet-python读取excel文件中所有sheet表格
- 学python是什么专业-小白学python是自学好,还是专业老师培训好?
- 0基础学python难吗-0基础学武汉Python开发课程有多难?该怎么入门?
- ubuntu查看python版本-切换Ubuntu默认python版本的两种方法