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个结构体的结构体数组。

C语言程序设计——结构体和共用体(完整版)

C语言程序设计——结构体和共用体(完整版)

printf(“name\tage\tjob\tclass/office\n”); for(i=0;i<PN;i++) {if(body[i].job==„s‟) printf(“%s\t%d\t%3c\t%d\n”,body[i].name, body[i].age,body[i].job,body[i].units.class); else printf(“%s\t%d\t%3c\t%s\n”,body[i].name, body[i].age,body[i].job,body[i].units.office); } }
birthday num name sex age month day year addr
§12.3结构体数组
结构体数组的每一个元素都是具有相同结构类型 的结构体变量。 例:struct student {int num; char name[20]; float score; }stu[3]; 其中,定义了一个结构体数组stu,共有3个元素, 每个元素都具有struct student的结构形式。
§12.6共用体
共用体(也称为联合)也是一种构造的数据类型。 共用体是将不同类型的数据组织在一起共同占用 同一段内存的一种构造数据类型。 例如,在校学生和教师都填写以下表格: 姓名 年龄 职业 单位 其中,职业分两类:教师和学生; 而单位一栏里,学生填写班级编号(整型类型), 教师填写某系某教研室(整型类型) 。
§12.7枚举数据类型
当某些变量仅由有限个数据值组成时,通常用枚 举类型来表示。 所谓枚举是指将变量的值一一列举出来,变量的 值只限于列举出来的值的范围内。如一周只有7天, 一年只有12个月等等。
注意:枚举类型是一种基本数据类型,而不是一 种构造类型。关键字为enum。

C语言结构体和共用体实验报告

C语言结构体和共用体实验报告

实验九参考程序实验9-1/*****************************************************************实验9.1**(1)为某商店的商品设计合适的结构体(PRODUCT)。

每一种商品包含编号(number)、* 名称(name)、价格(price)、折扣(discount)4项信息,根据表9-1,为这些信息选择合适的数据类型。

*(2)建立2个函数,以实现对商品的操作。

input函数实现商品的输入;* display函数显示商品信息。

要求这2个函数都以商品的结构体(PRODUCT)指针为参数。

*(3)在主函数中为商品键盘定义一个结构体变量(keyboard),利用input函数实现键盘信息的输入;* 定义一个结构体数组(elec_device[3]),利用input函数实现冰箱、空调、电视信息的输入;* 最后利用display函数显示4种商品的信息。

** 表9-1**编号名称价格折扣*1010 键盘89.50 0.85*1021 冰箱1024.00 0.95*1022 空调2058.50 0.90*1023 电视3001.88 0.95*****************************************************************/#include <stdio.h>typedef struct _PRODUCT{int iNumber;char strName[32];float fPrice;float fDiscount;}PRODUCT,*PPRODUCT;void input(PRODUCT *pProduct);void display(PPRODUCT pProduct);void main(){int i;PRODUCT kyeboard;PRODUCT elec_device[3];input(&kyeboard);for(i=0;i<3;i++){input(&elec_device[i]);}display(&kyeboard);for(i=0;i<3;i++){display(&elec_device[i]);}}/******************************************************************函数名称:input()**参数:PRODUCT *pProduct -PRODUCT结构体指针,用来存放输入数据***返回值:无*说明:*该函数用来完成PRODUCT结构体数据的输入。

C语言程序设计习题与上机指引答案

C语言程序设计习题与上机指引答案

《C语言程序设计习题与上机指南》答案第一部分习题篇第一章 C 语言概述一.单选题1.以下说法中正确的是(C)。

A )C 语言程序总是从第一个函数开始执行B)在 C 语言程序中,要调用函数必须在main()函数中定义C)C 语言程序总是从main()函数开始执行D)C 语言中的main()函数必须放在程序的开始部分2.一个 C 语言程序是由(B)。

A )一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成3.C语言规定,在一个源程序中,main 函数的位置(C)。

A )必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后4.以下叙述不正确的是(D)。

A )一个 C 源程序可由一个或多个函数组成B)一个 C 源程序必须包含一个main 函数C ) C 程序的基本组成单位是函数D)在 C 程序中,注释只能位于一条语句的后面5.下列关于 C 语言的说法不正确的是(D)。

A )C 语言既有高级语言的功能,也具有低级语言的一些功能B)C 语言中的一条执行语句都必须用分号结束C)注释可以出现在程序中任意合适的地方D)include 命令行后面必须加分号6.用 C 语言编写的代码程序(B)。

A )可以立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行7.用高级语言(如 C 语言)编写的程序称为(A )A )源程序B )目标程序C)可执行程序D)编译程序8.一个函数的组成有(A )。

A )函数首部和函数体B)函数名和函数的声明部分C)主函数和子函数D)声明部分和执行部分9.在 C 语言中,用来表示“取地址”的符号是(B)。

A)#B)&C)* D)@10. C 语言是计算机高级语言,它适合于作为系统描述语言,它(A)。

A)既可用来写系统软件,也可用来写应用软件B)只能写系统软件,不能用来写应用软件C)不能写系统软件,只能用来写应用软件D)既不能写系统软件,也不能写应用软件二.填空题1.C 语言用函数作为程序的模块单位,便于实现程序的模块化。

C语言程序设计实验结构体与共用体

C语言程序设计实验结构体与共用体

实验8:结构体与共用体一、实验目的1.掌握结构体类型变量的定义和使用;2.掌握共用体的概念与使用。

二、实验内容编写程序,实现如下功能:1.定义结构体变量,用它表示考生的学号、姓名(用英文表示)以及语文、数学、外语成绩。

