单片机考试试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六届“蓝桥杯”校内选拔赛单片机设计与开发试题
一、选择题:共10题,每题2分,共20 分
1.单片机复位后,SP、PC、I/O口的内容为
A.SP = 60H PC = 00H P0 = P1 = P2 = P3 = FFH
B.SP = 00H PC = 0000H P0 = P1 = P2 = P3 = 00H
C.SP = 07H PC = 0000H P0 = P1 = P2 = P3 = FFH
D.SP = 00H PC = 00H P0 = P1 = P2 = P3 = 00H
2.8051有四个工作寄存器区,由PSW状态字中的RS1和RS0两位的状态来决定,单片机复位后,若执行SETB RS0 指令,此时只能使用区的工作寄存器。A.Ⅰ区 B.Ⅱ区 C.Ⅲ区 D.Ⅳ区
3.在MCS-51中,需要外加电路实现中断撤除的是:
A.定时中断
B.脉冲方式的外部中断
C.外部串行中断
D.电平方式的外部中断
4、关于定时器,若振荡频率为12 MHz,在方式1下最大定时时间为
A.8.192ms
B. 65.536 ms
C. 0.256ms
D.16.384ms
5、开机复位后,CPU使用的是第0组工作寄存器,地址范围是。
A.00H-10H
B.08H-0FH
C.10H-1FH
D.00H-07H
6、某种存储器芯片是8KB*2片,那么它的地址线根线是。
A、11根
B、12根
C、13根
D、14根
7、下列初始化语句中,正确且与语句
char c[ ]="string";等价的是。
A) char c[ ]={'s','t','r','i','n','g'};
B) char c[ ]='string';
C) char c[7]={'s','t','r','i','n','g','\0'};
D) char c[7]={'string'};
8、分析下面的代码:
if(x>20||x<-10)
if(y<=100&&y>x)
printf("Good");
else
printf("Bad");
如果x=30,y=150,输出为。。
A. Good
B. Bad
C. Good Bad
D. Bad Good
9、若w=1,x=2,y=3,z=4,则条件表达式w A. 4 B. 3 C. 2 D. 1 10、下面程序的运行结果是。 #include void main() {int y=10; do{y--;}while(- -y); printf(“%d\n”,y- -);} A. -1 B. 1 C. 8 D. 0 二、填空题:每空1分,共20 分 1.编程时,一般在中断服务子程序和子程序中需要保护和恢复现场,保护现场用 指令,恢复现场用指令。 2.若同时中断实现下列顺序:T0>外中断1>外中断0,则要_______、_______和CLR PX0。(IP:———PS PT1 PX1 PT0 PX0) 3、MCS-51单片机PC的长度为16位;SP的长度为位,DPTR的长度为位。 4、访问MCS-51单片机程序存储器地址空间、片内数据存储器地址、片外数据存储器地址的指令分别为、和。 5、外部中断有两种触发方式:和。 6、单片机串行通信时,若要发送数据,就必须将要发送的数据送至单元,若要接收数据也要到该单元取数,取数的指令为。 7、LED数码显示按显示过程分为显示和显示2种。前者,对每位显示来说是连续显示的,且显示亮度较高;后者,多位显示时节省外部驱动芯片,显示亮度较低,功耗较低。 8、下列程序的输出结果是________。 #include main( ) { char b[30],*chp; strcpy(&b[0],"CH"); strcpy(&b[1],"DEF"); strcpy(&b[2],"ABC"); printf("%s \n",b); } 9、把数组a(大小为M)中前M-1个元素中的最小值放入a的最后一个元素中#include #define M 11 void main() { int a[M],i; for(i=0;i scanf("%d",&a[i]); a[M-1]=a[0]; /************found************/ for(i=1; _____;i++) /************found************/ if(_____) a[M-1]=a[i]; printf("Max is %d\n",a[M-1]); } 10、求一维数组a中非素数之和。 例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17, 则程序的输出应为:Sum is: 54。 #include #include #include void main() { int a[12]={2,3,5,7,8,9,10,11,12,13,15,17},i,j,k,s; /************found************/ ______; for ( i=0; i<12; i++) { k=sqrt(a[i]); for ( j=2;j <= k; j++) if (a[i] % j == 0) break; if( j<=k ) /************found************/ s=s+_______; } printf("Sum is: %d\n",s); }