- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 4
第4章习题答案
4-2有哪里些数据类型是MCS-51系列单片机直接支持的?
答:见P89,基本类型:字符型,整型,长整型,浮点型,特殊功能寄存器;
构造类型:数组类型,结构体类型,共用体,枚举
指针类型
空类型
4-3
答:特殊功能寄存器,位类型
4-4 C51的存储类型有几种?它们分别表示的存储器区域是什么?
答:见P94页:存储器类型有:data, bdata,idata,pdata,xdata
4-5 C51中bit位与sbit位有什么区别?
答:bit是定义一个一般的位变量;而使用sbit定义可位寻址字节或是特殊功能寄存器的的位,定义时必指定其位地址,其存储空间为内部RAM中的位寻址区20H-2FH(位地址为:00H~7FH),
4-6 在C51通过绝对地址来访问的存储器有几种方式?
答:使用C51运行库中预定义宏,通过指针访问,使用C51扩展关键字_at_
4-7 在C51中,中断函数与一般函数有什么不同?
答:见P112页:7点
4-8 按指定存储器类型和数据类型,写出下列变量的说明形式
答:(1)在data定义字符变量var11: char data var11
(2)在idata定义整型变量var12: char idata var12
(3)在xdata定义无符号字符数组var11[4]: unsigned char xdata var13[4]
(4) 在 xdata定义一个指向无符号字符的指针px: unsigned char xdata* px
(5)定义可寻址位变量flag: bit flag;
(6)定义特殊功能寄存器变量p3: sfr p3=0xb0
(7) 定义特殊功能寄存器变量SCON:sfr SCON = 0x98
(8)定义16位特殊功能寄存器变量T0:sfr16 T0=0x8a (无法真正与实际相匹配)
4-9 设a=3,b=4,c=5,写出下列关系表达式或逻辑表达式的结果
答: (1) a+bc b==c (False)
(2) a||b+cb-c (True)
(3)!(ab) !c|| 1 (True)
(4)!(a+b)+c-1b+c/2 (True)
4-10 break与continue语句的区别是什么?
答:见P110; 使用break语句可以跳出switch和循环体,提前结束循环而接着执行循环结构下面的语句
continue语句使用在循环体结构中,用于结束本次循环,跳过该语句下面尚未执行的语句,直接进行下一否执行循环的判断。
4-11用分支结构编程实现,输入”1”时显示“A”,输入”2”时显示“B”,输入”3”时显示“C”,输入”4”时显示“D”
答:#include reg52.h
#include stdoi.h
#define uchar unsigned char
#define uint unsigned int
uchar I;
void main()
{
scanf(“%d”,i);
swtch (i)
{
case 1: printf(“A”),break;
case 2: printf(“B”),break;
case 3: printf(“C”),break;
case 4: printf(“D”),break;
case 5: break;
default: printf(“Error!”);
}
While(1);
}
4-12 输入3无符号数据,要求按由大到小的顺序输出。
解:#include reg52.h
#include stdoi.h
#define uchar unsigned char
#define uint unsigned int
uint a,b,c;
void main()
{
?uint max, min, med;
? scanf(%d%d%d, a , b, c);
? if (ab bc)
? {? max=a; med=b; min=c;}
? else if (ab bc ac)
? { max=a; med=c; min=b;}
? else if (ab bc ac)
? { max=c; med=a; min=b;}
??else if (ba bc)
? { max=c; med=b; min=a;}
? else?if (ba bc ac)
? { max=b; med=a; min=c;}
? else
? { max=b; med=c; min=a;}
? p
文档评论(0)