2012年微型计算机原理与接口技术自考题模拟(2)
-
下面程序段利用D/A转换器产生三角波,请完成程序段。
MOV ① ,#7FFFH
MOV ② ,#00H
UP: MOVX ③ ,A
INC A
JNZ ④
MOV A, ⑤
DOWN: MOVX ⑥ ,A
DEC ⑦
JNZ ⑧
SJMP UP
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
-
编程实现数据块传送,将片内RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。
-
下面程序将片内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
-
下面程序是将片内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
-
下面程序将片内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
错误:______
改正:______
-
已知:(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
错误:______
改正:______
-
如果(P0)=65H,当执行下列程序段后执行后(P0)=______。
CPL P0.2
SETB C
MOV P0.4,C
-
片内RAM可进行位寻址的空间位地址范围是______。
-
MCS-51指令系统中direct表示的含义是:______。
-
若IT1=0,当引脚______为低电平的时候,INT0的中断标志位______才能复位。
-
下列程序段执行后,(7EH)=______,(7FH)=______。
MOV R0,#7EH
MOV 7EH,#0FFH
MOV 7FH,#40H
INC @R0
INC R0
INC @R0
-
执行完下列段指令后(A)=______,(B)=______
MOV A,#08H
MOV B,#45H
PUSH A
PUSH B
POP A
POP B
-
MCS-51的P0~P3口中,______为真正的双向口,______为准双向口。
-
MCS-51堆栈寄存器SP是______位寄存器,存放______。
-
#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);
}
-
编制程序,输入n个整数(n从键盘输入,n>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()
{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>
main()
{int y;
for(y=5;y>0;y--)
{if(y%2==0)continue;
printf("%d",y);
}
}
程序运行结果是:______
-
int ff(int n)
{
static int f=1;
f=f*n:
return f;
}
main()
{int i;
for(i=1;i<=5;i++);
printf("%d\n",ff(i));
}
错误:______
改正:______
-
下面程序的输入数据的形式是Input number:4.5 2<回车>
main()
{int a;float f;
printf("\nInput number:");
scanf("%f,%d",&f,&a);
printf("\nf=%f,a=%d\n”,f,a);
}
错误:______
改正:______
-
main()
{int s,i;
for(s=0,i=1;i<3;i++,s+ =i)
printf("%d\n",&s);
}
错误:______
改正:______
-
main()
{
int x=1;y;
y=x++:
printf("y=%d",y);
int z;
z=++x:
printf("z=%d\n",z);
错误:______
改正:______
-
鸡兔共有30只,脚共有90个,下面程序是计算鸡兔各有多少只。请填空。
main()
{int x,y;
for(x=1:x<=29:x++)
{y=30-x;
if(______)printf("%d,%d\n",x,y);}
}
-
若a=5,b=2,c=1,则表达式a-b<c||b==c的值是______。
-
输入两个整数,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("\n请输入两个数:");
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\n"a,b,n);}
-
共阴极LED数码管显示字符”2”的段码是( )
- A.02H
- B.FEH
- C.5BH
- D.A4H
-
若int s=6;则表达式s%2+(s+1)%2的值是______。
-
在扩展系统中,能够提供地址信号的高8位的端口是( )
- A.P0口
- B.P1口
- C.P2口
- D.P3口
-
在堆栈中压入一个数据时( )
- A.先压栈,再令SP+1
- B.先令SP+1,再压栈
- C.先压栈,再令SP-1
- D.先令SP-1,再压栈
-
8031的外部程序存储器常采用的芯片是( )
- A.2764
- B.8255
- C.74LS06
- D.2114
-
协调CPU与外围设备之间的数据传送的是( )
- A.三态门
- B.锁存器
- C.缓冲器
- D.寄存器
-
MCS-51的程序计数器PC为16位计数器,因此其寻址范围是( )
- A.8K
- B.16K
- C.32K
- D.64K
-
8051定时器/计数器T0工作方式0和方式1的区别是( )
- A.前者是16位后者是13位
- B.前者是16位后者是8位
- C.前者是13位后者是8位
- D.前者是13位后者是16位
-
带进位的循环移位指令是( )
- A.RL
- B.RR
- C.CLR
- D.RLC
-
下面不是中断响应条件的是( )
- A.CPU处于开中断状态
- B.低级中断源
- C.高级中断源
- D.一条指令执行完毕
-
对以下定义的表述中,正确的是( )
struct node
{int num;char name[10];}stud;
- A.stud是一个结构体变量
- B.stud是一个结构体类型
- C.node是一个结构体数据
- D.node是一个结构体变量
-
MCS-51内部RAM字节数是( )
- A.128
- B.256
- C.107
- D.4K
-
若inti,j;则for(i=j=0;i<10&&j<8;i++,j+ =3)控制的循环体执行的次数是( )
- A.9
- B.8
- C.2
- D.3
-
若定义char s[10];不表示s[1]的地址的是( )
- A.s+1
- B.s++
- C.&s[0]+1
- D.&s[1]
-
当x为大于1的奇数时,值为0的表达式是( )
- A.x%2==1
- B.x%2==0
- C.x%2!==0
- D.x/2
-
以下集成块型号中不属于MCS-96系列单片机型号的是( )
- A.8095BH
- B.83C51FB
- C.80C198
- D.80C196KB
-
用8位(bit)二进制能够表示的无符号数的范围是( )
- A.253
- B.254
- C.255
- D.256