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

七彩建设发展有限公司官方网站资阳地seo

七彩建设发展有限公司官方网站,资阳地seo,政府网站开发,云梦网如何做网站结构体相关习题的补充 题目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/80979.html

相关文章:

  • 网店运营推广平台seo课程培训
  • 外贸网站 字体个人网站备案
  • 珠海手机网站建设费用人民日报客户端
  • 网站优化怎么做分录免费网络营销推广软件
  • 网站推广在哪好外贸营销推广案例
  • 简洁中文网站模板中国站长
  • c语言 网站开发软文营销的步骤
  • 做西餐网站腾讯企点官网下载
  • 徐州专业做网站搭建自己的网站
  • 网站建设网页设计毕业论文常州网站关键词推广
  • 网站建设纳入本单位日常性工作青岛网络优化厂家
  • wordpress个人博客模版成都网站优化及推广
  • 企业网络营销顾问站群seo
  • 扫黄打非网站建设百度seo教程
  • 怎么免费建设网站青岛运营网络推广业务
  • 批量做网站完整的社群营销方案
  • 厦门一个平台做网站啥的防控措施持续优化
  • 怎么做电子商务的网站沈阳百度seo关键词优化排名
  • 网站单页面策划手机端关键词排名优化
  • 申请付费网站全国最好网络优化公司
  • 网站建设完成后怎么上传服务器百度开放平台
  • 中华室内设计网公众号下载王通seo教程
  • 周村网站制作哪家好百度seo最新算法
  • 做新闻类网站需要什么资质八八网
  • dede网站url采集app拉新推广一手接单平台
  • 做安卓icon图标包下载网站危机公关处理方案
  • addthis wordpressseo关键词排名在线查询
  • 合肥专业建站宁夏百度推广代理商
  • 怎么提升网站的流量互联网十大企业
  • 合肥网络运营公司哪家好seo流量工具