1、全国自考(微型计算机原理与接口技术)模拟试卷 8 及答案与解析一、单项选择题1 以下集成块型号中属于 8 位系列单片机型号的是( )(A)80C196MC(B) 80C196KR(C) 80196KC(D)83C51FC2 以下说法不正确的是( )(A)C 语言具有一些汇编语言的功能(B) C 语言是面向对象的程序设计语言(C) C 语言具有多种存储类型(D)C 语言具有预处理功能3 inta=30,b=20,c=10,d;d=a bc;则 d 的值是( )(A)10(B) 1(C) 30(D)04 以下正确的函数定义形式是( )(A)double fun(int x;int y)(B) do
2、uble fun(int x,int y)(C) double fun(int x,int y);(D)double fun(int x,y);5 对于循环 for(i=1;0;i+)可以认为是( )(A)逻辑错误(B)语法错误(C)不进入循环(D)死循环6 fscanf 函数的正确调用形式是( )(A)fscanf(fp,格式字符串,输出列表 );(B) fscanf(格式字符串,输出列表,fp);(C) fscanf(格式字符串,文件指针,输出列表);(D)fscanf( 文件指针,格式字符串,变量地址列表);7 MCS-51 布尔处理机的存储空间指的是( )(A)00H0FH(B) 10
3、H1FH(C) 20H2FH(D)30H3FH8 不影响程序状态字PSW 的指令关键字是( )(A)ADD(B) ADDC(C) SUBB(D)RRC9 下面不属于中断处理过程的是( )(A)保护现场与恢复现场(B)开中断与关中断(C)中断向量(D)中断服务与中断返回10 MCS-51 单片机的定时器/计数器工作方式 1 是 ( )(A)16 位计数器结构(B) 8 位计数器结构(C) 13 位计数器结构(D)2 个 8 位计数器结构11 用户可以直接使用的 8031 单片机 I/O 接口是( )(A)P0(B) P2(C) P1(D)P312 逻辑“异或 ”操作指令的助记符是 ( )(A)O
4、RL(B) ANL(C) XRL(D)MOV13 短转移指令的助记符是( )(A)AJMP(B) ANL(C) SJMP(D)LJMP14 (A) (B)  (C)  (D) 15 执行如下三条指令后,30H 单元的内容是( ) MOV R1,#30H MOV 40H,#0EH MOV R1,40H (A)40H(B) 0EH(C) 30H(D)FFH16 下列指令判断若累加器 A 的内容不为 0 就转 LP 的是( )(A)JB A,LP(B) JNZ A,LP(C) JZ LP(D)CJNE A,#0,LP二、填空题17 inta,b;则表达式(a=2,b=
5、5,a+ ,b+,a+b)的值是_。18 当 a=3,b=2,c=1 时,表达式 f=abc 的值是_。19 从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。 main() float s,gmax,gmin; scanf(“%f,“ s); gmax=s;gmin=s; while(s=0) if(sgmax)gmax=s ; if(_)gmin=s; scanf(“%f“, s); printf(“gmax=%fngmin=%fn“gmax,gmin);20 以下程序是用来统计正整数的每位数字中零的个数,并求每位数字中最大者。请填空。 main()
6、unsigned long num,max,t; int count; count=max=0: scanf(“%ld“,num); do t=_; if(t=0)+count; else if(maxt)max=t ; num/=10; while(num); printf(“count=%d,max=%ldn“,count,max);三、改错题21 main() int a10,i; for(i=1;i =10;i+) Scanf(“%d“,ai); for(i=10;i =0;i- -) printf(“%d“,ai); 错误:_ 改正:_22 求 1 到 n 的自然数之和的函数。 #i
7、nclude“stdioh“ int sum(int n) int k,s=0; for(k=1;k10;k+) s=s+k:return s; 错误:_ 改正:_23 struct abc char a20=0; char b; main() struct abc studl10; int a; for(a=0;a 10;a+) scanf(“%s“,a); 错误:_ 改正:_24 #include“stdio.h“ main() FILE*I=fp;char ch ; if(fp=fopen(“test.txt“, “w“)=NULL) printf(“cannot open filen“
8、);exit(0); ch=getchar(); while(ch!=$) fputc(ch,fp) ;putchar(ch); ch=getchar(); fclose(*fp); 错误:_ 改正:_四、程序阅读题25 #include“stdio.h“ main() int a,b,d=241 ; a=d/100%9; b=(-1)(-1) ; printf(“%d, %d“,a,b); 程序运行结果是:_26 #includestdio.h main() int x; scanf(“%d“,x) ; if(x=60)printf(“pass“); else printf(“fail“);
9、 程序运行时输入 60回车,则程序运行结果是:_27 #includestdio.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 #includestdio.h main() int k=0; char c=A: do switch(c+) caseA:k+;break; caseB:k-; caseC:k+ =2;break; caseD:k=k%2;break; caseE:k=k*10;break; default:k=k/3; k+; whil
10、e(cG); printf(“k=%d“,k) ; 程序运行结果是:_五、程序设计题29 编制程序,输入 n 个整数(n 从键盘输入,n0),输出它们的偶数和。六、填空题-单片机原理与接口技术30 8051 内部并行口 P0 口直接作输出口时,必须外接_;并行口作输入口时,必须先_,才能读入外设的状态。31 MCS-51 有一个全双工的_步串行口,有_种工作方式。32 MCS-51 单片机外部中断请求信号有电平方式和_,在电平方式下,当采集到 INT0 或 INT1 的有效信号为 _时,激活外部中断。33 执行完本段指令后(A)=_(B)=_。 MOV A,#08H MOV B,#45H PU
11、SH A PUSH B POP A POP B34 已知(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 RET35 若(A)=86H ,(PSW)=80H,则执行 RRCA 指令后,(A)=_。36 若 PSW=00,执行下列程序后, CY=_。 MOV A,#0FBH MOV PSW,#10H ADD A,#7FH37 若由程序设定 RS1.RS0=11,则工作寄存器 R0R7 的直接地址为_。
12、七、改错题-单片机原理与接口技术38 下面程序段是将片外 RAM20H25H 单元清零。 MOV R0,#20H MOV R7,#06H CLR A LOOP: MOV R0,A INC R0 DJNZ,#3000H 错误:_ 改正:_39 下面程序段是将 ROM 3000H 单元内容送 R7。 MOV DPTR,#3000H CLR A MOVC A,R7+DPTR MOV R7,A 错误:_ 改正:_八、程序阅读题-单片机原理与接口技术40 下面程序的功能是_。 ORG 4000h MOV R0,#20H MOV R7,#0AH MOV A,R0 DEC R7 LOOP:INC R0 MO
13、V 40H,R0 CJNE A,40H,NEXT NEXT:JC LOOP1 MOV A,40H LOOP1:DJNZ R7,LOOP MOV 41H,A HERE:SJMP $ END41 下面程序的功能是_。 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九、程序设计题-单片机原理与接口技术42 使用定时/计数器 0 以工作方式 2 实现定时,在 P1.0 输出周期为 200s 的连续方波。已知晶振频率 fosc=6MHz。求计数初值,方式控制字,编
14、制相应程序。(查询方式)十、微型计算机原理与接口技术-应用题43 下面是两单片机通过串行口进行通信的程序。它能将甲机内部 RAM 20H27H单元的数据发送给乙机,完成程序并填空。 甲机发送程序如下: MOV ;定时器 T1 工作在 8 位重装方式 MOV TL1,#0F4H MOV TH1,#0F4H SETB TR1 MOV ,#40H ;语句的作用是设置串口控制字 MOV R0,#20H MOV R7,#08H START:MOV AR0 MOV ,A ;将累加器 A 中的内容送串口输出缓冲器 WAIT:JBC T1 , ;判断 T1 是否置位,其目的是检查一帧是否发送完 AJMP WA
15、IT 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 $ 答:_ ; _;_;_ ; _; _; _;_。全国自
16、考(微型计算机原理与接口技术)模拟试卷 8 答案与解析一、单项选择题1 【正确答案】 D2 【正确答案】 B【试题解析】 C 语句是结构化程序设计语言。3 【正确答案】 D【试题解析】 ab=1,1c=0。4 【正确答案】 B【试题解析】 C 是说明形式。5 【正确答案】 C【试题解析】 因为循环条件为 0,所以不进入循环。6 【正确答案】 D7 【正确答案】 C8 【正确答案】 A9 【正确答案】 C【试题解析】 中断向量是初始化过程。10 【正确答案】 A11 【正确答案】 C【试题解析】 P1 口没有第二功能。12 【正确答案】 C13 【正确答案】 C14 【正确答案】 C【试题解析】
17、 低电平表示无效。15 【正确答案】 B【试题解析】 MOV R1,40H 是关键语句,其含义是将片外 40H 单元中的内容送入片内 30H 单元中。 16 【正确答案】 D二、填空题17 【正确答案】 9【试题解析】 逗号表达式的结果是最后一个表达式的结果,因此 a+b=3+6。18 【正确答案】 0【试题解析】 ab=1,1c=0,所以 f=0。19 【正确答案】 sgmin【试题解析】 根据上下文分析,显然要判断 s 的内容是否为最小。20 【正确答案】 num%10【试题解析】 根据上下文可以看出 t 中存放的是每位数字,因此取出每位数字的表达式为 num%10。三、改错题21 【正确
18、答案】 错误:scanf(“%d“,ai) ; 改正:将其修改为 scanf(“%d“,&ai) ;【试题解析】 scanf 函数的格式不对。22 【正确答案】 错误:for(k=1;k10;k+) 改正:将其修改为 for(k=1;k=n;k+)【试题解析】 for 循环条件错误。23 【正确答案】 错误:char a20=0 ; 改正:将其修改为 char a20;【试题解析】 结构体不能赋初值。24 【正确答案】 错误:fclose(*fp) ; 改正:将其修改为 felose(fp);【试题解析】 关闭文件语句语法错误。四、程序阅读题25 【正确答案】 2,1【试题解析】 整数除法 2
19、41/100=2,2%9=2。逻辑运算中不为 0 为真。26 【正确答案】 pass【试题解析】 条件语句的使用。27 【正确答案】 8,-2【试题解析】 循环嵌套当 i=1,2,3,4,5 时 对应的 b=1,0,1,0,1 k+执行次数 2,1,2,1,228 【正确答案】 k=8【试题解析】 c 对应的内容是: A,B,C,D,E,F k 对应的内容是: 2,4, 7,2,21,8 这里要注意,没有 break;语句的 case 情况。 五、程序设计题29 【正确答案】 #includestdio.h void main() int i,n,x,sum=0 ; scanf(“%d“,n)
20、 ; for(i=1;i=n;i+) scanf(“%d“,x); if(x%2= =0)sum+=x; pfintf(“%dn“,sum); 六、填空题-单片机原理与接口技术30 【正确答案】 上拉电阻 将口锁存器置 131 【正确答案】 异 432 【正确答案】 脉冲方式 低电平【试题解析】 电平方式也称为低电平有效方式,脉冲方式也称其为下降沿有效。33 【正确答案】 45H 08H【试题解析】 注意后进先出。34 【正确答案】 36H F6H【试题解析】 MOV A,R0 MOV R0,A ;R0=36H MOV A, R0 ;A=34H ADD A,21H :A=34H+17H=5BH
21、 ORL A,#21H ;0101101100100001=01111011 RL A ;A=11110110=F6H MOV R2 A ;R2=F6H RET35 【正确答案】 C3H【试题解析】 PSW=80H,则 CY=1。若 A=10000110,则 RRC A 指令后,A=11000011。36 【正确答案】 1【试题解析】 ADD 指令不影响 CY。37 【正确答案】 181FH七、改错题-单片机原理与接口技术38 【正确答案】 错误:MOV R0,A 改正:MOVXR0, A【试题解析】 要使用片外数据传送指令39 【正确答案】 错误:MOVC A,R7+DPTR 改正:MOVC
22、 A,A+DPTR【试题解析】 R7 不能作变址寻址八、程序阅读题-单片机原理与接口技术40 【正确答案】 求存放在片内 20H 单元开始的 10 个无符号数中最小值。41 【正确答案】 二进制数到 BCD 码间的转换。九、程序设计题-单片机原理与接口技术42 【正确答案】 计数初值 X=256-50=206=0CEH,TMOD=02H 程序: MOV IE,#00H MOV TMOD #02H MOV TH0,#0CEH MOV TL0,#0CEH SET TR0LOOP: JBCTF0,LOOP1 AJMP LOOP LOOP1:CPL P1,0 AJMP LOOP十、微型计算机原理与接口技术-应用题43 【正确答案】 TMOD ,#20HSCONSBUFCONTRENREADSBUFWAIT