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

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

页眉内容

一、选择题

1、定义结构类型时,下列叙述正确的是()

A、系统会按成员大小分配每个空间

B、系统会按最大成员大小分配空间

C、系统不会分配空间

D、以上说法均不正确

2、已知结构类型变量x的初始化值为{“20”,30,40,35.5},请问合适的结构定义是()

A、Struct s{int no;int x,y,z};

B、Struct s{char no[2];int x,y,z};

C、Struct s{int no;float x,y,z};

D、Struct s{char no[2];float x,y,z};

3、若程序中有定义struct abc{int x;char y;};abc s1,s2;则会发生的情况是()

A、编译时会有错误

B、链接时会有错误

C、运行时会有错误

D、程序没有错误

4、已知学生记录描述为

struct student

{int no;

char name[20];

char set;

struct

{int year;

int month;

int day;

}birth;};

struct student s;

设变量s中的“生日”应是“1984年11月11日”,下列对生日的正确赋值方式是( ).

A)year=1984; B)birth.year=1984;

month=11; birth.month=11;

day=11; birth.day=11;

C)s.year=1984; D)s.birth.year=1984;

s.month=11; s.birth.month=11;

s.day=11; s.birth.day=11;

5、当说明一个结构体变量时系统分配给它的内存是( ).

A)各成员所需内存量的总和 B)结构中第一个成员所需内存量

C)成员中占内存量最大者所需的容量 D)结构中最后一个成员所需内存量

6、以下对结构体类型变量的定义中不正确的是( ).

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; 7、设有以下说明语句

struct stu

{int a;

float b;

}stutype;

则下面的叙述不正确的是( ).

A)struct是结构体类型的关键字

B)struct stu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名

D)a和b都是结构体成员名

8、C语言结构体类型变量在程序执行期间( )..

A)所有成员一直驻留在内存中

B)只有一个成员驻留在内存中

C)部分成员驻留在内存中

D)没有成员驻留在内存中

9、在16位IBM-PC机上使用C语言,若有如下定义:

struct data

{int i;

char ch;

double f;

}b;

则结构变量b占用内存的字节数是( ).

A)1 B)2 C)3 D)4

10、以下程序的运行结果是( ).

#include “stdio.h”

main()

{struct data

{int year,month,day;

}today;

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

A)6 B)8 C)10 D)12

11、若有以下定义和语句;

struct student

{int age;

int num ;};

struct student stu [3]={{1001,20 },{1002,19},{1003,21}};

main()

{struct student *p;

p=stu;

…..}

则以下不正确的引用是( )。

A)(P++)—》

num B)p++ C)(*p).num D)p=&stu.age

12、以下scanf函数调用语句中对结构体变量成员的不正确引用是( )。

stuct pupil

{char name[20 ];

int age ;

int sex;

}pup[5,]*p;

p=pup;

A) scanf(“%s”,pup[0].name); B) scanf(“”%d),&pup[0].age;

C) scanf(“%d”“%d”,P->age);

13、有以下定义和语句,则以下引用形式不合法的是( )。

Struct s

{int i1;

struct s*i2,i0;

};

static struct s a[3 ]={2,&a[1],’\0’,4,%a[2],&a[0],6,’\0’,&a[1]},

*ptr;

ptr=a;

A) ptr->i1++ B)*ptr->i2 C)++ptr->i0 D) ptr->i1

14、设有如下定义:

struct sk

{int n;

float x;

}data,*p;

若要使P指向data中的n域,正确的负值语句的是( )。

A、p=&data.n;B) *p=data.n;C)p=(struct sk*)&data.n;D)p=(struct sk*)data.n;

15、若哟于以下说明和语句:

struct student

{int age;

int num;

}std,*p;

相关文档
最新文档