1、微型计算机原理与接口技术自考题-9 及答案解析(总分:93.00,做题时间:90 分钟)一、单项选择题(总题数:16,分数:16.00)1.8259A 中断控制器有 5 种优先级管理方式,系统上电而未对 8259A 优先级管理方式进行初始化,自动进入( )A自动循环方式 B特殊循环方式C查询排序方式 D完全嵌套方式(分数:1.00)A.B.C.D.2.协调 CPU 与外围设备之间的数据传送的是( ) A三态门 B锁存器 C缓冲器 D寄存器(分数:1.00)A.B.C.D.3.8086CPU 在一个存储器读/写总线周期中,最多可读/写( )A一个字节 B两个字节C三个字节 D四个字节(分数:1.
2、00)A.B.C.D.4.一台微型机,其存储器首址为 2000H,末址为 5FFFH,存储容量为( )KB。A4 B8C12 D16(分数:1.00)A.B.C.D.5.8031 的定时器 T1 作计数方式,模式 2 的方式控制字是( ) A60H B02H C06H D20H(分数:1.00)A.B.C.D.6.若 int a10;则对数组正确引用的是( ) Aa10-10 Ba10 Ca2*5 Da9-10(分数:1.00)A.B.C.D.7.执行长调用指令 LCALL addr16,它的操作是( ) A将断点地址进栈保存(保护断点)B将子程序地址送 PC(构成目的地址) C保护断点和构成
3、目的地址 D保护断点、保护现场(即所用到的寄存器内容入堆栈)及构成目的地址(分数:1.00)A.B.C.D.8.8086 处理器最小工作方式和最大工作方式的主要差别是( )A内存容量不同 BI/O 端口数不同C数据总线位数不同 D单处理器和多处理器的不同(分数:1.00)A.B.C.D.9.在异步串行的通信中,若要传送扩展 ASCII 码,则异步串行码字符格式的第 8 位数据( )A不传送 B恒为 0C恒为 1 D为有用数据(分数:1.00)A.B.C.D.10.下列正确的指令是( )AMOV100H,AX BMOV100H,AXCMOVAX,100H DMOV100H,25H(分数:1.00
4、)A.B.C.D.11.在地址为 4400H 开始存放无条件转移指令 SJMP 30H,执行该指令后,(PC)的内容为( ) A4430H B4370H C43D2H D4432H(分数:1.00)A.B.C.D.12.中断向量地址是( )A子程序入口地址 B中断类型码(中断识别码)C中断服务程序的入口地址 D中断服务程序入口地址的地址(分数:1.00)A.B.C.D.13.用户可以直接使用的 8031 单片机 I/O 接口是( ) AP0 BP2 CP1 DP3(分数:1.00)A.B.C.D.14.8051/8031 型单片机提供中断源的个数是( ) A3 B4 C6 D5(分数:1.00
5、)A.B.C.D.15.8086/8088 的中断是向量中断,其中断服务程序的首址由( )提供。A外设中断源BCPU 的中断逻辑电路C从中断控制器读回中断类型号左移 2 位D由中断类型号指向的向量地址表中读出(分数:1.00)A.B.C.D.16.在常用的台式 PC 机的主机箱中,除安装有主板、I/O 接口卡、电源和硬盘驱动器外,通常还安装有( )A光盘驱动器 B液晶显示器C打印机 D扫描仪(分数:1.00)A.B.C.D.二、填空题(总题数:4,分数:8.00)17.若 a=6,b=4,c=2;则表达式!(a-b)+c-1b+c/2 的值是 1。(分数:2.00)填空项 1:_18.对于单向
6、值传递,函数调用时把实参传递给形参,形参的值发生改变,而其对应的实参值 1。(分数:2.00)填空项 1:_19.int a;则表达式 a=25/3%3 的值是 1。(分数:2.00)填空项 1:_20.鸡兔共有 30 只,脚共有 90 个,下面程序是计算鸡兔各有多少只。请填空。 main() int x,y; for(x=1:x=29:x+)y=30-x; if(_)printf(“%d,%d/n“,x,y); (分数:2.00)填空项 1:_三、改错题(总题数:4,分数:8.00)21.#include stdio.h struct date int year=2010; int mont
7、h=1; int day=1; datel; main() struct date date2; date2.year=2010; date2.month=8: date2.day=5; printf(“日期 1:%d-%d-%d/n“,date1.year,date1.month,date1.day); printf(“日期 2:%d-%d-%d/n“,date2.year,date2.month,date2.day); 错误:_ 改正:_(分数:2.00)填空项 1:_22.#includestdio.h #includestring.h main() char a10,*pa=“0123
8、45678“; a=pa; printf(“%s/n“,a); 错误_ 改正 _(分数:2.00)填空项 1:_23.程序的功能是计算 1100 之间的奇数和与偶数和。 main() intsum1=0,sum2=0,a; for(a=1;a=100;a+) if(a%2=0)sum1+ =a; else sum2+ =a; printf(“%d,%d“,sum1,sum2); 错误:_ 改正:_(分数:2.00)填空项 1:_24.学习成绩=90 分的用 A 表示,60-89 分之间的用 B 表示,60 分以下的用 C 表示。 main() int score; char grade; pr
9、intf(“please input a score!/n“); scanf(“%d“,score); grade=score=90?A:(score90?B:C); printf(“%d belongs to %c“,score,grade); 错误:_ 改正:_(分数:2.00)填空项 1:_四、程序阅读题(总题数:4,分数:16.00)25.写出程序运行结果 main() int a,b,c; scanf(“%d%d“,(B/W),destsrc 式中 dest 为目的操作数,src 为源操作数;B/W 表示操作数可以是字节数据(Byte,8 位),也可以是字数据(Word,16 位)。
10、11.在地址为 4400H 开始存放无条件转移指令 SJMP 30H,执行该指令后,(PC)的内容为( ) A4430H B4370H C43D2H D4432H(分数:1.00)A.B.C.D. 解析:12.中断向量地址是( )A子程序入口地址 B中断类型码(中断识别码)C中断服务程序的入口地址 D中断服务程序入口地址的地址(分数:1.00)A.B.C.D. 解析:解析 本题考查的知识点为中断向量。要点透析 所谓“中断向量”就是中断服务程序的入口地址。中断向量表(又称中断指针表)是存放中断服务程序入口地址(即“中断向量”)的表格。13.用户可以直接使用的 8031 单片机 I/O 接口是(
11、) AP0 BP2 CP1 DP3(分数:1.00)A.B.C. D.解析:解析 P1 口没有第二功能。14.8051/8031 型单片机提供中断源的个数是( ) A3 B4 C6 D5(分数:1.00)A.B.C.D. 解析:15.8086/8088 的中断是向量中断,其中断服务程序的首址由( )提供。A外设中断源BCPU 的中断逻辑电路C从中断控制器读回中断类型号左移 2 位D由中断类型号指向的向量地址表中读出(分数:1.00)A.B.C.D. 解析:16.在常用的台式 PC 机的主机箱中,除安装有主板、I/O 接口卡、电源和硬盘驱动器外,通常还安装有( )A光盘驱动器 B液晶显示器C打印
12、机 D扫描仪(分数:1.00)A. B.C.D.解析:二、填空题(总题数:4,分数:8.00)17.若 a=6,b=4,c=2;则表达式!(a-b)+c-1b+c/2 的值是 1。(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 注意先计算括号。18.对于单向值传递,函数调用时把实参传递给形参,形参的值发生改变,而其对应的实参值 1。(分数:2.00)填空项 1:_ (正确答案:不变)解析:19.int a;则表达式 a=25/3%3 的值是 1。(分数:2.00)填空项 1:_ (正确答案:2)解析:解析 注意同级运算。20.鸡兔共有 30 只,脚共有 90 个,下面程序是计算鸡
13、兔各有多少只。请填空。 main() int x,y; for(x=1:x=29:x+)y=30-x; if(_)printf(“%d,%d/n“,x,y); (分数:2.00)填空项 1:_ (正确答案:2*x+4*y= =90)解析:三、改错题(总题数:4,分数:8.00)21.#include stdio.h struct date int year=2010; int month=1; int day=1; datel; main() struct date date2; date2.year=2010; date2.month=8: date2.day=5; printf(“日期 1
14、:%d-%d-%d/n“,date1.year,date1.month,date1.day); printf(“日期 2:%d-%d-%d/n“,date2.year,date2.month,date2.day); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:int year=2010;int month=1;int day=1; 改正:int year;int month;int day;)解析:22.#includestdio.h #includestring.h main() char a10,*pa=“012345678“; a=pa; printf(“%s/
15、n“,a); 错误_ 改正 _(分数:2.00)填空项 1:_ (正确答案:a=pa;/error:数组名是常量指针,不可以做左值 改正:strcpy(a,pa);/利用库函数)解析:23.程序的功能是计算 1100 之间的奇数和与偶数和。 main() intsum1=0,sum2=0,a; for(a=1;a=100;a+) if(a%2=0)sum1+ =a; else sum2+ =a; printf(“%d,%d“,sum1,sum2); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:if(a%2=0) 改正:将其修改为 if(a%2=0))解析:解析 if
16、语句表达式错误。24.学习成绩=90 分的用 A 表示,60-89 分之间的用 B 表示,60 分以下的用 C 表示。 main() int score; char grade; printf(“please input a score!/n“); scanf(“%d“,score); grade=score=90?A:(score90?B:C); printf(“%d belongs to %c“,score,grade); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:score90?B:C改正:将其修改为 score=60?B:C)解析:解析 根据题意条件语句逻辑
17、错误四、程序阅读题(总题数:4,分数:16.00)25.写出程序运行结果 main() int a,b,c; scanf(“%d%d“,&a,&b); while(o!=0) c=a%b; a=b; b=c; prine(“运行结果是:%d/n“,a); 运行时变量 a、变量 b 的输入值分别为:24 9,则程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:运行结果是:3)解析:26.main() int a=1,3,5,2,7; int b=5,3,9,4,6; int c5,i; for(i=0;i5;i+) ci=ai*bi; for(i=0;i5;i+) printf(“
18、%d“,ci); 程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:5 9 45 8 42)解析:解析 该程序第一个循环式将两个数组下标相同的元素对应相乘,第二个循环是输出结果。27.main() inta=2,4,6,*ptr=&a0,x=8,y,z; for(y=0;y3;y+) z=(*(ptr+y)y)?*(ptr+y):x;printf(“%d/n“,z); 程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:888)解析:解析 y=0,1,2 对应 a 数组的元素是 2,4,6。程序循环 3 次,每次循环数组元素均不小于 y 值,因此输出 8,共三次,所以
19、输出 888。28.#includestdio.h int fun(char*s) char*p=s; while(*p!=/0)p+; return(p-s); main() printf(“%d/n“,fun(“hello world“); 程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:11)解析:解析 该程序是计算在主函数中输入字符串中字母的个数。五、程序设计题(总题数:1,分数:8.00)29.某一农场有一头刚出生的小母牛,这头母牛自第 4 年起每年生一头母牛,假设所有的母牛都健康地活着,而且都是从第 4 年起每年生一头母牛,请计算到第 n(n30)年该农场共有多少头
20、母牛?要求 n 在程序执行时输入(根据提示编写 funcow 函数)。 提示:农场各年的牛数存放于名为 COW 的数组中,则: cow0=0, cow1=1, cow2=1, cow3=1, cown=cown-1+cown-3。 #include“stdio.h“ void main() int fun cow(int); int n; printf(“请输入年数(大于 3,小于 30):“); scanf(“%d“,&n); if(n3&n30) printf(“/n 第%d 年共有%d 头母牛。/n“,n,funcow(n); else printf(输入年数不在限定的范围内!”); /
21、*请根据提示编写。funcow 函数,funcow 函数定义如下:*/(分数:8.00)_正确答案:(int funcow(n) int n: int cow30=0,1,1,1,i; for(i=4;i=n;+i) cowi=cowi-1+cowi-3; return cown; )解析:六、填空题-单片机原理与接口技术(总题数:8,分数:16.00)30.数码管要显示字形“5”,则_、c、d、f、g 段亮,_、e 段灭。(分数:2.00)填空项 1:_ (正确答案:a b)解析:31.MCS-51 单片机的最大程序寻址空间是_,地址范围是_。(分数:2.00)填空项 1:_ (正确答案:6
22、4KB 0000H0FFFFH)解析:32.MUL AB 的执行结果是存储高 8 位在_中,低 8 位在_中。(分数:2.00)填空项 1:_ (正确答案:B A)解析:33.8051 单片机内有_个 16 位的定时/计数器,_有四种工作方式。(分数:2.00)填空项 1:_ (正确答案:2 T0)解析:34.8051 单片机共有_个中断源,可以设置_个中断优先级。(分数:2.00)填空项 1:_ (正确答案:5 2)解析:35.MCS-51 单片机把堆栈开辟在_中,其数据进出的最大特点是_。(分数:2.00)填空项 1:_ (正确答案:片内 RAM 先进后出)解析:36.8031 单片机串行
23、口的中断服务程序入口地址是 1H。(分数:2.00)填空项 1:_ (正确答案:0023)解析:37.MCS-51 的存储器空间配置从功能上可分为四种类型:_、内部数据存储器、_、外部程序存储器。(分数:2.00)填空项 1:_ (正确答案:片内程序存储器 外部数据存储器)解析:七、改错题-单片机原理与接口技术(总题数:2,分数:4.00)38.下列是中断初始化程序段,要求 8031 单片机允许 T0、T1、INT1 和串行口中断,其中 T0 是最高中断级。MOV IP,#0000 0001 B MOV IE,#1001 1110 B 错误:_改正:_(分数:2.00)填空项 1:_ (正确答
24、案:错误:MOV IP,#0000 0001 B 改正:MOV IP,#0000 0010 B)解析:39.执行下面三条指令后,30H 单元的内容是 40H。 MOV R1,#30H MOV 40H,#0EH MOV R1,40H 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:MOV R1,40H 改为:MOV R1,40H)解析:解析 变址寻址错误。八、程序阅读题-单片机原理与接口技术(总题数:2,分数:8.00)40.已知:(30H)=83H,(31H)=0ABH,(32H)=16H,(33H)=89H,(34H)=19H,执行以下子程序后: MOV R0,#30H
25、 MOV R7,#0 MOV R6,#0 MOV R2,#4 LOOP:MOV A,R0 ADD A,R6 MOV R6,A JNC CONT INC R7 CONT:INC R0 DJNZ R2,LOOP RET 结果为=(R7)=_H,(R6)=_H,(R2)=_H,(RO)=_H。(分数:4.00)填空项 1:_ (正确答案:01;CD;0;34)解析:41.下面程序是将片内 RAM_开始的单元内 10 个二进制数,找出其中最大值并存于单元中。 START: MOV R0,#40H MOV R7,#09H MOV A,R0 LOOP: INC R0 MOV 30H,R0 CJNE A,3
26、0H,NEXT NEXT: JNC BIE1 MOV A,30H BIE1: DJNZ R7,LOOP MOV 50H,A RET(分数:4.00)填空项 1:_ (正确答案:40H 50H)解析:解析 START:MOV R0,#40H ;设置片内开始单元 MOV R7,#09H ;十个存储数据 MOV A,R0 ;第一个数据传送至 A LOOP: INC R0 ;R0 指向下一个数据 MOV 30H,R0 ;假定该数据为最大 CJNE A,30H,NEXT ;A 和该数据比较 NEXT: JNC BIE1 ;如果 A 大转移到 LOOP MOV A,30H ;如果 A 小,将该数据送入 A
27、 BIE1: DJNZ R7,LOOP ;数据个数减 1,不为 0 转移到 LOOP MOV 50H,A ;A 中为最大数据,送入 50H 单元 RET九、程序设计题-单片机原理与接口技术(总题数:1,分数:8.00)42.在片外 RAM 4000H 单元开始存放 16 个单字节数,将其中非零的数传送到片内 RAM 20H 开始的单元,并将其个数存于寄存器 R6 中。请接着以下程序,补全缺少的部分。MOV R6,#OOH MOV R7,#16 MOV R0,#20H MOV DPTR,#4000H SJMP $(分数:8.00)_正确答案:(LOOP:MOVX A,DPTR JZ NEXT M
28、OV R0,A INC R0 INC R6 NEXT:INC DPTR DJNZ R7,LOOP)解析:十、十、应用题(总题数:1,分数:1.00)43.如下图所示,用 8255A 芯片扩展单片机的 I/O 口,8255 的 A 口作输入,A 口的每一位接一个开关,用B 口作为输出,输出的每一位接一个发光二极管。现要求某个开关接高电平(为 1)时,相应位上的发光二极管就亮(输出低电平 0)。设 8255 的 A 口地址为 70H,B 口地址为 71H,C 口地址为 72H,控制口地址为73H。完成下面程序填空。 * START:MOV DFTR, MOV A, MOVX ,A MOV DPTR, MOVX A, CPL INC MOVX DPTR, AJMP START 答:_;_;_;_; _;_;_;_。(分数:1.00)填空项 1:_ (正确答案:#72H #90H DPTR #70H DPTR A DPTR A)解析: