全国自考(微型计算机原理与接口技术)模拟试卷4
-
43. 已知晶体振荡器的频率为fosc=12MHz。T0工作在方式1计数器模式,T1作定时器,工作在方式0,每隔0.5ms使P1.0引脚上的电平变反,在P1.0引脚上产生周期为1ms的方波输出,将下列程序补充完整。
0RG 0000H
AJMP MAIN
0RG 001BH
AJMP INTP
ORG 0030H
MAIN:MOV TMOD, ① ;写控制字
MOV TH1,#0F0H ;写定时常数(定时1ms)
MOV TL1,#0CH
② ;启动T1
③ ;启动T0
④ ;允许T1中断
⑤ ;开放CPU中断
AJMP $ ;定时中断等待
ORG 0200 H ;T1中断服务程序
INQP:PUSH 0
MOV TH1,#0F0H ;重写定时常数
MOV TL1,#0CH
CPL P1.0 ;P1.0变反输出
⑥
⑦
⑧
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
-
41. 设在31H单元存有#23H,执行下面程序:(41H)=______(42H)=______
MOV A,31H
ANL A,#0FH
MOV 41H,A
MOV A,31H
ANL A,#0F0H
SWAP A
MOV 42H,A
-
42. 编程实现数据块传送,将片内RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。
-
2506H M5: MOV SP,#58H
2509H MOV 10H,#0FH
250CH MOV 11H,#0BH
………
250FH ACALL XHD;PC+2→PC,
MOV 20H,11H
2514H M5A:SJMP M5A
XHD:PUSH 10H
PUSH 11H
POP 10H
POP 11H
RET
执行M5A:SJMPM5A后,(SP)=______(20H)=______
-
39. 下面程序段实现双字节加法运算(R1)(R0)+(R7)(R6)送入(31H)(30H)。
MOV A,R0
ADD A,R6
MOV 30H,A
MOV A,R1
ADD A,R7
MOV 31H,A
SJMP $
错误:______
改正:______
-
37. MCS-51的特殊功能寄存器分布在______地址范围内。
-
38. 下面程序段是将ROM2000H单元的内容送外部RAM1000H单元。
MOV DPTR, #2000H
CLR A
MOVC A,@A+DPTR
MOV DPTR,#1000H
MOV @DPTR,A
错误:______
改正:______
-
34. 34.执行下列指令组后,标志位(OV)=______(P)=______。
MOV A,#0B4H
ADD A,#00H
SUBB A,#51H
-
35. 当MCS-51引脚______信号有效时,表示从P0口稳定地送出了低8位地址。
-
36. MCS-51的定时器用作定时,其定时时间与时钟频率和计数初值有关。用作计数时,最高计数频率的______。
-
32. 外围扩展芯片的选择方法有两种,它们分别是______和______。
-
33. MCS-51单片机中,在IP=0x00时,优先级最高的中断是______,最低的是______。
-
31. 若只需要开串行口中断,则IE的值应设置为______,若需要将外部中断0设置为下降沿触发,则执行的语句为______。
-
30. 8279有______条命令,用命令字______位来表示。
-
#include<stdio.h>
main()
{int i=0,j,c[6];
scanf("%d",&j);
do{c[i]=j%10;i++;j=j/10;
}while(j!=0);
for(--i;i>=0;i--)
{printf("%d",c[i]);
if(i>0)printf(",");}
}
程序运行时,输入整数为2345<回车>,则输出为:______
-
29. 编程序对输入的1000以下的整数,求出其相应的个位数、十位数和百位数。
-
#include<stdio.h>
main()
{inti,j,sum=0,m,n=4;
for(i=1;i<=n;i++)
{m=1;
for(j=1;j<=i;j++)m=m*j;
sum=sum+m;}
printf("sum=%d\n",sum);
}
程序运行结果是:______
-
main()
{int a[]={1,3,5,2,7};
int b[]={5,3,9,4,6};
int c[5],i;
for(i=0;i<5;i++)
c[i]=a[i]*b[i];
for(i=0;i<5;i++)
printf("%d",c[i]);}
程序运行结果是:______
-
#include<stdio.h>
ss(char*s)
{char *p=s:
while(*p)p++;
return(p-s);}
main()
{char *a="abded";
int i;
i=ss(a);
printf("%d\n",i);}
程序运行结果是:______
-
23. 以下程序从键盘输入20个整数存入数组,统计输入非负数的个数,并计算输入的非负整数之和。
#include"stdio.h"
main()
{int i,a[20],s,n;
s=n=0:
for(i=0;i<20;i++)scanf("%d",&a[i])
for(i=0;i<20;i++)
{if(a[i]<0)break;
S+=a[i];n++;
}
printf("s=%d\t,n=%d\n",s,n);
}
错误:______
改正:______
-
24. 输出100以内能被3整除且个位数为6的所有整数。
#include<stdio.h>
main()
{int i,j;
for(i=0;i<=9;i++)
{j=i*10+6:
if(j%3==0)continue;
printf("%d",j);}
}
错误:______
改正:______
-
main()
{inta[3]={3*0},i;
for(i=1;i<3;i++)scanf("%d",a[i]);
for(i=1;i<3;i++)a[0]=a[0]+a[i+1];
printf("%d",a[0]);
}
错误:______
改正:______
-
#include"stdio.h"
main()
{char a[10],b[10]="Computer"
a=b;printf("%s",a);
}
错误:______
改正:______
-
18. 若a=2,b=4,则表达式!(x=a)||(y=b)&&0的值是______。
-
20. 下面程序的功能是将字符串s中所有的字符a删除。请填空。
#include<stdio.h>
void main()
{char s[80];
int i,j=0;
gets(s);
for(i=0;s[i]!='\0';i++)
if(s[i]!='a')______;
s[j]='\0';
puts(s);}
-
19. 下面程序的功能是用“辗转相除”求两个整数的最大公约数。请填空。
#include<stdio.h>
main()
{int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)______
r=m%n:
while(r){m=n;n=r;r=m%/n};
printf(“%d\n",n);
}
-
17. int a=6;则表达式a+ =a- =a*a的值是______。
-
16. 8255是一个可编程的:I/O接口芯片,“可编程”是( )
- A.有14位可控定时器/计数器
- B.芯片内包含有256字节的RAM
- C.只能使用中断编程的方法进行I/O数据传送
- D.使用命令字以程序方法设置I/O数据传送的方式
-
14. 8031的定时器T1作计数方式,模式2的方式控制字是( )
- A.60H
- B.02H
- C.06H
- D.20H
-
15. 8031的定时器T0作计数方式,用模式1(16位计数器),则应用初始化编程指令是( )
- A.MOV TMOD,#01H
- B.MOV TMOD,10H
- C.MOV TMOD,#05H
- D.MOV TCON,#05H
-
11. 共阴极显示管点亮时输入电平是( )
- A.低电平
- B.低电压
- C.低阻态
- D.高电平
-
13. 8051单片机的VCC(40)引脚是( )
- A.主电源+5V引脚
- B.接地引脚
- C.备用电源引脚
- D.访问片外存贮器引脚
-
12. 单片机上电复位后,堆栈区的最大允许范围的单元是( )
- A.64
- B.120
- C.128
- D.256
-
9. 8051/8031型单片机提供中断源的个数是( )
- A.3
- B.4
- C.6
- D.5
-
10. 不是MCS-51单片机I/O的数据传送方式的是( )
- A.无条件传送
- B.随机传输
- C.查询方式
- D.中断方式
-
8. 不是伪指令关键字的是( )
- A.ORG
- B.START
- C.EQU
- D.DATA
-
7. 下面不是运算器完成的主要任务是( )
- A.算术运算
- B.位运算
- C.数据处理
- D.指令译码
-
5. 执行下面程序段后,正确的结果是( )
intx=0,y=0;
while(x<15)
y++,x+=++y;
- A.x=8
- B.y=20
- C.x=20
- D.y=12
-
6. 以下定义,使p指向data和a域的赋值语句是( )
struct stuclent {
int a;
float b;
data,*p;
- A.p=&a;
- B.p=data.a;
- C.*p=data.a;
- D.p=&data.a;
-
4. 从循环体内某一层跳出,继续执行循环外的语句是( )
- A.return语句
- B.break语句
- C.continue语句
- D.空语句
-
3. 以下说法正确的是( )
- A.计算机能直接执行C的源程序
- B.后缀是EXE的文件是二进制文件
- C.后缀是OBJ和EXE的文件是可执行文件
- D.后缀是OBJ的文件是二进制文件
-
2. 以下使用后缀表日月十六进制数的是( )
- A.B
- B.H
- C.D
- D.O
-
1. 以下集成块型号中不属于8位系列单片机型号的是( )
- A.83C152JC
- B.83C52JA
- C.83C51FB
- D.8097JF