全国自考(微型计算机原理与接口技术)模拟试卷2
-
42. RAM中60H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R6中。
-
43. 一个由AT89C51单片机与一片ADC0809组成的数据采集系统,ADC08的地址为7FF8H~7FFFH。硬件逻辑电路图如下,下面程序是利用中断方式,分别对8路模拟信号轮流采样一次,转换结果依次存放在首址为30H的片外数据RAM中。完成中断服务程序填空。
ORG 0000H
AJMP MAIN
ORG 0013H
AJMP INT1
MAIN: MOV R1,#30H
MOV R7,#08H
MOV DPTR,#07FF8H
SET IT1
SET EX1
SET EA
HERA: SJMP HERE
中断服务程序:
INT1: MOVX A, ①
MOVX ② ,A
③ R1
INC ④
DJNZ ⑤ ,READ
⑥
⑦ :MOVX ⑧ ,A
RET1
-
41. 下面是8031扩展8255A初始化程序,其PA口设置成______,PB口和PC口设置成______。
MOV A,#90H
MOV DPTR,#7FFFH
MOVX @DPTR,A
MOV DPTR,#7FFCH
MOVX A,@DPTR
MOV DPTR,#TFFDH
MOVX @DPTR,A
-
40. 下面子程序的功能是从串行接口接受一个字符,其定时器T1工作模式______,波特率为______。(时钟为11.059MHz)
START:MOV TMOD,#20H
MOV TH1,#0E8H
MOV TL1,#0E8H
SETB TR1
MOV SCON,#50H
L1: JNB RI,L1
CLR RI
MOV A,SBUF
RET
-
38. 下面程序段是将ROM2000H单元的内容送R1。
MOV#DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV R1,A
错误:______
改正:______
-
39. 下面程序段是将外部RAM30H单元的内容送内部RAM20H单元。
MOV R1,#30H
MOVX A,@R1
MOV 20H,ACC
错误:______
改正:______
-
35. 8031单片机有4个口,其中______口可以直接应用于I/O口。
-
37. MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器______进行选择。
-
36. MCS-51的相对转移指令最大负跳数是______字节。
-
下列伪指令汇编后,存放25H的单元及LOOP的值分别是______=25H,LOOP=______。
ORG 0100H
TAB: DB 'ABC'
MOON: DS 03
BUF: DB 25H
LOOP EQU 2100H
-
34. MCS-51有______个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器______进行选择。
-
32. 单片机的内部RAM区中,可以位寻址的地址范围是______,特殊功能寄存器中,可位寻址的地址是______。
-
30. LED有______和______两种接法。
-
31. 若8255的端口A和端口B工作在方式1输入时,C口的______和______可作为基本输入/输出使用。
-
29. 自定义一个函数,函数的形参为字符数组s1和s2,函数功能是将字符串s1中的所有数字字符取出,存入另一字符数组s2中,使s2成为一个新的字符串,并在函数中将字符串s2输出。
-
#include<stdio.h>
struct mine{int qa,qb,qc;};
main()
{struct mine s[2]={{1,2,3},{4,5,6}};
int answer;
answer=s[0].qa%s[1].qb;
printf("%d\n",answer);
}
程序运行结果是:______
-
#include<stdio.h>
int add(int a,int b)
{int c;
c=a+b:
return c;
}
void print(int t)
{printf("z=%d\n",t);}
main()
{int x,y,z;
x=1;y=2;
z=add(x,y);
print(z);
}
程序运行结果是:______
-
#include<stdio.h>
main()
{int i,index,n:
int a[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
index=0;
for(i=1;i<n;i++)
{if(a[i]<a[index])index=i;}
printf("min=%d,index=%d\n",a[index],index);
}
程序运行时输入5 7 95<回车>,则程序运行结果是:______
-
main()
{char s[]="9876",*p;
*p=s:
printf("%s",p);
}
错误:______
改正:______
-
#include<stdio.h>
int fun(char*s)
{char*p=s;
while(*p!='\0')p++;
return(p-s);}
main()
{printf("%d\n",fun("hello world"));
}
程序运行结果是:______
-
#include<stdio.h>
#include<conio.h>
main()
{
int i,j;
char ch;
while(ch=getchar()!='\r')
{
i++:
printf("%c",ch);
}
printf("you type%d characters\n",i);
}
错误:______
改正:______
-
23. 下面程序的功能是将大写字母改成小字母,小字母改成大写字母。
main()
{char ch;
scanf("%c",&ch);
if(ch>='A'||ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
}
错误:______
改正:______
-
main()
{
float a[10]={0.0};
int i
for(i=0;i<3;i++)scanf("%d",&a[1]);
for(i=0;i<10;i++)a[0]=a[0]+a[i];
printf("%d\n",a[0]);
}
错误:______
改正:______
-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin'>错误:______
改正:______
-
19. 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
{int t=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
-
20. 输入两个整数n1,n2(要求n1<n2),统计两整数范围内被3整除的数的个数。请填空。
#include”stdio.h”
main()
{int n1,n2,j,n=0;
printf("\n请输入两个数:");
scanf("%d%d",&n1,&n2);
if(n1>n2){j=n1;n1=n2;n2=j;}
for(j=n1;j<=n2,j++)
if(______)n++;
printf("a=%5d,b=%5d,n=%5d\n"n1,n2,n);}
-
18. 若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是______。
-
17. int a;则表达式(a=4*5,a*2),a+6的值是______。
-
16. 共阴极LED数码管显示字符”2”的段码是( )
- A.02H
- B.FEH
- C.5BH
- D.A4H
-
15. 8031的外部程序存储器常采用的芯片是( )
- A.2764
- B.8255
- C.74LS06
- D.2114
-
14. 在堆栈中压入一个数据时( )
- A.先压栈,再令SP+1
- B.先令SP+1,再压栈
- C.先压栈,再令SP-1
- D.先令SP-1,再压栈
-
13. 在扩展系统中,能够提供地址信号的高8位的端口是( )
- A.P0口
- B.P1口
- C.P2口
- D.P3口
-
12. MCS-51的程序计数器PC为16位计数器,因此其寻址范围是( )
- A.8K
- B.16K
- C.32K
- D.64K
-
11. 协调CPU与外围设备之间的数据传送的是( )
- A.三态门
- B.锁存器
- C.缓冲器
- D.寄存器
-
10. 8051定时器/计数器T0工作方式0和方式1的区别是( )
- A.前者是16位后者是13位
- B.前者是16位后者是8位
- C.前者是13位后者是8位
- D.前者是13位后者是16位
-
9. 下面不是中断响应条件的是( )
- A.CPU处于开中断状态
- B.低级中断源
- C.高级中断源
- D.一条指令执行完毕
-
8. 带进位的循环移位指令是( )
- A.RL
- B.RR
- C.CLR
- D.RLC
-
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
-
4. 若inti,j;则for(i=j=0;i<10&&j<8;i++,j+ =3)控制的循环体执行的次数是( )
- A.9
- B.8
- C.2
- D.3
-
3. 当x为大于1的奇数时,值为0的表达式是( )
- A.x%2==1
- B.x%2==0
- C.x%2!==0
- D.x/2
-
1. 以下集成块型号中不属于MCS-96系列单片机型号的是( )
- A.8095BH
- B.83C51FB
- C.80C198
- D.80C196KB
-
2. 用8位(bit)二进制能够表示的无符号数的范围是( )
- A.253
- B.254
- C.255
- D.256