2013年 结构体与联合体习题
选择题
1、若程序中有以下的说明和定义:
struct abc
{ int x;char y; } 花括号后少了分号。
struct abc s1,s2;
则会发生的情况是______。
A) 编译时错 B) 程序将顺序编译、连接、执行
C) 能顺序通过编译、连接、但不能执行 D) 能顺序通过编译、但连接出错
2、有以下程序段
struct st
{ int x; int *y;}*pt;
int a[]={1,2};b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是
A) *pt->y B) pt->x C) ++pt->x D) (pt++)->x
3、有以下说明和定义语句
struct student
{ int age; char num[8];};
struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};
struct student *p=stu;
以下选项中引用结构体变量成员的表达式错误的是______。
A) (p++)->num B) p->num C) (*p).num D) stu[3].age
4、设有如下枚举类型定义
enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran};
枚举量Fortran的值为______。
A) 4 B) 7 C) 102 D) 103
5、以下叙述中错误的是_________。
A)可以通过typedef增加新的类型
B)可以用typedef将已存在的类型用一个新的名字来代表
C)用typedef定义新的类型名后,原有类型名仍有效
D)用typedef可以为各种类型起别名,但不能为变量起别名
6、有以下程序段
typedef struct NODE
{ int num; struct NODE *next;
} OLD;
以下叙述中正确的是
A)以上的说明形式非法 B) NODE是一个结构体类型
C) OLD是一个结构体类型 D) OLD是一个结构体变量
7、以下选项中不能正确把cl定义成结构体变量的是______。
1.typedef struct
{int red;
int green;
int blue;
} COLOR;
COLOR cl;
2.struct color cl
{ int red;
int green;
int blue;
};
3.struct color
{ int red;
int green;
int blue;
}cl;
4.struct
{int red;
int green;
int blue;
}c1;
A) 1 B) 2 C) 3 D) 4
8、设有以下语句
typedef struct S
sizeof结构体大小{ int g; char h;} T;
则下面叙述中正确的是______。
A)可用S定义结构体变量
B)可以用T定义结构体变量
C) S是struct类型的变量
D) T是struct S类型的变量
9、设有如下说明
typedef struct ST
{long a;int b;char c[2];} NEW;
则下面叙述中正确的是_____。
A)以上的说明形式非法
B) ST是一个结构体类型
C) NEW是一个结构体类型
D) NEW是一个结构体变量
10、以下对结构体类型变量td的定义中,错误的是______。
A) typedef struct aa B) struct aa
{ int n; { int n;
float m; float m;
}AA; };
AA td; struct aa td;
C) struct D) struct
{ int n; { int n;
float m; float m;
}aa; }td;
struct aa td;
11、根据下面的定义,能打印出字母M的语句是_____。
struct person { char name[9]; int age;};
struct person class[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};
A) printf("%c\n",class[3].name); B) printf("%c\n",class[3].name[1]);
C) printf("%c\n",class[2].name[1]); D) printf("%c\n",class[2].name[0]);
12、设有以下语句:
struct st {int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;
p=&a[0];
则表达式 的值是6。
A) p++ ->n B) p->n++ C) (*p).n++ D) ++p->n
13、下面程序的输出结果为
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[2],80,&dt[3] };
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论