- 27
- 0
- 约1.44千字
- 约 8页
- 2016-08-08 发布于重庆
- 举报
单片机的C语言应用设计(第四版)马忠梅答案.
习题参考答案(P.123) 习题1. 10个元素的int数组要有多少字节?它们是低位字节一组,然后高位字节一组,还是字节对?若数组在2020H开始放置,在哪个位置能找到[5]的2个字节? 答: 1、需要20字节; 2、它们字节对; 3、在202AH位置能够找到这两个字节。 习题2. 写出二维数组Data[2][4]的各个元素,按它们在内存中存储的顺序排列。 答: Data[0][0]、Data[0][1] 、Data[0][2] 、Data[0][3] 、Data[1][0] 、Data[1][1] 、Data[1][2] 、Data[1][3] 习题4. 8051中不同的存储空间是什么?同一地址可以表示不同的空间吗? 答: 1、片内RAM,分为寄存器区00H-1FH、位寻址区20H-2FH、用户区(便签区)30H-7FH、特殊功能寄存器区(直接寻址)80H-0FFH; 2、片外RAM,地址0到0FFFFH,大小可以从0到64k字节; 3、片内ROM,地址0到0FFFH,大小4k字节; 4、片外ROM,地址0到0FFFFH,大小可以从0到64k字节; 5、同一地址可以表示不同的空间 习题7. 指针的存储类型和数据类型的意义是什么?指针本身的数据类型如何确定? 答: 1、指针的存储类型用于说明指针所指向的存储空间的类型,而指针的数据类型说明指针变量本身存放的存储空间的类型; 2、指针本身的数据类型由指针本身存放的存储器数据类型确定。 习题9. 写出下列数组使用*运算的替换形式。 1.data[2]; 2.num[i+1]; 3.man[5][3]。 答: 1、*(data+2) p107 2、*(num+i+1) 3、*(*(man+5)+3) 习题10. 设下列运算表达式中p是指针,试分析各表达式的运算顺序。 1.b=*p--; 2.x=*p++; 3.a[++i]=*p++ ; 4.y=*--*++p-6。 答: 1、先取*p给b,再使p减1单元(注意不是*p减1单元); 2、先取*p给x,再使p加1单元(注意不是*p加1单元); 3、先使i加1,再取*p给a[i],再使p加1单元; 4、这里p是指针的指针,先使p加1单元,再使*p减1单元,再使*(*p)减6后赋给y; 习题12. 结构的定义和说明在程序中的作用是什么?在对结构初始化时应该注意些什么问题。 答: 结构的定义和说明在程序中可以把一组关系密切的变量存放在一个连续的存储空间中,便于对这些变量的访问。同一个结构中不能存在同名变量名称。 可以把具有相同结构的已知结构直接用“=”对结构进行赋值,或者通过其成员的逐个引用分别赋值。在没有赋值前结构成员的值是不确定的,有可能被编译器启动代码初始化为0。 习题14. 使用union的目的是什么?定义union,它用于容纳下列数据: int data[4]; char ch[8]; float f。 答: union data_type { int data[4]; char ch[8]; float f; }mydata ; 使用union的目的之一是若干个不会同时使用的变量公用存储单元,以便节省存储空间。同一个union中不能存在同名变量名称。 * * * * * * * * * * * * * * * *
原创力文档

文档评论(0)