2012年微型计算机原理与接口技术自考题模拟(2):2012年微型计算机原理与接口技术自考题模拟。本试卷总分100分;共有10类型题目
一、单项选择题 ,每小题1分,共16分,在每小题列出的四个备选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。
1.以下集成块型号中不属于MCS-96系列单片机型号的是( )
A.8095BH
B.83C51FB
C.80C198
D.80C196KB
2.用8位(bit)二进制能够表示的无符号数的范围是( )
A.253
B.254
C.255
D.256
3.当x为大于1的奇数时,值为0的表达式是( )
A.x%2==1
B.x%2==0
C.x%2!==0
D.x/2
4.若inti,j;则for(i=j=0;i<10&&j<8;i++,j+ =3)控制的循环体执行的次数是( )
A.9
B.8
C.2
D.3
5.若定义char s[10];不表示s[1]的地址的是( )
A.s+1
B.s++
C.&s[0]+1
D.&s[1]
6.对以下定义的表述中,正确的是( )
struct node
{int num;char name[10];}stud;
A.stud是一个结构体变量
B.stud是一个结构体类型
C.node是一个结构体数据
D.node是一个结构体变量
7.MCS-51内部RAM字节数是( )
A.128
B.256
C.107
D.4K
8.带进位的循环移位指令是( )
A.RL
B.RR
C.CLR
D.RLC
9.下面不是中断响应条件的是( )
A.CPU处于开中断状态
B.低级中断源
C.高级中断源
D.一条指令执行完毕
10.8051定时器/计数器T0工作方式0和方式1的区别是( )
A.前者是16位后者是13位
B.前者是16位后者是8位
C.前者是13位后者是8位
D.前者是13位后者是16位
11.协调CPU与外围设备之间的数据传送的是( )
A.三态门
B.锁存器
C.缓冲器
D.寄存器
12.MCS-51的程序计数器PC为16位计数器,因此其寻址范围是( )
A.8K
B.16K
C.32K
D.64K
13.在扩展系统中,能够提供地址信号的高8位的端口是( )
A.P0口
B.P1口
C.P2口
D.P3口
14.在堆栈中压入一个数据时( )
A.先压栈,再令SP+1
B.先令SP+1,再压栈
C.先压栈,再令SP-1
D.先令SP-1,再压栈
15.8031的外部程序存储器常采用的芯片是( )
A.2764
B.8255
C.74LS06
D.2114
16.共阴极LED数码管显示字符”2”的段码是( )
A.02H
B.FEH
C.5BH
D.A4H
二、填空题每小题2分,共8分请在每小题的空格中填上正确答案。
17.若int s=6;则表达式s%2+(s+1)%2的值是______。
18.若a=5,b=2,c=1,则表达式a-b<c||b==c的值是______。
19.鸡兔共有30只,脚共有90个,下面程序是计算鸡兔各有多少只。请填空。
main()
{int x,y;
for(x=1:x<=29:x++)
{y=30-x;
if(______)printf("%d,%d ",x,y);}
}
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(" 请输入两个数:");
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 "a,b,n);}
三、改错题每小题2分,共8分每小题只有一处错误或不妥。请指出。并将其改正。
21.main()
{
int x=1;y;
y=x++:
printf("y=%d",y);
int z;
z=++x:
printf("z=%d ",z);
错误:______
改正:______
22.main()
{int s,i;
for(s=0,i=1;i<3;i++,s+ =i)
printf("%d ",&s);
}
错误:______
改正:______
23.int ff(int n)
{
static int f=1;
f=f*n:
return f;
}
main()
{int i;
for(i=1;i<=5;i++);
printf("%d ",ff(i));
}
错误:______
改正:______
24.下面程序的输入数据的形式是Input number:4.5 2<回车>
main()
{int a;float f;
printf(" Input number:");
scanf("%f,%d",&f,&a);
printf(" f=%f,a=%d ”,f,a);
}
错误:______
改正:______
四、程序阅读题每小题2分,共8分请阅读下列程序。写出程序运行结果。
25.#include<stdio.h>
main()
{int y;
for(y=5;y>0;y--)
{if(y%2==0)continue;
printf("%d",y);
}
}
程序运行结果是:______
26.#include<stdio.h>
int main()
{int i,n;
double fact;
scanf("%d",&n);
fact=1;
for(i=1;i<=n;i++)
fact* =i:
printf("%.0f ",fact);
}
程序运行时输入5<回车>,则程序运行结果是:______
27.#include<stdio.h>
main()
{float a,b
scanf("%f",&a);
if(a<10.0)b=1.0/2;
elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);
else if(a<10.0)b=1.0/2;
else b=10.0;
printf("%f ",a);
}
程序运行时输入2.0<回车>,则程序的输出结果是:______
28.#include<stdio.h>
main()
{char c;
int v0=0,v1=0,v2=0;
do{
switch(c=getchar())
{case"a":
case"e":
case"i":
case"o":
case"u":v1+ =1:
default:v0+ =1;v2+ =1;};}
while(c!=" ");
printf("v0=%d,v1=%d,v2=%d ”,v0,v1,v2);
}
五、程序设计题每小题1分,共5分
29.编制程序,输入n个整数(n从键盘输入,n>0),输出它们的偶数和。
六、填空题每小题2分,共16分请在每小题的空格中填上正确答案。
30.MCS-51堆栈寄存器SP是______位寄存器,存放______。
31.MCS-51的P0~P3口中,______为真正的双向口,______为准双向口。
32.执行完下列段指令后(A)=______,(B)=______
MOV A,#08H
MOV B,#45H
PUSH A
PUSH B
POP A
POP B
33.下列程序段执行后,(7EH)=______,(7FH)=______。
MOV R0,#7EH
MOV 7EH,#0FFH
MOV 7FH,#40H
INC @R0
INC R0
INC @R0
34.若IT1=0,当引脚______为低电平的时候,INT0的中断标志位______才能复位。
35.片内RAM可进行位寻址的空间位地址范围是______。
36.MCS-51指令系统中direct表示的含义是:______。
37.如果(P0)=65H,当执行下列程序段后执行后(P0)=______。
CPL P0.2
SETB C
MOV P0.4,C
七、改错题每小题2分,共4分每小题只有一处错误或不妥,请指出,并将其改正。
38.下面程序将片内40H-46H单元内容的高位清零,保持低位不变。
ORG 1000H
MOV R7,#07H
MOV R0,40H
L00P: MOV A,@R0
ANL A,@0FH
MOV @R0,A
INC 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,#35H
错误:______
改正:______
八、程序阅读题,每小题5分,共10分请阅读下列程序,写出程序运行结果。
40.下面程序是将片内RAM______开始的单元中有______字节的二进制数求它们之和(和<256)。
ADDIO: MOV R0,30H
MOV R7,#0AH
MOV A,@RO
LOOP: INC R0
ADD A,@R0
DJNZ R7,LOOP
MOV 30H,A
RET
41.下面程序将片内RAM30H单元开始的______字节数据传送到片外RAM______开始的单元中去。
START: MOV RO,#30H
MOV R7,#0FH
MOV DPTR,#3000H
LOOP: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,LOOP
RET
九、程序设计题,共5分
42.编程实现数据块传送,将片内RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。
十、应用题,共20分
43.
下面程序段利用D/A转换器产生三角波,请完成程序段。
MOV ① ,#7FFFH
MOV ② ,#00H
UP: MOVX ③ ,A
INC A
JNZ ④
MOV A, ⑤
DOWN: MOVX ⑥ ,A
DEC ⑦
JNZ ⑧
SJMP UP
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。