您的位置:首页 > 编程语言 > C语言/C++

C语言博客作业--结构体

2017-12-24 22:02 405 查看

一、PTA实验作业

题目1:6-1 计算两个复数之积

1. 本题PTA提交列表



2. 设计思路

struct complex multiply(struct complex x, struct complex y){
struct complex product;用于存放结果
执行运算
product.real=x.real*y.real-x.imag*y.imag;
product.imag=x.imag*y.real+x.real*y.imag;以得出结果的实部和虚部
返回product

3.代码截图



4.本题调试过程碰到问题及PTA提交列表情况说明。



题目2:7-1 计算职工工资

1. 本题PTA提交列表



2. 设计思路

struct man{
char name[10];
float j,f,z;//分别为 基本工资 浮动工资 支出 实发工资
float s;
};//该结构体表示人员,基本工资,浮动工资,支出,实发工资
输入N表示N个人
for i=0 to i=n-1{
输入名字 基本工资 浮动工资 支出
op[i].s执行运算op[i].j+op[i].f-op[i].z
}
for i=0 to i=n-1{
输出名字和实发工资
}

3.代码截图



4.本题调试过程碰到问题及PTA提交列表情况说明。

man op[]一开始写的100000无法运行,改小后可以运行;起初 基本工资 浮动工资 支出都定义为了int型,答案错误;输出的时候也没有循环多次输出。

题目3:7-5 有理数比较

1. 本题PTA提交列表



2. 设计思路

struct fraction{
int m,n;//m为分母,n为分子
}; //该结构体表示分母和分子
struct fraction a,b;定义两个数
double x;//用于计算两分数相减
char ch;//用于输出符号
输入ab两个数的分母和分子
x执行运算a.n*1.0/a.m-b.n*1.0/b.m;
if x>0  则a>b
if x<0  则a<b
if x==0 则a=b
输出

3.代码截图



4.本题调试过程碰到问题及PTA提交列表情况说明。

x=a.n1.0/a.m-b.n1.0/b.m;起初没有*1.0结果一直输出“=”

二、截图本周题目集的PTA最后排名。



三、阅读代码

某习题

struct country
{
int num;
char name[10];
}x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"};
struct country *p;
p=x+2;
printf("%d,%c",p->num,(*p).name[2]);

p是指向结构体的指针,p = x + 2 就相当于:p = x[0 + 2] = x[2];p->num中->是指针访问它的变量的运算符,(*p)就是相当于把p指向的内存取出里面的数据,“.”运算符访问它的变量name数组,x[2].name为"France",第一个F下标是0,那么下标为2的字母是a

某习题



把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。

四、本周学习总结

1.总结本周学习内容

1.结构体

struct 结构体名

{

成员表列

} 变量表列;

例:

struct data{
int a;
char b;
double c;
} s1;


2.共用体

union 共用体名

{

成员表列

} 变量表列;

列:

union data
{
int i;
char ch;
float f;
} a, b, c;


3.结构体与共用体

结构体:结构体和数组一样都是构造型数据类型,和数组不同的是,结构体可以处理不同类型的数据。

共用体:共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。

4.函数的嵌套调用,在主函数main()中调用函数cal()

2.罗列本周一些错题。



答案d是错误的,因为调用函数中的实在参数为一个是整型变量n,一个是指针变量a[9]的地址,即为指针变量。因为函数的实在参数与形式参数应该类型相同,个数相同。而答案d中的两个参数均为整型变量,所以d是错误答案。答案a中的m为整型变量,x是一个数组类型的变量,而数组名代表数组的首地址,所以与形式参数类型相同。答案b与答案a原因相同。而答案c中的变量p为整型变量,变量s为指针类型的变量。



变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: