资源描述:
《单片机原理与应用及c51程序设计第4章习题答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第4章习题答案4-2有哪里些数据类型是MCS-51系列单片机直接支持的?答:见P89,基本类型:字符型,整型,长整型,浮点型,特殊功能寄存器;构造类型:数组类型,结构体类型,共用体,枚举指针类型空类型4-3C51特有的数据结构类型有哪些?答:特殊功能寄存器,位类型4-4C51的存储类型有几种?它们分别表示的存储器区域是什么?答:见P94页:存储器类型有:data,bdata,idata,pdata,xdata4-5C51中bit位与sbit位有什么区别?答:bit是定义一个一般的位变量;而使用sbit定义可位寻址字节或是特殊
2、功能寄存器的的位,定义时必指定其位地址,其存储空间为内部RAM中的位寻址区20H-2FH(位地址为:00H~7FH),4-6在C51通过绝对地址来访问的存储器有几种方式?答:使用C51运行库中预定义宏,通过指针访问,使用C51扩展关键字_at_4-7在C51中,中断函数与一般函数有什么不同?答:见P112页:7点4-8按指定存储器类型和数据类型,写出下列变量的说明形式答:(1)在data定义字符变量var11:chardatavar11(2)在idata定义整型变量var12:charidatavar12(3)在xdata定
3、义无符号字符数组var11[4]:unsignedcharxdatavar13[4](4)在xdata定义一个指向无符号字符的指针px:unsignedcharxdata*px(5)定义可寻址位变量flag:bitflag;(6)定义特殊功能寄存器变量p3:sfrp3=0xb0(7)定义特殊功能寄存器变量SCON:sfrSCON=0x98(8)定义16位特殊功能寄存器变量T0:sfr16T0=0x8a(无法真正与实际相匹配)4-9设a=3,b=4,c=5,写出下列关系表达式或逻辑表达式的结果答:(1)a+b>c&&b==c(
4、False)(2)a
5、
6、b+c&&b-c(True)(3)!(a>b)&&!c
7、
8、1(True)(4)!(a+b)+c-1&&b+c/2(True)4-10break与continue语句的区别是什么?答:见P110;使用break语句可以跳出switch和循环体,提前结束循环而接着执行循环结构下面的语句continue语句使用在循环体结构中,用于结束本次循环,跳过该语句下面尚未执行的语句,直接进行下一否执行循环的判断。4-11用分支结构编程实现,输入”1”时显示“A”,输入”2”时显示“B”,输入”3”时显示“C”,输入”
9、4”时显示“D”,输入”5”时结束。答:#include#include#defineucharunsignedchar#defineuintunsignedintucharI;voidmain(){scanf(“%d”,&i);swtch(i){case1:printf(“A”),break;case2:printf(“B”),break;case3:printf(“C”),break;case4:printf(“D”),break;case5:break;default:printf(
10、“Error!”);}While(1);}4-12输入3无符号数据,要求按由大到小的顺序输出。解:#include#include#defineucharunsignedchar#defineuintunsignedintuinta,b,c;voidmain(){ uintmax,min,med; scanf("%d%d%d",&a,&b,&c); if(a>b&&b>c) { max=a;med=b;min=c;} elseif(a>b&&bc) {max=a;med=c;m
11、in=b;} elseif(a>b&&ba&&ba&&b>c&&a>c) {max=b;med=a;min=c;} else {max=b;med=c;min=a;} printf("%d>%d>%d",max,med,min);}4-13用3种循环结构编写程序实现输出1-10的平方和解:#include#include#defineuc
12、harunsignedchar#defineuintunsignedintuintsum=0;voidmain{uchari,Square;for(i=1;i<=10;i++){sum=sum+i*i;}printf(”sum=%d,”sum);i=1;while(i<=10){sum=s