2012年微型计算机原理与接口技术自考题模拟(4)
2012年微型计算机原理与接口技术自考题模拟(4):2012年微型计算机原理与接口技术自考题模拟。本试卷总分100分;共有10类型题目
一、单项选择题 ,每小题1分,共16分,在每小题列出的四个备选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。
1.以下集成块型号中不属于8位系列单片机型号的是( )
A.83C152JC
B.83C52JA
C.83C51FB
D.8097JF
2.以下使用后缀表日月十六进制数的是( )
A.B
B.H
C.D
D.O
3.以下说法正确的是( )
A.计算机能直接执行C的源程序
B.后缀是EXE的文件是二进制文件
C.后缀是OBJ和EXE的文件是可执行文件
D.后缀是OBJ的文件是二进制文件
4.从循环体内某一层跳出,继续执行循环外的语句是( )
A.return语句
B.break语句
C.continue语句
D.空语句
5.执行下面程序段后,正确的结果是( )
int x=0,y=0;
while(x<15)y++,x+ =++y;
A.x=8
B.y=20
C.x=20
D.y=12
6.以下定义,使p指向data和a域的赋值语句是( )
struct stuclent
{int a;float b;}data,*p;
A.p=&a;
B.p=data.a;
C.*p=data.a;
D.p=&data.a;
7.下面不是运算器完成的主要任务是( )
A.算术运算
B.位运算
C.数据处理
D.指令译码
8.不是伪指令关键字的是( )
A.ORG
B.START
C.EQU
D.DATA
9.8051/8031型单片机提供中断源的个数是( )
A.3
B.4
C.6
D.5
10.不是MCS-51单片机I/O的数据传送方式的是( )
A.无条件传送
B.随机传输
C.查询方式
D.中断方式
11.共阴极显示管点亮时输入电平是( )
A.低电平
B.低电压
C.低阻态
D.高电平
12.单片机上电复位后,堆栈区的最大允许范围的单元是( )
A.64
B.120
C.128
D.256
13.8051单片机的VCC(40)引脚是( )
A.主电源+5V引脚
B.接地引脚
C.备用电源引脚
D.访问片外存贮器引脚
14.8031的定时器T1作计数方式,模式2的方式控制字是( )
A.60H
B.02H
C.06H
D.20H
15.8031的定时器T0作计数方式,用模式1(16位计数器),则应用初始化编程指令是( )
A.MOV TMOD,#01H
B.MOV TMOD,10H
C.MOV TMOD,#05H
D.MOV TCON,#05H
16.8255是一个可编程的:I/O接口芯片,“可编程”是( )
A.有14位可控定时器/计数器
B.芯片内包含有256字节的RAM
C.只能使用中断编程的方法进行I/O数据传送
D.使用命令字以程序方法设置I/O数据传送的方式
二、填空题每小题2分,共8分请在每小题的空格中填上正确答案。
17.inta,b,c;则表达式a=(b=4)+(c=2)的值是______。
18.若a=1,b=4,c=3,则表达式!(a<b)||!c&&1的值是______。
19.以下程序的功能是计算字符串的长度。请填空。
#include<stdio.h>
main()
{char str[100],*sp=str;
int nlen=0;
scanf("%s",str);
for(;*sp!=" ";sp++)______;
printf("%d",nlen);
}
20.以下程序的功能是对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;}
}
三、改错题每小题2分,共8分每小题只有一处错误或不妥。请指出。并将其改正。
21.#include<stdio.h>
#include<conio.h>
main()
{
int i,j;
char ch;
while(ch=getchar()!="
")
{
i++:
printf("%c",ch);
}
printf("you type%d characters
",i);
}
错误:______
改正:______
22.main()
{
float a[10]={0.0};
int i
for(i=0;i<3;i++)scanf("%d",&a[1]);
for(i=0;i<10;i++)a[0]=a[0]+a[i];
printf("%d
",a[0]);
}
错误:______
改正:______
23.下面程序的功能是将大写字母改成小字母,小字母改成大写字母。
main()
{char ch;
scanf("%c",&ch);
if(ch>="A"||ch<="Z")ch=ch+32;
elseif(ch>="a"&&ch<="z")ch=ch-32;
printf("%c",ch);
}
错误:______
改正:______
24.main()
{char s[]="9876",*p;
*p=s:
printf("%s",p);
}
错误:______
改正:______
四、程序阅读题每小题2分,共8分请阅读下列程序。写出程序运行结果。
25.#include<stdio.h>
#define N 6
void main()
{int a[N]={4,5,8,3,6,1};
int j,i,t;
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(j=0;j<N;j++)printf("%5d",a[j]);
程序运行结果是:______
26.#include<stdio.h>
main()
{int x,sum;
scanf("%d",&x);
sum=0;
while(x>0)
{if(x%2==0)sum+=x;
scanf("%d",&x);}
printf("%d
",sum);
}
程序运行时输入1 9 3 4 0<回车>,则程序运行结果是:______
27.#include"stdio.h"
main()
{int i;
for(i=1;i<=5;i++)
{if(i%2)printf("*");
else continue;
printf("#");}
printf("#");}
程序运行结果是:______
28.#include<stdio.h>
main()
{int n,sum=0;
scanf("%d",&n);
do{sum=sum+(n%10)*(n%10);
n=n/10;}while(n);
printf("sum=%d",sum);
}
程序运行时,从键盘输入2345<回车>,运行结果是:______
五、程序填充题
五、程序设计题每小题1分,共5分
29.每个苹果0.8元,第一天买两个苹果,第二天开始,每天买前一天的两倍,直到买的苹果个数达到不超过100的最大值。编写程序,求每天平均花多少钱?
六、填空题每小题2分,共16分请在每小题的空格中填上正确答案。
30.8255A属于可编程的______I/0接口芯片,8255A的A通道有______种工作方式。
31.MCS-51的存储器空间配置从功能上可分为四种类型:______、内部数据存储器、______、外部程序存储器。
32.执行下面一段程序后,(A)=______,(B)=______。
MOV SP,#60H
MOV A,#10H
MOV B,#01H
PUSH A
PUSH B
POP A
POP B
33.8051单片机内有______个16位的定时/计数器,______有四种工作方式。
34.MUL AB的执行结果是存储高8位在______中,低8位在______中。
35.8031单片机内部数据RAM中的位寻址区的地址范围是______。
36.
37.某8031单片机时钟频率为12MHz,现将T0设置为定时方式1,定时时间为1毫秒,其计数器中的时间常数初值应为______。(写成四位十六进制数)
七、改错题每小题2分,共4分每小题只有一处错误或不妥,请指出,并将其改正。
38.下面程序段是将片外RAM20H~25H单元清零。
MOV R0,#20H
MOV R7,#06H
CLR A
LOOP: MOV @R0,A
INC R0
DJNZ,#3000H
错误:______
改正:______
39.下面程序段是将ROM 3000H单元内容送R7。
MOV DPTR,#3000H
CLR A
MOVC A,@R7+DPTR
MOV R7,A
错误:______
改正:______
八、程序阅读题,每小题5分,共10分请阅读下列程序,写出程序运行结果。
40.以下是8051单片机定时/计数器的初始化程序(设单片机晶振频率是6MHz):T0作为定时,定时时间为______,T1作为计数,记满______溢出。
ORG 0000H
LJMP 0050H
ORG 0050H
MOV TMOD,#20H
MOV TH0,#63H
MOV TL0,#18H
MOV TH1,#9CH
MOV TL,#9CH
SETB EA
SETB TR0
SETB TR1
SJMP $
41.下面程序是将片内RAM______开始的单元内10个二进制数,找出其中最大值并存于单元中。
START: MOV R0,#40H
MOV R7,#09H
MOV A,@R0
LOOP: INC R0
MOV 30H,@R0
CJNE A,30H,NEXT
NEXT: JNC BIE1
MOV A,30H
BIE1: DJNZ R7,LOOP
MOV 50H,A
RET
九、程序设计题,共5分
42.RAM中60H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R6中。
十、应用题,共20分
43.下面程序是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
答:①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______;
