结构体公用体枚举类型习题

合集下载

结构体和共用体习题

结构体和共用体习题

习题六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)。

结构体与共用体相关题目练习

结构体与共用体相关题目练习

结构体与共用体1.说明一个结构体变量时系统分配给它的内存是A)各成员所需要内存量的总和 B)结构体中第一个成员所需内存量C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存量2.C语言结构体类型变量在程序执行期间A)所有成员一直驻留在内存中 B)只有一个成员驻留在内存中C)部分成员驻留在在内存中 D)没有成员驻留在内存中3.设有以下说明语句struct stu { int a ; float b ; } stutype ;则下面的叙述不正确的是A) struct 是结构体类型的关键字 B) struct stu 是用户定义的结构体类型C) stutype 是用户定义的结构体类型名 D) a和b都是结构体成员名4.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【】。

struct stud { char num[6]; int s[4]; double ave; } a,*p;5.程序中有下面的说明和定义struct abc { int x;char y;}struct abc s1,s2;则会发生的情况是A)编译出错B)程序将顺利编译、连接、执行C)能顺利通过编译、连接、但不能执行 D)能顺利通过编译、但连接出错6.有如下定义struct person { char name[9]; int age;};struct person class[10]={ " Johu", 17,"Paul", 19,"Mary", 18,"Adam", 16};根据上述定义,能输出字母M的语句是A) prinft(" %c\n",class[3].name); B) printf(" %c\n",class[3].name[1]);C) prinft(" %c\n",class[2].name[1]); D) printf(" %c\n",class[2].name[0]);7.下面程序的输出是A)0 B)1 C)3 D)6main(){ struct cmplx { int x; int y;} cnum[2]={1,3,2,7};printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}8.下列程序的输出结果是A)5 B)6 C)7 D)8struct abc { int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}};int t;t=s[0].a+s[1].b;printf("%d \n",t);}9.有以下程序struct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n" ,(*p).name); }main(){ struct stu students[3]={{9801,"Zhang",20} ,{9802,"Wang", 19} , {9803,"Zhao",18} };fun(students+2);}输出结果是A)Zhang B)Zhao C)Wang D)1810.设有如下定义:struct sk {int a ;float b ;}data ,*p ;若有p=&data ;,则对data中的a域的正确引用是A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a11.下面程序的输出结果为int dt[4]={10 ,20 ,30 ,40} ;struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] } ;main(){ p=aa ;printf("%d\n" , ++p->x );printf("%d\n" ,(++p)->x);printf("%d\n" , ++( *p->y));}A)10 B)50 C)51 D)6020 60 60 7020 21 21 3112.为了建立如图所示的存储结构(即每个结点含两个域, data 是数据域,next是指向结点的指针域,)请填空。

结构体、共用体

结构体、共用体

结构体,公用体一、选择题:(20题)1.本题序号:552当说明一个结构体变量时系统分配给它的内存是A 各成员所需内存量的总和;B 结构体中第一个成员所需的内存量;C 成员中内存量最大者所需的容量;D 结构体中最后一个成员所需的内存量;参考答案 A2.本题序号:554当说明一个共用体变量时系统分配给它的内存是A 各成员所需内存量的总和;B 第一个成员所需的内存量;C 成员中内存量最大者所需的容量;D 最后一个成员所需的内存量;参考答案 C3.本题序号:555下面对共用体类型的叙述描述正确的是A 可以对共用体变量名直接赋值;B 一个共用体变量中可以同时存放其所有成员;C 一个共用体变量中不可以同时存放其所有成员;D 共用体类型定义中不能出现结构体类型的成员;参考答案 B4.本题序号:639设有以下说明语句typedef struct{ int n;char ch[8];}PER;则下面叙述中正确的是A PER 是结构体变量名B PER是结构体类型名C typedef struct 是结构体类型D struct 是结构体类型名参考答案B5.本题序号:748设有如下说明typedef struct ST{long a;int b;char c[2];} NEW;则下面叙述中正确的是()。

A 以上的说明形式非法B ST是一个结构体类型C NEW是一个结构体类型D NEW是一个结构体变量参考答案 C6.本题序号:756以下对结构体类型变量td的定义中,错误的是A typedef struct aa{int n;float m;}AA;AA td;B struct aa{int n;float m;} ;struct aa td;C struct{int n;float m;}aa;struct aa td;D struct{int n;float m;}td;参考答案C7.本题序号:774有以下程序段typedef struct NODE{ int num; struct NODE *next;} OLD;述中正确的是()。

结构体公用体枚举类型习题

