1、全国自考(微型计算机原理与接口技术)模拟试卷 1 及答案与解析一、单项选择题1 以下集成块型号中,不属于 MCS-51 系列单片机型号的是( )(A)8094BH(B) 83C452(C) 80C32(D)8051AH2 用 8 位(bit)二进制能够表示的有符号数的范围是( )(A)-127 +128(B) -128+127(C) -127+127(D)-128 +1283 下列选项中,合法的 C 语言关键字是( )(A)default(B) get(C) integer(D)VAR4 已知 char ch=B;则以下表达式的值是( ) ch=(ch=Ach =Z)?(ch+32):ch;(
2、A)A(B) a(C) b(D)Z5 变量的指针是( )(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)PC9 MCS-51 外部中断 1 固定对应的中断入口地址为( )(A)0003H(B
3、) 000BH(C) 0013H(D)001BH10 在扩展系统中,能够提供地址信号的高 8 位的端口是( )(A)P0 口(B) P1 口(C) P2 口(D)P3 口11 控制串行口工作方式的寄存器是( )(A)TCON(B) PCON(C) SCON(D)TMOD12 执行下列 3 条指令后,30H 单元的内容是( ) MOV R0,#30H MOV 40H,#0EH MOV R0,40H (A)40H(B) 30H(C) 0EH(D)FFH13 MOV C,00H 指令中源操作数的寻址方式是( )(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址14 若设串行控制寄存器 SCON
4、=40H,则串行口的工作方式是( )(A)方式 0(B)方式 1(C)方式 2(D)方式 315 地址指针 DPTR 是( )(A)4 位的专用寄存器(B) 8 位的专用寄存器(C) 16 位的专用寄存器(D)32 位的专用寄存器16 一个 EPROM 的地址有 A0-A11 引脚,它的容量是( )(A)2KB(B) 4KB(C) 11KB(D)12KB二、填空题17 若 int s=6;则表达式 s%2+(s+1)%2 的值是_。18 若 a=5,b=2,c=1,则表达式 a-bc|b=c 的值是 _。19 鸡兔共有 30 只,脚共有 90 个,下面程序是计算鸡兔各有多少只。请填空。 mai
5、n() int x,y; for(x=1:x=29 :x+)y=30-x; if(_)printf(“%d,%dn“,x,y); 20 输入两个整数,n1,n2(要求 n1n2),统计两整数范围内的素数的个数。请填空。 #include“mathh“ #include“stdioh“ 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(ab)_ for(j
6、=a;j=b,j+) if(prime(j)n+; printf(“a=%4d,b=%4d,n=%4dn“a ,b,n);三、改错题21 #includestdio.h main() int a; char ch; ch=“A“: scanf(“%d“,a); printf(“%c+%d=%cn“,ch,ch+a); 错误:_ 改正:_22 main() int a3=0,1,2; int i; scarf(“%d“, a); for(i=1;i 3;i+)a0=a0+ai; printf(“a 0=%dn“,a0); 错误:_ 改正:_23 下面程序的功能是将小写字母变成对应大写字母后的第二
7、个字母。其中 y 变成A,z 变成 B。#include “stdio.h“ main() char c; while(c=getchar()!=n) if(c=a c =z) c=c-30; if(cz|c=z+2) c=c-26; printf(“%c“,c); 错误:_ 改正:_24 以下程序的输出结果是 29,改正错误。 fun(int x,int y) x*x+y*y; main() int a; a=fun(5,2); printf(“%d“,a) ; 错误:_ 改正:_四、程序阅读题25 #includestdio.h #define N 6 void main()int aN=
8、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(ajaj+1)t=aj;aj=aj+1;aj+1=t ; for(j=0;j N;j+)printf(“%5d“ ,aj); 程序运行结果是:_26 #includestdio.h main() int x,sum; scanf(“%d“,x) ; sum=0; while(x0) if(x%2=0)sum+=x; scanf(“%d“,x) ; printf(“%dn“,sum); 程序运行时输入 1 9 3 4 0回车,则程序运行结果是:_27 #include
9、“stdio.h“ main() int i; for(i=1;i=5;i+) if(i%2)printf(“*“); else continue; printf(“#“); printf(“#“); 程序运行结果是:_28 #includestdio.h main() int n,sum=0 ; scanf(“%d“,n) ; dosum=sum+(n%10)*(n%10); n=n/10;while(n); printf(“sum=%d“,sum) ; 程序运行时,从键盘输入 2345回车,运行结果是:_五、程序设计题29 编写程序,从键盘输入 6 名学生的 5 门成绩,分别统计出每个学生
10、的平均成绩并输出。六、填空题-单片机原理与接口技术30 一个机器周期包含_个晶振周期。若品振周期的频率为 12MHz,则机器周期为_。31 12 根地址线可选择_存储单元,32KB 存储单元需要 _根地址线。32 使用 8031 单片机时 EA 引脚接_电平,因其内部无_存储器。33 设(SP=60H) ,(ACC=30H),(B=70H) 。执行下列指令后, SP 的内容为_,61H 单元的内容为_。 PUSH ACCPUSH B34 执行下列程序后,(42H)=_,(55H)=_。 MOV SP,#40H MOV 42H,#85H MOV 55H,#37H PUSH 42H PUSH 55
11、H POP 42H POP 55H35 当 DAC 0832 D/A 转换器的 CS 接 8031 的 P2.0 时,程序中 0832 的地址指针DPDR 寄存器应置为 _。36 存储器的地址线有 14 根,数据线有 8 根,其存储容量为_。37 80C51 在作并行扩展时,如果采用全地址译码,扩展芯片的地址是_。七、改错题-单片机原理与接口技术38 下面的程序完成 5+4+3+2+1=15=0FH。 MOV R3,05H CLR A L00P: ADD A,R3 DJNZ R3,LOOP SJMP $ 错误:_ 改正:_39 设单片机的 fosc=6MHz,下面程序是 100ms 延时的子程
12、序。 DELAY: MOV R7,#64H A0: MOV R6,#0FAH DJNZ R6,$ DJNZ R7DELAY RET 错误:_ 改正:_八、程序阅读题-单片机原理与接口技术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 RET41 下面程序是对 8255 进行初始化,使其 A 口按方式 0_,B 口按方式 0 输出,C
13、口上半部按方式 0_,C 口下半部按方式 1 输入。九、程序设计题-单片机原理与接口技术42 将 4 个单字节数放片内 30H39H,它们求和结果放在片内 50H,51H 单元。十、微型计算机原理与接口技术-应用题43 下面程序的功能是信号灯控制程序,利用 P1 口控制八个发光二极管的亮与灭(设输出低电平时,对应发光二极管被点亮)。阅读程序完成说明语句。 ORG 0000H AJMP MAIN ;转主程序 ORG 001 BH ;该地址是的地址 AJMP CONT ;当出现 时,才会执行到该指令 ORG 0100H MAIN: MOV TMOD,#10H ;执行该指令的目的是 MOV TH1,
14、#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
15、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 答:_ ; _;_;_ ; _; _; _;_。全国自考(微型计算机原理与接口技术)模拟试卷 1 答案与解析一、单项选择题1 【正确答案】 A【试题解析】 要熟记单片机型号。2 【正确答案
16、】 C【试题解析】 8 位二进制数表示的范围。3 【正确答案】 A【试题解析】 C 语言关键字。4 【正确答案】 C【试题解析】 条件表达式。5 【正确答案】 A【试题解析】 指针的概念。6 【正确答案】 D【试题解析】 文件类型。7 【正确答案】 C【试题解析】 注意不同芯片的内部程序存储器。8 【正确答案】 D【试题解析】 PC 是存放指令地址的。9 【正确答案】 C【试题解析】 MCS-51 外部中断 1 入口地址固定。10 【正确答案】 C【试题解析】 P2 口是系统扩展口。11 【正确答案】 C【试题解析】 注意不同接口的工作方式寄存器。12 【正确答案】 C【试题解析】 寄存器间接
17、寻址。13 【正确答案】 A【试题解析】 指令的寻址方式。14 【正确答案】 B【试题解析】 串行口的工作方式。15 【正确答案】 C【试题解析】 注意专用寄存器的位数。16 【正确答案】 B【试题解析】 不同引脚的程序存储器的寻址空间。二、填空题17 【正确答案】 1【试题解析】 6 除 2 余 0,7 除 2 余 1,0+1=1。18 【正确答案】 0【试题解析】 先算术,后逻辑,再比较运算。19 【正确答案】 2*x+4*y= =9020 【正确答案】 j=a;a=b;b=j【试题解析】 注意循环条件。三、改错题21 【正确答案】 错误:scanf(“%d“,a); 改正:将其修改为 s
18、canf(“%d“,a);【试题解析】 scanf 函数格式错误22 【正确答案】 错误:scanf(“%d“,a); 改正:将其修改为 scanf(“%d“,a0) ;【试题解析】 scanf 函数格式错误,a 是数组名,不是数组元素23 【正确答案】 错误:if(c z|c=z+2) 改正:将其修改为 if(cz c=z+2)【试题解析】 if 语句表达式错误24 【正确答案】 错误:x*x+y*y; 改正:将其修改为 return(x*x+y*y);【试题解析】 fun 函数没有返回值四、程序阅读题25 【正确答案】 1 3 4 5 6 8【试题解析】 双循环语句是排序过程。26 【正确
19、答案】 4【试题解析】 1 9 3 4 0 每个数据之间都有空格,在条件语句中只有偶数相加。所以只有 4。27 【正确答案】 *#*#*#【试题解析】 当 i=1,3,5 时各输出*#,最后输出#。28 【正确答案】 54【试题解析】 n=2345,n%10=5 ,sum=25 n=n/10,n%10=4,sum=25+16 n=n/10,n%10=3,sum=25+16+9 n=n/10,n%10=2,sum=25+16+9+4=54 n=2 时结束循环。 五、程序设计题29 【正确答案】 #includestdio.h main() int i,j; float grade,sum,ave
20、; for(i=1;i =6;i+)sum=0; for(j=1;j=5;j+) scanf(“%f“,grade); sum+=grade; ave=sum/5; prinff(“NO.%d ave=%5.2fn“,i,ave); 六、填空题-单片机原理与接口技术30 【正确答案】 12 1s31 【正确答案】 4K 15【试题解析】 2 13=4096/1024=4K。32K=32210=2223210=215 因此需要 15 根地址线。32 【正确答案】 低 程序33 【正确答案】 62H 30H【试题解析】 SP 先加 1,所以 SP=62。而 61H=30H。34 【正确答案】 37
21、H 85H【试题解析】 注意先进后出。35 【正确答案】 FE00H【试题解析】 作为选通,低电位有效,P2 口作为高 8 位地址,所以是 FE00H。36 【正确答案】 16KB【试题解析】 214/1024=16KB ,B=8bit 是字节。37 【正确答案】 唯一的【试题解析】 就是采用全地址译码。七、改错题-单片机原理与接口技术38 【正确答案】 错误:MOV R3,05H 改正:MOV R3,#05H【试题解析】 05H 是存储单元的地址,改成立即数 #05H39 【正确答案】 错误:DJNZ R7,DELAY 改正:DJNZ R7,A0【试题解析】 DELAY 是子程序的入口地址,
22、A0 是循环入口地址八、程序阅读题-单片机原理与接口技术40 【正确答案】 5 20H【试题解析】 1,2,3 句是初始化,DPTR=2000H,R1=20H(片内存储单元),R0=05H(设置传送数据个数)。4,5 句开始传送。 6,7 句片外和片内地址加一。8句 R0 中不为 0 继续传送。41 【正确答案】 输入 输出【试题解析】 95H=10010101,注意前 4 位 1001,第一位是特征位必须为 1,00表示选择 A 口为方式 0,最后的 1 为选择 A 口输出方式。后 4 为 1001,第一位 1为选择 C 口 D7D4 为输入方式,第二位 0 选择 B 口方式 0,第三位 0 选择 B 口为输出方式,最后一位 1 选择 C 口 D0D3 为输入方式。九、程序设计题-单片机原理与接口技术42 【正确答案】 ORG 1000H MOV R7,#0AH MOV R0,#30H CLR A MOV 51H,A LOOP: ADD A,R0 JNC NEXT INC 51H NEXT: INC R0 DJNZ R7,LOOP MOV 50H,A SJ十、微型计算机原理与接口技术-应用题43 【正确答案】 T1 的中断入口中断设定 T1 的工作方式07H0启动定时器 T1 工作第 2 位09H