全国自考(微型计算机原理与接口技术)模拟试卷8
一、1.单项选择题
0. 以下集成块型号中属于8位系列单片机型号的是( )
A.80C196MC
B.80C196KR
C.80196KC
D.83C51FC
1. 以下说法不正确的是( )
A.C语言具有一些汇编语言的功能
B.C语言是面向对象的程序设计语言
C.C语言具有多种存储类型
D.C语言具有预处理功能
2. inta=30,b=20,c=10,d;d=a>b>c;则d的值是( )
A.10
B.1
C.30
D.0
3. 以下正确的函数定义形式是( )
A.double fun(int x;int y)
B.double fun(int x,int y)
C.double fun(int x,int y);
D.double fun(int x,y);
4. 对于循环for(i=1;0;i++)可以认为是( )
A.逻辑错误
B.语法错误
C.不进入循环
D.死循环
5. fscanf函数的正确调用形式是( )
A.fscanf(fp,格式字符串,输出列表);
B.fscanf(格式字符串,输出列表,fp);
C.fscanf(格式字符串,文件指针,输出列表);
D.fscanf(文件指针,格式字符串,变量地址列表);
6. MCS-51布尔处理机的存储空间指的是( )
A.00H~0FH
B.10H~1FH
C.20H~2FH
D.30H~3FH
7. 不影响程序状态字.PSW的指令关键字是( )
A.ADD
B.ADDC
C.SUBB
D.RRC
8. 下面不属于中断处理过程的是( )
A.保护现场与恢复现场
B.开中断与关中断
C.中断向量
D.中断服务与中断返回
9. MCS-51单片机的定时器/计数器工作方式1是( )
A.16位计数器结构
B.8位计数器结构
C.13位计数器结构
D.2个8位计数器结构
10. 用户可以直接使用的8031单片机I/O接口是( )
A.P0
B.P2
C.P1
D.P3
11. 逻辑“异或”操作指令的助记符是( )
A.ORL
B.ANL
C.XRL
D.MOV
12. 短转移指令的助记符是( )
A.AJMP
B.ANL
C.SJMP
D.LJMP
13. 
14. 执行如下三条指令后,30H单元的内容是( ) MOV R1,#30H MOV 40H,#0EH MOV @R1,40H
A.40H
B.0EH
C.30H
D.FFH
15. 下列指令判断若累加器A的内容不为0就转LP的是( )
A.JB A,LP
B.JNZ A,LP
C.JZ LP
D.CJNE A,#0,LP
二、2.填空题
0. inta,b;则表达式(a=2,b=5,a++,b++,a+b)的值是______。
1. 当a=3,b=2,c=1时,表达式f=a>b>c的值是______。
2. 从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{float s,gmax,gmin;
scanf("%f,"&s);
gmax=s;gmin=s;
while(s>=0)
{if(s>gmax)gmax=s;
if(______)gmin=s;
scanf("%f",&s);}
printf("gmax=%f
gmin=%f
"gmax,gmin);}
3. 以下程序是用来统计正整数的每位数字中零的个数,并求每位数字中最大者。请填空。
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
",count,max);
三、3.改错题
0. 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]);
}
错误:______
改正:______
1. 求1到n的自然数之和的函数。
#include"stdio.h"
int sum(int n)
{int k,s=0;
for(k=1;k<10;k++)
s=s+k:
return s;
}
错误:______
改正:______
2. struct abc
{char a[20]={0};
char b;}
main()
{struct abc studl[10];
int a;
for(a=0;a<10;a++)
scanf("%s",a);
}
错误:______
改正:______
3. #include"stdio.h"
main()
{FILE*I=fp;char ch;
if((fp=fopen("test.txt","w"))==NULL)
{printf("cannot open file
");exit(0);}
ch=getchar();
while(ch!="$")
{fputc(ch,fp);putchar(ch);
ch=getchar();}
fclose(*fp);
}
错误:______
改正:______
四、4.程序阅读题
0. #include"stdio.h"
main()
{int a,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d",a,b);
}
程序运行结果是:______
1. #include<stdio.h>
main()
{int x;
scanf("%d",&x);
if(x>=60)printf("pass");
else printf("fail");
}
程序运行时输入60<回车>,则程序运行结果是:______
2. #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);
}
程序运行结果是:______
3. #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);}
程序运行结果是:______
五、5.程序设计题
0. 编制程序,输入n个整数(n从键盘输入,n>0),输出它们的偶数和。
六、6.填空题-单片机原理与接口技术
0. 8051内部并行口P0口直接作输出口时,必须外接______;并行口作输入口时,必须先______,才能读入外设的状态。
1. MCS-51有一个全双工的______步串行口,有______种工作方式。
2. MCS-51单片机外部中断请求信号有电平方式和______,在电平方式下,当采集到INT0或INT1的有效信号为______时,激活外部中断。
3. 执行完本段指令后(A)=______(B)=______。
MOV A,#08H
MOV B,#45H
PUSH A
PUSH B
POP A
POP B
4. 已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,执行下列程序后,则(R0)=______(R2)=______。
MOV A,@R0
MOV R0,A
MOV A,@R0
ADD A,21H
ORL A,#21H
RL A
MOV R2 A
RET
5. 若(A)=86H,(PSW)=80H,则执行RRCA指令后,(A)=______。
6. 若PSW=00,执行下列程序后,CY=______。
MOV A,#0FBH
MOV PSW,#10H
ADD A,#7FH
7. 若由程序设定RS1.RS0=11,则工作寄存器R0~R7的直接地址为______。
七、7.改错题-单片机原理与接口技术
0. 下面程序段是将片外RAM20H~25H单元清零。
MOV R0,#20H
MOV R7,#06H
CLR A
LOOP: MOV @R0,A
INC R0
DJNZ,#3000H
错误:______
改正:______
1. 下面程序段是将ROM 3000H单元内容送R7。
MOV DPTR,#3000H
CLR A
MOVC A,@R7+DPTR
MOV R7,A
错误:______
改正:______
八、8.程序阅读题-单片机原理与接口技术
0. 下面程序的功能是______。
ORG 4000h
MOV R0,#20H
MOV R7,#0AH
MOV A,@R0
DEC R7
LOOP:INC R0
MOV 40H,@R0
CJNE A,40H,NEXT
NEXT:JC LOOP1
MOV A,40H
LOOP1:DJNZ R7,LOOP
MOV 41H,A
HERE:SJMP $
END
1. 下面程序的功能是______。
BTOD1:MOV A,R2
MOV B,#100
DIV AB
MOV R6,A
MOV A,#10
XCH A,B
DIV AB
SWAP A
ADD A,B
MOV R5,A
RET
九、9.程序设计题-单片机原理与接口技术
0. 使用定时/计数器0以工作方式2实现定时,在P1.0输出周期为200μs的连续方波。已知晶振频率fosc=6MHz。求计数初值,方式控制字,编制相应程序。(查询方式)
十、10.微型计算机原理与接口技术-应用题
0. 下面是两单片机通过串行口进行通信的程序。它能将甲机内部RAM 20H~27H单元的数据发送给乙机,完成程序并填空。
甲机发送程序如下:
MOV ① ;定时器T1工作在8位重装方式
MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
MOV ② ,#40H;语句的作用是设置串口控制字
MOV R0,#20H
MOV R7,#08H
START:MOV A.@R0
MOV ③ ,A;将累加器A中的内容送串口输出缓冲器
WAIT:JBC T1, ④ ;判断T1是否置位,其目的是检查一帧是否发送完
AJMP WAIT
CONT:INC R0
DJNZ R7,START
SJMP $
乙机接收程序如下:
MOV TMOD,#20H
MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
MOV SCON,#40H
MOV R0,#20H
MOV R7,#08H
SETB ⑤ ;将REN置位的目的是使允许中断接受
WAIT:JBC RI, ⑥ ;判断RI是否置位,其目的是检查一帧是否接受完
AJMP WAIT
READ:MOV A, ⑦ ;将串口输入缓冲器的内容送累加器A
MOV @R0,A
INC R0
DJNZ R7, ⑧
SJMP $
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
