微型计算机原理与接口技术自考题-29
(总分:98.00,做题时间:90分钟)
一、{{B}}单项选择题{{/B}}(总题数:16,分数:16.00)
1.MCS-51外部中断1固定对应的中断入口地址为{{U}} {{/U}}
A.0003H
B.000BH
C.0013H
D.001BH

(分数:1.00)
 A.
 B.
 C. 
 D.
解析:[解析] MCS-51外部中断1入口地址固定。
2.设8255A的4个端口地址为78H、79H、7AH和7BH,则设置C口按位置位/复位字时,写入的端口地址应为{{U}} {{/U}}
A.78H
B.79H
C.7AH
D.7BH

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:
3.大写字母'A'的ASCII码值为65,则字母'G'的ASCII码是{{U}} {{/U}}
A.60
B.70
C.71
D.72

(分数:1.00)
 A.
 B.
 C. 
 D.
解析:
4.共阳极显示管点亮时输入电平是{{U}} {{/U}}
A.高电平
B.低电平
C.低电压
D.接地

(分数:1.00)
 A.
 B.
 C. 
 D.
解析:
5.inta=30,b=20,c=10,d;d=a>b>c;则d的值是{{U}} {{/U}}
A.10
B.1
C.30
D.0

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:[解析] a>b=1,1>c=0。
6.8253-5是一个16位可编程定时器/计数器,以BCD码计数时,其计数范围是{{U}} {{/U}}
A.0~9999
B.0~10000
C.1~10000
D.1~9999

(分数:1.00)
 A.
 B.
 C. 
 D.
解析:
7.执行LEA AX,VAR1指令后{{U}} {{/U}}
A.寄存器AX是变量VAR1的值
B.寄存器AX是变量VAR1的有效地址
C.立即数VAR1送入寄存器AX
D.AX与VAR1的值交换

(分数:1.00)
 A.
 B. 
 C.
 D.
解析:[解析] 指令LEA AX,VAR1的功能是将变量VAR1的有效地址(即偏移地址)传送到寄存器
AX中。
8.在16位存储器系统中,存储字存放在偶地址的优点是{{U}} {{/U}}
A.节省所占的内存空间
B.节省所占的外存空间
C.便于寻址
D.减少执行指令的总线周期数

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:[解析] 当8086访问一个整字(16住)变量时,该变量的地址为偶地址(即字变量的低字节在偶地址单元,高字节在奇地址单元),则8086将用一个总线周期访问该字变量;如果该字变量的地址为奇地址(即字变量的低字节在奇地址单元,高字节在偶地址单元),则8086要用两个连续的总线周期才能访问该字变量,每个周期访问一个字节。
9.JZ rel指令中,操作数rel的寻址方式是______
A.立即寻址
B.直接寻址
C.位寻址方式
D.相对寻址方式

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:
10.用8位(bit)二进制能够表示的有符号数的范围是{{U}} {{/U}}
A.-127~+128
B.-128~+127
C.-127~+127
D.-128~+128


(分数:1.00)
 A.
 B.
 C. 
 D.
解析:[解析] 8位二进制数表示的范围。
11.一个8位A/D转换器,输入满刻度值为10V,则其分辨率约为{{U}} {{/U}}
A.1.25V
B.1.25mV
C.39mV
D.0.8V

(分数:1.00)
 A.
 B.
 C. 
 D.
解析:[解析] 若输入电压的满刻度值为VFS,转换器的位数为n分辨率为1/2nVFS,当输入电压满刻度值为VFS=10V,则8位A/D转换器的分辨率为10V/256≈0.039V=39mV。
12.下列程序段的执行结果是{{U}} {{/U}}
int x=3:
while(x<=5)
{printf("%d",x-3);x++;}
A.000 单片机printf函数
B.112
C.123
D.012

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:[解析] x=3,4,5时循环,对应的输出为0,1,2。
13.下面表示中断允许控制寄存器的是______
A.TCON
B.IE
C.IP
D.SCON

(分数:1.00)
 A.
 B. 
 C.
 D.
解析:
14.闪速存储器中存储的信息{{U}} {{/U}}
A.断电丢失
B.需不断刷新
C.写入后不可变动
D.可擦除重写

(分数:1.00)
 A.
 B.
 C.
 D. 
解析:[解析] 本题考查的知识点为闪速存储器。 [要点透析] 闪速存储器是一种非挥发性存储器,具有可以将整块芯片电擦除和部分电擦除、无须后备电池、可重新改写、重复使用性好等特点。
15.不是MCS-51单片机I/O的数据传送方式的是______
A.无条件传送
B.随机传输
C.查询方式
D.中断方式

(分数:1.00)
 A.
 B. 
 C.
 D.
解析:
16.以下设备中属于微型计算机输入设备的是{{U}} {{/U}}
A.键盘、光笔、音箱
B.键盘、汉王笔、指示灯
C.键盘、鼠标、扫描仪
D.鼠标、触摸屏、音箱


(分数:1.00)
 A.
 B.
 C. 
 D.
解析:
二、{{B}}填空题{{/B}}(总题数:4,分数:8.00)
17.下面程序的功能是,输出100以内能被3整除且个位数为6的所有整数。请填空。 main() {int i,j; for(i=0;i<10;i++) {j=i*10+6: if(______)continue;printf("%d",j);} }
(分数:2.00)
填空项1:__________________ (正确答案:j%3!=0)
解析:[解析] 注意被3整除的表达式。
18.int a,b;则表达式(a=2,b=5,a++,b++,a+b)的值是 1。
(分数:2.00)
填空项1:__________________ (正确答案:9)
解析:[解析] 逗号表达式的结果是最后一个表达式的结果,因此a+b=3+6。
19.若a=6,b=4,c=2;则表达式!(a-b)+c-1&&b+c/2的值是 1。
(分数:2.00)
填空项1:__________________ (正确答案:1)
解析:[解析] 注意先计算括号。
20.以下程序是用来统计正整数的每位数字中零的个数,并求每位数字中最大者。请填空。 main() {unsigned long num,max,t; int count; count=max=0: scanf("%ld",&num); do{ t=______; if(t==0)++count; else if(max<t)max=t; num/=10; }while(num); printf("
count=%d,max=%ld/n",count,max);
(分数:2.00)
填空项1:__________________ (正确答案:num%10)
解析:[解析] 根据上下文可以看出t中存放的是每位数字,因此取出每位数字的表达式为num%10。
三、{{B}}改错题{{/B}}(总题数:3,分数:6.00)
21.#include<stdio.h> #include<string.h> main() {char a[10],*pa="012345678"; a=pa; printf("%s/n",a); } 错误______ 改正 ______
(分数:2.00)
填空项1:__________________ (正确答案:a=pa;//error:数组名是常量指针,不可以做左值 改正:strcpy(a,pa);//利用库函数)
解析:
22.程序的功能是计算1~100之间的奇数和与偶数和。 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语句表达式错误。
23.以下程序运行时从键盘输入字符串ABCDE按回车键结束输入,使输入字符串中的A和B转换为字符#输出,其他字符输出为*。 #include"stdio.h" main() {char c: while((c=getchar())!='/0') {switch(c) {case'A': case'B':putchar('#');break; default:putchar('*');} } } 错误:______ 改正:______
(分数:2.00)
填空项1:__________________ (正确答案:错误:while((c=getchar())!='/0') 改正:将其修改为while((c=getehar())!='/n'))
解析:[解析] 根据题意循环条件逻辑错误
四、{{B}}程序阅读题{{/B}}(总题数:4,分数:16.00)
24.#include"stdio.h" main() {int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf("%d,%d",a,b); } 程序运行结果是:______
(分数:4.00)
填空项1:__________________ (正确答案:2,1)
解析:[解析] 整数除法241/100=2,2%9=2。&&逻辑运算中不为0为真。
25.#include <stdio.h> main() { int i,b,k=0; for(i=1;i<=5;i++) { b=i%2; while(b-->=0) k++;} printf("%d,%d",k,b); } 程序运行结果是:______
(分数:4.00)
填空项1:__________________ (正确答案:8,-2)