结构体公用体枚举类型习题

是对C语言中共用体类型数据的正确叙述: C 是对 语言中共用体类型数据的正确叙述: 语言中共用体类型数据的正确叙述 A)一旦定义了一个共用体变量后,即可引用该变量或该变 )一旦定义了一个共用体变量后, 量中的任意成员; 量中的任意成员; B)一个共用体变量中可以同时存放其所有成员; )一个共用体变量中可以同时存放其所有成员; C)一个共用体变量中不能同时存放其所有成员; )一个共用体变量中不能同时存放其所有成员; D)共用体类型数据可以出现在结构体类型定义中,但结构 )共用体类型数据可以出现在结构体类型定义中, 体类型数据不能出现在共用体类型定义中。 体类型数据不能出现在共用体类型定义中。
5.根据下面的定义,能打印出字母M的语句是 。 D 根据下面的定义,能打印出字母 的语句是 struct person{ char name[9]; int age; }; struct person c[10]={"John",17,"Paul",19,"Mary",18,"Adam",1 6}; A)printf("%c\n",c[3].name); ) B)printf("%c\n",c[3].name[1]); ) C)printf("%c\n",c[2].name[1]); ) D)printf("%c\n",c[2].name[0]); )
B
10.变量 所占内存字节数是 C 变量a所占内存字节数是 变量 A) 4 B) 5 C) 6 ) ) ) union u{ char st[4]; int i; long l;}; struct A{ int c; union u;}a;
D) 8 )

第9章结构体类型与共用体类型习题及答案

第9章结构体类型与共用体类型习题及答案

第九章结构体类型与公用体类型习题及其答案9-3编写程序,使用结构体类型,输出一年十二个月的英文名称及相应天数。

解:#include "stdio.h"struct date{char month[10];int daynumber;}main(){int i ;date a[12]={{n January u,31},{“February”,29}, {“March”,31}, {” Aprial”,30}, {”May“,31},{“June",30}, {“july”,31},{” August”,31},「'September”,30} ,{“October”,31},{"November",30},{"December",31}};for(i=0;i<12;i++);printf(u%d 月:%s %d\n",i+l,a[i].month,a[i].daynumber);}思考:如何对结构体变量进行初始化?对结构体变量的引用为何要体现为分量(或成员)的引用?9-4编写程序求空间任一点到原点的距离,点用结构体描述。

并请考虑求空间中任意两点的距离的程序。

解:#include "stdio.h"#include "math.h'1struct point{float x ;float y;float z;}void main()double dl,d2,d;point pl,p2 ;printfC请输入第一个点的坐标:“);scanf(”%f,%f,%f",&pl.x,&pl.y,&pl.z);printf(u W输入第二个点的坐标:”);scanf(”%f,%f,%f”,&p2.x,&p2.y,&p2.z);d 1 =sqrt(p l.x*p l.x+p l.y*p l.y+p l.z*p l.z);d2=sqrt(p2.x*p2.x+p2.y*p2.y+p2.z*p2.z);d=sqrt((p2.x-p l.x)*(p2.x-p l.x)+(p2.y-p 1 .y)*(p2.y-p l.y)+(p2.z-pl.z)*(p2.z-pl.z));printfC第一个点到原点的距离:%f\n”,dl);printf(“第二个点到原点的距离:%f\n”,d2);printfC俩点间的距离:%f\n”,d);}9-5编写输入、输出10个朋友数据的通讯录程序,每个朋友数据包括姓名、地址、邮编、电话、传呼、手机等数据。

学习情境七结构体、共用体与枚举习题

学习情境七结构体、共用体与枚举习题

学习情境七结构体、共用体与枚举习题一、选择题1.若有如下说明,则的叙述是正确的(已知int类型占两个字节)。

struct st{ int a;int b[2];}a;A.结构体变量a与结构体成员a同名,定义是非法的B.程序只在执行到该定义时才为结构体st分配存储单元C.程序运行时为结构体st分配6个字节的存储单元D.类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后)2.设有以下说明语句:struct ex{ int x ;float y;char z ;} example;则下面的叙述中不正确的是。

A.struct是结构体类型的关键字B.example是结构体类型名C.x,y,z都是结构体成员名D.struct ex是结构体类型3.若有以下结构体定义:struct example{ int x;int y;}v2;则是正确的引用或定义。

A.example.x=10 B.example v2.x=10;C.struct v2; v2.x=10; D.struct example v2={10};4.已知:struct{ int i ;char c;float a;} ex;则sizeof(ex)的值是。

