1、微型计算机原理与接口技术自考题-5 及答案解析(总分:93.00,做题时间:90 分钟)一、单项选择题(总题数:16,分数:16.00)1.当 8086CPU正在执行存储器读操作的时候,CPU 信号线 (分数:1.00)A.B.C.D.2.int a5,*p=a;对 a数组元素地址的正确引用是( ) Ap+5 B printf(“%d“,sum); 错误:_ 改正:_(分数:2.00)填空项 1:_四、程序阅读题(总题数:4,分数:16.00)25.#include main() int i,j,n; scanf(“%d“, printf(“%d“,sum); 错误:_ 改正:_(分数:2.0
2、0)填空项 1:_ (正确答案:错误:int i,sum; 改正:将其修改为 int i,sum=0;)解析:解析 变量 sum要赋初值四、程序阅读题(总题数:4,分数:16.00)25.#include main() int i,j,n; scanf(“%d“,&n); for(i=n;i5;i+) for(j=2;j=i;j+)putchar(#); 程序运行时从键盘输入 1回车,则运行结果是:_(分数:4.00)填空项 1:_ (正确答案:#)解析:解析 外层循环 i=1,2,3,4 对应内层循环 j=2,3,4。当 i=2,输出 1次#,i=3,输出 2次#,i=4,输出 3次#,因此
3、共输出 6#。26.#includestdio.h main() int i=0,j,c6; scanf(“%d“,j); doci=j%10;i+;j=j/10; while(j!=0); for(-i;i=0;i-) printf(“%d“,ci); if(i0)printf(“,“); 程序运行时,输入整数为 2345回车,则输出为:_(分数:4.00)填空项 1:_ (正确答案:2,3,4,5)解析:解析 在 do-while循环中将 2345的每个位取出,然后将其逆序输出。27.#includestdio.h main() int a10=2,4,0,-5,10,6,-8,9,6,7
4、; inti,s=0,count=0; for(i=0;i10;i+) if(ai0)s+=ai,count+; else continue; printf(“s=%d,count=%d/n“,s,count); 程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:s=44,count=7)解析:解析 将数组中大于 0的数相加,共 7个。关键是条件语句。28.写出程序运行结果main() int i,j; for(i=0;i5;i+)for(j=5;j-i0;j-) printf(“*“); printf(“/n“); 运行结果为: _(分数:4.00)填空项 1:_ (正确答案:
5、* * * * *)解析:五、程序设计题(总题数:1,分数:8.00)29.请编写符合如下要求的函数: (1)对于任意输入的整数,计算并输出该整数的位数(例如,12345 是 5位数); (2)输出该数的倒序数(例如,123415 的倒序数是 54321) #includestdio.h main() void fun(int); int hum: scanf(“%d“,&num); fun(num); /*fun函数定义如下:*/(分数:8.00)_正确答案:(void fun(hum) int num; int num_residue=Bum,count=0; printf(“/nreve
6、rse order:“); doprintf(“%d“,num_residue%10);/num_residue%10:逐位倒序输出 num-residue=num_residue/10; +conut; /统计位数 while(hum_residue!=0); printf(“/nbits:%d/n“,count); )解析:六、填空题-单片机原理与接口技术(总题数:8,分数:16.00)30.若 8255的端口 A和端口 B工作在方式 1输入时,C 口的_和_可作为基本输入/输出使用。(分数:2.00)填空项 1:_ (正确答案:PC6 PC7)解析:解析 因为 PC0PC1PC2 作为
7、A口的联络信号,PC3PC4PC5 作为 B口的联络信号,剩下的PC6和 PC7仍然可以进行位状态的输入输出。31.80C51在作并行扩展时,如果采用全地址译码,扩展芯片的地址是 1。(分数:2.00)填空项 1:_ (正确答案:唯一的)解析:解析 就是采用全地址译码。32.8031单片机 IE=9DH,IP=06H 时,CPU 能响应的优先权最高的中断源是 1。(分数:2.00)填空项 1:_ (正确答案:外中断 1)解析:33.某 8031单片机时钟频率为 12MHz,现将 T0设置为定时方式 1,定时时间为 1毫秒,其计数器中的时间常数初值应为 1。(写成四位十六进制数)(分数:2.00
8、)填空项 1:_ (正确答案:0FC18H)解析:解析 因为机器周期=12/12MHz=1s,初值为 1ms/1s=1000,所以 N=216-1000=65536-1000=64536=0FC18H。因为方式 1,所有 216。34.LED有_和_两种接法。(分数:2.00)填空项 1:_ (正确答案:共阴级 共阳级)解析:35.一条机器指令由_和_两部分组成。(分数:2.00)填空项 1:_ (正确答案:操作码 操作数)解析:36.执行调用子程序指令 LCALL addr时,其断点地址存放在_中。(分数:2.00)填空项 1:_ (正确答案:堆栈 或者 栈顶)解析:37.已知累加器 A中存
9、放一个十进制数的 ASCII码,要将其转换为 BCD码,可执行一条逻辑运算指令 1。(分数:2.00)填空项 1:_ (正确答案:ANL A,#OFH 或:XRL A,#30H)解析:七、改错题-单片机原理与接口技术(总题数:2,分数:4.00)38.已知:(R0)=4BH,(A)=84H,片内 RAM(4BH)=7FH,(40)=20H,执行程序后,(R0)=35H,(A)=7FH,(4BH)=20H,(40H)=7FH MOV A,R0 MOV R0,40H MOV 40H,ACC MOV R0,#35H 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:MOV 40H
10、,ACC 改正:MOV 40H,A)解析:解析 前面用 A,后面要一致。39.下面程序段是将片外 RAM20H25H 单元清零。 MOV R0,#20H MOV R7,#06H CLR A LOOP: MOV R0,A INC R0 DJNZ,#3000H 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:MOV R0,A 改正:MOVXR0,A)解析:解析 要使用片外数据传送指令八、程序阅读题-单片机原理与接口技术(总题数:2,分数:8.00)40.下面程序是在_中存放一个压缩的 BCD码,将它拆成二个 BCD字节,结果存于_开始的单元中(低位在前) MOV R0,#SU
11、M MOV A,R2 ANL A,#0FH MOV R0,A MOV A,R2 ANL A,#0F0H SWAP A INC R0 MOV R0,A RET(分数:4.00)填空项 1:_ (正确答案:R2 SUM)解析:解析 MOV R0,#SUM ;存放结果的开始单元 MOV A,R2 ;取压缩的 BCD码 ANL A,#0FH ;屏蔽高四位 MOV R0,A ;存放 SUM中 MOV A,R2 ;再次取压缩的 BCD码 ANL A,#0F0H ;屏蔽低四位 SWAP A ;交换高低四位数据 INC R0 ;SUM 开始的下一个存储单元 MOV R,A ;存放结果 RET41.下面程序的功
12、能是_。 BTOD1:MOV A,R2 MOV B,#100 DIV AB MOV R6,A MOV A,#10 XCH A,B DIV AB SWAP A ADD A,B MOV R5,A RET(分数:4.00)填空项 1:_ (正确答案:二进制数到 BCD码间的转换。)解析:九、程序设计题-单片机原理与接口技术(总题数:1,分数:8.00)42.用 89C51的 P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。(分数:8.00)_正确答案:(ORG 0100H ABC: SETB P1.0 SETB P1.7 JB P1.7,$ JNB P1.7,$ CLR P1,0
13、 MOV R2,#0DAY: NOP NOP DJNZ R2,DAY SJMP ABC)解析:十、十、应用题(总题数:1,分数:1.00)43. (1)62256的地址范围从 H 到 H。 (2)现 8255A A口,B 口均为方式 0,输入;C 口输出,方式控制字应为 H。 (3)如需将 A口的输入和 B口的输入进行位对位与,其结果从 C口输出,试补全下面程 序段: MOV DPTR,# H;8255A A 口地址,没有用到的地址线为 1 MOVX A,DPTR INC DPTR MOV R2, MOVX A, ANL A, INC MOVX DPTR,A附:8255A 方式控制字各位含意: (分数:1.00)填空项 1:_ (正确答案:0000 7FFF 92 FFFC A DPTR R2 DPTR)解析: