云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第8单元 结构体与共用体

第8单元 结构体与共用体

  • 62 次阅读
  • 3 次下载
  • 2025/6/25 11:38:13

第8单元 结构体与共用体

一、单项选择题

1. 在C语言中,当定义一个结构体类型,并用其定义某变量后,系统分配给该变量的内存大小是 。

A. 各成员所需要内存空间的总和 B. 第一个成员所占内存空间 C. 成员中所有成员空间最大者 D. 成员中所有成员空间最小者 2. 以下对结构体变量成员引用非法的是 。

struct student

{ int age; int num; }stu1,*p;

A. stu1.num B. student.age C. p->num D.(*p).age; 3.下面程序的运行结果是 。

main()

{ struct abcd

{ int m ;

int n ; }cm[2]={1,2,3,7 };

printf(“%d\\n”,cm[0].n/cm[0].m*cm[1].m); } A. 0 B. 1 C. 3 D. 6

4. 若要利用下面的程序段对指针变量p指向一个存储整型变量的存储单元,则下面正确的选项是 。

int *p ; p= malloc(sizeof(int));

A. int B. int * C. (* int) D. (int *) 5.若有下面的定义和语句,执行完后正确的语句是 。

union data

{ int i; char c ; float f ; } a ; int n;

A. a=5 B. a={2,‘a’,1.2 } C. printf(“%d”,a); D. n=a;

6.在C语言中,若有如下的定义,则共用体变量m所占内存的字节是 。

union student

{ int a ; char b ; float c; } m ;

A.1 B. 2 C. 8 D. 11

7.在C语言中,若有如下的定义,当进行如下赋值后,m的结果是 。

union student

{ int a ; char b ; float c; } m ;

m.a=3; m.b=‘z’; m.c=3.7

A. 3 B. ‘z’ C. 3.7 D. 3+‘z’+3.7 8.设有如下定义,若使p1指向dt中的m域,正确的语句是 。

struct student

{ int m ; float n ; }dt ; struct *p1;

A. p1=&m; B. p1=dt.m; C. p1=&dt.m D. *p=&dt.m 9.若有下面的说明和定义,则sizeof(struct word)的值是 。

struct word

{ int a; char b; float c; union uu

{ float u; int v; }ua; }myaa; A. 13 B. 7 C. 9 D. 11 10.下面程序的输出结果是 。

union abcd

{ char i[2]; int k; }rat;

rat.i[0]=2; rat.i[1]=0; printf(“%d\\n”,r.k);

A. 2 B. 1 C. 0 D. 不确定 11.若有以下定义:

struct link

{ int data; struct link *next; }a,b,c,*p,*q;

设在一个链表中有a,b两个结点为相邻结点,指针p指向变量a ,另有新结点c,另q指向结点c。下面能够将结点c 插入到链表中a,b结点之间的语句是 。

A. a.next=c; c.next=b; B. p.next=q;q.next=p.next; C. p->next=&c; q->next=q->next; D. (*p).next=q;(*q).next=&b; 12.下面对结构体变量s定义合法的是( )。 A. typedef struct stu B. struct

{ double m; { float m; char n;} s; char n } s; C. struct s D. typedef stu { double a; { double a;

char b;} s; char b;} stu s; 13.设有如下定义,下面各输入语句中错误的是 。 struct ss

{ char name[10]; int age; char sex;}std[3],*p=std;

A.scanf(\.scanf(\ C.scanf(\.scanf(\ 14. C语言共用体变量在程序运行期间,满足 。

A.所有成员都不驻留内存 B.只有一个成员驻留内存 C.部分成员驻留内存 D.所有成员一直驻留内存 二、填空题

1.定义结构体的关键字是 ,定义共用体的关键字是 。 2.结构体和共用体的相同点是 ,

不同点是 , 结构体、共用体和数组构成之间的区别是 。

3.对于一个已经定义过的结构体,并且为该结构体定义了变量和指针变量,引用结构体变量的方法有: 。 4.若有以下定义和语句,则sizeof(a)的值是__ ___,而sizeof(b)的值是__ _。 struct tu

{ int m; char n; int y;}a; struct

{ float p, char q; struct tu r} b;

5.设有下面结构类型说明和变量定义,则变量a在内存所占字节数是 。如果将该结构改成共用体,结果为 。

struct stud

{ char num[6]; int s[4]; double ave; } a;

6.下面程序用来输出结构体变量ex所占存储单元的字节数,请填空。

struct st

{ char name[20]; double score; }; main()

{ struct st ex ; printf(\ 7.下面程序段用于构成一个简单的单向链表,请填空。

struct STRU

{ int x, y ;float rate; p; } a, b;

a.x=0; a.y=0; a.rate=0; a.p=&b;b.x=0; b.y=0; b.rate=0; b.p=NULL;

8. 下面定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针,请将定义补充完整。

struct node

{ int info; link; } 9.以下程序执行后输出结果是 。 main()

{ union { unsigned int n; unsigned char c; } u1; u1.c='A'; printf(\

10.变量root如图所示的存储结构,其中sp是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数。请填空,完成此结构的类型说明和变量root的定义。

sp next data root struct list

{ char *sp ; __ __; _ _; } root; 三、读下列程序,完成相应的题目

1. 下面的程序是有3个同学构成的结构体数组,对每个同学成绩求和,在程序的空白处添上适当的语句,使该程序完整。

struct STU

{ char num[10]; float score[3]; }; main()

{ struct STU s[3]={{"20021",90,95,85 }, {"20022",95,80,75 }, {"20023",100,95,90 } },*p=s; int i,j; float sum;

for(i=0; i<3; i++) {

for(j=0; j<3; j++)

sum=sum+p->score[j];

printf("%6.2f\\n",sum);

} }

2. 阅读下面的程序,写出程序结果

struct info

{ char a,b,c;}; main()

{ struct info s[2]={{‘a’,‘b’,‘c’},{‘d’,‘e’,‘f’}};int t;

t=(s[0].b-s[1].a)+(s[1].c-s[0].b); printf(\

该程序的运行结果是 3. 阅读下面的程序,写出程序结果

main()

{ union { char i[2]; int k; } stu;

stu.i[0]=2; stu.i[1]=0; printf(\

该程序的运行结果是 4. 阅读下面的程序,写出程序结果

union myun { struct

{ int x, y, z; } u; int k; } a; main()

{ a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(%d\\n\ 该程序的运行结果是

搜索更多关于: 第8单元 结构体与共用体 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第8单元 结构体与共用体 一、单项选择题 1. 在C语言中,当定义一个结构体类型,并用其定义某变量后,系统分配给该变量的内存大小是 。 A. 各成员所需要内存空间的总和 B. 第一个成员所占内存空间 C. 成员中所有成员空间最大者 D. 成员中所有成员空间最小者 2. 以下对结构体变量成员引用非法的是 。 struct student { int age; int num; }stu1,*p; A. stu1.num B. student.age C. p->num D.(*p).age; 3.下面程序的运行结果是 。 main() {

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com