A.4B.5C.6D.75.下面程序的运行结果是main(){struct sample{int x;int y;}a[2]={1,2,3,4};printf(“%d\n”,a[0].x+a[0].y*a[1].y);}A.7B.9C.13D.166.已知:union{ int i ;float a;char c ;} ex;则sizeof(ex)的值是。

A.4B.5C.6D.77.有如下定义struct person{char name[9]; int age;};struct person class[10]={“Johu”, 17,“Paul”, 19“Mary”,18,“Adam”, 16,};根据上述定义,能输出字母M的语句是。

第8章结构型联合型和枚举型习题(C语言程序设计)

第8章结构型联合型和枚举型习题(C语言程序设计)

本文由ミ尒尒贡献 ppt文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

第8章 结构体联合体枚举 习题 一单项选择题. 一单项选择题 1. 设有以下定义语句,下列叙述中不正确的是( 设有以下定义语句,下列叙述中不正确的是( struct ex { int x; float y ;char z ;}example; ) A. struct是结构型的保留字 是结构型的保留字 B. example是结构型名 是结构型名 C. x,y,z是结构型成员名 是结构型成员名 D. ex是结构型名 是结构型名 一单项选择题.2 一单项选择题 2 以下定义结构型变量s的语句中不正确的是( 以下定义结构型变量 的语句中不正确的是( 的语句中不正确的是 A.#define ABC struct abc ABC {double a; char b[10]; }s; C. struct S {double a; char b[10]; }; B. struct abc {double a; char b[10]; }s; D. struct abc {double a; char b[10]; }abc; struct abc s; ) 一单项选择题.3 一单项选择题 若有定义语句: 若有定义语句: struct a {int a1; int a2;}a3; 以下赋值语句不正确的是( 以下赋值语句不正确的是( A. a.a1=4; C. a3={4,5} ) B. a2=4 D. a3.a2=5 一单项选择题. 一单项选择题 4. 定义如下结构型变量和结构型指针 struct sk { int a;float b}data,*p; 若指针p已经通过 指向结构型变量data,则引用 若指针 已经通过p=&data;指向结构型变量 已经通过 指向结构型变量 则引用 data中a成员的正确方式是: 成员的正确方式是: 中 成员的正确方式是 data p a A. (*p).data.a &data B. (*p).a C. p->data.a 结构体变量名 成员名 b 结构体变量名.成员名 D. p.data.a 指针变量) (*指针变量).成员 指针变量 成员 指针变量->成员 指针变量 成员 一单项选择题.5 一单项选择题 若要说明一个类型名STP 若要说明一个类型名STP , 使定义语句“ 等价于“ 使定义语句“STP s;”等价于“char *s; ” 等价于 以下选项中正确的是( 以下选项中正确的是( ) 类型重定义: 类型重定义: typedef 原类型名 新名; 新名; A.typedef STP B.typedef * char C. typedef STP D. typedef char char *s; STP; * char ; * STP; 一单项选择题.6 一单项选择题 某结构型变量定义如下, 某结构型变量定义如下,对该结构型变量中成员的 引用形式正确的是( 引用形式正确的是( ) struct abc{int s; char ch;}a1,*p; p=&a1; A. a1->s B. p->ch C. p.ch D. *p.s 一单项选择题. 一单项选择题 8. 若有下面的说明和定义: 若有下面的说明和定义: struct test m3 m1 { int m1; char m2; m2 float m3; ua union uu { char u1[c]; u1[5] int u2[2]; u2[2] }ua; }myaa; 的值是: 则sizeof(struct test)的值是: 的值是 二、填空题 2 设struct student {int no; int char name[12]; float score[3]; }s1,*p=&s1; s1,*p=&s1; 赋值1001的方法是( 的方法是( 用指针变量p给s1的成员 赋值 指针变量 给 的成员no赋值 的方法是 ) p->no=1001 (*p).no=1001 二、填空题 6 设有下列数据定义语句, 设有下列数据定义语句,则表 达式++p >b的值是 ++p- 的值是 达式++p->b的值是 p struct AB { int a; ab float b; }ab[2]={{4,3},{2,1}},*p=ab; ab[2]={{4,3},{2,1}},*p=ab; ={{4,3},{2,1}},*p ab[2] 4 ab[1] 3.0 4.0 2 ab[1] 1.0 ++p->b ++p++ p->b 二、填空题 5 ? 设有类型说明: ? enum color {red,yellow=4,white,black}; ? 则执行语句printf(“%d”,white);的结果是 二、填空题7 填空题 ? 设有定义语句: ? enum{B1,B2=10;B3,B4}x=B3; ? 则++x==B4的值是 三、写出程序运行结果1. 写出程序运行结果 struct st {int x; int *y;}*p; int dt[4]={10,20,30,40}; struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[1],80,&dt[3]}; main() { p=aa; printf(“%d”,++p->x); printf(“%d”,(++p)->x); printf(“%d”,++(*p->y)); 三、写出程序运行结果2. 写出程序运行结果 struct stu { int num; char name[10]; int age; }; void fun(struct stu *p) { printf(“%s\n”,(*p).name);} main() {struct stu students[3]={{9801,”zhang”,20}, {9802,”wang”,19}, {9803,”zhao”,18}}; fun( students+2) 实验11. 实验 三、实验练习 struct x{ int a; char *b;}*p; char y0[]=“Li”, y1[]=“Wang”; stuct x xw[]={{1,y0},{4,y1}}; main() p p=xw; printf(“%c”, ++*p->b); printf(“%d”,++p->a); printf(“%d”,++p->a); printf(“%d”,(++p)->a); printf(“%c\n”,*(p++)->b); } y0[3] L i xw[2] \0 1 y0 4 y1 y1[5] W a n g \01。

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

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

率。 其次,结构体指针作为函数参数:可以在函数中通过该指针引用结 构体,当在函数中修改了结构体的成员变量后,指针所指向的结构体本 身也被改变了。而当结构体变量作为函数参数;在函数中可通过变量直 接使用结构体,但是,如果在函数中修改了结构体的成员变量后,结构 体本身并未发生变化,只是副本被改变。
} } average = s/5 ; printf("平均成绩:%.2f\n",average); }
4、5位职工的月收入如下表所示: 部门 月收入 工号 姓名 (char (float (int num) (char name) department) salary) 技术科 010002 张援朝 6800 生产科 020006 李明瑞 2600 检验科 030018 王国庆 4800 后勤部 040026 刘小兵 3700 经营科 050068 吴 伟 1900 试编程求这5位职工的平均月收入,并输出月收入小于3000元的职 工的部门、工号、姓名与月收入等信息。源程序以ex9_8.c命名,保存 在自己的文件夹内。
保存在自己的文件夹内。
解: #include <stdio.h> struct bookinfo { char isbn[20]; char title[50]; char author[20]; char publisher[50]; char pubdate[30]; float price; }book[5] = {{"7115177810","Java实用教程","李钟 尉","人民邮电出版社","2008年5月",32.00}, {"7113101015","汇编语言程序设计","白小明","中国铁 道出版社","2009年8月",35.00}, {"7302108535","C语言程序设计","谭浩强","清华大学 出版社","2005年7月",26.00}, {"7301123713","网络工程实用教程","汪新民","北京大 学出版社","2008年2月",34.00}, {"7111283812","软件工程概论","郑人杰","机械工业出 版社","2010年3月",28.00}}; main() { int i; float average, s=0; for(i=0; i<5; i++) { s += book[i].price; if(book[i].price<30.00) { printf("书号:%s ",book[i].isbn); printf("书名:%s ",book[i].title);

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

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

