2008年4月全国自考(微型计算机原理与接口技术)真题试卷
一、1.单项选择题
0. 以下集成块型号中不属于单片机型号的是( )
A.8051AH
B.83C52JA
C.8096BH
D.80486DX
1. 用16位(bit)二进制能够表示的有符号数的范围是( )
A.-3276~32767
B.-65535
C.-32768~32768
D.-32767~32767
2. 算式
的C语言表达式是( )
A.1/2/x+y
B.1/(2/x+y)
C.1/(2/x)+y
D.1/2/(x+y)
3. 执行以下循环语句后,正确的结果是( ) i=0: while(i++<5);
A.i=0
B.i=4
C.i=5
D.i=6
4. 执行以下循环语句后,正确的结果是( ) for(s=0,i=0;i<5;i=i+2)s=s+i;
A.s=0
B.s=2
C.s=6
D.s=12
5. 关闭文件语句fclose(fp);中的标识符fp的类型是( )
A.File*
B.FILE*
C.file
D.File
6. CPU每取1字节的指令操作码后,有一个寄存器的内容自动加1,这寄存器就是( )
A.ACC
B.SP
C.PSW
D.PC
7. 51系列单片机内部数据存储器中的位寻址区(布尔处理区)的地址范围为( )
A.20H~2FH
B.00H~0FH
C.30H~37H
D.10H~1FH
8. 8051系列单片机内部有很强的中断功能,它共有中断源( )
A.3个
B.4个
C.5个
D.6个
9. 要进行出栈操作,其步骤正确的是( )
A.先从SP指示的栈顶单元读出数据,然后SP内容减1
B.先从SP指示的栈顶单元读出数据,然后SP内容加1
C.先将SP内容加1,然后从其指示的单元读出数据
D.先将SP内容减1,然后从其指示的单元读出数据
10. 8751单片机内有4KB EPROM,如果从内部EPROM取指令必需将1个引脚作适当连接,即( )
11. 程序存储器数据传送,采用的助记符是( )
A.MOV
B.MOVX
C.MOVC
D.PUSH
12. 已知累加器(A)=87H,进位标志(CY)=0,执行RRC A指令后,(A)和(CY)的内容分别为( )
A.0EH,1
B.0FH,0
C.C3H,0
D.43H,1
13. 8031单片外部中断1的中断服务程序入口地址是( )
A.0000H
B.0003H
C.000BH
D.0013H
14. RS232串行口如传送一个二进制位所需的时间为0.208mS,则波特率为( )
A.9600
B.4800
C.2400
D.1200
15. 8031单片机扩展外部存储器时,P0口用作( )
A.数据总线
B.I/0口
C.地址总线
D.兼作数据和地址总线
二、2.填空题
0. 表达式5/3的值是______。
1. 已知x=5,y=6,表达式x>2‖y<5的值是______。
2. 以下程序是求100以内能被5和被7同时整除的所有数之和。
main()
{
int i=0,s=0;
while(i<100)
if(______)
s=s+i++;
printf("s=%d
",s);
}
3. 程序的功能是,在10个评委中,去除一个最高分和一个最低分,然后求平均分。
main()
{
int a[10],i,max,min;
float s=0:
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
s=s+a[i];
}
max=min=a[0];
for(i=1;i<10;i++)
{
if(max max=a[i];
if(min>a[i])
min=a[i];
}
s=______;
s=s/8;
printf("平均分是:%f",s);
}
三、3.改错题
0. main()
{
int x,y;
scanf("%d",x);
y=x*x;
printf("y=%d
",y);
}
错误:______
改正:______
1. 以下程序功能是输入一个学生的成绩,如果输入的成绩不在0~100之间,则显示出错信息。
main()
{
int s;
scanf("%d",&s);
if(100>=s>=0)
printf("输入的成绩是%d
",s);
else
printf("输入成绩出错");
}
错误:______
改正:______
2. #include"stdio.h"
main()
{char a[10],*pa;
scanf("%s",pa);
printf("%s
",pa);
}
错误:______
改正:______
3. #include"stdio.h"
struct date
{int year=2000;
int month;
int day;
};
main()
{struct date d;
d.month=1;
d.day=31;
printf("%d-%d-%d",d.year,d.month,d.day);
}
错误:______
改正:______
四、4.程序阅读题
0. 写出程序运行结果
main()
{
int i,j;
for(i=0;i<5;i++)
{
for(j=5;j-i>0;j--)
printf("*");
printf("
");
}
}
运行结果为: ______
1. #include"string.h"
#include”stdio.h”
main()
{
char str1[50],str2[50],str3[50];
gets(str1);
gets(str2);
if(strcmp(str1,str2)<0)
{
strcpy(str3,str1);
strcpy(str1,str2);
strcpy(str2,str3);
}
puts(str1);
puts(str2);
}
运行程序时输入的字符串为:"ABCD"和"abcd"
程序运行结果为:______
2. #include
int f=1;
int fac(int n)
{f=f*n;
return f;
}
main()
{int i;
for(i=1;i<=4,i++)
{printf("%d!=%d
",i,fac(i));}
}
程序运行结果为: ______
3. #include"stdio.h"
char*fun(s,c)
char*s,c;
{char*p=NULL;
while(*s!=" ")
{if(*s==c)
{P=s;break;}
++s;
}
return p;
}
main()
{char s[100]="I am a teacher.",c="t",p;
P=fun(s,c);
if(p!=NULL)
{printf("%s
%s
",s,p);}
}
程序运行结果为: ______
五、5.程序设计题
0. 请编写符合如下要求的函数:
(1)对于任意输入的整数,计算并输出该整数的位数(例如,12345是5位数);
(2)输出该数的倒序数(例如,123415的倒序数是54321)
#include<stdio.h>
main()
{void fun(int);
int hum:
scanf("%d",&num);
fun(num);
}
/*fun函数定义如下:*/
六、6.填空题-单片机原理与接口技术
0. MCS-51单片机把______、______、并行口、串行口和定时器/计数器等集成在一个芯片上。
1. 可用作寄存器间接寻址的问址寄存器有______和______。
2. 执行下列指令组后,累加器的内容(A)=______H。寄存器的内容
(R1)=______H。
MOV A,#38H
ADD A,#45H
MOV R1,A
DA A
3. 已知片内RAM(34H)=44H,(35H)=55H,(36H)=66H,寄存器(R1)=35H,执行下列指令组后,寄存器(R1)=______H,((R1))=______H。
DEC R1
INC @R1
4. 如选择2组的工作寄存器,要求用位操作指令完成。
指令如下:______,______。
程序状态字PSW寄存器(地址DOH)各位内容如下: 
5. 8031单片机时钟频率为12MHz时,定时器最长定时时间为______mS。
6. 若8031单片机IE=9CH,1P=07H,则CPU能响应的优先权最高的中断源是______。
中断允许控制寄存器IE各位内容如下:
7. 32K字节的RAM 6264地址线的根数为______根。
七、7.改错题-单片机原理与接口技术
0. 下列程序欲完成重复执行LOOP开始的程序100次。
MOV R1,#64H
LOOP:
DEC R1
DJNZ R1,LOOP
错误:______
改正:_______
1. 下列程序是8031单片机时钟频率为12MHz,TO方式2,100μS定时的初始化程序。
MOV TMOD,#02H
MOV TH0,#100
MOV TL0,THO
SETB TR0
MOV IE,#82H

IE寄存器各位内容如前所示。
错误:______
改正:______
八、8.程序阅读题-单片机原理与接口技术
0. 已知8031单片机时钟频率为12MHz,则执行子程序:
MOV R7,#199 ;1个机器周期
NOP ;1个机器周期
LOOP:NOP ;1个机器周期
NOP ;1个机器周期
DJNZ R7,LOOP ;2个机器周期
RET ;2个机器周期
所需的时间为______μS(精确到1μS);
子程序返回后,R7=______。
1. 若8031单片机时钟频率为6MHz,在P1.0口接一个LED发光二极管,P1.0为低电平时点亮,运行以下程序后LED亮暗的周期为______秒,点亮的时间为______秒。
ORG 0000H
LJMP BEG
ORG 001BH
DJNZ R7,RRT
MOV R7,#200
CPL P1.0
RRT:RETI
BEG:MOV TMOD,#20H
MOV TH1,#6
MOV TL1,#6
SETB TR1
MOV IE,#88H
SJMP $
提示:TMOD、TCON和IE寄存器各位内容如前所示。
九、9.程序设计题-单片机原理与接口技术
0. 在DATA1为首址的片外RAM中存放一组单字节数据,以ODH为结束符。欲统计该数组长度(不包括结束符),存入R7中,并将原数据区域清零,保留结束符。试补全下列程序。
MOV R7,#00H
MOV DPTR,#DATA1
十、10.微型计算机原理与接口技术-应用题
0. 
题43图
(1)62256的地址范围从 ① H到 ② H。
(2)现8255A A口,B 口均为方式0,输入;C口输出,方式控制字应为 ③ H。
(3)如需将A口的输入和B口的输入进行位对位与,其结果从C口输出,试补全下面程
序段:
MOV DPTR,# ④ H;8255A A口地址,没有用到的地址线为1
MOVX A,@DPTR
INC DPTR
MOV R2, ⑤
MOVX A, ⑥
ANL A, ⑦
INC ⑧
MOVX @DPTR,A
附:8255A方式控制字各位含意: 
①______; ②______; ③______; ④______;
⑤______;⑥______;⑦______;⑧______。
