全国自考(微型计算机原理与接口技术)模拟试卷9
-
43. 编程实现在P1.0引脚接一驱动放大电路驱动扬声器,利用T1产生1000Hz的音频信号从扬声器输出。设fosc=12MHz。
-
42. 编程序将片内30H~36H单元内容的高4位清零,保持低4位不变。
-
41. 下面程序是从______单元开始,连续存放10个无符号数,从中找出最大值送入______单元。
ORG 0020H
MOV R0,#40H
MOV B,@R0
MOV R7,#09H
INC R0
L00P:MOV A,B
CLR C
SUBB A,@R0
JNC NEXT
MOV B,@R0
NEXT:INC R0
DJNZ R7,LOOP
MOV 30H,B
SJMP $
END
-
40. 下面程序是将字节地址______单元的内容逐一取出减1,然后再放回原处,如果取出的内容为______,则不要减1,仍将0放回原处。
MOV R7,#10H
MOV R1,#30H
L00P:CJNE @R1,#00H,NEXT
MOV @R1,#00H
SJMP NEXT1
NEXT:DEC @R1
NEXT1:INC R1
DJNZ R7,LOOP
SJMP $
END
-
39. 片内RAM40H开始的单元内有10字节的二进制数,下面程序是完成找出其中最大值并存于50H单元中。
START:MOV R0,#40H ;数据块首地址送R0
MOV R7,#09H ;比较次数送R7
MOV A,R0 ;取数送A
LOOP:INC R0
MOV 30H,@R0 ;取数送30H
CJNE A,30H,NEHT ;(A)与(30H)相比
NEXT:JNC BIE1 ;(A)≥(30H)转BIR1
MOV A,30H ;(A)<(30H),大数送A
BIE1:DJNZ R7,LOOP ;比较次数减1,不为0,继续比较
MOV 50H,A ;比较结束,大数送50H
RET
错误:______
改正:______
-
37. 某8031单片机时钟频率为12MHz,现将T0设置为定时方式1,定时时间为1毫秒,其计数器中的时间常数初值应为______。(写成四位十六进制数)
-
38. 下面子程序是从串行接口接受一个字符。
START:MOV TMOD,20H ;定时器T1工作于模式2
MOV TH1,#0E8H ;设置波特率为1200b/s
MOV TL1,#0E8H
SETB TR1 ;启动T1
MOV SCON,#50H ;串行接口工作于方式1,允许接收
L1: JNB R1,L1 ;等待接收数据,未接收到数据,继续等待
CLR R1 ;接收到数据,清R1
MOV A,SBUF ;接收到数据送A
RET
错误:______
改正:______
-
36. 如要选择第2组的工作寄存器交换数据,可先执行指令______。
PSW(地址为DOH)的格为
-
35. 8031单片机内部数据RAM中的位寻址区的地址范围是______。
-
34. MUL AB的执行结果是存储高8位在______中,低8位在______中。
-
33. 8051单片机内有______个16位的定时/计数器,______有四种工作方式。
-
32. 执行下面一段程序后,(A)=______,(B)=______。
MOV SP,#60H
MOV A,#10H
MOV B,#01H
PUSH A
PUSH B
POP A
POP B
-
30. 8255A属于可编程的______I/0接口芯片,8255A的A通道有______种工作方式。
-
31. MCS-51的存储器空间配置从功能上可分为四种类型:______、内部数据存储器、______、外部程序存储器。
-
29. 输入m和n(m≥n≥0)后,计算m!/n!(m-n)!表达式的值并输出。要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。
-
#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!='\n');
printf("v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
}
程序运行时,从键盘输入ADescriptor<回车>,则程序的运行结果是:______
-
#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\n",a);
}
程序运行时输入2.0<回车>,则程序的输出结果是:______
-
#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\n",fact);
}
程序运行时输入5<回车>,则程序运行结果是:______
-
#include<stdio.h>
main()
{int y;
for(y=5;y>0;y--)
{if(y%2==0)continue;
printf("%d",y);
}
}
程序运行结果是:______
-
struct stud
{char num[6];
int s[4];
double ave=0.0;
}a;
main()
{int i;
for(i=0;i<4;i++)scanf("%d",&a.s[i]);
for(i=0;i<4;i++)a.ave+ =a.s[i];
printf("%f",a.ave);
}
错误:______
改正:______
-
main()
{char s[4]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
错误:______
改正:______
-
22. 下面程序的功能是计算1+2+3……+50的和。
main()
(int i,sum;
for(i=1;i<=50;i++)
sum+ =i;
printf("%d",sum);
}
错误:______
改正:______
-
main()
{
int a b;
a=2;
b=3;
c=a*b
printf("c=%c",c);
}
错误:______
改正:______
-
20. 下面程序的功能是统计在16~31岁之间的学生人数。请填空。
main()
{int a[30],n,age,i;
for(i=0;i<30;i++)a[i]=0;
printf("Enter the number of thestudents(<30)\n");
scanf("%d",&n);
printf("Enter the age of each student:\n");
for(i=0;i<n;i++)
{scanf("%d",&age);_______;}
printf("the result is\n");
printf("age number\n");
for(i=16;i<32;i++)
printf("%d%d\n",i,a[i-16]);
}
-
19. 以下函数用于统计一行字符串中的单词个数,单词之间用空格分隔,请填空。
int word_num(char strl[ ])
{inti,num=0,word=0;
for(i=0;strl[i]l='\0';i++)
if(______= ='')word=0;
else if(word= =0){word=1;num++;}
return(num);
}
-
18. 表达式7+8>2&&25%5的结果是______。
-
17. intx=2,y;则表达式y=x+5,x+y的值是______。
-
15. 从地址2132H开始有一条绝对转移指令AJMP addr11,指令可能实现的转移范围是( )
- A.2000H—27FFH
- B.2132H—2832H
- C.2100H—28FFH
- D.2000H—3FFFH
-
16. 在堆栈操作中,当进栈数据全部弹出后,这时SP指向( )
- A.栈底单元地址
- B.7FH单元
- C.栈底单元地址加1
- D.栈底单元地址减1
-
13. MCS-51单片机在访问外部数据存储器时,地址指针是( )
- A.DPTR
- B.PC
- C.PSW
- D.SP
-
14. 下列程序段的执行结果是( )
MOV R0,#30H
SETB C
CLR A
- ADDC A,#00H MOV @R0,A
- A.(30H)=00H
- B.(30H)=01H
- C.(00H)=00H
- D.(00H)=01H
-
12. MCS-51单片机在正常运行程序时RST引脚是( )
- A.高电平
- 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.寄存器
-
8. 带进位的循环移位指令是( )
- A.RL
- B.RR
- C.CLR
- D.RLC
-
9. 下面不是中断响应条件的是( )
- A.CPU处于开中断状态
- B.低级中断源
- C.高级中断源
- D.一条指令执行完毕
-
5. C语言函数返回值的类型是( )
- A.return语句中表达式类型
- B.调用该函数时主调函数的类型
- C.定义该函数时函数的类型
- D.调用函数时系统临时决定
-
7. MCS-51内部RAM字节数是( )
- A.128
- B.256
- C.107
- D.4K
-
6. 下列程序段执行后,a的值是( )
int *p,a=10,b=1;
p=&a;a=*p+b;
- A.12
- B.13
- C.10
- D.11
-
4. 执行intx=2,y=3;后表达式x=(y==3)的值是( )
- A.1
- B.0
- C.2
- D.3
-
3. C语言中最基本的数据类型是( )
- A.整型、实型、逻辑型
- B.整型、实型、逻辑型、字符型
- C.整型、字符型、逻辑型
- D.整型、实型、字符型
-
2. 以下所列的C语言常量中,错误的是( )
- A.0xFF
- B.2L
- C.1.2e0.5
- D.'\72'
-
1. 以下不属于单片机集成块型号的是( )
- A.80486DX
- B.83C51FA
- C.8097BH
- D.8051