结构体共用体与枚举课后习题1.定义一结构体,成员项包括一个字符型、一个整型。

编程实现结构体变量成员项的输入、输出,并通过说明指针引用该变量。

#includevoid main(){struct a{char b;int c;}d,*p;p=&dprintf("输入:\n");scanf("%c",&(*p).b);scanf("%d",&p->c);printf("输出:\n");printf("%c\n",(*p).b);printf("%d\n",p->c);}2.建立一结构体,其中包括学生的姓名、性别、年龄和一门课程的成绩。

建立的结构体数组通过输入存放全班(最多45人)学生信息,输出考分最高的同学的姓名、性别、年龄和课程的成绩。

#includevoid 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<n;i++)< p="">{printf("请输入第%d个学生的名字、性别、年龄及成绩\n",i+1);gets(stu[i].name);gets(stu[i].sex);scanf("%d",&stu[i].year);scanf("%f",&stu[i].score);getchar();}for(b=0,a=stu[0].score,i=0;i<n;i++)< p="">if(a<stu[i].score)< p="">{a=stu[i].score;b=i;}printf("成绩最优秀的是第%d个学生\n",b+1);printf("名字:%s 性别:%s 年龄:%d 成绩:%f\n",stu[b].name,stu[b].sex,stu[b].year,stu[b].score);}3.已知一个班有45人,本学期有两门课程的成绩,求:●所有课程中的最高成绩,以及对应的姓名、学号和课程编号。

C语言第9章结构体、共用体、枚举

C语言第9章结构体、共用体、枚举

结构体变量.成员
struct date { int year;
int month; int day;
“.”是成员运算符, 优先级最高
printf("%d,%d,%d",birth);
printf("%d,%d,%d",birth.year,
}; struct date birth;
birth.month,birth.day);
scanf("%f",&student2.score[2])7; 8
student2
结构变量的整体赋值 student3 = student2;
02 Zhang Zi Liang 88 78
student3
02 Zhang Zi Liang 88 78
湖南工业大学计算机与通信学院
例9-1学生的基本信息包括学号、姓名、3门成绩、平均分、总分。输入一 个学生的前3项基本信息,计算平均分和总分并输出。
湖南工业大学计算机与通信学院
9.1 问题的提出
又如,在学生信息管理系统中填 加个属性:是否是中共党员,如 果不是属性的值为0(int),如
果是属性的值为入党的时间 (char)。在某一时间,属性只有 一种值,而且数据类型不同,这 种情况用什么数据类型描述呢?
对于这种应用,C语言引入了共用体类型。
共用体是一种同一存储区域由不同类型变量共享的数据 类型,它提供—种方法能在同一存储区中操作不同类型 的数据,也就是说共用体采用的是覆盖存储技术,准许 不同类型数据互相覆盖。
基本数据类型并不能方便地解决所有问题
❖ 复合数据类型是基本数据类型迭代派生而来
典型的代表就是“结构”,数组、指针也可算作此类

C#结构体、枚举类型及例题解析

C#结构体、枚举类型及例题解析

C#结构体、枚举类型及例题解析结构体 ~struct定义:结构体⼀般定义在Main函数上⾯,位于Class下⾯,作为⼀个类;⼀般情况Struct定义在Main函数前⾯,Main函数⾥⾯的地⽅都可以使⽤,参数前⾯加上public代表公⽤变量。

格式:struct +结构体的名称{public int+变量名;public double+变量名;public string+变量名;}以上就是定义⼀个结构体的格式,⾥⾯包含许多种数据类型,如整形int,字符串string,带⼩数点decimal等;⽤法:(1)在Main函数外⾯定义了⼀个student类型的结构体,在Main主函数中使⽤:(2)然后为⾥⾯的每个元素赋值,结构体名+点+结构体⾥⾯变量名称=值。

(3)赋值之后完成之后进⾏打印。

枚举类型~Enum....{E}定义:枚举元素的默认基础类型为int。

默认情况下,第⼀个枚举数的值为0,后⾯每个枚举数的值依次递增1。

⽤法:枚举也可以指定数据类型,⼀般不指定。

在定义枚举类型时,可以选择基类型,但可以使⽤的基类型仅限于long、int、short和byte。

例题:1、定义⼀个结构体,存放关于车辆的⼏个信息将所有车的信息都放⼊集合中车型号价格(W)轴距(mm)油耗(L/100km)宝马320Li 38 2920 6.9宝马520Li 43 3108 7.2宝马730Li 89 3210 6.3奥迪A4L35TFSI 31 2869 6.2奥迪A6L30TFSI 43 3012 7.6奥迪A8L45TFSI 89 3122 8.1奔驰C200L 35 2920 6.1奔驰E260L 48 3014 6.7奔驰S320L 93 3165 8结构体:struct car{public string xinghao;public double jia;public double zhou;public double you;}ArrayList al = new ArrayList();car car1 = new car();car car2 = new car();car car3 = new car();car car4 = new car();car car5 = new car();car car6 = new car();car car7 = new car();car car8 = new car();car car9 = new car();car1.xinghao = "宝马320Li";car1.jia = 38;car1.zhou = 2920;car1.you = 6.9;al.Add(car1);car2.xinghao = "宝马520Li";car2.jia = 43;car2.zhou = 3108;car2.you = 7.2;al.Add(car2);car3.xinghao = "宝马730Li";car3.jia = 89;car3.zhou = 3210;car3.you = 6.3;al.Add(car3);car4.xinghao = "奥迪A4L35TFSI";car4.jia = 31;car4.zhou =2869;car4.you = 6.2;al.Add(car4);car5.xinghao = "奥迪A6L30TFSI";car5.jia = 43;car5.zhou = 3012;car5.you = 7.6;al.Add(car5);car6.xinghao = "奥迪A8L45TFSI";car6.jia = 89;car6.zhou = 3122;car6.you = 8.1;al.Add(car6);car7.xinghao = "奔驰C200L";car7.jia = 35;car7.zhou = 2920;car7.you = 6.1;al.Add(car7);car8.xinghao = "奔驰E260L";car8.jia = 48;car8.zhou = 3014;car8.you = 6.7;al.Add(car8);car9.xinghao = "奔驰S320L";car9.jia = 93;car9.zhou = 3165;car9.you = 8;al.Add(car9);1、现在想买⼀辆价格在50万以内的车,请给出车的型号以及价格 #regionfor (int i = 0; i < al.Count; i++){car c = (car)al[i];if (c.jia < 50){Console.WriteLine("型号:{0},价格{1}",c.xinghao,c.jia);}Console.ReadLine();#endregion2、买得起豪车,可是很关⼼油耗,给查⼀下油耗最低的三辆车的型号以及油耗情况#regionfor (int i = 0; i < al.Count; i++){for (int j = i; j < al.Count - 1; j++){car a = (car)al[i];car b = (car)al[j+1];if (a.you > b.you){object zhong = al[i];al[i] = al[j + 1];al[j + 1] = zhong;}}}for (int i = 0; i < 3; i++){car c = (car)al[i];Console.WriteLine("油耗最低的第{0}辆车的型号是{1},油耗为{2}",i+1,c.xinghao,c.you);}Console.ReadLine();#endregion3、买了车之后后座会经常坐⼈,所有我现在想要轴距⼤⼀些的车,前三名即可。

