C++程序设计学习指南与上机实训实验10 结构体与共用体

合集下载

计算机基础与C语言程序设计(第三版)第10章-结构体与共用体

计算机基础与C语言程序设计(第三版)第10章-结构体与共用体

注意: (1) 定义了一种类型,不是变量。 (2) 成员可以是任意类型, (3) 最后的分号“;”不能省略。 (4) 可以嵌套定义,如:
char addr[30];
};
num
name
sex
041000 Li Ping
M
041001 Liu Yi
F
age
Score
adrr
18
78
Beijing
20
88
float score[3];
}stu={“wang_li”, 81,77,96};
【例10.1】输入某学生的姓名、年龄和5门功课成绩, 计算平均成绩并输出。
#include <stdio.h> void main() {struct student
{ char name[10]; int age; float score[5],ave;
}
for(i=0;i<N-1;i++) { k=i; for(j=i+1;j<N;j++) if(a[k].m<a[j].m) k=j; temp=a[i]; a[i]=a[k]; a[k]=temp;
运行结果: 3 2↙ 1 1↙ 5 4↙ 5.00+4.00i 3.00+2.00i 1.00+1.00i
第10章 结构体与共用体
第10章 结构体与共用体
10.1 结构体类型的定义 10.2 结构体类型变量 10.3 结构体数组 10.4 结构体和指针 10.5 结构体和函数 10.6 链 表 10.7 共用体 10.8 枚 举 10.9 用typedef定义类型
num name sex

实验10 结构体、共用体

实验10 结构体、共用体

实验11 结构体、共用体一、实验目的:1、掌握结构体类型定义和结构体变量定义、初始化的方法;2、掌握结构体成员的访问方法,熟悉结构体嵌套定义方法;3、掌握结构体数组的定义和使用方法,能够用模块化方法设计程序;4、熟悉typedef的基本用法。

二、实验内容1、下列程序的功能是:先定义结构体Book,再定义两个变量book1、book2,其中一个初始化,另一个从键盘输入数据,最后输出book1、book2的值。

程序运行结果如下:请根据题意和注释填写下列程序所缺代码,并回答相关问题:#include<stdio.h>//定义结构体Book,成员有:书名(title),字符数组,长度为100;//作者(authors),字符数组,长度为30;ISBN,字符数组,长度为20;//页数(pages),整型;价格(price),单精度浮点数。

/*代码段_1*/struct Book {char title[100];char authors[30];char ISBN[20];int pages;float price;};int main(){//定义两个Book型变量book1、book2,其中book1用我们本学期所使用教材的数据初始化Struct Book book1 = {“C程序设计(第四版)”,”谭浩强”,“978-7-302-22446-4”,390,29.0f};//从键盘输入我们本学期所使用实验指导书的数据给book2/*代码段_2*/printf("请输入实验指导书的信息:书名、作者、ISBN、页数、价格:\n");Scanf(“%s %s %s %d %f”,book2.title,book2.authors,book2.ISBN,&book2.pages,&b ook2.price);printf("\n教材、实验书信息如下:\n");printf("书名:%s, 作者:%s,ISBN: %s,\n总页数:%d,价格: %f\n\n",book1.title,book1.authors,book1.ISBN,book1.pages,book1.price);/*代码段_3*///将book1和book2的信息输出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的各成员值。

专题10 结构体和共用体的概念及应用

专题10 结构体和共用体的概念及应用

4)使用typedef说明一个结构体类型,再用新类型名来定义变量(常用)
typedef { struct
typedef struct ST { struct date birthday; a; long int b; float sc[4]; char c[2]; }STREC; } NEW; // STREC是一个具体的结构体类型名,可以用它来定义相应的变量,就如int、char 则下面叙述中正确的是 一样,用它来定义变量时,就不能用struct A)以上的说明形式非法 B)ST是一个结构体类型 C)NEW是一个结构体类型 D)NEW是一个结构体变量 STREC std,pers[3],*pstd;
练习
3.以下结构体类型说明和变量定义中正确的是 [08年4月份题目] A)typedef struct {int n; char c;}REC; REC t1,t2; B)struct REC; {int n; char c;}; A REC t1,t2; C)typedef struct REC ; {int n=0; char c='A';}t1,t2; D)struct {int n;char c;}REC REC t1,t2;
练习
4.有以下程序[08年9月] C #include<stdio.h> struct st {int x,y;}data[2]={1,10,2,20}; main() { struct st *p=data; printf("%d,",p->y); printf("%d\n",(++p)->x); } 程序的运行结果是 A) 10,1 B)20,1 C) 10,2 D)20,2 5.有以下程序[08年9月] main() D { struct STU { char name[9]; char sex; double score[2];}; struct STU a={"Zhao",'m',85.0,90.0},b={"Qian",'f',95.0,92.0}; b=a; //结构体变量可以直接赋值 printf("%s,%c,%2.0f,%2.0f\n", , b.sex, b.score[0], b.score[1]); } 程序的运行结果是( ) A) Qian,f,95,92 B) Qian,m,85,90 C) Zhao,f,95,92 D) Zhao,m,85,90

