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

当前位置:首页 > 11第十一章结构体和联合体练习

11第十一章结构体和联合体练习

  • 62 次阅读
  • 3 次下载
  • 2025/4/30 19:23:04

第十一章 结构体和共用体

一、单项选择题:

1、在说明一个结构体变量时系统分配给它的存储空间是( )。

A、该结构体第一个成员所需存储空间 B、该结构中最后一个成员所需存储空间 C、该结构体中占用最大存储空间的成员所需存储空间

D、结构体中所有成员所需存储空间的总和 2、在说明一个共用体变量时系统分配给它的存储空间是( )。

A、该共用体中第一个成员所需存储空间 B、该共用中最后一个成员所需存储空间 C、该共用体中占用最大存储空间的成员所需存储空间

D、共用体中所有成员所需存储空间的总和 3、共用体类型在任何给定时刻,( )。 A、 所有成员一直驻留在结构中 B、 只有一个成员驻留在结构中 C、 部分成员驻留在结构中 D、 没有成员驻留在结构中

4、使用共用体union的目的是( )。 A、 将一组数据作为一个整体,以便于其中

的成员共享同一存储空间 B、 将一组具有相同数据类型的数据作为一

个整体,以便于其中的成员共享同一存储空间 C、 将一组相关数据作为一个整体,以便程

序中使用

D、 将一组具有相同数据类型的数据作为

一个整体,以便程序中使用 5、以下typedef的叙述不正确的是( )。 A、 用typedef可以定义各种类型名,但不

能用来定义变量 B、 用typedef可以增加新类型 C、 用typedef只是将已存在的类型用一个

新的名称来代表

D、 使用typedef便于程序的通用

6、以下关于枚举的叙述不正确的是( )。 A、 枚举变量只能取对应枚举类型的枚举

元素表中元素 B、 可以在定义枚举类型时对枚举元素进行

初始化

C、 枚举元素表中的元素有先后次序,可以

进行比较

D、 枚举元素的值可以是整数或字符串 7、在下列程序段中,枚举变量c1和c2的值分别是( )和( )。 main() {

enum color {red,yellow,blue=4,green,white} c1,c2;

c1=yellow; c2=white;

printf(“%d,%d\\n”,c1,c2); }

A、1 B、3 C、5 D、6 8、若有以下说明和语句: struct worker {

int no;

char *name; }work,*p=&work;

则以下引用方式不正确的是( )。 A、work.no B、(*p).no C、p—>no D、work—>no

9、以下程序执行后的正确结果是( )。 struct tree {

int x; char *s; }t;

func(struct tree t) {

t.x=10;

t.s=”computer”; return(0); }

main() {

t.x=1;

t.s=”minicomputer”; func(t);

printf(“%d,%s\\n”,t.x,t.s); }

A、10,computer B、1,minicomputer C、1,computer D、10,minicomputer

10、有如下定义: struct date {

int year,month,day; };

struct worklist {

char name[20]; char sex;

struct date birthday; }person;

对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是( )。 A、 year=1958 B、 birthday.year=1958 C、 person.birthday.year=1958 D、 person.year=1958

11、在如下结构体定义中,不正确的是( )。

A、struct student {

int no;

char name[10]; float score; }

B、struct stud[20] {

int no;

char name[10]; float score; }

C、struct student {

int no;

char name[10]; float score; }stud[20]; D、struct {

int no;

char name[10]; float score; }stud[100];

12、正确的k值是( )。 enum {a,b=5,c,d=4,e} k;

k=e;

A、3 B、4 C、5 D、6 13、正确的k值是( )。 enum {a,b=5,c,d=4,e} k; k=a;

A、0 B、1 C、4 D、6 14、以下程序的执行结果是( )。 main() {

union {

int x; struct {

char c1; char c2; }b; }a;

a.x=0x1234;

printf(“%x,%x\\n”,a.b.c1,a.b.c2); }

A、12,34 B、34,12 C、12,00 D、34,00

15、以下程序的执行结果是( )。 minin() {

union {

char s[2]; int i; }a;

a.i=0x1234;

printf(“%x,%x\\n”,a.s[0],a.s[1]); }

A、12,34 B、34,12 C、12,00 D、34,00

16、以下程序的功能是读入一行字符,且每个字符存入一个结点,按输入顺序建立一个链表的结点序列,然后再按相反顺序输出并释放全部结点,请选择正确的编号填空。 #include #include #define getnode(type) ((type

*)malloc(sizeof(type))) #define NULL 0 main() {

struct node {

char info;

struct node (1) ; }*top, *p; char c;