结构体、共同体和枚举类型

结构体、共同体和枚举类型

结构体、共同体和枚举类型一、选择题1、使用共同体的目的是()A、将一组数据作为一个整体,以便于其中的成员共享同一存储空间B、将一组具有相同数据类型的数据作为一个整体,以便于其中的成员共享同一存储空间C、将某种类型数据的所有可能出现的选择作为一个整体,以便程序中使用D、将一组具有相同数据类型的数据作为一个整体,以便程序中使用2、以下关枚举的叙述正确的是()。

A、在定义枚举类型时枚举常对应的序号只能由系统生成B、在定义枚举类型时不可同时定义枚举类型变量C、枚举变量的值可以进行比较D、枚举元素的值可以是字符或字符串3、下列结构体定义不正确的是()。

A、struct abc{ int a,b,c; } stru[10];B、struct abc[10]{ int a,b,c; };C、struct abc{ int a,b[10],c; } stru;D、struct abc{ int a,b,c; } stru;4、若有定义enum week{sun,mon,tue,wed,thu,fri,sat} day1,day2=wed;则下列对变量操作不正确的是()。

A、cin>>day1;B、day1=day2;C、day2= =day1;D、cout<<day2;5、下列对枚举类型定义正确的是()。

A、enum e={sun,mon,tue,wed};B、enum e={“sun”,”mon”,”tue”,”wed”};C、enum e{sun=7,mon,tue,wed};D、enum e{“sun”,”mon”,”tue”,”wed”};6、若有定义struct student{ int num;char name[20];}stu;则下列语句正确的是()。

A、student.num=1;B、stu.num=2;C、cout<<stu;D、cin>>stu;7、以下程序的输出结果为()。

结构型共用型和枚举型典型例题分析与解答

结构型共用型和枚举型典型例题分析与解答

结构型、共用型和枚举型典型例题分析与解答1 设有下列定义语句,则表达式“p->x「l」”的值是_____________;表达式“(*p).k”的值是____________。

struct { int x[5];int k;} s={{1,2},3},*p=&s;【分析】p是指向结构型变量s的结构型指针变量,所以“p->成员名”就是结构型变量s的成员。

由于表达式中给出的成员是数组元素x[1],所以该表达式的值就是x[1]的值。

从赋初值来看,这个数组元素的初值为2,所以第一个空白应该填写2。

同样道理,*p就是p指向的结构型变量s,所以第二个表达式就是s.k,k是结构型变量S的成员,初值为3,所以第二个表达式的值为3。

【答案】232 设有下列定义语句,则下列表达式中能表示结构型xx的成员x的表达式是()struct xx{ int x;};struct yy { struct xx xxx;int yy;} xxyy;① xxyy.x ② xxyy->x ③(&xxyy)->xxx.x ④xxx.x【分析】分析备选答案①:xxyy是结构型yy的变量,其后跟“.成员”是正确的,但是这个成员必须是结构型yy的成员,而表达式中的“x”是结构型xx的成员,所以是错误的。

分析备选答案②:xxyy是结构型变量,其后不能跟“->”,这样会造成语法错误。

分析备选答案③:&xxyy是结构型变量xxyy的地址,其后跟“->成员”是正确的,表示该结构型的成员,这个成员是结构型对的成员xxx,而这个成员的数据类型又是另一个结构型xx,所以其后应该是“.xx的成员”,表达式中恰好是xx的成员x,所以这个表达式是正确的(注意,这是嵌套结构型成员的弓l用格式)。

至于备选答案④:xxx是结构型成员,不能直接引用,前面必须有结构型变量或结构型数组元素。

【答案】③3 设有下列定义语句,则表达式“(*(p+1)).name[1]”的值是______________;表达式“(p+1)-> score[1]”的值是_____________。

结构体、共用体、枚举的综合举例

结构体、共用体、枚举的综合举例

结构体、共用体、枚举的综合举例下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!结构体、共用体、枚举的综合举例在C语言中,结构体(struct)、共用体(union)、枚举(enum)是组织和管理数据的重要工具。

C语言程序设计实例教程第2版习题答案作者李红第9章结构体和共用体.doc

C语言程序设计实例教程第2版习题答案作者李红第9章结构体和共用体.doc

9.4课后习题9.4.1项目练习一.练习目的1.进一步巩固结构体类型和共用体类型的定义与引川2.进一步复习链表的建立过程3.进一步巩固枚举类型的定义与枚举元索的引用方法二.练习内容1.用结构体变量表示平面上的一个点(横坐标和纵坐标),输入两个点,求两点Z间的距离。

#include "stdio.h"include "math.h"struct pin{float x;float y;}a,b;main(){printfC*请输入a点的横纵坐标:“);scanf("%f%f"/&a.x,&a.y);printfC'Xn");printf("请输入b点的横纵坐标scanf(,,%f%f"/&b.x,&b.y);printf("\n n);printff"输出a、b 两点之间的距离是:%f",sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)));getch();}2.16个同学围成一-圈,从笫1个人开始按1、2、3的顺序报号,凡报到3者退出圈子。

找出最后昭在圈子中的人原来的序号。

ttinclude "stdio.h"#include "stdlib.h"#define LEN sizeof(struct game)struct game{int num;struct game *next;};struct game *creat(){ struct game *head,*p;head=p=(struct game *) malloc(LEN);p->num=l;int i=2;while(i<=16){ p・>next=(struct game *) malloc(LEN);p->next-:>nu m=i;i++;p=p->n ext; }p->next=head; return(head);} struct game *delete(struct game *head) { struct game*pl=head,*p2=head,*x; int k=l;while(pl->next!=pl) {if(k==3) {x=pl; pl=pl->next;p2・>n ext=pl; free(x); x=NULL; k=0;} else {P2=pl; pl=pl->next;}pl->next=NULL;return(pl);}void print(struct game *head){ struct game *p;p=head;while(p!=NULL) {printf("%d\t",p->num);p=p->n ext;}printfCAn");}main(){ struct game *pt,*p;pt=creat();p=delete(pt);print(p);free(p);getch();}3.建立一个链表,每个结点包含的成员为:职工号、工资。

C语言第十一章结构体与共用体、枚举类型

C语言第十一章结构体与共用体、枚举类型

C语言第十一章结构体与共用体、枚举类型结构体和共用体及枚举类型复习题1. 如下说明语句,则下面叙述不正确的是( )。

struct stu {int a ; float b ;} stutype ;A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名2. 以下对结构类型变量的定义中不正确的是( )。

A)#define STUDENT struct student B)struct student STUDENT {int num;{int num; float age; float age;}std1; }std1;C)struct D)struct{int num; {int num;float age; float age;}std1; }student;struct student std1;3.若有以下说明,能正确引用"Li Ming"的方式是()。

struct student{int name;int num;}stu1[2]={{ "Ma Hong",18},{"Li Ming",17}}; struct stu *p=stu1;A)stu1[1].name B)p->nameC)/doc/1611839622.html, D)(*p++).name4.以下程序的运行结果是()。

{int n;float x;}*p;void main(){struct st arr[5]={{10,5.6},{12,7.1},{14,6.7},{16,6.2},{18,6.9}}; p=arr; printf("%d\n",++p->n);p++; printf("%d,%.2f\n",p->n,p->x);}A)12 B)1112,7.10 10,5.60C)11 D)1212,7.10 14,6.705. 在16位PC机中,若有定义:struct data { int i ; char ch; double f; } b ; 则结构变量b占用内存的字节数是( )。

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。

C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。

这些函数的说明都包括在stdio.h文件中。

