全国自考(微型计算机原理与接口技术)模拟试卷5
一、1.单项选择题
0. 以下集成块型号中属于MCS-51系列单片机型号的是( )
A.8052AH
B.80C198
C.80C196KB
D.80196KC
1. 如果A=125,B=-78,则[A+B]补是( )
A.101110
B.1101111
C.101111
D.100111
2. 算式
的C语言表达式是( )
A.1/(1/x+1/y)
B.1/1/x+1/y
C.1/(1/x)+1/y
D.1/1/(x+y)
3. 下列字符数组长度为5的是( )
A.char a[10]={"h","a","b","c","d"};
B.char b[]={"h","a","b","e","d"," "};
C.char c[]={"h","a","b","c","d"};
D.char d[6]={"h","a","b","c"," "}
4. 对下列结构体变量stu的成员引用不正确的是( ) struct student {int m;float n;}stu,*p;
A.p.stu.n
B.P->m
C.(*p).m
D.stu.n
5. 以下表述错误的是( )
A.ASCII码文件是文本文件
B.ASCII码文件占用内存较少
C.二进制文件占用内存较多
D.语句FILE fp;定义一个名为fp的文件指针
6. MCS-51外部数据总线组成是( )
A.P0
B.P1
C.P2
D.P3
7. 定义位地址的伪指令是( )
A.DS
B.DB
C.BIT
D.DW
8. 8051/8031型单片机中断标志位的个数是( )
A.6
B.5
C.4
D.7
9. MCS-51单片机I/O接口寻址方式是( )
A.独立寻址
B.相对寻址
C.存储器映射
D.绝对寻址
10. 共阳极显示管点亮时输入电平是( )
A.高电平
B.低电平
C.低电压
D.接地
11. PSW中的RS1和RS0用来( )
A.选择工作寄存器区号
B.指示复位
C.选择定时器
D.选择工作方式
12. P0口作数据线和低8位地址线时( )
A.应外接上拉电阻
B.不能作I/O口
C.能作I/O口
D.应外接高电平
13. 8031单片机的定时器T0用作计数方式时是( )
A.由内部时钟频率定时,一个时钟周期加1
B.由内部时钟频率定时,一个机器周期加1
C.由外部计数脉冲计数,正跳变加1
D.由外部计数脉冲计数,一个机器周期加1
14. 在用接口传信息时,如果用一帧来表示一个字符,且每一帧中有一个起始位、一个结束位和若干个数据位,该传送属于( )
A.串行传送
B.并行传送
C.同步传送
D.连续传送
15. 芯片8255A在方式1输出时,它和外设问的联络信号是( )
二、2.填空题
0. int a;则表达式a=25/3%3的值是______。
1. 若a=6,b=4,c=2;则表达式!(a-b)+c-1&&b+c/2的值是______。
2. 以下函数的功能是:求x的y次方。请填空。
double fun(double x,int y)
{int 1;
double z;
for(i=1,z=x;i<y;i++)______;
return z;
}
3. 以下程序是计算10名学生1门课成绩的平均分。请填空。
#include<stdio.h>
float average(float array[10])
{int i;float aver,sum=array[0];
for(i=1;i<10;i++)sum+=______;
aver=sum/10;
return(aver);
}
main()
{float score[10],aver;
int i;
printf("
input 10 scores:");
for(i=0;i<10;i++)scanf("%f",&score[i]);
aver=average(score);
printf("
average score is%5.2f
",aver);
}
三、3.改错题
0. #include"stdio.h"
main()
{int i,s;
s=0;
for(i=0;i<=10;i++;s=s+i)
printf("%d",s);
}
错误:______
改正:______
1. 学习成绩>=90分的用A表示,60-89分之间的用B表示,60分以下的用C表示。
main()
{int score;
char grade;
printf("please input a score!
");
scanf("%d",&score);
grade=score>=90?"A":(score<90?"B":"C");
printf("%d belongs to %c",score,grade);
}
错误:______
改正:______
2. 求数组中最大元素和最小元素。
main()
{int m[10]={3,-30,20,6,77,2,0,-4,-7,99},
int i,max,min:
max=min=m[0];
for(i=0;i<10;i++)
{if(m[i]>max)max=m[i];
if(m[i]<min)min=m;}
printf("%d,%d",max,min);
}
错误:______
改正:______
3. 输入两个整数,调用函数stu()求两个数的立方和,返回主函数显示结果。
int stu(int a,int b)
{return a*a+b*b;}
main()
{int x,y;
scanf("%d,%d",&x,&y);
printf("%d",stu(x,y));
}
错误:______
改正:______
四、4.程序阅读题
0. main()
{inta[]={1,2,3,4,5,6,7,8,9,10},s=0,i;
for(i=0;i<10;i++)
if(a[i]%2==0)s=s+a[i];
printf("s=%d",s);
}
程序运行结果是:______
1. main()
{int k,p;
int s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])k=p;
printf("%d
",k);
}
程序运行结果是:______
2. #include<stdio.h>
main()
{inta[]={1,2,3,4},i,j,s=0;
j=1;
for(i=3;i>=0;i--){s=s+a[i]*j;j=j*10;}
printf("s=%d
",s);
}
程序运行结果是:______
3. #include<stdio.h>
main()
{int a[]={0,2,5,8,12,15,23,35,60,65};
intx=15,i,n=10,m;
i=n/2+1;m=n/2;
while(m!=0)
{if(x<a[i]){i=im/2-1;m=m/2;}
elseif(x>a[i]){i=i+m/2+1;m=m/2;}
else break;}
printf("place=%d",i+1);
}
程序运行结果是:_____
五、5.程序设计题
0. 从键盘上输入20个元素的值存入一维数组a中,然后将下标为(1、3、5、7、9……)的元素值赋值给数组b,输出数组b的内容。
六、6.填空题-单片机原理与接口技术
0. MCS-51系列单片机片内部数据存储器工作寄存器区32个字节被均匀地分为4个组:其中第2组工作寄存器,地址为______;第3组工作寄存器,地址为______。
1. MCS-51单片机的最大程序寻址空间是______,地址范围是______。
2. PCON寄存器中与串行通信有关的只有D7位(SMOD),该位为波特率倍增位。当SMOD=_______时,串行口波特率增加一倍;当SMOD=______时,串行口波特率为设定值。
3. 已知A=87H,(30H)= 76H,执行XRLA,30H后,A=______(30H)=______。
4. 指令DA A是______调整指令,它跟在______的加法指令后。
5. 共阴极LED和共阳极LED的字段码互为______。
6. 使用8031单片机要将
引脚接低电平,因为其内部无______。
7. 8051的中断向量表在______、000B H和0013H、001BH、23H。
七、7.改错题-单片机原理与接口技术
0. 某8031单片机时钟频率12MHz,T1为工作方式1,2毫秒定时中断,其部分初始化程序如下,请指出错误,并改正之。
MOV TMOD,#01H
MOV TH1,#0F8H
MOV TL1,#30H
MOV IP,#8
MOV IE,#88H
……
错误:______
改正:______
1. 下列程序要完成16位无符号数相加,两数分别存于30H,31H和40H,41H(低位在前),并把和存于30H,31H中(设和无进位输出)。请指出错误,并改正之。
MOV A,30H
ADD A,40H
MOV 30H,A
MOV A,31H
ADD A,41H
MOV 31H,A
错误:______
改正:______
八、8.程序阅读题-单片机原理与接口技术
0. 下面程序是将片内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
1. 下面程序将片内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
九、9.程序设计题-单片机原理与接口技术
0. 从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其巾的正数、负数分别送40H和50H开始的内部RAM单元。
十、10.微型计算机原理与接口技术-应用题
0. 下面程序是A/D转换应用程序,可实现多路模拟量输入的巡回检测,采样数据被存放在片内RAM单元中。阅读程序完成说明语句。
ORG 0000H
AJMP MAIN
ORG 0013H ;该地址是①地址
AJMP INT1
MAIN:MOV R0,#78H ;78是②地址
MOV R2,#08H ;
SETB IT1 ;该指令的作用是③
SETB EA
SETB EX1 ;允许INT1中断
MOV DPTR,#6000H;#6000H是④地址
MOV A,#00H ;A的内容对转换结果⑤影响
LOOP:MOVX @DPTR,A ;该指令的作用是⑥
HERE:SJMP HERE
DJNZ R2,LOOP
INT1:MOVX A,@DPTR ;当⑦时,程序将运行到此处。
MOV @R0,A
INC DPTR ;DPTR加1的目的是⑧
INC R0
RET1
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______;