top=NULL;

while ((c=getchar())!=’\\n’) {

p=getnode( (2) ); p—>info=c;

p—>link= (3) ; top= (4) ; }

while (top!=NULL) {

p= (5) ; top=p—>link;

printf(“%c”,p—>info); free(p); } }

(1)A、*p B、*link C、*top D、link (2) A、top B、p C、node D、struct node (3) A、top B、top—>link C、p D、p—>link (4) A、link B、p C、p—>link D、top—>link (5) A、p—>link B、top—>link C、top D、link 18、阅读以下程序,请选择正确的编号填空。 #include typedef struct str1 {

char c[5]; char *s; }st; main() {

static st s1[2]={{“ABCD”,”EFGH”},

{“IJK”,”LMN”}};

static struct str2 {

st sr; int d;

}s2={“OPQ”,”RST”,32767}; st *p[ ]={&s1[0],&s1[1]};

printf(“%c\\n”,p[0] —>c[1]); /*输出(1)*/ printf(“%s\\n”,(++p[0]) —>s);/*输出(2)*/ printf(“%c\\n”,s2.sr.c[2]); /*输出(3)*/ printf(“%d\\n”,s2.d+1); /*输出(4)*/ }

(1)A、M B、J C、D D、B

(2) A、ABCD B、EFGH C、LMN D、IJK (3) A、Q B、V C、Y D、T

(4) A、-32768 B、32768 C、65535 D、0 二、填空题:

1、以下程序的执行结果是 。 typedef struct {

long x[2]; int y[4]; char z[8]; }MYTYPE; MYTYPE a; main() {

printf(“%d\\n”,sizeof(a)); }

2、有如下定义: struct {

int x; char * y;

}tab[2]={{1,”ab”},{2,”cd”}},*p=tab;

则:表达式*p—>y的结果是 (1) 。 表达式*(++p)—>y的结果是 (2) 。 3、有如下定义: struct {

int x; int y;

}s[2]={{1,2},{3,4}},*p=s;

则:表达式++p—>x的结果是 (1) 。 表达式(++p)—>x的结果是 (2) 。 4、以下程序的执行结果是 。 struct stru

{

int x; char c;

}; main() {

struct stru a={10,’x’}; func(a);

printf(“%d,%c\\n”,a.x,a.c); }

func(struct stru b) {

b.x=20; b.c=’y’; }

5、以下程序的执行结果是 。 struct stru {

int x; char c; }; main() {

struct stru a={10,’x’},*p=&a; func(p);

printf(“%d,%c\\n”,a.x,a.c); }

func(struct stru b) {

b—>x=20; b—>c=’y’; }

6、以下程序的执行结果是 。 main() {

union {

int i[2]; long k; char c[4]; }r,*p=&r;

p—>i[0]=0x39; p—>i[1]=0x38;

printf(“%x,%x,%x\\n”,p—>c[0],p—>c[1],

p—>c[2],p—>c[3]);

}

7、以下程序的执行结果是 。 typedef union {

long x[2]; int y[4]; char z[8]; }MYTYPE; MYTYPE a; main() {

printf(“%d\\n”,sizeof(a)); }

8、以下程序的执行结果是 。 struct st {

int x; int *y; }*p;

int s[ ]={10,20,30,40}; struct

a[ ]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]}; main() {

p=a;

printf(“%d,”,p—>x);

printf(“%d,”,(++p) —>x); printf(“%d,”,*(++p) —>y);

printf(“%d\\n”,++(*(++p) —>y)); }

9、以下程序的执行结果是 。 #include main() {

union EXAMPLE {

struct {

int x; int y; }in; int a; int b;

st

搜索更多关于: 11第十一章结构体和联合体练习 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第十一章 结构体和共用体 一、单项选择题: 1、在说明一个结构体变量时系统分配给它的存储空间是( )。 A、该结构体第一个成员所需存储空间 B、该结构中最后一个成员所需存储空间 C、该结构体中占用最大存储空间的成员所需存储空间 D、结构体中所有成员所需存储空间的总和 2、在说明一个共用体变量时系统分配给它的存储空间是( )。 A、该共用体中第一个成员所需存储空间 B、该共用中最后一个成员所需存储空间 C、该共用体中占用最大存储空间的成员所需存储空间 D、共用体中所有成员所需存储空间的总和 3、共用体类型在任何给定时刻,( )。 A、 所有成员一直驻留在结构中 B、 只有一个成员驻留在结构中 C、 部分成员驻留在结构中 D、 没有成员驻留在结构中 4、使用共用

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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