全国自考(微型计算机原理与接口技术)模拟试卷2
一、1.单项选择题
0. 以下集成块型号中不属于MCS-96系列单片机型号的是( )
A.8095BH
B.83C51FB
C.80C198
D.80C196KB
1. 用8位(bit)二进制能够表示的无符号数的范围是( )
A.253
B.254
C.255
D.256
2. 当x为大于1的奇数时,值为0的表达式是( )
A.x%2==1
B.x%2==0
C.x%2!==0
D.x/2
3. 若inti,j;则for(i=j=0;i<10&&j<8;i++,j+ =3)控制的循环体执行的次数是( )
A.9
B.8
C.2
D.3
4. 若定义char s[10];不表示s[1]的地址的是( )
A.s+1
B.s++
C.&s[0]+1
D.&s[1]
5. 对以下定义的表述中,正确的是( ) struct node {int num;char name[10];}stud;
A.stud是一个结构体变量
B.stud是一个结构体类型
C.node是一个结构体数据
D.node是一个结构体变量
6. MCS-51内部RAM字节数是( )
A.128
B.256
C.107
D.4K
7. 带进位的循环移位指令是( )
A.RL
B.RR
C.CLR
D.RLC
8. 下面不是中断响应条件的是( )
A.CPU处于开中断状态
B.低级中断源
C.高级中断源
D.一条指令执行完毕
9. 8051定时器/计数器T0工作方式0和方式1的区别是( )
A.前者是16位后者是13位
B.前者是16位后者是8位
C.前者是13位后者是8位
D.前者是13位后者是16位
10. 协调CPU与外围设备之间的数据传送的是( )
A.三态门
B.锁存器
C.缓冲器
D.寄存器
11. MCS-51的程序计数器PC为16位计数器,因此其寻址范围是( )
A.8K
B.16K
C.32K
D.64K
12. 在扩展系统中,能够提供地址信号的高8位的端口是( )
A.P0口
B.P1口
C.P2口
D.P3口
13. 在堆栈中压入一个数据时( )
A.先压栈,再令SP+1
B.先令SP+1,再压栈
C.先压栈,再令SP-1
D.先令SP-1,再压栈
14. 8031的外部程序存储器常采用的芯片是( )
A.2764
B.8255
C.74LS06
D.2114
15. 共阴极LED数码管显示字符”2”的段码是( )
A.02H
B.FEH
C.5BH
D.A4H
二、2.填空题
0. int a;则表达式(a=4*5,a*2),a+6的值是______。
1. 若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是______。
2. 以下程序的功能是计算: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
",s);
}
3. 输入两个整数n1,n2(要求n1<n2),统计两整数范围内被3整除的数的个数。请填空。
#include”stdio.h”
main()
{int n1,n2,j,n=0;
printf("
请输入两个数:");
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
"n1,n2,n);}
三、3.改错题
0. #include<stdio.h>
#include<conio.h>
main()
{
int i,j;
char ch;
while(ch=getchar()!="
")
{
i++:
printf("%c",ch);
}
printf("you type%d characters
",i);
}
错误:______
改正:______
1. 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
",a[0]);
}
错误:______
改正:______
2. 下面程序的功能是将大写字母改成小字母,小字母改成大写字母。
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);
}
错误:______
改正:______
3. main()
{char s[]="9876",*p;
*p=s:
printf("%s",p);
}
错误:______
改正:______
四、4.程序阅读题
0. #include<stdio.h>
int fun(char*s)
{char*p=s;
while(*p!=" ")p++;
return(p-s);}
main()
{printf("%d
",fun("hello world"));
}
程序运行结果是:______
1. #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
",a[index],index);
}
程序运行时输入5 7 9 5<回车>,则程序运行结果是:______
2. #include<stdio.h>
int add(int a,int b)
{int c;
c=a+b:
return c;
}
void print(int t)
{printf("z=%d
",t);}
main()
{int x,y,z;
x=1;y=2;
z=add(x,y);
print(z);
}
程序运行结果是:______
3. #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
",answer);
}
程序运行结果是:______
五、5.程序设计题
0. 自定义一个函数,函数的形参为字符数组s1和s2,函数功能是将字符串s1中的所有数字字符取出,存入另一字符数组s2中,使s2成为一个新的字符串,并在函数中将字符串s2输出。
六、6.填空题-单片机原理与接口技术
0. LED有______和______两种接法。
1. 若8255的端口A和端口B工作在方式1输入时,C口的______和______可作为基本输入/输出使用。
2. 单片机的内部RAM区中,可以位寻址的地址范围是______,特殊功能寄存器中,可位寻址的地址是______。
3. 下列伪指令汇编后,存放25H的单元及LOOP的值分别是______=25H,LOOP=______。
ORG 0100H
TAB: DB "ABC"
MOON: DS 03
BUF: DB 25H
LOOP EQU 2100H
4. MCS-51有______个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器______进行选择。
5. 8031单片机有4个口,其中______口可以直接应用于I/O口。
6. MCS-51的相对转移指令最大负跳数是______字节。
7. MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器______进行选择。
七、7.改错题-单片机原理与接口技术
0. 下面程序段是将ROM2000H单元的内容送R1。
MOV#DPTR,#2000H
CLR A
MOVC A,@A+DPTR
MOV R1,A
错误:______
改正:______
1. 下面程序段是将外部RAM30H单元的内容送内部RAM20H单元。
MOV R1,#30H
MOVX A,@R1
MOV 20H,ACC
错误:______
改正:______
八、8.程序阅读题-单片机原理与接口技术
0. 下面子程序的功能是从串行接口接受一个字符,其定时器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
1. 下面是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
九、9.程序设计题-单片机原理与接口技术
0. RAM中60H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R6中。
十、10.微型计算机原理与接口技术-应用题
0. 一个由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