②main是主函数的名称。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.根据下面的定义,能打印出字母M的语句是 。 D struct person{ char name[9]; int age; }; struct person c[10]={"John",17,"Paul",19,"Mary",18,"Adam",1 6}; A)printf("%c\n",c[3].name); B)printf("%c\n",c[3].name[1]); C)printf("%c\n",c[2].name[1]); D)printf("%c\n",c[2].name[0]);
12.下面程序的运行结果为: word value:6b7d struct tag{ char low; low value:7d char high; }; high value:6b union word{struct tag byte; word value:567d short word; }w; main( ) { w.word=0x6b7d; printf("word value:%x\n",w.word); printf("low value:%x\n",w.byte.low); printf("high value:%x\n",w.byte.high); w.byte.high=0x56; printf("word value:%x\n",w.word); }
13.下面程序的运行结果为: 13 (提示: c[0]在低字节,c[1]在高字节) #include <stdio.h> union p{ int i; char c[2]; }x; main() { x.c[0]=13; x.c[1]=0; printf("%d\n",x.i); }
14.下面程序的运行结果为: main() { union{ long i; int k; unsigned char s; }abc; abc.i=0x12345678; printf("%x\n",abc.k); printf("%x\n",abc.s); }
6.下面程序的运行结果为: 6 struct abc{ int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b; printf("%d\n",t); }
是对C语言中共用体类型数据的正确叙述: C A)一旦定义了一个共用体变量后,即可引用该变量或该变 量中的任意成员; B)一个共用体变量中可以同时存放其所有成员; C)一个共用体变量中不能同时存放其所有成员; D)共用体类型数据可以出现在结构体类型定义中,但结构 体类型数据不能出现在共用体类型定义中。
3.若int类型占2个字节,则以下的输出结果为 struct st{ A char a[10]; int b; double c;}; printf(“%d”,sizeof(struct st)); A)20 B)10 C)2 D)8

4.对以下初值中的整数2的引用方式为 。 A static struct{char ch; int j; double x; }arr[2][3]= {{{'a',1,3.45},{'b',2,7.98},{'c',3,1.93}}}; A)arr[0][1].j B)arr[0][1].ch C)arr[1][0].ch D)arr[1][0].j
B
10.变量a所占内存字节数是 C A) 4 B) 5 C) 6 union u{ char st[4]; int i; long l;}; struct A{ int c; union u;}a;
D) 8
11.下面程序的运行结果为: 4,8 main( ) { union example{ struct{ int x; int y;}in; int a; int b; }e; e.a=1; e.b=2; e.in.x=e.a*e.b; e.in.y=e.a+e.b; printf("%d,%d\n",e.in.x,e.in.y); }
17.说明语句: enum money{Fen,Jiao,Yuan=100,Tenyuan}; 每个枚举量所对应的实际值为: 。 A A)0,1,100,101 B)1,2,100,101 C)1,2,3,4 D)”Fen”,”Jiao”,”Yuan”或100,”Tenyuan”
18.执行以下语句后的结果为 A 。 enum weekday{sun,mon=3,tue,wed,thu}; enum weekday workday; workday=wed; printf("%d\n",workday); A)5 B)3 C)4 D)编译时出错
1.若程序中有下面的说明和定义
struct abc{ int x; A char y;} struct abc s1,s2; 则会发生的情况是 。 A)编译出错; B)程序将顺利编译、连接、执行; C)能顺利通过编译、连接,但不能执行 D)能顺利通过编译,但连接出错
2.给结构体变量分配的内存是
。A
A)各成员所占的字节和; B)各成员所占的字节中最大的容量; C)第一个成员所占的字节的容量; D)最后一个成员所占的字节的容量
7.以下
8.若已定义了如下的共用体类型变量x,则x所占用的 内存字节数为 (设在16位PC机的环境下)。 C union data { int i; char ch; double f; }x; A)7 B)11 C)8 D)10
9.设有以下说明ong i; int k[5]; char c; }DATE; struct date{ int cat; DATE cow; double dog; }too; DATE max; 则下列语句的执行结果是 。 printf ("%d\n",sizeof(struct date)+sizeof(max)); A)26 B)30 C)18 D)8
5678 78
15.下面程序的运行结果为: main( ) 177771,177777 { union bt{ int k; char c[2]; }a; a.k=-7; printf("%o,%o",a.c[0],a.c[1]); }
16.以下对枚举类型名的定义中正确的是 B 。 A)enum a={one,two,three}; B)enum a{one=9,two,three}; C)enum a={“one”,“two”,“three”}; D)enum a{“one”,“two”,“three”};
相关文档
最新文档