全国自考(微型计算机原理与接口技术)模拟试卷3
一、1.单项选择题
0. 以下集成块型号中不属于16位系列单片机型号的是( )
A.8095BH
B.8096BH
C.83C452
D.9097BH
1. 用16位(bit)二进制能够表示的无符号数的范围是( )
A.65536
B.65535
C.65537
D.65534
2. 以下说法中正确的是( )
A.C语言程序总是从第一个定义的函数开始执行
B.要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.main()函数必须放在程序的开始部分
3. 不能把字符串Hello!赋给数组b的语句是( )
A.char b[10];b=”Hell0 !";
B.char b[10]={"H","e","l","l","o","!"};
C.char b[10];strcpy(b,"Hello !");
D.char b[10]="Hello !";
4. 若有定义int a[10],*p=a;则p+5表示的是( )
A.a[5]的值
B.a[6]的值
C.a[5]的地址
D.a[6]的地址
5. 对以下定义正确的表述是( ) union node {int num;char name[10];}stud;
A.stud是一个联合体类型
B.stud是一个联合体变量
C.node是一个联合体数据
D.node是一个联合体变量
6. MCS-51布尔处理机的存储空间指的是( )
A.00H~0FH
B.10H~1FH
C.20H~2FH
D.30H~3FH
7. 不影响程序状态字PSW的指令关键字是( )
A.ADD
B.ADDC
C.SUBB
D.RRC
8. 下面不属于中断处理过程的是( )
A.保护现场号恢复现场
B.开中断与关中断
C.中断向量
D.中断服务与中断返回
9. MCS-51单片机的定时器/计数器工作方式1是( )
A.16位计数器结构
B.8位计数器结构
C.13位计数器结构
D.两个8位计数器结构
10. 用户可以直接使用的8031单片机I/O接口是( )
A.P0
B.P2
C.P1
D.P3
11. ANL20H,#30H指令中,源操作数的寻址方式是( )
A.立即寻址
B.直接寻址
C.位寻址
D.相对寻址
12. JZ rel指令中,操作数rel的寻址方式是( )
A.立即寻址
B.直接寻址
C.位寻址方式
D.相对寻址方式
13. 通过串行口发送或接收数据时,在程序中应使用( )
A.MOV指令
B.MOVX指令
C.MOVC指令
D.SWAP指令
14. 下列对SCON的相关位描述不正确的是( )
A.当REN=1时,禁止串行口接收数据
B.在方式0时,SM2必须为0
C.RI位由软件清零
D.IT1=1,表示帧发送结束
15. 8051单片机系统扩展时使用的锁存器用于锁存( )
A.高8位地址
B.低8位地址
C.8位数据
D.ALE信号
二、2.填空题
0. inta,b,c;则表达式a=(b=4)+(c=2)的值是______。
1. 若a=1,b=4,c=3,则表达式!(a<b)||!c&&1的值是______。
2. 以下程序的功能是计算字符串的长度。请填空。
#include<stdio.h>
main()
{char str[100],*sp=str;
int nlen=0;
scanf("%s",str);
for(;*sp!=" ";sp++)______;
printf("%d",nlen);
}
3. 以下程序的功能是对10个整数从小到大排序。请填空。
#include<stdio.h>
sort(int arr[],int n);
main()
{int a[10],*p,i;
printf("input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("
the original array is:");
for(p=a;P<a+10;p++)
printf("%d",*p);
sort(a,10);
printf("
the present array is:");
for(P=a;P<a+10;P++)
printf("%d",*p);
}
sort(int arr[],int n)
{int*p1,*p2,temp;
for(p1=arr;p1<arr+(n-1);p1++)
for(p2=p1+1;p2<arr+n;p2++)
if(______)
{temp=*p1;*p1=*p2;*p2=temp;}
}
三、3.改错题
0. #include<stdio.h>
#include<conio.h>
main()
{
int i,j;
int sum,k=0;
for(i=0;i<5;i++);
{
printf("input a number:");
scanf("%d",k);
sum+=k:
}
printf("the sum is%d",sum);
}
错误:______
改正:______
1. 以下程序运行时从键盘输入字符串ABCDE按回车键结束输入,使输入字符串中的A和B转换为字符#输出,其他字符输出为*。
#include"stdio.h"
main()
{char c:
while((c=getchar())!=" ")
{switch(c)
{case"A":
case"B":putchar("#");break;
default:putchar("*");}
}
}
错误:______
改正:______
2. 以下程序计算1×2×3×……×10的和。
#include"stdio.h"
main()
{int i,s=1;
do
{s=s+i;i++;
}while(i<=10)
printf("%d
",s);
}
错误:______
改正:______
3. 输入10个整数存入一维数组,再按逆序重新存放后再输出。
#include<stdio.h>
main()
{int i,j,a[10],k;
for(i=0;i<=9;i++)scanf("%d",&a[i]);
for(i=0,j=9;i<=4;i++,j--)
{k=a[i];a[i]=a[j];a[j]=k;}
for(i=0;i<=9;i++)printf("%d",a);
}
错误:______
改正:______
四、4.程序阅读题
0. main()
{inta=2,b=3,c;
c=a+b:
b=a++-1:
printf("%d,%d,%d
",a,b,c);
b=--c+1:
printf("%d,%d,%d
",a,b,e);
程序运行结果是:______
1. main()
{intp[8]={11,12,13,14,15,16,17,18},i=0,k=0;
while(i<8)
{if(p[i]%2)k+=p[i];
i++;}
printf("%d
",k);
程序运行结果是:______
2. #include"stdio.h"
main()
{inti,k=0,s[10]={1,2,3,4,5,6,7,8,9,10};
for(i=0;i<10;i++)
if(i%2)k+=s[i];
intfor(i=i-1;i>=0;i--)
if(i%5==0)printf("%d",s[i]);
printf("%d
",k);
}
程序运行结果为:______
3. #include<stdio.h>
#include<string.h>
func(char str[])
{int num=0;
while(*(str+num)!=" ")num++;
retum(num);
}
main()
{char str[10],*p=str;
getchar(p);printf("%d
",func(p));
}
程序运行时,从键盘上输入ABCDE<回车>,则输出结果是:______
五、5.程序设计题
0. 编程序计算s=1!+2!+3!+4!的和。
六、6.填空题-单片机原理与接口技术
0. MCS-51系列单片机有40个引脚其中:______为时钟引脚、______为复位引脚。
1. MCS-51系列单片机P0和P1口,当既作输入口又作______时,在输出转输入时应先给端口写入______然后再读取。
2. 数码管要显示字形“5”,则______、c、d、f、g段亮,______、e段灭。
3. MCS-51系列单片机内设有______个可编程的______位定时器/计数器。
4. MCS-51系列单片机片内数据存储器工作寄存器区32个字节被均匀地分为4个组:第0组工作寄存器,地址为______;第1组工作寄存器,地址为______;第2组工作寄存器,地址为10H~17H;第3组工作寄存器,地址为18H~1FHH。
5. 当定时/计数器工作方式寄存器______中的功能选择位为0时,工作于内部定时方式。
6. 串行控制寄存器SCON的单元地址是______。
7. PCON寄存器中与串行通信有关的只有D7位(SMOD),该位为波特率倍增位。当SMOD=______时,串行口波特率增加一倍。
七、7.改错题-单片机原理与接口技术
0. 下面程序段是将外部RAM30H单元的内容送到R0。
MOV R0,#30H
MOV A,@R0
MOV R0,A
错误:______
改正:______
1. 下面程序段是将外部RAM1000H单元的内容送内部RAM20H单元。
MOVX DPTR,#1000H
MOVX A,@DPTR
MOV 20H,A
错误:______
改正:______
八、8.程序阅读题-单片机原理与接口技术
0. 晶振6MHz,下面中断初始化程序是使用T1,工作方式_______,在P1.0引脚输出等宽矩形波周期为______微秒的。
MOV TMOD,#20H
MOV TL1,#06H
MOV TH1,#06H
SETB EA
SETB ET1
SETB YR0
SJMP $
1. 已知单片机的晶振频率为6MHz,下面程序用单片机内部定时器T0工作在方式1下,从P1.0输出周期为______的方波脉冲信号,时间常数为______。
ORG 3000H
START:MOV TMOD, #01H
MOV TL0,#OCH
MOV THO, #OFEH
SETB TR0
LOOP: JBC TFO,DONE
SJMP LOOP
DONE:MOV TL0,#OCH
MOV THO,#OFEH
CPL P1.0
SJMP LOOP
九、9.程序设计题-单片机原理与接口技术
0. 片外RAM2000H开始的单元中有5BH的数据,编程将它们传送到片内RAM20H开始的单元中去。
十、10.微型计算机原理与接口技术-应用题
0. 下面程序段利用D/A转换器产生三角波,请完成程序段。
MOV ① ,#7FFFH
MOV ② ,#00H
UP: MOVX ③ ,A
INC A
JNZ ④
MOV A, ⑤
DOWN: MOVX ⑥ ,A
DEC ⑦
JNZ ⑧
SJMP UP
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
