用C语言将16个数存放到40H中,2012年微型计算机原理与接口技术自考题模拟(1)...

2012年微型计算机原理与接口技术自考题模拟(1):2012年微型计算机原理与接口技术自考题模拟。本试卷总分100分;共有10类型题目

一、单项选择题 ,每小题1分,共16分,在每小题列出的四个备选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。

1.以下集成块型号中,不属于MCS-51系列单片机型号的是(    )

A.8094BH

B.83C452

C.80C32

D.8051AH

2.用8位(bit)二进制能够表示的有符号数的范围是(    )

A.-127~+128

B.-128~+127

C.-127~+127

D.-128~+128

3.下列选项中,合法的C语言关键字是(    )

A.default

B.get

C.integer

D.VAR

4.已知char ch="B";则以下表达式的值是(    )

ch=(ch>="A"&&ch<="Z")?(ch+32):ch;

A.A

B.a

C.b

D.Z

5.变量的指针是(    )

A.变量的首地址

B.变量的值

C.变量的名

D.变量的一个标志

6.打开文件语句fp=fopen("a.dat","r");中fp的类型是(    )

A.File *

B.file

C.File

D.FILE *

7.8051与8751的区别是(    )

A.内部数据存储器的数目不同

B.内部数据存储器的类型不同

C.内部程序存储器的类型不同

D.内部的寄存器的数目不同

8.单片机的指令地址存放在(    )

A.PSW

B.DPTR

C.SP

D.PC

9.MCS-51外部中断1固定对应的中断入口地址为(    )

A.0003H

B.000BH

C.0013H

D.001BH

10.在扩展系统中,能够提供地址信号的高8位的端口是(    )

A.P0口

B.P1口

C.P2口

D.P3口

11.控制串行口工作方式的寄存器是(    )

A.TCON

B.PCON

C.SCON

D.TMOD

12.执行下列3条指令后,30H单元的内容是(    )

MOV R0,#30H

MOV 40H,#0EH

MOV @R0,40H

A.40H

B.30H

C.0EH

D.FFH

13.MOV C,00H指令中源操作数的寻址方式是(    )

A.位寻址

B.直接寻址

C.立即寻址

D.寄存器寻址

14.若设串行控制寄存器SCON=40H,则串行口的工作方式是(    )

A.方式0

B.方式1

C.方式2

D.方式3

15.地址指针DPTR是(    )

A.4位的专用寄存器

B.8位的专用寄存器

C.16位的专用寄存器

D.32位的专用寄存器

16.一个EPROM的地址有A0-A11引脚,它的容量是(    )

A.2KB

B.4KB

C.11KB

D.12KB

二、填空题每小题2分,共8分请在每小题的空格中填上正确答案。

17.int m=5,y=2;则执行表达式y+ =y- =m *=y后的y值是______。

18.若a=3,b=4,c=5,则表达式a||b+c&&b= =c的值是_______。

19.等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有项的和。请填空。

#include<stdio.h>

main()

{int a,d,sum;

a=2;d=3;sum=0:

do{sum+ =a;

a+ =d:

if(______)printf("%d ",sum);

}while(sum<200);

}

20.求出2/1,3/2,5/3,8/5,13/8,21/13……这个数列的前20项之和。请填空。

main()

{int n,t,number=20;

floata=2,b=1,s=0;

for(n=1;n<=number;n++)

{

s=______;

t=a;a=a+b;b=t;

}

printf("sum is%9.6f ",s);

}

三、改错题每小题2分,共8分每小题只有一处错误或不妥。请指出。并将其改正。

21.main()

{

int a b;

a=2;

b=3;

c=a*b

printf("c=%c",c);

}

错误:______

改正:______

22.下面程序的功能是计算1+2+3……+50的和。

main()

(int i,sum;

for(i=1;i<=50;i++)

sum+ =i;

printf("%d",sum);

}

错误:______

改正:______

23.main()

{char s[4]="9876",*p;

for(p=s;p<s+2;p++)printf("%s ",p);

}

错误:______

改正:______

24.struct stud

{char num[6];

int s[4];

double ave=0.0;

}a;

main()

{int i;

for(i=0;i<4;i++)scanf("%d",&a.s[i]);

for(i=0;i<4;i++)a.ave+ =a.s[i];

printf("%f",a.ave);

}

错误:______

改正:______

四、程序阅读题每小题2分,共8分请阅读下列程序。写出程序运行结果。

25.#include"stdio.h"

main()

{int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf("%d,%d",a,b);

}

程序运行结果是:______

26.#include<stdio.h>

main()

{int x;

scanf("%d",&x);

if(x>=60)printf("pass");

else printf("fail");

}

程序运行时输入60<回车>,则程序运行结果是:______

27.#include<stdio.h>

main()

{int i,b,k=0;

for(i=1;i<=5;i++)

{b=i%2;

while(b-->=0)k++;}

printf("%d,%d",k,b);

}

程序运行结果是:______

28.#include<stdio.h>

main()

{int k=0;

char c="A":

do

{switch(c++)

{case"A":k++;break;

case"B":k--;

case"C":k+ =2;break;

case"D":k=k%2;break;

case"E":k=k*10;break;

default:k=k/3;}

k++;}

while(c<"G");

printf("k=%d",k);}

程序运行结果是:______

五、程序设计题每小题1分,共5分

29.请编一个函数int fun(float s[ ],int n),它的功能是:求高于平均分的人数,并作为函数值返回。数组s中存放n位学生的成绩。数组s的值由主函数从键盘读入,用-1来结束输入。

六、填空题每小题2分,共16分请在每小题的空格中填上正确答案。

30.MCS-51的堆栈只可设置在______,其最大容量为______。

31.MCS-51单片机的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的______和______。

32.执行下列程序段后,(A)=______,(CY)=______。

MOV A,#C5H

RL A

33.假设两个一字节的十六进制数9FH,81H相加的和为8位二进制数,那么相加后其进位标志为______,溢出标志为______。

34.已知(31H)=21H,(32H)=04H,执行下列指令组后(31H)=______,(32H)=______。

PUSH 31H

PUSH 32H

POP 31H

POP 32H

35.设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)=______。

ORL A,#27H

ANL A,28H

XCHD A,@R0

36.

设定T1为计数器方式,工作方式2,则TMOD中的值为______。

37.MCS-51内部的SFR共有______个。

七、改错题每小题2分,共4分每小题只有一处错误或不妥,请指出,并将其改正。

38.某8031单片机时钟频率12MHz,T1为工作方式1,2毫秒定时中断,其部分初始化程序如下,请指出错误,并改正之。

MOV TMOD,#01H

MOV TH1,#0F8H

MOV TL1,#30H

MOV IP,#8

MOV IE,#88H

……

0_02012022620432582410254014.gif

错误:______

改正:______

39.下列程序要完成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

错误:______

改正:______

八、程序阅读题,每小题5分,共10分请阅读下列程序,写出程序运行结果。

40.2506H M5: MOV SP,#58H

2509H MOV 10H,#0FH

250CH MOV 11H,#0BH

………

250FH ACALL XHD;PC+2→PC,

MOV 20H,11H

2514H M5A:SJMP M5A

XHD:PUSH 10H

PUSH 11H

POP 10H

POP 11H

RET

执行M5A:SJMPM5A后,(SP)=______(20H)=______

41.设在31H单元存有#23H,执行下面程序:(41H)=______(42H)=______

MOV A,31H

ANL A,#0FH

MOV 41H,A

MOV A,31H

ANL A,#0F0H

SWAP A

MOV 42H,A

九、程序设计题,共5分

42.片外RAM2000H开始的单元中有5BH的数据,编程将它们传送到片内RAM20H开始的单元中去。

十、应用题,共20分

43.一个由AT89C51单片机与一片ADC0809组成的数据采集系统,ADC08的地址为7FF8H~7FFFH。硬件逻辑电路图如下,下面程序是利用中断方式,分别对8路模拟信号轮流采样一次,转换结果依次存放在首址为30H的片外数据RAM中。完成中断服务程序填空。

0_02012022620445851263017865.gif

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值