当前位置: 首页 > wzjs >正文

七彩建设发展有限公司官方网站站长统计免费下载

七彩建设发展有限公司官方网站,站长统计免费下载,邳州城乡建设局网站,烟台企业网站结构体相关习题的补充 题目1: 如有以下代码: struct student {int num;char name[32];float score; }stu;则下面的叙述不正确的是:( ) A.struct 是结构体类型的关键字 B.struct student 是用户定义的结构体类型 C.num, score 都是结构体…

结构体相关习题的补充

题目1:

如有以下代码:

struct student
{int num;char name[32];float score;
}stu;

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

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

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

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

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

解析

struct student
{int num;char name[32];float score;
}stu;//stu是变量

答案 :D

题目2:

下面程序的输出结果是:( )

struct stu
{int num;char name[10];int age;
};void fun(struct stu *p)
{printf("%s\n",(*p).name);return;
}int main()
{struct stu students[3] = {{9801,"zhang",20},{9802,"wang",19},{9803,"zhao",18} };fun(students + 1);return 0;
}

A.zhang

B.zhao

C.wang

D.18

解析

(*p).name 是访问结构体,fun(students+1)意思是访问结构体的第二个成员,不管结构体的实例是什么——访问其成员其实就是加成员的偏移量

答案 :C

题目3:

下面程序要求输出结构体中成员a的数据,以下不能填入横线处的内容是( )

#include < stdio.h >
struct S
{ int a;int b; 
};
int main( )
{ struct S a, *p=&a;a.a = 99;printf( "%d\n", __________);return 0;
}

A.a.a

B.*p.a

C.p->a

D.(*p).a

解析

指针->成员

结构体变量. 成员

答案 :B

题目4:

在VS2013下,默认对齐数为8字节,这个结构体所占的空间大小是( )字节

typedef struct{int a;char b;short c;short d;
}AA_t;

A.16

B.9

C.12

D.8

解析

这个题目需要我们去画出内存图

图例1:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图例2:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

步骤一:首先标出所有类型的数的字节大小

步骤二:与默认对齐数进行对比,判断所占空间大小

步骤三:从0开始,开始计算,根据对齐原则,得到上述结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再来好好品一品这张导图,回顾结构体对齐原则

题目5:

在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是( )

struct A
{int a;short b;int c;char d;
};struct B
{int a;short b;char c;int d;
};

A.16,16

B.13,12

C.16,12

D.11,16

解析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

答案 C

题目6:

下面代码的结果是:( )

#pragma pack(4)/*编译选项,表示4字节对齐 平台:VS2013。语言:C语言*/
//假设long 是4个字节
int main(int argc, char* argv[])
{struct tagTest1{short a;char d; long b;   long c;   };struct tagTest2{long b;   short c;char d;long a;   };struct tagTest3{short c;long b;char d;   long a;   };struct tagTest1 stT1;struct tagTest2 stT2;struct tagTest3 stT3;printf("%d %d %d", sizeof(stT1), sizeof(stT2), sizeof(stT3));return 0;
}
#pragma pack()

A.12 12 16

B.11 11 11

C.12 11 16

D.11 11 16

解析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

答案:A

题目7:

有如下宏定义和结构定义

#define MAX_SIZE A+B
struct _Record_Struct
{unsigned char Env_Alarm_ID : 4;unsigned char Para1 : 2;unsigned char state;unsigned char avail : 1;
}*Env_Alarm_Record;
struct _Record_Struct *pointer = (struct _Record_Struct*)malloc(sizeof(struct _Record_Struct) * MAX_SIZE);

当A=2, B=3时,pointer分配( )个字节的空间。

A.20

B.15

C.11

D.9

解析

#define MAX_SIZE 2+3
struct _Record_Struct
{unsigned char Env_Alarm_ID : 4;//1个字节是八个比特位,这个位段是占4个比特位unsigned char Para1 : 2;//这个是占2个比特位//上面两个一共占了6个比特位,占了1个字节unsigned char state;//没有进行表识,说明了它独占1个字节unsigned char avail : 1;//这也占了一个字节
}*Env_Alarm_Record;
struct _Record_Struct *pointer = (struct _Record_Struct*)malloc(sizeof(struct _Record_Struct) * 2+3);

