c语言结构体试题与答案,C语言结构体习题及答案.doc

C语言结构体习题及答案

第9章 结构体

1.定义以下结构体类型

struct s

{

int a;

char b;

float f;

};

则语句printf("%d",sizeof(struct s))的输出结果为【 】。

A) 3B) 7C) 6D) 4

2.当定义一个结构体变量时,系统为它分配的内存空间是【 】

A) B) C)D) struct s

{ int x;

float f;

}a[3];

语句printf("%d",sizeof(a))的输出结果为 【 】

A) 4 B) 12 C) 18D) 6

4.定义以下结构体数组

struct c

{ int x;

int y;

}s[2]={1,3,2,7};

语句printf("%d",s[0].x*s[1].x)的输出结果为 【 】

A) 14 B) 6 C) 2D) 21

5.运行下列程序段,输出结果是 【 】

struct country

{ int num;

char name[10];

}x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"};

struct country *p;

p=x+2;

printf("%d,%c",p->num,(*p).name[2]);

A) 3,a B) 4,g C) 2,U D) 5,S

6.下面程序的运行结果是【 】。

struct KeyWord

{

char Key[20];

int ID;

}kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};

main()

{

printf("%c,%d\n",kw[3].Key[0], kw[3].ID);

}

A) i,3B) n,3C) f,4D) l,4

7.定义以下结构体类型

struct student

{

char name[10];

int score[50];

float average;

}stud1;

则stud1占用内存的字节数是【 】。

A) 64B) 114C) 228D) 7

8.如果有下面的定义和赋值,则使用【 】不可以输出n中data的值。

struct SNode

{

unsigned id;

int data;

}n,*p;

p=&n;

A) p.dataB) n.dataC) p->dataD) (*p).data

9.根据下面的定义,能输出Mary的语句是【】。

struct person

{

char name[9];

int age;

};

struct person class[5]={"John",17,"Paul",19,"Mary",18,"Adam",16};

A) printf("%s\n",class[1].name);

B) printf("%s\n",class[2].name);

C) printf("%s\n",class[3].name);

D) printf("%s\n",class[0].name);

10.定义以下结构体数组

struct date

{ int year;

int month;

int day; };

struct s

{ struct date birthday;

char name[20];

} x[4]={{2008, 10, 1, "guangzhou"}, {2009, 12, 25, "Tianjin"}};

语句

printf("%s,%d,%d,%d",x[0].name,x[1].birthday.year); 的输出结果为 。

A) guangzhou,9 B) guangzhou,2008

C) Tianjin,2008 D) Tianjin,2009

11.运行下列程序段,输出结果是【】。

struct country

{ int num;

char name[20];

}x[5]={1, "China", 2, "USA", 3, "France", 4, "England", 5, "Spanish"};

struct country *p;

p=x+2;

printf("%d,%s

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值