【c语言程序设计】结构体

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

第一章CH9 结构体9.1 选择题

1.若有以下说明语句:

struct student

{ int num;

char name[ ];

float score;

}stu;

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

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

B. struct student 是用户定义的结构体类型

C. num, score都是结构体成员名

D. stu是用户定义的结构体类型名

2.若有以下说明语句:

struct date

{ int year;

int month;

int day;

}brithday;

则下面的叙述不正确的是__C___.

A) struct是声明结构体类型时用的关键字

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

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

D) year,day 都是结构体成员名

3.以下对结构变量stul中成员age的非法引用是B

struct student

{ int age;

int num;

}stu1,*p;

p=&stu1;

A) stu1.age B) student.age C) p->age D) (*p).age

4.设有以下说明语句:

typedef struct stu

{ int a;

float b;

} stutype;

则下面叙述中错误的是(D)。

A、struct是结构类型的关键字

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

C、a和b都是结构成员名

D、stutype是用户定义的结构体变量名

5.设有以下定义,值为5的枚举常量是()。

enum week{sun,mon=4,tue,wed,thu,fri,sat} w;

A tue

B sat

C fri

D thu

6.设有如下定义:

struct sk

{int a;float b;}data,*p;

若有p=&data;,则对data中的a域的正确引用是(B)。

A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a

7.根据以下定义,能输出字母M的语句是(D)。

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]);

struct person{char name[9];int age;};

struct person class[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16,};

8.以下程序的输出结果是(D)。

A、0

B、1

C、3

D、6

#include

void main()

{

struct emplx{int x;int y;}enum[2]={1,3,2,7};

printf(“%d\n”,enum[0].y/enum[0].x*enum[1].x);

}

9.若有以下说明及语句,则值为6的表达式是(D)。

A、p++->n

B、p->n++

C、(*p).n++

D、++p->n

struct st{int n;struct st *next;};

struct st a[3],*p;

a[0].n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];

a[2].n=9;a[2].next=’\0’;p=&a[0];

10.已知字符0的ASCII码的十进制的值是48,且数组的第0个元素在低位,以下程序的输出结果是(B)。

A、39

B、9

C、38

D、8

void main()

{

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

s->i[0]=0x39;s->i[1]=0x38;

printf(“%x\n”,s->c[0]);

}

11.以下程序输出的结果是(C)。

A、32

B、16

C、8

D、24 typedef union{long x[2];int y[4];char z[8];}MYTYPE;

MYTYPE them;

void main()

{

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

}

12.设有以下语句

typedef struct S

{ int g; char h;} T;

则下面叙述中正确的是(B)。

A) 可用S定义结构体变量

B)可以用T定义结构体变量

C)S是struct类型的变量

D)T是struct S类型的变量

13.有以下说明和定义语句

struct student

{ int age; char num[8];};

struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}}; struct student *p=stu;

以下选项中引用结构体变量成员的表达式错误的是(D)。

A) (p++)->num B) p->num

C) (*p).num D) stu[3].age

9.2 读程序

1.有如下程序

#include

struct st

{ int x;

int y;

} a[2]={5, 7, 2, 9} ;

main()

{

printf("%d\n",a[0].y*a [1].x);

相关文档
最新文档