考点:位段大小的计算

答案 D

题目8:

下面代码的结果是( )

int main()
{unsigned char puc[4];struct tagPIM{unsigned char ucPim1;unsigned char ucData0 : 1;unsigned char ucData1 : 2;unsigned char ucData2 : 3;}*pstPimData;pstPimData = (struct tagPIM*)puc;memset(puc,0,4);pstPimData->ucPim1 = 2; pstPimData->ucData0 = 3;pstPimData->ucData1 = 4;pstPimData->ucData2 = 5;printf("%02x %02x %02x %02x\n",puc[0], puc[1], puc[2], puc[3]);return 0;
}

A.02 03 04 05

B.02 29 00 00

C.02 25 00 00

D.02 29 04 00

解析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

unsigned char ucPim1;
unsigned char ucData0 : 1;
unsigned char ucData1 : 2;
unsigned char ucData2 : 3; 是结构体位段,ucPim1表示占一个1个字节,下面的数字分别代表占的比特位的大小,首先我们看到2的二进制形式:0000 0010,看到ucPim1占一个字节大小,puc[0]里面是0000 0010,因为是char类型,一个char类型的大小是1个字节大小,相当于8个比特位,看上图,puc[1]单个大小空间被分成8份,3的二进制位是0000 0011 ,但是ucData只给其分配了1个比特位大小,所以取末尾的1,由此类推,得到puc[1]里面是0010 1001,最后的打印形式是以十六进制的形式打印: 一个十六进制位相当于4个二进制位 所以打印结果为:02 29 00 00

答案

B

2;
unsigned char ucData2 : 3; 是结构体位段,ucPim1表示占一个1个字节,下面的数字分别代表占的比特位的大小,首先我们看到2的二进制形式:0000 0010,看到ucPim1占一个字节大小,puc[0]里面是0000 0010,因为是char类型,一个char类型的大小是1个字节大小,相当于8个比特位,看上图,puc[1]单个大小空间被分成8份,3的二进制位是0000 0011 ,但是ucData只给其分配了1个比特位大小,所以取末尾的1,由此类推,得到puc[1]里面是0010 1001,最后的打印形式是以十六进制的形式打印: 一个十六进制位相当于4个二进制位 所以打印结果为:02 29 00 00

答案

B

http://www.dtcms.com/wzjs/460320.html

相关文章:

  • html5电影网站如何做苏州seo报价
  • 哪些网站是可以做网络推广的seo算法优化
  • 郑州网站建设培训学校磁力引擎
  • 全国货到付款网站seo推广学院
  • 网站建设培训教程投广告的平台有哪些
  • 快站app官网下载英文seo是什么
  • 武汉企业苏州搜索引擎优化
  • 完全的图片宣传网站怎么做搜索引擎优化包括哪些方面
  • 平面设计十大风格山西seo优化
  • 中山网站建设方案微信引流推广怎么做
  • 荆州网站推广怎么做网站推广的方法有哪些?
  • 大浪网站建设宁波网站推广方案
  • 网站建设网络营销平台 云搜系统互联网推广的好处
  • 用java做的网上购物网站免费的seo
  • 学网站建设需要几年培训学校加盟
  • 网站建设 系统维护东莞百度seo电话
  • 斗鱼网站的实时视频是怎么做的互联网营销师培训课程
  • 无锡网站建设价格费用推广竞价
  • 河南郑州汽车网网站建设北京seo技术
  • 上海著名企业百度搜索引擎优化案例
  • 做赌钱网站网络营销实训总结报告
  • 一个教做网页的网站近期发生的重大新闻
  • 青岛做外贸网站百度小说风云排行榜
  • 建立企业网站选什么好免费seo关键词优化排名
  • 一般做个网站多少钱18款免费软件app下载
  • 男女做的那些事情的网站微信指数怎么看
  • 广州做网站的网络公司网站建设解决方案
  • 武汉模板网站制作重庆百度推广的代理商
  • 广州网站建设哪家比较好免费发链接的网站
  • 做网站怎么做武汉网络关键词排名