实验 结构体与共用体_C语言程序设计实用实践教程_[共3页]

实验  结构体与共用体_C语言程序设计实用实践教程_[共3页]

C 语言程序设计实用实践教程
三、本章常见错误小结
(1)定义结构体类型或共用体类型时,忘记在最后的花括号}后面加分号。 (2)将一种类型的结构体变量对另一种类型的结构体变量进行赋值。 (3)对两个结构体或共用体进行比较。 (4)将结构体指向运算符的两个组成-和>之间插入空格或写成→。 (5)直接使用结构体的成员变量名访问结构体成员。 (6)使用指向运算符访问结构体变量的成员。
{ int x; int y;
} cnum[2]={1,3,2,7}; printf("% d\n",cnum[0].X*cunm[1].x); }
(2)分析程序的运行结果,掌握“->”和“*”运算符的优先级及++在前在后的含义。
#include<stdio.h> struct x { int a;
四、实验环节
实验 结构体与共用体
168
【实验目的和要求】 1.掌握结构体类型、结构体变量、结构体数组和结构体指针的定义与使用。 2.理解共用体的结构特征,掌握其定义和使用方法。 3.了解枚举类型和自定义类型。 【实验内容】 1. 分析题
(1)分析程序,写出程序的运行结果。
#include<stdio.h> main(r *b; }*p; char y0[]="Li",y1[]="Wang"; struct x xw[]={{1,y0},{4,y1}}; main() { p=xw;
printf("%c",++*p->b); printf("%d",(*p).a); printf("%d",++p->a); printf("%d",(++p)->a); printf("%c\n",*(p++)->b); }

C程序实验报告十 结构体与共用体

C程序实验报告十 结构体与共用体

实验10 结构体与公用体1.实验目的、要求(1)掌握结构体类型变量的定义和使用。

(2)掌握结构体类型数组的概念和使用。

(3)掌握公用体的概念与使用。

2.实验内容(1)输入程序并运行,观察运行结果#include “stdio.h”int main( ){ struct cmplx{ int x;int y;} cnum[2]={1 , 3 , 2 , 7};printf(“%d\n”, cnum[0].y / cnum[0].x * cnum[1].x );return(0); }运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按任意键返回源程序行,按ctrl+F9运行,按alt+F5看结果,结果显示:6(2)输入程序并运行,观察运行结果union ks{ int a;int b;};union ks s[4];union ks *p;#include “stdio.h”int main( ){ int n=1, i;printf(“\n”);for(i=0;i<4;i++){ s[i].a=n;s[i].b=s[i].a+1;n=n+2;}p=&s[0];printf(“%d,”,p->a);printf(“%d” ,++ p->a);return(0); }运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按ctrl+F9运行,按任意键返回源程序行,按alt+F5看结果,结果显示:23(3)编写程序有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。

要求用input 函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。

