1、全国自考(微型计算机原理与接口技术)模拟试卷 6 及答案与解析一、单项选择题1 以下集成块型号中属于 MCS-96 系列单片机型号的是( )(A)83C51FB(B) 80C196KR(C) 83C52(D)83C51FA2 字符9的 ASCII 码值是( )(A)55(B) 54(C) 56(D)573 下面输入整型变量格式的语句是( )(A)scanf(“%f“ ,b);(B) scanf(“%d“,b);(C) scanf(“%c“,b) ;(D)scanf(“%s“,b);4 若 int a10;则对数组正确引用的是( )(A)a10-10(B) a10(C) a2*5(D)a9-10
2、5 下列程序段的执行结果是( ) int x=3 : while(x =5) printf(“%d“,x-3);x+;(A)0(B) 112(C) 123(D)126 对下面说明叙述正确的是( ) typedef struct stu int n;char ch8; student;(A)student 是结构体类型名(B) student 是结构体变量(C) typedef struct 是结构体类型(D)struct 是结构体类型名7 MCS-51 单片机只具备单一功能的 I/O 接口是( )(A)P0(B) P1(C) P2(D)P38 不是常用的汇编语言程序结构的是( )(A)顺序(B
3、)分支(C)循环(D)随机9 下面表示中断允许控制寄存器的是( )(A)TCON(B) IE(C) IP(D)SCON10 不是 MCS-51 单片机:I/O 的数据传输方式的是( )(A)无条件(B)查询(C)中断(D)DMA11 共阴极显示管显示字型“F”编码是( )(A)86H(B) 71H(C) 90H(D)FFH12 单片机 8031 的 ALE 引脚是 ( )(A)输出高电平(B)输出矩形脉冲,频率为 fosc 的 1/6(C)输出低电平(D)输出矩形脉冲,频率为 fosc 的 1/213 对于 8031 单片机,其内部 RAM( )(A)只能位寻址(B)既可位寻址又可字节寻址(C
4、)只能字节寻址(D)少部分只能位寻址14 单片机的堆栈指针 SP 始终是指示( )(A)堆栈底(B)堆栈顶(C)堆栈地址(D)堆栈中间位置15 在 MCS-51 指令中,下列指令中无条件转移指令是( )(A)LCALL addr16(B) DJNZ direct.rel(C) SJMP rel(D)ACALL addr1116 下列指令能使 R0 低 4 位不变,高 4 位置 F 的是 ( )(A)ANL R0,#0F0H(B) ORL R0,#0F0H(C) ORL 0,#0FH(D)ORL 00H,#0F0H二、填空题17 intx=5,n=5;则表达式 x+ =n+的值是_。18 若 a
5、=7.5,b=2,c=3.6;表达式 abca|ab!cb 的值是_。19 下面程序的功能是,输出 100 以内能被 3 整除且个位数为 6 的所有整数。请填空。 main() int i,j; for(i=0;i 10;i+)j=i*10+6: if(_)continue;printf(“%d“,j); 20 下面程序的功能是输出 1 至 100 之间每位数的乘积大于每位数的和的数。请填空。 main() intn,k=1,s=0,m; for(n=1;n=100 ;n+) k=1;s=0;m=n ; while(m) k*=m%10;S+ =m%10; _; if(kS)printf(“%
6、d“ ,n); 三、改错题21 #include“stdio.h“ main() int a,b; scanf(“%d,%d“a,b); printf(“%dt%dn“,a ,b); 错误:_ 改正:_22 以下程序是给数组 a 所有元素赋值。 main() int a10,i; for(i=1;i10;i+) scanf(“%d“,ai) ; 错误:_ 改正:_23 程序的功能是计算 1100 之间的奇数和与偶数和。 main() intsum1=0,sum2=0,a; for(a=1;a =100 ;a+) if(a%2=0)sum1+ =a; else sum2+ =a; printf(
7、“%d,%d“,sum1,sum2); 错误:_ 改正:_24 下面程序是求 1+2+3+100 的和。 main() int sum,k; sum=0;k=1; while(k=100)sum=sum+k;k+; printf(“sum=%dn“,sum); 错误:_ 改正:_四、程序阅读题25 #includestdio.h main()int i,j; inta5=2,4,6,9,12,b6=2,3,4,6,8,9 ; for(i=0;i5;i+) for(j=0;j 6;j+) if(*(a+i)=*(b+j)printf(“%d“,*(a+i); printf(“n“); 程序运行结
8、果是:_26 #includestdio.h main() int c; while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+2);break; printf(“n“); 程序运行时,输入 2743CR,则运行结果是:_27 main() int i=3,*p1; int a3=15,30,45,*p2; pl= i;p2=a; pl=p2+2: printf(“%d,%dn“,*p1,*p2
9、); 程序运行结果是:_28 #includestdio.h int f(int x,int y) return(x y)?x:y); main() int a,b; scanf(“%d,%d“ ,a ,b); printf(“%dn“,f(a,b); 程序运行时,从键盘输入 9,8回车,则运行结果是:_五、程序设计题29 输入三个整数 x,y,z,请把这三个数由小到大输出。六、填空题-单片机原理与接口技术30 MCS-51 的堆栈只可设置在_,其最大容量为_。31 MCS-51 单片机的 P0 口和 P2 口除了可以进行数据的输入、输出外,通常还用来构建系统的_和_。32 执行下列程序段后,
10、(A)=_,(CY)=_。 MOV A,#C5H RL A33 假设两个一字节的十六进制数 9FH,81H 相加的和为 8 位二进制数,那么相加后其进位标志为_,溢出标志为_。34 已知(31H)=21H ,(32H)=04H,执行下列指令组后 (31H)=_,(32H)=_。 PUSH 31H PUSH 32H POP 31H POP 32H35 设(A)=38H ,R0=28H,(28H)=18H,执行下列程序后,(A)=_。 ORL A,#27H ANL A,28H XCHD A,R036 设定 T1 为计数器方式,工作方式 2,则 TMOD 中的值为_。37 MCS-51 内部的 SF
11、R 共有_个。七、改错题-单片机原理与接口技术38 下面程序将片内 40H-46H 单元内容的高位清零,保持低位不变。 ORG 1000H MOV R7,#07H MOV R0,40H L00P: MOV A,R0 ANL A,0FH MOV R0,AINC R0 DJNZ R7,LOOP SJMP $ END 错误:_ 改正:_39 已知:(R0)=4BH,(A)=84H,片内 RAM(4BH)=7FH,(40)=20H,执行程序后,(R0)=35H,(A)=7FH,(4BH)=20H ,(40H)=7FH MOV A,R0 MOV R0,40H MOV 40H,ACC MOV R0,#35
12、H 错误:_ 改正:_八、程序阅读题-单片机原理与接口技术40 下面程序是在_中存放一个压缩的 BCD 码,将它拆成二个 BCD 字节,结果存于_开始的单元中(低位在前) MOV R0,#SUM MOV A,R2 ANL A,#0FH MOV R0,A MOV A,R2 ANL A,#0F0H SWAP A INC R0 MOV R0,A RET41 以下程序是将存于外部 RAM_开始的 50H 数据传送到_的区域。 MOV DPTR,#8000H MOV R0,#10H MOV R2,#50H L00P:MOVX A,DPTR MOVX R0,A INC DPTR INC R0 DJNZ R
13、2,LOOP RET九、程序设计题-单片机原理与接口技术42 RAM 中 60H 单元内存有一个十六进制数,把这个数转换为 BCD 码的十进制数,BCD 码的十位和个位放在累加器 A 中,百位放在 R6 中。十、微型计算机原理与接口技术-应用题43 如下图所示,用 8255A 芯片扩展单片机的 I/O 口,8255 的 A 口作输入,A 口的每一位接一个开关,用 B 口作为输出,输出的每一位接一个发光二极管。现要求某个开关接高电平(为 1)时,相应位上的发光二极管就亮(输出低电平 0)。设 8255的 A 口地址为 70H,B 口地址为 71H,C 口地址为 72H,控制口地址为 73H。完成
14、下面程序填空。 START:MOV DFTR , MOV A, MOVX ,A MOV DPTR, MOVX A , CPL INC MOVX DPTR, AJMP START 答:_;_;_;_; _;_;_;_。全国自考(微型计算机原理与接口技术)模拟试卷 6 答案与解析一、单项选择题1 【正确答案】 B2 【正确答案】 D3 【正确答案】 B4 【正确答案】 A【试题解析】 注意 a10数组最大下标是 9。5 【正确答案】 D【试题解析】 x=3,4,5 时循环,对应的输出为 0,1,2。6 【正确答案】 B7 【正确答案】 B8 【正确答案】 D【试题解析】 顺序、分支和循环是结构化程
15、序语言的特点。9 【正确答案】 B10 【正确答案】 D【试题解析】 DMA 是直接存储,单片机不支持 DMA。11 【正确答案】 B12 【正确答案】 B13 【正确答案】 D14 【正确答案】 A15 【正确答案】 C16 【正确答案】 D二、填空题17 【正确答案】 10【试题解析】 算术运算高于赋值运算。18 【正确答案】 0【试题解析】 注意运算次序是:!关系逻辑与逻辑或。19 【正确答案】 j%3!=0【试题解析】 注意被 3 整除的表达式。20 【正确答案】 m/=10【试题解析】 这里取出每位数的表达式。三、改错题21 【正确答案】 错误:scanf(“%d,%d“a,b);
16、改正:将其修改为 scanf(“%d,%d“a ,b);【试题解析】 a,b 不是地址, scanf 函数格式不对。22 【正确答案】 错误:for(i=1;i10;i+) 改正:将其修改为 for(i=0;i10;i+)【试题解析】 循环初始条件不对。23 【正确答案】 错误:if(a%2=0) 改正:将其修改为 if(a%2=0)【试题解析】 if 语句表达式错误。24 【正确答案】 错误:sum=sum+k;k+; 改正:将其修改为sum=sum+k ;k+;【试题解析】 循环体是复合语句四、程序阅读题25 【正确答案】 2469【试题解析】 找出 a 和 b 数组中相同的元素,并输出,
17、即 2,4,6,9。26 【正确答案】 66877【试题解析】 输入 2743 是字符,2 对应输出 66,7 没有输出,4 对应输出 8,3对应输出 77,所以输出 66877。27 【正确答案】 45,15【试题解析】 p1 最后指向元素 45,p2 指向元素 15,所以输出 45,15。28 【正确答案】 9【试题解析】 f 函数的功能是返回一个较大的数,因此是 9。五、程序设计题29 【正确答案】 main() int x,y,z,t; scanf(“%d%d%d“,&x, &y,&z) ; if(xy) t=x;x=y ;y=t ;/* 交换 x,y 的值*/ if(xz) t=z;
18、z=x ;x=t ;/* 交换 x,z 的值*/ if(yz) t=y;y=z;z=t;/* 交换 z,y 的值*/ printf(“small to big:%d%d%dn“,x,y,z); 六、填空题-单片机原理与接口技术30 【正确答案】 内 RAM 低 128B 区 128B31 【正确答案】 数据总线 地址总线32 【正确答案】 8BH(或 10001011B) 不影响【试题解析】 循环移位不影响标志位。33 【正确答案】 1 134 【正确答案】 04H 21H【试题解析】 堆栈操作是后进先出。35 【正确答案】 18H36 【正确答案】 60H(高位为 4 即可)37 【正确答案
19、】 18七、改错题-单片机原理与接口技术38 【正确答案】 错误:MOV R0,40H 改正:MOV R0,#40H【试题解析】 立即数表达错误。39 【正确答案】 错误:MOV 40H,ACC 改正:MOV 40H,A【试题解析】 前面用 A,后面要一致。八、程序阅读题-单片机原理与接口技术40 【正确答案】 R2 SUM【试题解析】 MOV R0,#SUM ;存放结果的开始单元 MOV A,R2 ;取压缩的 BCD 码 ANL A,#0FH ;屏蔽高四位 MOV R0,A ;存放 SUM 中 MOV A, R2 ;再次取压缩的 BCD 码 ANL A,#0F0H ;屏蔽低四位 SWAP A
20、 ;交换高低四位数据 INC R0 ;SUM 开始的下一个存储单元 MOV R,A ;存放结果 RET 41 【正确答案】 800014 001014【试题解析】 MOV DPTR,#8000H ;外部开始单元 MOV R0,#10H ;目的开始单元 MOV R2,#50H ;数据长度 LOOP: MOVX A,DPTR ;开始传送 MOVX R0,A INC DPTR INC R0 ;不为 0 继续 DJNZ R2,LOOP RET九、程序设计题-单片机原理与接口技术42 【正确答案】 ORG 2200H MOV A,60H MOV B,#64H DIV AB MOV R6,A MOV A,#0AH XCH A,B DIV AB SWAP A ORL A,B SJMP $ END十、微型计算机原理与接口技术-应用题43 【正确答案】 #72H#90HDPTR#70HDPTRADPTRA