《C语言及程序设计》实践项目——初练结构体
返回:贺老师课程教学链接
【项目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是复数x和y的和s.re=_______(1)_______;s.im=_______(2)_______;printf(" sum=%5d+%5di\n",s.re,s.im);//复数p是复数x和y的积p.re=_______(3)_______;p.im=x.re*y.im+x.im*y.re;printf(" product=%5d+%5di\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关于原点的对称点,运行结果如下图所示:
[参考解答]
【项目4-体重监测器】
根据世界卫生组织推荐的体重标准,男性的标准体重=(身高cm-80)×70﹪,女性的标准体重=(身高cm-70)×60﹪。标准体重正负10﹪为正常体重;标准体重正负10﹪~ 20﹪为体重过重或过轻;标准体重正负20﹪以上为肥胖或体重不足,其中超重计算公式为:超重(%)=[(实际体重-标准体重)/(标准体重)]×100%,体重的单位是kg。
请编程序,输入一个人的姓名、性别、身高、体重,用一句人性味浓的话语输出其体重情况(正常、过重、过轻、肥胖或体重不足),这个程序可以用于体重计上为人们实时报告体重情况。
要求使用下面的结构体类型表示人的相关信息。
struct Person
{char name[20];char sex; //'F'-女,'M'-男double height; //cmdouble weight; //kg
};
[参考解答]
【项目5-个税计算器之码数分离】
在学习分支结构时,我们做过一个个人所得税计算器if语句版,在其中,税率等数据直接写进了程序。这并不是一个好的方案。
下面定义了一个结构体数组,保存各个收入范围个税计算的基础数据,这样,一定程度上,将代码与数据分离,这是工程中常见的做法。
请先对照附后的个人所得税计算方法,理解下面的结构体数组:
struct TaxNode
{int payTax;double rate;int deducted;
} taxNode[10]=
{{0,0.03,0},{1500,0.10,105},{4500,0.20,555},{9000,0.25,1005},{35000,0.30,2755},{55000,0.35,5505},{80000,0.45,13505}
};
编写程序,利用这个结构体数组,输入个人月收入总额,计算并输出他本月应缴税款和税后收入。
附:关于个人所得税的有关背景知识
计算方法:个人所得税=(收入总额-3500)*税率-速算扣除数
从2011年9月1日起,我国个人所得税起征点基数为3500元,超出部分按以下7级计算。
计算。
序号 | 收入范围 | 税率 | 速算扣除数 |
---|---|---|---|
1 | 超过0至1500 | 3% | 0 |
2 | 超过1500元至4500元的部分 | 10% | 105 |
3 | 超过4500元至9000元的部分 | 20% | 555 |
4 | 超过9,000元至35,000元的部分 | 25% | 1005 |
5 | 超过35,000元至55,000元的部分 | 30% | 2755 |
6 | 超过55,000元至80,000元的部分 | 35% | 5505 |
7 | 超过80,000以上 | 45% | 13505 |
例如:王某月收入总额3600元,个人所得税=(3600-3500)*3%=3元;
再例:李某月收入13500元,个人所得税=(13500-3500)*25%-1005=2500-1005=1495元。
更多了解速算扣除数,请找百度百科。
[参考解答]
【项目6-日期结构体】
(1)定义一个结构体变量(包括年、月、日),要求输入年、月、日,计算输出该日是该年的第几天。
#include <stdio.h>
struct Date
{int year;int month;int day;
};
int main()
{struct Date date;printf("input year,month,day:");scanf("%d %d %d", &date.year, &date.month, &date.day);int days;//计算daysprintf("%d月%d日是%d年的第%d天.\n", date.month, date.day, date.year, days);return 0;
}
(2)输入两个人的生日,求出他们相差多少天。
[参考解答]
【项目7-紧急救援】
洪水突降,人们被困在各个屋顶上。如图所示:
救生船每次将从大本营出发,救了人之后将人送回大本营。已知救生船速度50米/分钟,逐个屋顶救人,每人上船1分钟,下船0.5分钟。以救援大本营为原点,输入每个屋顶的位置坐标和屋顶上的人数,求出所有人都到达大本营并登陆所用的时间。
要求使用结构体表示屋顶的坐标和人数。
[参考解答]
《C语言及程序设计》实践项目——初练结构体相关推荐
- c语言程序设计指针进阶,C语言及程序设计进阶例程-15 指向结构体的指针
贺老师教学链接 C语言及程序设计进阶 本课讲解 指向结构体变量的指针的应用 #include #include struct Student { int num; char name[12]; ch ...
- 第16周实践项目三——点结构体(2)
问题及代码 (2)请编写程序,输入两点p1和p2的坐标,输出两点之间的距离,以及p1关于x轴的对称点,p2关于原点的对称点,运行结果如下图所示: /*烟台大学计算机学院 2016 作者: 马春澎完成日 ...
- python中的记录指针_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...
- python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
使用python向C语言的链接库传递数组.结构体.指针类型的数据 由于最近的项目频繁使用python调用同事的C语言代码,在调用过程中踩了很多坑,一点一点写出来供大家参考,我们仍然是使用ctypes来 ...
- C语言随笔小算法:char字节流与结构体变量相互转换
C语言随笔小算法:char字节流与结构体变量相互转换 代码: /* **数据域 */ typedef struct {kal_uint8 bt_dpacket_data_total_num; //(可 ...
- SCAU高级语言程序设计--实验10 指针与结构体(1)
SCAU高级语言程序设计--实验10 指针与结构体(1) 一.堂上限时习题 1.交换两数,由大到小输出 题目:下面程序,交换两数,使两数由大到小输出,请填空 #include "stdio. ...
- 2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru
2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法. 宏使用如下: #[derive(Builder)] pub stru ...
- 法雷序列的c语言程序,程序设计实践(一).PDF
程序设计实践(一) 程序设计实践(一): 风格.设计和实现 王新宇 2004.10.16 Outline 风格 原则 示例 设计和实践 马尔可夫链(Markov Chain) C, JAVA, C++ ...
- C语言课间程序设计实践报告
<贪吃蛇>简介 玩家使用方向键操控一条长长的蛇不断吞下豆子,同时蛇身随着吞下的豆子不断变长,当蛇头撞到蛇身或障壁时游戏结束.贪吃蛇最初为人们所知的是诺基亚手机附带的一个小游戏,它 ...
最新文章
- 其他算法-高斯白噪声
- anconda安装后命令行中安装tensorflow报错
- DotNet Framework源代码调试问题
- 【重大更新】DevExpress v17.1新版亮点(ASP.NET篇)
- pytorch 实现transformer
- 用gdb搞清楚一道union相关的面试题
- ubuntu java 1.6 安装,ubuntu 中安装java jdk 1.6
- 上传大文件:在 System.Web.HttpRequest.GetEntireRawContent()
- 关于MX5在Mac无法正常使用开发者模式的解决方案
- Spark Hive实现基于协同过滤的电影推荐(MovieLens数据集)
- 100个日常实用脚本
- OpenCV:图像平移
- Zynq7跑peta linux,ZYNQ跑系统 系列(二) petalinux方式移植linux petalinux-config遇到问题...
- 学习虚幻4(一)U3D与UE4的比较
- [Pixhawk] ardupilot源码windows编译教程
- 中国传媒大学GPA算法
- Spring mvc 的生命周期
- 浅拷贝和深拷贝(谈谈java中的clone)
- 便携式水质自动采样器的使用技巧
- SAX 方式解析 XML