当前位置:文档之家› 实验9 结构体、共用体与枚举类型答案

实验9 结构体、共用体与枚举类型答案

实验9 结构体、共用体与枚举类型答案
实验9 结构体、共用体与枚举类型答案

结构体与共用体小结

结构体与共用体小结 一,结构体得概念与定义 1,结构体得定义 struct 结构体名 { 数据类型成员名1; 数据类型成员名1; 、、、 }; 这里数据类型可以就是复合类型,例如又就是一个结构体类型,即嵌套; 2,结构体变量得定义 struct 结构体名变量名1,变量名2,,,变量名n; 或: struct 结构体名 { 数据类型成员名1; 数据类型成员名1; 、、、 }结构体变量1,结构体变量2;

或: struct { 数据类型成员名1; 数据类型成员名1; 、、、 }结构体变量1,结构体变量2; 三种方式,第三种方式得话,每次要定义这个类型得结构体变量都要重复得写这一段代码; 其实定义了结构体后,struct 结构体名就就是一种新得类型,上述语句就像声明变量一样; 3,结构体变量得引用 只能对结构体变量中得各个成员分别输出,不能对一个结构体变量作为一个整体输出; 嵌套得结构体类型得引用: 结构体变量名、结构体类型成员名、内嵌结构体得成员名; 4,结构体变量得初始化 struct 结构体名变量名= {初始化数据};

或者在定义得时候就初始化: struct 结构体名 { 数据类型成员名1; 数据类型成员名1; 、、、 }变量名= {初始化数据}; 二,结构体数组 1,结构体数组得定义举例struct stu { int stu_nu; char name[20]; float score; }; struct stu student[5]; 或者: struct stu { int stu_nu;

char name[20]; float score; }student[5]; 或者: struct { int stu_nu; char name[20]; float score; }student[5]; 跟定义结构体变量得三种形式就是一样得,只不过这里每次定义得结构体变量就是一个数组;每一个student[i]都就是struct stu类型得; 2,结构体数组得初始化与引用 略; 三,结构体与指针 1,指向结构体得指针得定义,同上,也就是三种形式; struct employees employee1,*p1; 或者: struct employees

数组指针结构体实验报告

验证性实验:数组指针结构体实验报告 1.实验目的 (1)复习c++语言数组的用法。 (2)复习c++语言指针的用法。 (3)复习c++语言结构体的用法。 (4)理解算法时间复杂度分析的基本方法。 (5)通过实验程序,分析它们的时间复杂度。 2.实验内容 (1)将1~10存入数组a[10],并将其逆序输出。 (2)用指针方式编写程序:从键盘输入10个整数数据,并存入数组,要求将10个数中最大的数与第1个输入的输交换:将10个数中最小的数和最后一个输入的数交换。(3)有5个学生,每个学生的数据包括学号、姓名3门课的成绩、平均分。 要求:从键盘依次输入5个学生的学号、姓名3门课的成绩,自动计算3门课的平均分,将5个学生的数据在屏幕上输出。 3.实验结果 (1)#include void main() { int i,a[10]; for (i=0;i<=9;i++) a[i]=i+1; for (i=9;i>=0;i--) printf("%3d",a[i]); printf("\n"); } (2)#include void main() { int a[10],*p,*max,*min,k; for (p=a;p*p) min=p;

} p=a; if(*max==*(p+9)&&*min==*p) { k=*p; *p=*(p+9); *(p+9)=k; } else if(*max==*(p+9)) { k=*max;*max=*p;*p=k;k=*min;*min=*(p+9);*(9+p)=k; } else { k=*min;*min=*(p+9);*(p+9)=k;k=*max;*max=*p;*p=k; } for(p=a;p struct STUDENT { char id[10]; char name[8]; int score[3]; double ave; }stu[5]; void main() { int num=5,i,j; for(i=0;i

实验8 指针

实验8 指针 一、实验目的 1. 熟练掌握指针的定义、赋值的方法 2. 掌握间接引用运算符的使用方法 3. 掌握通过指针引用数组元素的方法 4. 掌握使用指针处理字串的方法 二、实验内容 实训1 循环输入学生某门课的成绩,将成绩存储到数组中,统计最高分和获得最高分的学生人数,最后输出统计信息。 1)在VS2013中新建项目,在项目中新建C++源文件,输入下面程序。 #include// 包含输入输出接口文件 using namespace std; // 引用标准命名空间 int main() // 主函数 { const int n = 5; // 使用常变量定义学生人数 int score[n]; // 定义成绩数组,有n个整型元素 int maxScore = 0; // 最高分,并初始化为 int maxStudent = 0; // 得到最高分的学生人数 int i; // 循环变量 int *p = 0; p = score; // p指向score[0] for (i = 0; i < n; i++) // 计数循环 { // 开始循环 cout << "请输入第" << i << "位学生的成绩:"; cin >> p[i]; // 输入第i位学生的成绩,并存储到score[i] if (maxScore < p[i]) // 如果第i位学生的成绩高于原最高分 { maxScore = p[i]; // 将最高分修改为第i位学生的成绩} } // 结束循环 cout << "本班最高分为" << maxScore << endl; cout << "得到最高分的学生序号为:" << endl; for (i = 0; i < n; i++) // 计数循环 { // 循环开始 if (*(p + i) == maxScore) // 如果第i位学生的成绩等于最高分 { maxStudent++; // 得最高分的学生人数增1 cout << i << endl; // 输出该生序号

结构体和共用体习题

习题六 1. 从下列四个选项中选择一个正确的填入括号中。 (1)在说明一个结构体变量时系统分配给它的存储空间是(D)。 A该结构体中第一个成员所需存储空间 B该结构体中最后一个成员所需存储空间 C该结构体中占用最大存储空间的成员所需存储空间 D该结构体中所有成员所需存储空间的总和 (2)在说明一个共用体变量时系统分配给它的存储空间是(D )。 A该共用体中第一个成员所需存储空间 B该共用体中最后一个成员所需存储空间 C该共用体中占用最大存储空间的成员所需存储空间 D该共用体中所有成员所需存储空间的总和 (3)共用体类型在任何给定时刻, (B)。 A所有成员一直驻留在内存中 B只有一个成员驻留在内存中 C部分成员驻留在内存中 D没有成员驻留在内存中 (4)以下定义结构体类型的变量st1,其中不正确的是(A ) A typedef stuct student { int num; int age; }STD; STD st1; B struct student { int num,age; }st1; C struct { int num; float age; }st1; D struct student { int num; int age; }; struct student st1; (5)已知职工记录描述为: struct workers {

int no; char name[20]; char sex; struct { int day; int month; int year; }birth; }; struct workers w; 设变量w中的”生日”应是”1993年10月25日”,下列对”生日”的正确赋值方式是(C)。 A day=25; month=10; year=1993; B w.day=25w.month=10; w.year=1993; C w.birth.day=25; w.birth.month=10; w.birth.year=1993; D birth.day=25; birth.month=10; birth.year=1993; (6)设有如下定义: struct sk { int a; float b; }data,*p; 若有p=&data;则对data中的a成员的正确引用是(B)。 A (*p).data.a B (*p).a C p->data.a D p.data.a 2.填空 (1)若有以下说明和定义且数组w和变量k已正确赋值,则对w数组中第k个元素中各成员的正确引用形式是w[k-1].b、w[k-1].c 、w[k-1].d 。 struct aa { int b; char c; double d; }; struct aa w[10]; int k=3; (2)若有以下说明和定义,则对x.b成员的另外两种引用形式是x->b-> 和p.b. 。 struct st { int a; struct st *b; }*p, x;

结构体实验报告

实 验 报 告 题目:结构体实验报告:XXXXX 学号:XXXXXXXXXXXX 班级:XXXXXXXXXXXXXXXX 专业:XXXXXXXXX 成绩:

一、实验目的 掌握结构类型的定义和使用,学会使用结构数组编程解决问题。 二、实验容、要求与安排方式 1、实验容: 编程解决如下问题:谁的年龄最小、奖学金统计、猴子选大王、选票统计(二)、数星星(二),任选四道题,其中选票统计(二)、数星星(二)必选。 2、要求:能够上机编辑、调试程序并通过OJ测试。 3、实验安排方式:每组1人,独立完成上机实验; 4、注意事项:结构的嵌套定义和引用方法、用指针访问结构。 三、代码及调试结果 1.数星星代码: #include #include #include typedef struct shiquan { int x; int y; } S; //定义结构体 int main() { S s[216]; int n,i,j; int sum=0; scanf("%d",&n); for(i=0; i

图1 数星星调试结果 2.奖学金代码: #include #include typedef struct student { char name[20]; int Last_Score; int Class_Score; char Stu_leader; char w_stu; int article; int sum; } STU; int main() { int n; STU p[11]; int flag=0; int sum=0; int max=0; scanf("%d",&n); int i; for(i=0; i

结构体共用体与枚举课后习题

1.定义一结构体,成员项包括一个字符型、一个整型。编程实现结构体变量成员项的输入、输出,并通过说明指针引用该变量。 #include void main() { struct a { char b; int c; }d,*p; p=&d; printf("输入:\n"); scanf("%c",&(*p).b); scanf("%d",&p->c); printf("输出:\n"); printf("%c\n",(*p).b); printf("%d\n",p->c); } 2.建立一结构体,其中包括学生的姓名、性别、年龄和一门课程的成绩。建立的结构体数组通过输入存放全班(最多45人)学生信息,输出考分最高的同学的姓名、性别、年龄和课 程的成绩。 #include void main() { int i,b,n; float a; printf("请输入班级的人数:"); scanf("%d",&n); getchar(); struct person { char name[20]; char sex[10]; int year; float score; }stu[45]; for(i=0;i

getchar(); } for(b=0,a=stu[0].score,i=0;i #define N 4 struct person { char name[20]; long int number; float score1; float score2; }; void shuru(struct person stu[N]) { int i; for(i=0;i

实验练习八 结构体编程

实验八结构体编程 实验目的 1.掌握结构体类型变量的定义和使用。 2.掌握结构体类型数组的概念和使用。 3.掌握结构体指针及链表的概念,初步学会对链表进行操作,学会在函数之间传送链表的方法。 4.理解共用体的概念与使用。 实验内容 1、结构体类型的变量及数组 (1)利用指向结构体的指针,遍历结构体数组,寻找第一个名字首字母是‘M’的学生,参考代码如下:

2、结构体链表 (1)建立一个创建单链表的函数 (2)在单链表中查找一个会员 定义一个函数find。该函数能在head指向的链表中,查找一个名字和s所指字符串完全一样的会员,并返回其地址。若未找到,则返回NULL。代码如下: struct CStudent * find(struct CStudent *head, char *s){ struct CStudent *p=head; while( p!=NULL && strcmp(p->name, s)!=0 ) p=p->next; return p; } 而在主调函数中可以按如下的方式来调用find函数:

p=find(head, "Sun"); if(p==NULL) printf("没找到\n"); 完整的参考代码如下: (3)设计一个函数,在链表的当前节点之后插入一个节点。 该函数的功能是在链表的当前节点插入一个节点,当前节点还有要插入的数据以函数的形式参数传给函数。 函数原型 data *Insert_link((data *op_list, int value); 其中data数据类型定义如下: //Link list struct typedef struct data{ int value; struct data *next;

实验九 结构体与链表程序设计(解答)

《结构体与链表程序设计》实验解答 1、改错题 (1) #include struct stud { char name[20]; int age; } ; struct stud fun(struct stud person[],int n) //fun(struct stud person[],int n) { int min,i; min=0; for(i=0;i #include struct Poly { float a; /*系数*/ int n; /*指数*/ }; double fpvalue() { struct Poly p; double pvalue=0; float x; printf("输入多项式X:\n"); scanf("%f",&x); printf("输入多项式系数(a)和指数(n,n=-10000,结束):\n"); scanf("%f %d",&p.a,&p.n); //scanf("%f %d", p.a, p.n) while(p.n!=-10000) {pvalue+=p.a*pow(x,p.n); // pvalue+=p.a*pow(x, n);

数据结构实验报告七查找、

云南大学软件学院数据结构实验报告 (本实验项目方案受“教育部人才培养模式创新实验区(X3108005)”项目资助)实验难度: A □ B □ C □ 学期:2010秋季学期 任课教师: 实验题目: 查找算法设计与实现 姓名: 王辉 学号: 20091120154 电子邮件: 完成提交时间: 2010 年 12 月 27 日

云南大学软件学院2010学年秋季学期 《数据结构实验》成绩考核表 学号:姓名:本人承担角色: 综合得分:(满分100分) 指导教师:年月日(注:此表在难度为C时使用,每个成员一份。)

(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%) 1 哈希表查找。根据全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。 熟悉各种查找算法的思想。 2、掌握查找的实现过程。 3、学会在不同情况下运用不同结构和算法求解问题。 4 把每个学生的信息放在结构体中: typedef struct //记录 { NA name; NA tel; NA add; }Record; 5 void getin(Record* a)函数依次输入学生信息 6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数,并返回模值。并采用二次探测再散列法解决冲突。 7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。 二、【实验设计(Design)】(20%) (本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系) 1抽象数据类型的功能规格说明和结构体: #include

实验11结构体、共用体和枚举类型

实验11 结构体、共用体和枚举类型 一、实验目的: 1、掌握结构体类型定义和结构体变量定义、初始化的方法; 2、掌握结构体成员的访问方法,熟悉结构体嵌套定义方法; 3、掌握结构体数组的定义和使用方法,能够用模块化方法设计程序; 4、熟悉共用体类型、枚举类型、typedef的基本用法。 二、实验内容 1、下列程序的功能是:先定义结构体Book,再定义两个变量book1、book2,其中一个初始化,另一个从键盘输入数据,最后输出book1、book2的值。程序运行结果如下: 请根据题意和注释填写下列程序所缺代码,并回答相关问题: #include //定义结构体Book,成员有:书名(title),字符数组,长度为100; //作者(authors),字符数组,长度为30;ISBN,字符数组,长度为20; //页数(pages),整型;价格(price),单精度浮点数。 /*代码段_1*/ int main() { //定义两个Book型变量book1、book2,其中book1用我们本学期所使用教材的数据初始化/*代码段_2*/ //从键盘输入我们本学期所使用实验指导书的数据给book2 /*代码段_3*/ printf("请输入实验指导书的信息:书名、作者、ISBN、页数、作者:\n"); /*代码段_4*/ printf("\n教材、实验书信息如下:\n"); /*代码段_5*/

return 0; } 问题: (1)如何定义结构体类型? (2)怎样定义结构体变量,并初始化? (3)怎样输入、输出结构体变量各成员的值? 2、请按下列要求编程: (1)先定义一个结构体Date,它包含三个成员:年(year,int)、月(month,int)、日(day,int); (2)再定义一个结构体,它包含三个成员:姓名(name,char[10])、性别(sex,char类型,’m’为男,’f’为女)、出生时间(birthday,Date类型)、身份证号(ID,char[19])、电子邮箱(email,char[60]),并用typedef将该结构体命名为Person类型; (3)然后定义一个Person类型的变量me,通过键盘输入自己的信息,然后输出me的各成员值。 程序执行如下图所示: (提示:由于输入内容有字符串、字符、整数等,建议在scanf()中的格式控制符用空格隔开,例如scanf("%s %c %d %d %d %s %s",https://www.doczj.com/doc/cc13102808.html,,…);) 3、学生有三门课程:A、B、C,3名学生的成绩如下表所示: 姓名 A B C 平均分 张三78 84 67 李四88 90 95 王五66 79 80 请先定义一个结构体Student,其成员包括:name(姓名)、A、B、C、aver(平均分),再定义一个Student类型的数组stud[3]来存放学生资料。现欲先输入

c语言上机实验实验八

实验八 (2018-12-12~2018-12-17) 一、实验名称: 结构体 二、实验目的: (1)掌握结构体类型的定义和使用; (2)掌握结构体类型变量的概念和使用; (3)掌握链表的概念,初步学会对链表进行操作; (4)进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。 三、实验项目(必做题) 本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。 (1)利用顺序表实现“先进后出”的堆栈 提示:定义结构体struct来定义堆栈;采用动态数组实现顺序表;定义函数实现堆栈中元素的压入和弹出,保证“先进后出”的实现 // 结构体Stack struct Stack{ int * List; // 用来存储元素的顺序表 int curNumber; // 用来存储当前元素的总个数 }; void iniStack(Stack * A); // 初始化堆栈 void clearStack(Stack * A); //清空堆栈 void push(Stack * A, ELEMENT obj); //将元素obj压入堆栈的栈顶 void pop(Stack * A); //将当前栈顶的元素弹出栈。要求:栈不为空 ELEMENT get_top(Stack * A); //返回当前栈顶的元素值。要求:栈不为空 int is_empty(Stack * A); //判断当前堆栈是否为空,空返回1,非空返回0 void display(Stack * A); //自顶向下显示堆栈中的元素 测试实例: 向堆栈中压入:1 2 3 4 弹出次序应为:4 3 2 1

结构体、共用体、枚举

最终排名 Time Limit: 1000MS Memory limit: 65536K 题目描述 第四届山东理工大学ACM网络编程擂台赛比赛完后需要产生一个最终排名,排名按照题数多少来决定。但是有太多的队伍参与,手动计算排名已经不能满足比赛的需求。现在有一份名单记录各个队伍的ID和做出的题目数,需要你写一个程序,产生最终的排名。 为了简化题目,这里的排名规则为:做出题目数量多的队伍排在前面,如果题数相等,保持输入时的相对顺序不要改变。 输入 第一行包含一个正整数T( 1≤T≤15),表示有T组测试数据。每组数据第一行有一个正整数N(1< N≤10000),表示队伍数量。接下来N 行包含两个整数,1≤ID≤10^7, 0≤M≤100。ID为队伍的编号,M为做出的题数。 输出 每组数据输出包含N行,第i行有两个整数,ID和M表示排在第i位的队伍的ID和做出的题数。 示例输入 1 8 1 2 16 3 11 2 20 3 3 5 26 4 7 1 22 4 示例输出 3 5 26 4 22 4

16 3 20 3 1 2 11 2 7 1

#include void main() { struct team { int ID; int M; }t[10000],T; int N,n,i,j,k,time=0; scanf("%d",&N); while(time!=N) { scanf("%d",&n); for(i=0;i

C语言结构体实验报告

《高级语言程序设计》实验报告实验序号:8 实验项目名称:结构体

附源程序清单: 1. #include struct student { int num; char name[20]; char classname[20]; float score[3]; float aver_score; }stu[5]; void input() { int i; for(i=1;i<6;i++) { printf("第%d个同学",i); printf("请输入学号名字班级三门课程成绩:\n"); scanf("%d %s %s %f %f %f",&stu[i].num,stu[i].name,stu[i].classname,&stu[i].score[1],&stu [i].score[2],&stu[i].score[3]); } }; void averagescore() {

for(i=1;i<=5;i++) stu[i].aver_score=((stu[i].score[1]+stu[i].score[2]+stu[i].score[3])/3); printf("平均成绩:"); for(i=1;i<6;i++) printf("第%d个同学的平均成绩%f:\n",i,stu[i].aver_score); printf("\n"); }; void max() { int i,k=0; float temp=stu[1].aver_score; for(i=2;i<=5;i++) if(stu[i].aver_score>temp) {temp=stu[i] .aver_score;k=i;}; printf("成绩最好的同学:\n"); printf("%d %s %s %4.2f %4.2f %4.2f %4.2f\n", stu[k].num,stu[k].name,stu[k].classname,stu[k].score[1],stu[k].score[2],stu[k].score[3],stu[k].aver _score); }; void main() { input(); averagescore(); max(); } 2.#include struct worker { char name[20]; int workyear; float salary; }work[5]; void input() { int i; for(i=1;i<=5;i++) { printf("第%d个工人:",i); printf("请输入名字工作年限工资总额:\n"); scanf("%s %d %f",&work[i].name,&work[i].workyear,&work[i].salary);

c语言结构体与共用体之间的区别

https://www.doczj.com/doc/cc13102808.html,/2005/03/25/12365.html 所谓共用体类型是指将不同的数据项组织成一个整体,它们在内存中占用同一段存储单元。其定义形式为: union 共用体名 {成员表列}; 7.5.1 共用体的定义 union data { int a ; float b ; d o u b l e c ; c h a r d ; } obj; 该形式定义了一个共用体数据类型union data ,定义了共用体数据类型变量o b j。共用体 数据类型与结构体在形式上非常相似,但其表示的含义及存储是完全不同的。先让我们看一个小例子。 [例7 - 8 ] union data /*共用体* / { int a; float b; double c; char d; } m m ; struct stud /*结构体* / { int a; float b; double c; char d; } ; m a i n ( ) { struct stud student printf("%d,%d",sizeof(struct stud),sizeof(union data)); } 程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的

共用体类型实际占用存储空间为其最长的成员所占的存储空间。详细说明如图7 - 6所示。 对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存 空间,使用时,根据需要使用其中的某一个成员。从图中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。 7.5.2 共用体变量的引用 可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为: union data /*共用体* / { int a; float b; double c; char d; } m m ; 其成员引用为:m m . a , m m . b , m m . c , m m . d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。 [例7-9] 对共用体变量的使用。 m a i n ( ) { union data { int a; float b; double c; char d; } m m ; m m . a = 6 ; printf("%d\n",mm.a); m m . c = 6 7 . 2 ; p r i n t f ( " % 5 . 1 l f \ n " , m m . c ) ; m m . d = ' W ' ; m m . b = 3 4 . 2 ; p r i n t f ( " % 5 . 1 f , % c \ n " , m m . b , m m . d ) ; }

C语言6:结构体,共用体

选票统计 Time Limit: 1000MS Memory limit: 65536K 题目描述 某校学生会主席由全校学生投票选举产生,共有m名候选人报名参选,编号为1到m(0<m<1000),全校有n名学生(0<n<30000),每人都可以投票。但每人只能投一票,每票只能选1名候选人。请你设计一个程序能够统计出哪个候选人得票最高,得了多少票。不会出现得票数相同的情况。 输入 第一行输入候选人数m和学生数n,以空格分开; 下面依次输入每个学生所选的候选人的编号。 输出 第一行输出得票最多的候选人编号; 第二行输出该候选人所得的票数。 示例输入 3 10 1 2 3 2 3 1 2 3 1 3 示例输出 3 4 #include struct st { int sum; }man[1000]; void main() { int m,n,i,a,j,max; scanf("%d %d\n",&m,&n); for(i=0;imax) { max=man[i].sum; j=i; } } printf("%d\n%d\n",j,max); }

最终排名 Time Limit: 1000MS Memory limit: 65536K 题目描述 第四届山东理工大学ACM网络编程擂台赛比赛完后需要产生一个最终排名,排名按照题数多少来决定。但是有太多的队伍参与,手动计算排名已经不能满足比赛的需求。现在有一份名单记录各个队伍的ID和做出的题目数,需要你写一个程序,产生最终的排名。 为了简化题目,这里的排名规则为:做出题目数量多的队伍排在前面,如果题数相等,保持输入时的相对顺序不要改变。 输入 第一行包含一个正整数T( 1≤T≤15),表示有T组测试数据。每组数据第一行有一个正整数N(1< N≤10000),表示队伍数量。接下来N 行包含两个整数,1≤ID≤10^7, 0≤M≤100。ID为队伍的编号,M为做出的题数。 输出 每组数据输出包含N行,第i行有两个整数,ID和M表示排在第i位的队伍的ID和做出的题数。 示例输入 1 8 1 2 16 3 11 2 20 3 3 5 26 4 7 1 22 4 示例输出 3 5 26 4 22 4 16 3 20 3 1 2 11 2 7 1 #include struct st { int ID; int M; }p[10000]; void main() { struct st s; int t; scanf("%d\n",&t); while(t--) {

实验5结构体与文件处理

实验5结构体与文件处理(上机调试运行) 1.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中,请编写函数fun,函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(只有一个最高分)。 2.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,功能是:按照分数的高低排列学生的记录,高分在前。并将数据存入文件中。 3.给定程序的功能:从键盘输入若干行文本(每行不超过80个字符),写的文件myfile4.txt中,用-1作为字符串输入结束的标志,然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText 实现。 二.实验目的 1.掌握结构体的概念及其数据结构 2.有效应用结构体进行二维表格编程 3.掌握C语言中文件的概念及其数据结构 4.熟悉文件的读写操作 实验4 运用指针类型及函数编程练习 一.实验要求 本实验包含三个程序 1.fun函数的功能是:统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数。并把该整数中各位上最大的数字值作为函数值返回。例如,若输入30800,则零的个数为3,各位上数字值最大的是8。 2.fun函数的功能:用指针的形式比较两个字符串的的长度,将长的那个字符串的首地址作为函数值返回。 3.给定函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。偶数在主函数中定义。 二.实验目的 1.掌握指针的概念及其运算 2.掌握以指针作为形参的函数调用及用函数返回一个指针 3.掌握指针与字符串之间的运算关系

实验九结构体

实验九结构体、共用体与枚举类型 实验时间:年月日 【实验目的】 1、掌握结构体类型、共用体类型和结构体类型变量的定义方法; 2、掌握结构体类型变量成员赋值和引用方法; 3、学会使用结构体数组; 4、掌握共用体和枚举类型数据的使用。 【实验内容】 1、结构体类型的定义; 2、结构体变量的定义、赋值与使用; 3、结构体数组与结构体指针的定义与使用; 4、共用体类型的定义,共用体变量的定义与使用; 5、枚举类型的定义与使用; 6、链表与动态内存分配; 7、自定义类型的使用。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、上机验证与分析题 1、写出程序ex9_1.c运行的结果。 /*文件名ex9_1.c*/ #include struct HAR { int x,y; struct HAR *p; }h[2]; int main() { h[0].x=1; h[0].y=2; h[1].x=3; h[1].y=4; h[0].p=&h[1]; h[1].p=h; printf("%d %d\n",(h[0].p)->x,(h[1].p)->y); return 0; } 2、写出程序ex9_2.c运行的结果。

/*文件名ex9_2.c*/ #include "stdio.h" void main() { int z; union data { int x; int y; }a; a.x=3; a.y=6; z=a.x+a.y; printf("z=%d\n",z); } 3、阅读程序ex9_3.c,预测结果并上机验证。 /*文件名ex9_3.c*/ #include void main() { union data { int i; char ch; float f; }a,b,c; a.i=9; b=a; c=b; printf("b.i=%d,c.i=%d\n",b.i,c.i); } 4、运行下列程序,写出结果 /*文件名ex9_4.c*/ #include void main() { struct List {

C语言实验八结构体上机报告

《标准C语言程序设计》上机报告实验八结构体程序设计 专业:电子信息工程 班级:电信1301 学号:U201313480 姓名:秦行 完成日期:2014/6/9

一、实验目的: 1、掌握结构体类型的说明和结构体变量的定义; 2、掌握结构体变量成员的引用和对结构体变量的初始化; 3、掌握结构体数组及结构体指针变量的定义及使用。 4、理解并掌握结构体在函数间的传递; 5、进一步掌握复杂程序编译、连接和调试的技巧。 二、实验内容及要求(鼓励一题多解) ——以下均要求不得使用全局变量: 1 (1)、正确定义该表格内容要求的数据类型; (2)、分别输入各成员项数据,并打印输出(为简便起见,假设只有3名考生)。#include #include #define N 3 struct date { int year; int month; int day; }; struct student { unsigned int num; char name[20]; char sex; struct date birth; }; void main()

{ struct student tester[N]; int i; for(i=0;i #include #include #define N 10 struct worker { char name[20]; int salary; };

相关主题
文本预览
相关文档 最新文档