1、微型计算机原理与接口技术自考题-28 及答案解析(总分:94.00,做题时间:90 分钟)一、B单项选择题/B(总题数:16,分数:16.00)1.在扩展系统中,能够提供地址信号的高 8位的端口是_ A.P0口 B.P1口 C.P2口 D.P3口(分数:1.00)A.B.C.D.2.RS232串行口如传送一个二进制位所需的时间为 0.208mS,则波特率为U /U A.9600 B.4800 C.2400 D.1200(分数:1.00)A.B.C.D.3.ADC 0809芯片的转换启动信号和转换结束信号分别是U /U A.START和 EOC B.START和 OE C.ALE和 EOC D.
2、ALE和 OE(分数:1.00)A.B.C.D.4.字符9的 ASCII码值是U /U A.55 B.54 C.56 D.57(分数:1.00)A.B.C.D.5.已知(CY)=1(A)=0FH,要使结果为(CY)=0 (A)=1FH,则需执行指令 ( ) A.RLC A B.RRC A C.RL A D.RR A(分数:1.00)A.B.C.D.6.不是 MCS-51单片机:I/O 的数据传输方式的是U /U A.无条件 B.查询 C.中断 D.DMA(分数:1.00)A.B.C.D.7.执行下面程序段后,正确的结果是U /Uintx=0,y=0; while(x15)y+,x+ =+y;
3、A.x=8 B.y=20 C.x=20 D.y=12(分数:1.00)A.B.C.D.8.变量的指针是U /U A.变量的首地址 B.变量的值 C.变量的名 D.变量的一个标志(分数:1.00)A.B.C.D.9.某容量为 16KB的 RAM的起始地址为 30000H,采用全译码法实现片选控制,则该 RAM芯片的末地址为U /U A.31FFFH B.32FFFH C.33FFFH D.34FFFH(分数:1.00)A.B.C.D.10.总线是微处理器、内存储器和 I/O接口之间相互交换信息的公共通路。总线中的控制总线是U /U的通路。 A.微处理器向内存储器传送命令信号 B.微处理器向 I/
4、O接口传送命令信号 C.外界向微处理器传送状态信号 D.上述三种信号(分数:1.00)A.B.C.D.11.设累加器 A的内容为 0C9H,寄存器 R2的内容为 54H,CY=1,执行指令 SUBB A,R2后结果为_ A.(A)=74H B.(R2)=74H C.(A)=75H D.(R2)=75H(分数:1.00)A.B.C.D.12.8086/8088的中断是向量中断,其中断服务程序的入口地址是由U /U提供。 A.外设中断源 B.CPU的中断逻辑电路 C.从中断控制器读回中断类型号左移两位 D.中断类型号指向的中断向量表中读出(分数:1.00)A.B.C.D.13.目前 PC机都带有万
5、能插口 USB,它是一种U /U A.外设 B.接口电路 C.并行接口标准 D.串行接口标准(分数:1.00)A.B.C.D.14.若 int a10;则对数组正确引用的是U /U A.a10-10 B.a10 C.a2*5 D.a9-10(分数:1.00)A.B.C.D.15.执行下列 3条指令后,30H 单元的内容是_MOV R0.#30HMOV 40H.#0EHMOVR0.40H A.40H B.30H C.0EH D.FFH(分数:1.00)A.B.C.D.16.执行下列三条指令后 MOV A,#66H ADD A,#58H DA A 累加器 A的内容为( ) A.14H B.1EH
6、C.24H D.BEH(分数:1.00)A.B.C.D.二、B填空题/B(总题数:4,分数:8.00)17.输入两个整数 n1,n2(要求 n1n2),统计两整数范围内被 3整除的数的个数。请填空。 #include”stdio.h” main() int n1,n2,j,n=0; printf(“/n 请输入两个数:“); scanf(“%d%d“,n1,n2); if(n1n2)j=n1;n1=n2;n2=j; for(j=n1;j=n2,j+) if(_)n+; printf(“a=%5d,b=%5d,n=%5d/n“n1,n2,n);(分数:2.00)填空项 1:_18.以下程序是求数
7、组 a中偶数的个数和偶数的平均值。请填空。 main() int a10=1,15,16,18,14,17,24,23,12; int k,i,j;float ave; for(k=i=j=0;j10;j+) if(aj%2!=0) continue; i+=_; k+; if(k!=0) ave=i/j;printf(“%d,%f/n“,k,ave); (分数:2.00)填空项 1:_19.单片机是一种特殊的超大规模集成电路,具有数据处理能力,可实现复杂的软件功能,因为单片机内部含有_。(分数:2.00)填空项 1:_20.对于单向值传递,函数调用时把实参传递给形参,形参的值发生改变,而其对
8、应的实参值 1。(分数:2.00)填空项 1:_三、B改错题/B(总题数:4,分数:8.00)21.以下程序从键盘输入 20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。 #include “stdio.h“ main() int i,a20,s,n; s=n=0; for(i=0;i20;i+) scanf(“%d“,i20;i+) if(ai0)break; s+=ai;n+; printf(“s=%d/t,n=%d/n“,s,n); 错误:_ 改正:_(分数:2.00)填空项 1:_22.#include“stdio.h“ main() FILE*I=fp;char c
9、h; if(fp=fopen(“test.txt“,“w“)=NULL) printf(“cannot open file/n“);exit(0); ch=getchar(); while(ch!=$) fputc(ch,fp);putchar(ch); ch=getchar(); fclose(*fp); 错误:_ 改正:_(分数:2.00)填空项 1:_23.#include“stdioh“ struct date int year=2000; int month; int day; ; main() struct date d; d.month=1; d.day=31; printf(“
10、%d-%d-%d“,dyear,d.month,dday); 错误:_ 改正:_(分数:2.00)填空项 1:_24.#includestdio.h #include main() int i,a10; char b10; for(i=0;i10;+i) scanf(“%d“,a+i); b=“10 number“: printf(“%s/n“,b); for(i=0;i10;+i) printf(“%d“;ai); printf(“/n“); 错误:_ 改正:_(分数:2.00)填空项 1:_四、B程序阅读题/B(总题数:4,分数:16.00)25.#include stdioh main(
11、) ( int a6=1,2,3,4,5,6,i; float aver=0,t=0; for(i=0;i6;i+) t=t+ai; aver=1.0*t/6: printf(“%4.1f/n“.aver); for(i=0;i6;i+) if(aiaver) printf(“%d/n“,ai); 程序运行结果为:(分数:4.00)填空项 1:_26.#includestdio.h main() int i,x; i=0; do scanf(“%d“, int k,i,j;float ave; for(k=i=j=0;j10;j+) if(aj%2!=0) continue; i+=_; k+
12、; if(k!=0) ave=i/j;printf(“%d,%f/n“,k,ave); (分数:2.00)填空项 1:_ (正确答案:aj)解析:解析 关键语句是 if(aj%2!=0)continue;aj%2!=0为真,则 aj中是偶数。19.单片机是一种特殊的超大规模集成电路,具有数据处理能力,可实现复杂的软件功能,因为单片机内部含有_。(分数:2.00)填空项 1:_ (正确答案:微处理器 或者:CPU(Central Processing Unit) 或者:MP(Micro Processing))解析:20.对于单向值传递,函数调用时把实参传递给形参,形参的值发生改变,而其对应的实
13、参值 1。(分数:2.00)填空项 1:_ (正确答案:不变)解析:三、B改错题/B(总题数:4,分数:8.00)21.以下程序从键盘输入 20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。 #include “stdio.h“ main() int i,a20,s,n; s=n=0; for(i=0;i20;i+) scanf(“%d“,i20;i+) if(ai0)break; s+=ai;n+; printf(“s=%d/t,n=%d/n“,s,n); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:break; 改正:将其修改为 continue
14、;)解析:解析 注意 break和 continue的用法。22.#include“stdio.h“ main() FILE*I=fp;char ch; if(fp=fopen(“test.txt“,“w“)=NULL) printf(“cannot open file/n“);exit(0); ch=getchar(); while(ch!=$) fputc(ch,fp);putchar(ch); ch=getchar(); fclose(*fp); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:fclose(*fp); 改正:将其修改为 felose(fp);)解析
15、:解析 关闭文件语句语法错误。23.#include“stdioh“ struct date int year=2000; int month; int day; ; main() struct date d; d.month=1; d.day=31; printf(“%d-%d-%d“,dyear,d.month,dday); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:int year=2000; 改正:inr year;)解析:24.#includestdio.h #include main() int i,a10; char b10; for(i=0;i10;
16、+i) scanf(“%d“,a+i); b=“10 number“: printf(“%s/n“,b); for(i=0;i10;+i) printf(“%d“;ai); printf(“/n“); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:b=“10 number“; 改正:strcpy(b,“10 number“);或者逐个赋值: b0=1; b1=0; b2= ; b3=n; b4=u; b5=m; b6=b; b7=e; b8=r; b9=/0:)解析:四、B程序阅读题/B(总题数:4,分数:16.00)25.#include stdioh main()
17、( int a6=1,2,3,4,5,6,i; float aver=0,t=0; for(i=0;i6;i+) t=t+ai; aver=1.0*t/6: printf(“%4.1f/n“.aver); for(i=0;i6;i+) if(aiaver) printf(“%d/n“,ai); 程序运行结果为:(分数:4.00)填空项 1:_ (正确答案:3.5 4 5 6)解析:26.#includestdio.h main() int i,x; i=0; do scanf(“%d“,设置片内开始单元 MOV R7,#09H ;十个存储数据 MOV A,R0 ;第一个数据传送至 A LOOP
18、: INC R0 ;R0指向下一个数据 MOV 30H,R0 ;假定该数据为最大 CJNE A,30H,NEXT ;A和该数据比较 NEXT: JNC BIE1 ;如果 A大转移到 LOOP MOV A,30H ;如果 A小,将该数据送入 A BIE1: DJNZ R7,LOOP ;数据个数减 1,不为 0转移到 LOOP MOV 50H,A ;A中为最大数据,送入 50H单元 RET41.已知 8031单片机时钟频率为 12MHz,则执行子程序: MOV R7,#199 ;1 个机器周期 NOP ;1 个机器周期 LOOP:NOP ;1 个机器周期 NOP ;1 个机器周期 DJNZ R7,
19、LOOP ;2 个机器周期 RET ;2 个机器周期 所需的时间为_S(精确到 1S); 子程序返回后,R7=_。(分数:4.00)填空项 1:_ (正确答案:800 0)解析:九、B程序设计题-单片机原理与接口技(总题数:1,分数:8.00)42.RAM中 60H单元内存有一个十六进制数,把这个数转换为 BCD码的十进制数,BCD 码的十位和个位放在累加器 A中,百位放在 R6中。(分数:8.00)_正确答案:(ORG 2200H MOV A,60H MOV B,#64H DIV AB MOV R6,A MOV A,#0AH XCH A,B DIV AB SWAP A ORL A,B SJM
20、P $ END)解析:十、B十、应用题/B(总题数:2,分数:2.00)43.一个由 AT89C51单片机与一片 ADC0809组成的数据采集系统,ADC08 的地址为 7FF8H7FFFH。硬件逻辑电路图如下,下面程序是利用中断方式,分别对 8路模拟信号轮流采样一次,转换结果依次存放在首址为 30H的片外数据 RAM中。完成中断服务程序填空。 (分数:1.00)填空项 1:_ (正确答案: DPTR R1 INC DPTR R7 RET1 READ DPTR)解析:44.如下图所示,用 8255A芯片扩展单片机的 I/O口,8255 的 A口作输入,A 口的每一位接一个开关,用B口作为输出,输出的每一位接一个发光二极管。现要求某个开关接高电平(为 1)时,相应位上的发光二极管就亮(输出低电平 0)。设 8255的 A口地址为 70H,B 口地址为 71H,C 口地址为 72H,控制口地址为73H。完成下面程序填空。 (分数:1.00)填空项 1:_ (正确答案:#72H #90H DPTR #70H DPTR A DPTR A)解析: