单片机考试试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

}

相关文档
最新文档