输入两个考生的信息和各门课成绩并比较(按总分进行高低排序;当总分相同时,依次按语、数、外的顺序排序)。

2.设有一个教师与学生通用的表格,数据项包括:姓名、年龄、职业和单位,其中“职业”一项可分为“教师”和“学生”两类;对“单位”一项,教师填入“系部名称”(用字符类型表示),学生填入“班级编号”(用整型量表示)。

编程输入人员数据,再以表格输出。

三、实验结果记录第1题上机调试后的最终代码及上机调试结果(截图):程序代码运行结果1.总分不同2.总分相同的情况2.1总分完全相同2.2总分相同但语文成绩不同2.3总分相同、语文成绩相同但数学成绩不同第2题上机调试后的最终代码及上机调试结果(截图):程序代码运行结果1.正确输入2.错误输入四、实验小结:经过此次实验,我熟悉掌握了结构体的定义和使用,同时也掌握了共用体的使用。

对于程序1,基本思路是通过结构体定义变量,采用if-else语句嵌套,当总分相同且语文数学成绩均相同时就不必再进行一轮的if语句判断,因为此时两考生的英语成绩一定相同。

对于程序2,在结构体中定义了共用体,可对不同职业进行不同单位的划分。

基本思路是用malloc函数进行动态内存分配,确定要输入的样本数量,再进行数据的输入,在单位数据的输入时需要判断输入对象是学生还是老师,此时要用strcmp函数进行比较判断,输入结束后打印表格,用转义字符\t让表格更加美观,最后通过free进行内存释放。

C语言学习 实验10 结构体和共用体

C语言学习 实验10  结构体和共用体

实验10 结构体和共用体1.实验目的掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和使用;掌握链表的概念,初步学会对链表进行操作;掌握共用体的概念与使用。

2.实验内容编程序,然后上机调试运行。

(1).有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。

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

(2).13个人围成一圈,从第1个人开始顺序报号1、2、3。

凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。

(习题11.9)本题要求用链表实现。

(3).建立一个链表,每个结点包括:学号、姓名、性别、年龄。

输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

(习题11.11)(4).输入和运行以下程序union data{int i[2];float a;long b;char c[4];}u;main ( ){scanf("%d,%d",&u.i[0],&u.i[1]);printf(i[0]=%d,i[1]=%da=%fb=%1dc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%c,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);}输入两个整数10000、20000给u.i[0]和u.i[l],分析运行结果。

然后将scanf语句改为:scanf("%ld",&u.b);输入60000给b,分析运行结果。

10C#程序设计

10C#程序设计

第十章结构体和共用体第五节共用体结构体类型解决了如何描述一个逻辑上相关,但数据类型不同的一组分量的集合。

在需要节省内存储空间时,c 语言还提供了一种由若干个不同类型的数据项组成,但共享同一存储空间的构造类型。

共用体——一种构造类型数据共用体由若干不同类型的数据项组成,构成共用体的各个数据项称为共用体成员。

由于共享的特性,只有最新存储的数据是有效的。

共用体类型定义的一般形式:union 共用体名{数据类型1 成员名1;数据类型2 成员名2;……数据类型n 成员名n;};•利用已定义的共用体类型名定义变量union 共用体名变量名表;例如:union utype u1,u2;按照共用体类型的组成,系统为定义的共用体变量分配内存单元。

共用体变量所占内存大小等于共用体中占用内存的长度最长的成员。

•在定义共用体类型的同时定义变量 例如: union utype {int i;char ch;long l;char c[4];} a, b, c;union 共用体名{成员定义表;} 变量名表;10.5.2 共用体变量的定义•直接定义共用体类型变量例如: union{ int i;char ch;long l;char c[4];} a, b, c;union{成员定义表;} 变量名表;10.5.3共用体变量成员的引用共用体变量成员的引用有三种形式。

例如:union u { char u1; int u2; }x,*p=&x;用共用体变量名的引用形式:x.u1x.u2用共用体指针变量的引用形式: (*p).u1 (*p).u2p->u1 p->u2总结•与结构体的不同:各成员共享同一存储空间,各成员的值不会同时存在,在某一瞬时,只有最后一次呗赋值的成员是有意义的。

C语言学习 结构体和共用体

C语言学习 结构体和共用体
30字节
…..
结构体类型定义描述结构 结构体类型定义的作用域 的组织形式,不分配内存
10.2 结构体变量的定义
先定义结构体类型,再定义结构体变量
一般形式:
struct 结构体名
{ 类型标识符例 成s员truc名t ;student
类型标识符 成{员名icnh;tanrunma;me[20];
例 用结构运rag体行.a=结变2果7量a:rg作.b函=3数arg参.c=数30
(main)
Call Func()....
struct data
parm.a=27 parm.b=3 parm.c=30
{ int a, b, c; }; Process...
main()
parm.a=18 parm.b=5 parm.c=90
第十章 结构体与共用体
10.1 结构体
结构体是一种构造数据类型。 用途:把不同类型的数据组合成一个整体—自定 义数据类型 结构体类型定义
合法标识符 可省:无名结构体
struct是关键字, 不能省略
struct [结构体名]
{ 类型标识符 成员名; 类型标识符 成员名;
……………. };
分配内存
可以
结构体类型及变量的作用域与生存期
例 struct { int
mdao例tneths;truct
student
int day{; int num;
int year; char name[20];
};
struct date
struct student{ { int num;
int month; int day; num
}stu}1st,ust1u,2st;u2; }stu1,stu2;
  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门课
相关文档
最新文档