2012年微型计算机原理与接口技术自考题模拟(1):2012年微型计算机原理与接口技术自考题模拟。本试卷总分100分;共有10类型题目
一、单项选择题 ,每小题1分,共16分,在每小题列出的四个备选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。
1.以下集成块型号中,不属于MCS-51系列单片机型号的是( )
A.8094BH
B.83C452
C.80C32
D.8051AH
2.用8位(bit)二进制能够表示的有符号数的范围是( )
A.-127~+128
B.-128~+127
C.-127~+127
D.-128~+128
3.下列选项中,合法的C语言关键字是( )
A.default
B.get
C.integer
D.VAR
4.已知char ch="B";则以下表达式的值是( )
ch=(ch>="A"&&ch<="Z")?(ch+32):ch;
A.A
B.a
C.b
D.Z
5.变量的指针是( )
A.变量的首地址
B.变量的值
C.变量的名
D.变量的一个标志
6.打开文件语句fp=fopen("a.dat","r");中fp的类型是( )
A.File *
B.file
C.File
D.FILE *
7.8051与8751的区别是( )
A.内部数据存储器的数目不同
B.内部数据存储器的类型不同
C.内部程序存储器的类型不同
D.内部的寄存器的数目不同
8.单片机的指令地址存放在( )
A.PSW
B.DPTR
C.SP
D.PC
9.MCS-51外部中断1固定对应的中断入口地址为( )
A.0003H
B.000BH
C.0013H
D.001BH
10.在扩展系统中,能够提供地址信号的高8位的端口是( )
A.P0口
B.P1口
C.P2口
D.P3口
11.控制串行口工作方式的寄存器是( )
A.TCON
B.PCON
C.SCON
D.TMOD
12.执行下列3条指令后,30H单元的内容是( )
MOV R0,#30H
MOV 40H,#0EH
MOV @R0,40H
A.40H
B.30H
C.0EH
D.FFH
13.MOV C,00H指令中源操作数的寻址方式是( )
A.位寻址
B.直接寻址
C.立即寻址
D.寄存器寻址
14.若设串行控制寄存器SCON=40H,则串行口的工作方式是( )
A.方式0
B.方式1
C.方式2
D.方式3
15.地址指针DPTR是( )
A.4位的专用寄存器
B.8位的专用寄存器
C.16位的专用寄存器
D.32位的专用寄存器
16.一个EPROM的地址有A0-A11引脚,它的容量是( )
A.2KB
B.4KB
C.11KB
D.12KB
二、填空题每小题2分,共8分请在每小题的空格中填上正确答案。
17.int m=5,y=2;则执行表达式y+ =y- =m *=y后的y值是______。
18.若a=3,b=4,c=5,则表达式a||b+c&&b= =c的值是_______。
19.等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有项的和。请填空。
#include<stdio.h>
main()
{int a,d,sum;
a=2;d=3;sum=0:
do{sum+ =a;
a+ =d:
if(______)printf("%d ",sum);
}while(sum<200);
}
20.求出2/1,3/2,5/3,8/5,13/8,21/13……这个数列的前20项之和。请填空。
main()
{int n,t,number=20;
floata=2,b=1,s=0;
for(n=1;n<=number;n++)
{
s=______;
t=a;a=a+b;b=t;
}
printf("sum is%9.6f ",s);
}
三、改错题每小题2分,共8分每小题只有一处错误或不妥。请指出。并将其改正。
21.main()
{
int a b;
a=2;
b=3;
c=a*b
printf("c=%c",c);
}
错误:______
改正:______
22.下面程序的功能是计算1+2+3……+50的和。
main()
(int i,sum;
for(i=1;i<=50;i++)
sum+ =i;
printf("%d",sum);
}
错误:______
改正:______
23.main()
{char s[4]="9876",*p;
for(p=s;p<s+2;p++)printf("%s ",p);
}
错误:______
改正:______
24.struct stud
{char num[6];
int s[4];
double ave=0.0;
}a;
main()
{int i;
for(i=0;i<4;i++)scanf("%d",&a.s[i]);
for(i=0;i<4;i++)a.ave+ =a.s[i];
printf("%f",a.ave);
}
错误:______
改正:______
四、程序阅读题每小题2分,共8分请阅读下列程序。写出程序运行结果。
25.#include"stdio.h"
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d",a,b);
}
程序运行结果是:______
26.#include<stdio.h>
main()
{int x;
scanf("%d",&x);
if(x>=60)printf("pass");
else printf("fail");
}
程序运行时输入60<回车>,则程序运行结果是:______
27.#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);
}
程序运行结果是:______
28.#include<stdio.h>
main()
{int k=0;
char c="A":
do
{switch(c++)
{case"A":k++;break;
case"B":k--;
case"C":k+ =2;break;
case"D":k=k%2;break;
case"E":k=k*10;break;
default:k=k/3;}
k++;}
while(c<"G");
printf("k=%d",k);}
程序运行结果是:______
五、程序设计题每小题1分,共5分
29.请编一个函数int fun(float s[ ],int n),它的功能是:求高于平均分的人数,并作为函数值返回。数组s中存放n位学生的成绩。数组s的值由主函数从键盘读入,用-1来结束输入。
六、填空题每小题2分,共16分请在每小题的空格中填上正确答案。
30.MCS-51的堆栈只可设置在______,其最大容量为______。
31.MCS-51单片机的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的______和______。
32.执行下列程序段后,(A)=______,(CY)=______。
MOV A,#C5H
RL A
33.假设两个一字节的十六进制数9FH,81H相加的和为8位二进制数,那么相加后其进位标志为______,溢出标志为______。
34.已知(31H)=21H,(32H)=04H,执行下列指令组后(31H)=______,(32H)=______。
PUSH 31H
PUSH 32H
POP 31H
POP 32H
35.设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)=______。
ORL A,#27H
ANL A,28H
XCHD A,@R0
36.
设定T1为计数器方式,工作方式2,则TMOD中的值为______。
37.MCS-51内部的SFR共有______个。
七、改错题每小题2分,共4分每小题只有一处错误或不妥,请指出,并将其改正。
38.某8031单片机时钟频率12MHz,T1为工作方式1,2毫秒定时中断,其部分初始化程序如下,请指出错误,并改正之。
MOV TMOD,#01H
MOV TH1,#0F8H
MOV TL1,#30H
MOV IP,#8
MOV IE,#88H
……
错误:______
改正:______
39.下列程序要完成16位无符号数相加,两数分别存于30H,31H和40H,41H(低位在前),并把和存于30H,31H中(设和无进位输出)。请指出错误,并改正之。
MOV A,30H
ADD A,40H
MOV 30H,A
MOV A,31H
ADD A,41H
MOV 31H,A
错误:______
改正:______
八、程序阅读题,每小题5分,共10分请阅读下列程序,写出程序运行结果。
40.2506H M5: MOV SP,#58H
2509H MOV 10H,#0FH
250CH MOV 11H,#0BH
………
250FH ACALL XHD;PC+2→PC,
MOV 20H,11H
2514H M5A:SJMP M5A
XHD:PUSH 10H
PUSH 11H
POP 10H
POP 11H
RET
执行M5A:SJMPM5A后,(SP)=______(20H)=______
41.设在31H单元存有#23H,执行下面程序:(41H)=______(42H)=______
MOV A,31H
ANL A,#0FH
MOV 41H,A
MOV A,31H
ANL A,#0F0H
SWAP A
MOV 42H,A
九、程序设计题,共5分
42.片外RAM2000H开始的单元中有5BH的数据,编程将它们传送到片内RAM20H开始的单元中去。
十、应用题,共20分
43.一个由AT89C51单片机与一片ADC0809组成的数据采集系统,ADC08的地址为7FF8H~7FFFH。硬件逻辑电路图如下,下面程序是利用中断方式,分别对8路模拟信号轮流采样一次,转换结果依次存放在首址为30H的片外数据RAM中。完成中断服务程序填空。
ORG 0000H
AJMP MAIN
ORG 0013H
AJMP INT1
MAIN: MOV R1,#30H
MOV R7,#08H
MOV DPTR,#07FF8H
SET IT1
SET EX1
SET EA
HERA: SJMP HERE
中断服务程序:
INT1: MOVX A, ①
MOVX ② ,A
③ R1
INC ④
DJNZ ⑤ ,READ
⑥
⑦ :MOVX ⑧ ,A
RET1