#include"stdio.h"struct student{char num[6];char name[8];int score[4];float avr;}stu[10];main(){int i,j,max,maxi,sum;float average;for(i=0;i<10;i++){printf("number");scanf("%s",stu[i].num);printf("name");scanf("%s",stu[i].name);for(j=0;j<3;j++){printf("\nscore\n");scanf("%d",&stu[i].score[j]); } }average=0;max=0;maxi=0;for(i=0;i<10;i++){sum=0;for(j=0;j<3;j++)sum+=stu[i].score[j];stu[i].avr=sum/3.0;average+=stu[i].avr;if(sum>max){max=sum;maxi=i; }}average/=5;printf("number name score1 score2 score3 average\n");for(i=0;i<10;i++){printf("%8s%10s",stu[i].num,stu[i].name);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%6.2f\n",stu[i].avr); }printf("average=%5.2f\n",average);printf("The best student is %s,sum=%d\n",stu[maxi].name,max);}运行此程序:按F2保存源程序,按F9完成一次编译连接,无提示错误,按ctrl+F9运行,按要求输入十个学生的数据,按任意键返回源程序行,按alt+F5看结果,结果显示:number name score1 score2 score3 average01 san 76 87 79 80.6702 tian 65 75 86 75.3303 yuan 98 68 78 81.3304 ping 97 86 78 87.0005 shuo 65 74 82 73.6706 ying 90 80 68 79.3307 xiao 87 80 58 75.0008 hu 64 98 60 74.0009 xing 65 82 90 79.0010 xu 60 98 76 78.00average=156.67The best student is ping,sum=2613.思考及总结(1结构体、共用体定义方式、引用方式和功能的相同点与不同点。

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)第一篇:C语言程序设计上机实验报告黔南民族师范学院 C语言程序设计上机实验报告系部:计算机科学系年级:2013 级班级:姓名:学号:实验时间:实验成绩:2013年月日实验三顺序结构程序的设计一实验名称:顺序结构程序的设计二.实验环境:windows XP系统,VC++6.0软件三.实验目的:四.实验内容:五.算法描述流程图六.源程序七.测试数据及运行结果八.实验心得实验成绩评分要求1、原创性发现抄袭或雷同成绩为0分2、正确性程序正确60分3、可读性格式清楚,有注释,变量命名规范20分4、健壮性对特殊测试数据有考虑有测试10分5、效率程序运行效率高10分第二篇:《c语言程序设计》上机实验报告要求《c语言程序设计》上机实验报告要求1.实验环境:软件系统:使用的软件环境硬件系统:机型说明2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~(3)循环结构程序设计(while, dowhile,for语句的用法)。

(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。

(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。

(6)熟悉指针含义及其使用。

(7)熟悉结构体和共用体的使用。

(8)熟悉文件的使用。

4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。

(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。

(3)运行程序,输入数据,分析结果。

5.实验结果:输出程序清单和运行结果。

(要求把原题内容,调试好的程序和其结果一并打印),6.实验体会分析运行结果,本次调试程序取得的经验(遇到的问题,解决的方法等)。

第三篇:C程序设计上机实验报告10C程序设计实验报告实验名称:指针与数组学时安排:2课时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.理解指针、地址和数组间的关系;2.掌握通过指针操作数组元素的方法;3.掌握数组名作为参数的编程方式。

C语言程序设计实验报告(结构体和共用体)

C语言程序设计实验报告(结构体和共用体)

C语言程序设计实验报告(结构体和共用体)1实验目的1、掌握结构体类型变量的定义和使用;2、掌握结构体类型变量数组的概念和使用;3、掌握链表的概念,初步学会对链表进行操作;4、掌握共用体的概念和使用。

2实验内容1)在一个结构体数组中存入三个人的姓名及年龄,输出三者中年龄居中者的姓名及年龄。

要求:1、三个人的数据采用直接初始化的方式赋值;2、利用结构体指针实现处理过程。

3算法描述流程图4源程序#include<stdio.h>main(){struct students{char name[10];int age;} stu[3]={{"Jack",17},{"Anne",16},{"Tom",19}},stu1[3];struct students *stu2=&stu[0],*t=&stu1[0];int i,j,k;for(i=0;i<2;i++){k=i;for(j=i+1;j<3;j++){if(((stu2+j)->age)<((stu2+k)->age))k=j;}*t=*(stu2+k);*(stu2+k)=*(stu2+i);*(stu2+i)=*t;}printf("三人中年龄居中者姓名:%s,年龄:%d\n",stu[1].name,stu[1].age); }5测试数据{"Jack",17},{"Anne",16},{"Tom",19}6运行结果7出现问题及解决方法;实验中,引用结构体数组出现错误,忘记写{},指针的初始化忘记写*,这些问题都是些低级错误,不应该犯的,在循环中,i的初始化错误。

以后应更加仔细,多注意细节问题,很多时候细节是决定事情的关键。

8实验心得在本次试验中,我通过学习和实践,对结构体类型变量的定义和使用以及链表的概念有了更清楚的理解,初步学会了对链表进行操作,掌握了结构体类型变量数组以及共用体的使用。

实验10结构体及共用体

实验10结构体及共用体

实验十结构体与共用体实验目的:1.结构体类型变量的定义和引用2.结构体类型数组的概念和引用3.指向结构体类型的指针的引用4.共用体的定义及引用5.链表的概念,会实现链表的创建实验相关内容简介:实结构体是个能够包含不同数据类型的一个结构,是一种能够自己定义的数据类型,通常可用来定义表示整体信息的一条记录。

1.结构体类型定义struct 结构类型名{ 数据类型数据项1;数据类型数据项2;……数据类型数据项n;}; //注意此处定义时分号不能少其中的结构类型名表明了一种新的构造数据类型,其中的数据项称为结构体的数据成员。

2.结构体变量定义结构体变量定义的形式通常有如下三种方法:(1)先定义结构体类型,再定义结构体类型变量:struct date{ int day;int month;int year;};struct date time1,time2;(2)定义结构体类型同时定义结构体类型变量:struct stu{long int num;char name[20];char sex;float score;struct date time1; //此处结构的成员也是个结构体}stu1,stu2;(3)直接定义结构体类型变量:struct{char name[20]; / *通讯录姓名* /char sex; / *性别* /long telephone; / *电话* /char address; / *住址* /} person1,person2; / *定义该结构体类型变量* /该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。

3.结构体变量成员的引用结构体变量的成员引用形式为:结构体变量名.成员名如time1.year=1980;是给结构体变量time1中的year变量赋上年份值;stu1.time1.year=1985;则是给student中time1成员中的year成员赋值,4.结构体数组的定义struct 结构体类型名结构体变量名[数组长度];如:struct stu std[3];则std是一个包含3个结构体的结构体数组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
2
ቤተ መጻሕፍቲ ባይዱ
3
4
5
6
7
8
第三节 实验目的 1)复习教材“第8章”的内容,熟习结构体 2)复习掌握结构体、共同体和枚举的异同。 3)复习结构体、共同体和枚举的概念及创建 4)结合本教材“学习指南”部分的内容,上
9
5)总结本实验程序的运行调试经验,整理上 6)通过对结构体、共同体和枚举的使用,要 求能熟练掌握结构体、共同体和枚举的定义并在程 7)通过编写程序,进一步熟悉结构体的使用 ,以及结构体在整个C++中的重要地位,熟悉结构 体数组的使用和在C++中使用结构体以及结构体数 组的使用要点。
第一节 实验目的 1)通过上机了解并进一步熟练掌握结构体、 2)掌握结构体、共同体和枚举在程序中的使
实验10
3)掌握结构体、共同体和枚举三种数据结构 在C++语言中的运用方式及它们的运用规则,掌握 发对三种数据结构的描述方式。
1
第二节 实验内容及实验步骤 1)编写input ( )和output ( )函数输入、输出5 个学生的数据记录,两个函数共同用一个结构体类 型变量,该结构体变量的成员包括:学号(num)、 姓名(name),成绩采用实型数组,共有3门课
相关文档
最新文档