微型计算机原理与接口技术-4_真题(含答案与解析)-交互

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微型计算机原理与接口技术-4
(总分100, 做题时间90分钟)
一、单项选择题
在每小题列出的四个备选项中只有一个选项是符合题目要求的。

1.
MCS-51单片机复位操作的主要功能是把PC初始化为( )
SSS_SINGLE_SEL
A 0100H
B 0000H
C 2080H
D 8000H
分值: 1
答案:B
2.
int a[5],*p=a;对a数组元素地址的正确引用是( )
SSS_SINGLE_SEL
A p+5
B &a[0]
C &a+1
D *a+1
分值: 1
答案:B
[解析]A越界,C和D表达错误。

3.
以下if语句错误的是( )
SSS_SINGLE_SEL
A if(x<;
B if(x+=y;
C if(x<x++;y++;ELSE x--;y--;
D if(x!=scanf("%d",&;else x++;
分值: 1
答案:C
[解析]if~else语句在if后面只能是一句,同样在else后面也是一句。

如果需要多句才能表达清楚,就要用复合语句。

4.
下面不是三态锁存器的是( )
SSS_SINGLE_SEL
A 74LS244
B 74LS373
C 74LS377
D 74LS273
分值: 1
答案:B
5.
执行MOV IE,#81H指令的意义是( )
SSS_SINGLE_SEL
A 屏蔽中断源
B 开放外部中断源0
C 开放外部中断源1
D 开放外部中断源0和1
分值: 1
答案:B
[解析]IE=81H=10000001B,则EA=1,开中断,EX0=1,允许外部中断。

6.
MOVC A,@A+DPTR的寻址方式是( )
SSS_SINGLE_SEL
A 相对寻址
B 寄存器间接寻址
C 变址寻址
D 寄存器寻址
分值: 1
答案:C
7.
C语言中最基本的数据类型是( )
SSS_SINGLE_SEL
A 整型、实型、逻辑型
B 整型、实型、逻辑型、字符型
C 整型、字符型、逻辑型
D 整型、实型、字符型
分值: 1
答案:D
8.
以下属于单片机集成块型号的是( )
SSS_SINGLE_SEL
A 386DX
B 8097JF
C 8086
D 80486DX
答案:B
9.
汇编程序在汇编过程中扫描的次数是( )
SSS_SINGLE_SEL
A 1
B 3
C 2
D 4
分值: 1
答案:C
[解析]第一次检查错误,第二次汇编。

10.
MCS-51单片机的定时器位数是( )
SSS_SINGLE_SEL
A 16
B 8
C 4
D 10
分值: 1
答案:A
11.
对于函数调用,以下说法错误的是( )
SSS_SINGLE_SEL
A 出现在执行语句中
B 出现在一个表达式中
C 作为一个函数实参
D 作为一个函数形参
分值: 1
答案:D
[解析]函数调用不能做一个函数的形参。

12.
设累加器A的内容为OC9H,寄存器R2的内容为54H,CY=1,执行指令SUBB A,R2后结果为( )
SSS_SINGLE_SEL
A (=74H
B (R2)=74H
C (=75H
D (R2)=75H
答案:A
[解析]A=11001001B,R2=01010100B,则A=11001001B-01010100B-1=01110100B=74H。

13.
8051定时器/计数器TO工作方式有( )
SSS_SINGLE_SEL
A 三利
B 两种
C 四利
D 一种
分值: 1
答案:C
14.
下面不属于中断功能的是( )
SSS_SINGLE_SEL
A 增加CPU处理能力
B 实现实时处理
C 故障的紧急处理
D 人机联系
分值: 1
答案:A
[解析]中断功能不能改变CPU的处理能力。

15.
fclose函数的正确调用形式是( )
SSS_SINGLE_SEL
A fclose(文件指针名);
B fclose(文件名);
C fclose(文件变量名);
D fclose(变量名);
分值: 1
答案:A
16.
MCS-51系列单片机的程序存储器寻址空间是( )
SSS_SINGLE_SEL
A 16KB
B 32KB
C 64KB
D 128KB
答案:C
二、填空题
17.
intx=2,y;则表达式y=x+5,x+y的值是______。

SSS_FILL
分值: 2
答案:9
[解析]逗号表达式,结果是最后一个表达式的结果。

第一表达式结果y=7,第二表达式结果是x+y=2+7=9。

18.
表达式7+8>2&&25%5的结果是______。

SSS_FILL
分值: 2
答案:0
[解析]先算术、比较最后逻辑。

25%5=0,所以表达式为0。

19.
以下函数用于统计一行字符串中的单词个数,单词之间用空格分隔,请填空。

int word_num(char strl[ ])
{inti,num=0,word=0;
for(i=0;strl[i]l='\0';i++)
if(______= ='')word=0;
else if(word= =0){word=1;num++;}
return(num);
}
SSS_FILL
分值: 2
答案:strl[i]
[解析]该函数,用word作为空格的标志,num作为单词计数器。

20.
下面程序的功能是统计在16~31岁之间的学生人数。

请填空。

main()
{int a[30],n,age,i;
for(i=0;i<30;i++)a[i]=0;
printf("Enter the number of thestudents(<30)\n");
scanf("%d",&n);
printf("Enter the age of each student:\n");
for(i=0;i<n;i++)
{scanf("%d",&age);_______;}
printf("the result is\n");
printf("age number\n");
for(i=16;i<32;i++)
printf("%d%d\n",i,a[i-16]);
SSS_FILL
分值: 2
答案:a[age-16]++
[解析]在a[0],a[1]……a[29]中对应存放16,17,18岁…的人数。

三、改错题
每小题只有一处错误或不妥,请指出,并将其改正。

21.
main()
{int a[10],i;
for(i=1;i<=10;i++)
Scanf("%d",a[i]);
for(i=10;i>=0;i- -)
printf("%d",a[i]);
}
错误:______
改正:______
SSS_FILL
分值: 2
答案:错误:scanf("%d",a[i]);
改正:将其修改为scanf("%d",&a[i]);
[解析]scanf函数的格式不对。

22.
求1到n的自然数之和的函数。

#include"stdio.h"
int sum(int n)
{int k,s=0;
for(k=1;k<10;k++)
s=s+k:
return s;
}
错误:______
改正:______
SSS_FILL
分值: 2
答案:错误:for(k=1;k<10;k++)
改正:将其修改为for(k=1;k<=n;k++)
[解析]for循环条件错误。

23.
struct abc
{char a[20]={0};
char b;}
main()
{struct abc studl[10];
int a;
for(a=0;a<10;a++)
scanf("%s",a);
}
错误:______
改正:______
SSS_FILL
分值: 2
答案:错误:char a[20]={0};
改正:将其修改为char a[20];
[解析]结构体不能赋初值。

24.
#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);
}
错误:______
改正:______
SSS_FILL
分值: 2
答案:错误:fclose(*fp);
改正:将其修改为felose(fp);
[解析]关闭文件语句语法错误。

四、程序阅读题
请阅读下列程序,写出程序运行结果。

25.
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
{z=(*(ptr+y)<y)?*(ptr+y):x;
printf("%d\n",z);}
}
程序运行结果是:_________
SSS_FILL
分值: 4
答案:888
[解析]y=0,1,2对应a数组的元素是2,4,6。

程序循环3次,每次循环数组元素均不小于y值,因此输出8,共三次,所以输出888。

26.
main()
{int n1,n2;
scanf("%d",&n2);
while(n2 !=0)
{n1=n2%10;
n2=n2/10;
printf("%d",n1);}
}
程序运行时从键盘上输入1298<回车>,则输出结果是:_________ SSS_FILL
分值: 4
答案:8921
[解析]n1=n2%10=8,n2=n2/10=129,输出8,依次类推。

27.
main()
{char n;
scanf("%e",&n);
switch(++n)
{default:printf("error");break;
ease'a':case'A':ease'b':case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':ease'D':printf("warn");}
}
程序运行时从键盘输入字母c<回车>,则运行结果是:_________
SSS_FILL
分值: 4
答案:warn
[解析]输入字母c后变成字母d,所以输出warn。

28.
#include
main()
{int i,j,n;
scanf("%d",&n);
for(i=n;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
程序运行时从键盘输入1<回车>,则运行结果是:_________
SSS_FILL
分值: 4
答案:######
[解析]外层循环i=1,2,3,4对应内层循环j=2,3,4。

当i=2,输出1次#,i=3,输出2次#,i=4,输出3次#,因此共输出6#。

五、程序设计题
29.
输入三个整数x,y,z,请把这三个数由小到大输出。

SSS_TEXT_QUSTI
分值: 8
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;x=y;y=t;}/*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big:%d%d%d\n",x,y,z);
}
六、填空题-单片机原理与接口技术
30.
MCS-51系列单片机片内部数据存储器工作寄存器区32个字节被均匀地分为4个组:其中第2组工作寄存器,地址为______;第3组工作寄存器,地址为______。

SSS_FILL
分值: 2
答案:10H~17H 18H~1FH
31.
MCS-51单片机的最大程序寻址空间是______,地址范围是______。

SSS_FILL
分值: 2
答案:64KB 0000H~0FFFFH
32.
PCON寄存器中与串行通信有关的只有D7位(SMOD),该位为波特率倍增位。

当SMOD=_______时,串行口波特率增加一倍;当SMOD=______时,串行口波特率为设定值。

SSS_FILL
分值: 2
答案:1 0
33.
已知A=87H,(30H)= 76H,执行XRLA,30H后,A=______(30H)=______。

SSS_FILL
分值: 2
答案:F1H 76H
[解析]A=87H=10000111B,30H=01110110B,按位异或后A=11110001B=F1H,30H 中内容不变。

34.
指令DA A是______调整指令,它跟在______的加法指令后。

SSS_FILL
分值: 2
答案:十进制BCD码
35.
共阴极LED和共阳极LED的字段码互为______。

SSS_FILL
分值: 2
答案:反码
36.
使用8031单片机要将引脚接低电平,因为其内部无______。

SSS_FILL
分值: 2
答案:ROM
37.
8051的中断向量表在______、000B H和0013H、001BH、23H。

SSS_FILL
分值: 2
答案:0003H
七、改错题-单片机原理与接口技术
每小题只有一处错误或不妥,请指出,并将其改正。

38.
下面程序段是将ROM2000H单元的内容送外部RAM1000H单元。

MOV DPTR, #2000H
CLR A
MOVC A,@A+DPTR
MOV DPTR,#1000H
MOV @DPTR,A
错误:______
改正:______
SSS_FILL
分值: 2
答案:错误:MOV@DPTR,A
改正:MOVX@DPTR,A
[解析]MOV是内部传送指令。

39.
下面程序段实现双字节加法运算(R1)(R0)+(R7)(R6)送入(31H)(30H)。

MOV A,R0
ADD A,R6
MOV 30H,A
MOV A,R1
ADD A,R7
MOV 31H,A
SJMP $
错误:______
改正:______
SSS_FILL
分值: 2
答案:错误:ADD A,R7
改正:ADDC A,R7
[解析]根据题意需要用带进位的加法指令。

八、程序阅读题-单片机原理与接口技术
请阅读下列程序,写出程序运行结果。

40.
晶振6MHz,下面中断初始化程序是使用T1,工作方式_______,在P1.0引脚输出等宽矩形波周期为______微秒的。

MOV TMOD,#20H
MOV TL1,#06H
MOV TH1,#06H
SETB EA
SETB ET1
SETB YR0
SJMP $
SSS_FILL
分值: 4
答案:2500
[解析]TMOD=20H=00100000B,所以是方式2。

初值=06H=00000110B=6,256-
6=250,晶振=6MHz,所以矩形波周期为250×21μs=500μs。

41.
已知单片机的晶振频率为6MHz,下面程序用单片机内部定时器T0工作在方式1下,从P1.0输出周期为______的方波脉冲信号,时间常数为______。

ORG 3000H
START:MOV TMOD, #01H
MOV TL0,#OCH
MOV THO, #OFEH
SETB TR0
LOOP:JBC TFO,DONE
SJMP LOOP
DONE:MOV TL0,#OCH
MOV THO,#OFEH
CPL P1.0
SJMP LOOP
SSS_FILL
分值: 4
答案:2ms OFEOCH
[解析]注意这里是16位定时计数器。

九、程序设计题-单片机原理与接口技术
42.
RAM中60H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R6中。

SSS_TEXT_QUSTI
分值: 8
0RG 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
SJMP $
END
十、应用题
下面程序的功能是信号灯控制程序,利用P1口控制八个发光二极管的亮与灭(设输出低电平时,对应发光二极管被点亮)。

阅读程序完成说明语句。

ORG 0000H
AJMP MAIN ;转主程序
ORG 001 BH ;该地址是①的地址
AJMP CONT ;当出现②时,才会执行到该指令
ORG 0100H
MAIN:MOV TMOD,#10H ;执行该指令的目的是③
MOV TH1,#3CH ;置50ms定时初值
MOV TL1,#OBOH ;此时堆栈指针SP的内容是④
SETB EA ;执行该指令前,EA的初始值是⑤
SETB ET1 ;定时器T1开中断
SETB TR1 ;执行该指令的目的是⑥
CLR 08H ;清1s计满标志位
MOV R3,#14H ;置50ms循环初值
DISP:MOV R2,07H
MOV A,#0FEH
NEXT:MOV P1,A ;第2次执行完该指令后,对应⑦灯被点亮
JNB 08H,$ ;查询1s时间到否
CLR 08H ;清标志位
RL A
DJNZ R2,NEXT
MOV R2,#07H
NEXT1:MOV P1,A
JNB 08H,$
CLR 08H
RR A
DJNZ R2,NEXT1
SJMP DISP
CONT:MOV TH1,#3CH ;程序执行到此处时,堆栈指针SP的内容是⑧
MOV TL1,#OBOH
DJNZ R3,EXIT ;判1s定时到否
MOV R3,#14H ;重置50ms循环初值
SETB 08H ;标志位置1
EXIT:RETI ;该指令的功能是将堆栈的内容送至PC
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。

SSS_FILL 43.
分值: 1
SSS_FILL 44.
分值: 1
答案:②中断
SSS_FILL 45.
分值: 1
答案:③设定T1的工作方式
SSS_FILL 46.
分值: 1
答案:④07H
SSS_FILL 47.
分值: 1
答案:⑤0
SSS_FILL 48.
分值: 1
答案:⑥启动定时器T1工作
SSS_FILL 49.
分值: 1
答案:⑦第2位
SSS_FILL 50.
分值: 1
答案:⑧09H
1。

相关文档
最新文档