全国自考(微型计算机原理与接口技术)模拟试卷1
-
42. 将4个单字节数放片内30H~39H,它们求和结果放在片内50H,51H单元。
-
43. 下面程序的功能是信号灯控制程序,利用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
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
-
41. 下面程序是对8255进行初始化,使其A口按方式0______,B口按方式0输出,C口上半部按方式0______,C口下半部按方式1输入。
-
40. 下面程序是将片外RAM 2000H开始的单元中______字节的数据,传送到片内RAM______开始的单元中去。
MAIN:MOV DPTR,#2000H
MOV R1,#20H
MOV R0,#05H
LOOP:MOVX A,@DPTR
MOV @R1,A
INC DPTR
INC R1
DJNZ R0,LOOP
RET
-
39. 设单片机的fosc=6MHz,下面程序是100ms延时的子程序。
DELAY:MOV R7,#64H
A0: MOV R6,#0FAH
DJNZ R6,$
DJNZ R7.DELAY
RET
错误:______
改正:______
-
38. 下面的程序完成5+4+3+2+1=15=0FH。
MOV R3,05H
CLR A
L00P: ADD A,R3
DJNZ @R3,LOOP
SJMP $
错误:______
改正:______
-
37. 80C51在作并行扩展时,如果采用全地址译码,扩展芯片的地址是______。
-
36. 存储器的地址线有14根,数据线有8根,其存储容量为______。
-
35. 当DAC 0832 D/A转换器的CS接8031的P2.0时,程序中0832的地址指针DPDR寄存器应置为______。
-
34. 执行下列程序后,(42H)=______,(55H)=______。
MOV SP,#40H
MOV 42H,#85H
MOV 55H,#37H
PUSH 42H
PUSH 55H
POP 42H
POP 55H
-
33. 设(SP=60H),(ACC=30H),(B=70H)。执行下列指令后,SP的内容为______,61H单元的内容为______。 PUSH ACC PUSH B
-
32. 使用8031单片机时EA引脚接______电平,因其内部无______存储器。
-
31. 12根地址线可选择______存储单元,32KB存储单元需要______根地址线。
-
30. 一个机器周期包含______个晶振周期。若品振周期的频率为12MHz,则机器周期为______。
-
29. 编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩并输出。
-
#include"stdio.h"
main()
{int i;
for(i=1;i<=5;i++)
{if(i%2)printf("*");
else continue;
printf("#");}
printf("#");}
程序运行结果是:______
:minor-latin'>,&x);}
printf("%d\n",sum);
}
程序运行时输入1 9 34 0<回车>,则程序运行结果是:______
-
#include<stdio.h>
main()
{int x,sum;
scanf("%d",&x);
sum=0;
while(x>0)
{if(x%2==0)sum+=x;
scanf("%d",&x);}
printf("%d\n",sum);
}
程序运行时输入1 9 34 0<回车>,则程序运行结果是:______
-
#include<stdio.h>
#define N 6
void main()
{int a[N]={4,5,8,3,6,1};
int j,i,t;
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(j=0;j<N;j++)printf("%5d",a[j]);
程序运行结果是:______
-
#include"stdio.h"
main()
{int i;
for(i=1;i<=5;i++)
{if(i%2)printf("*");
else continue;
printf("#");}
printf("#");}
程序运行结果是:______
:minor-latin'>,&x);}
printf("%d\n",sum);
}
程序运行时输入1 9 34 0<回车>,则程序运行结果是:______
-
24. 以下程序的输出结果是29,改正错误。
fun(int x,int y)
{x*x+y*y;}
main()
{int a;
a=fun(5,2);
printf("%d",a);
}
错误:______
改正:______
-
23. 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。
#include "stdio.h"
main()
{char c;
while((c=getchar())!='\n')
{if(c>='a'&&c<='z')
c=c-30;
if(c>'z'||c<='z'+2)
c=c-26;}
printf("%c",c);
}
错误:______
改正:______
-
main()
{
int a[3]={0,1,2};
int i;
scarf("%d",&a);
for(i=1;i<3;i++)a[0]=a[0]+a[i];
printf("a [0]=%d\n",a[0]);
}
错误:______
改正:______
-
main()
{
int a;
char ch;
ch="A":
scanf("%d",a);
printf("%c+%d=%c\n",ch,ch+a);
}
错误:______
改正:______
-
20. 输入两个整数,n1,n2(要求n1<n2),统计两整数范围内的素数的个数。请填空。
#include"math.h"
#include"stdio.h"
int prime(int x)
{int k;
for(k=2;k<=sqrt(x);k++)
if(x%k==0)return(0);
return(1)}
main()
{int a,b,j,n=0;
printf("\n请输入两个数:");
scanf("%d,%d",&a,&b);
if(a>b){______}
for(j=a;j<=b,j++)
if(prime(j))n++;
printf("a=%4d,b=%4d,n=%4d\n"a,b,n);}
-
19. 鸡兔共有30只,脚共有90个,下面程序是计算鸡兔各有多少只。请填空。
main()
{int x,y;
for(x=1:x<=29:x++)
{y=30-x;
if(______)printf("%d,%d\n",x,y);}
}
-
16. 一个EPROM的地址有A0-A11引脚,它的容量是( )
- A.2KB
- B.4KB
- C.11KB
- D.12KB
-
18. 若a=5,b=2,c=1,则表达式a-b<c||b==c的值是______。
-
17. 若int s=6;则表达式s%2+(s+1)%2的值是______。
-
14. 若设串行控制寄存器SCON=40H,则串行口的工作方式是( )
- A.方式0
- B.方式1
- C.方式2
- D.方式3
-
15. 地址指针DPTR是( )
- A.4位的专用寄存器
- B.8位的专用寄存器
- C.16位的专用寄存器
- D.32位的专用寄存器
-
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.寄存器寻址
-
11. 控制串行口工作方式的寄存器是( )
- A.TCON
- B.PCON
- C.SCON
- D.TMOD
-
9. MCS-51外部中断1固定对应的中断入口地址为( )
- A.0003H
- B.000BH
- C.0013H
- D.001BH
-
10. 在扩展系统中,能够提供地址信号的高8位的端口是( )
- A.P0口
- B.P1口
- C.P2口
- D.P3口
-
8. 单片机的指令地址存放在( )
- A.PSW
- B.DPTR
- C.SP
- D.PC
-
7. 8051与8751的区别是( )
- A.内部数据存储器的数目不同
- B.内部数据存储器的类型不同
- C.内部程序存储器的类型不同
- D.内部的寄存器的数目不同
-
5. 变量的指针是( )
- A.变量的首地址
- B.变量的值
- C.变量的名
- D.变量的一个标志
-
6. 打开文件语句fp=fopen("a.dat","r");中fp的类型是( )
- A.File *
- B.file
- C.File
- D.FILE *
-
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
-
2. 用8位(bit)二进制能够表示的有符号数的范围是( )
- A.-127~+128
- B.-128~+127
- C.-127~+127
- D.-128~+128
-
1. 以下集成块型号中,不属于MCS-51系列单片机型号的是( )
- A.8094BH
- B.83C452
- C.80C32
- D.8051AH