微型计算机原理与接口技术试题.docx
《微型计算机原理与接口技术试题.docx》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术试题.docx(17页珍藏版)》请在冰豆网上搜索。
微型计算机原理与接口技术试题
微型计算机原理与接口技术试题
微型计算机原理与接口技术试题
第一部分C语言程序设计
一、单项选择题(本大题共4小题,每小题1分,共4分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
1.已知字母A的ASCII码为十进制的65,则下面程序的输出是()
main()
{charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不确定的值
2.若有代数式
:
则不正确的C语言表达式为()
A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3
3.程序运行结果是()
main()
{intn=0;
while(n<=2)
{n++
printf('%d',n);
}
}
A.1B.12C.123D.1234
4.设有以下语句:
structst
{intn;
structst*next;
};
structsta[3]={5,&a[1],7,&a[2],9,'\0'},*p;
p=&a[0];
表达式(++p)->n的值为:
()
A.5B.7C.9D.'\0'
二、改错题(本大题共4小题,每小题2分,共8分。
下面的程序或程序段存在一个错误或不妥处,请在其下划一条线,并将改正的内容写到每小题后的空白处。
)
5.main()
{inta,b,c,max=0,min=0;
scanf("%d%d%d",&a,&b,&c);
if{a>b&&a>c)max=a;
elseifaelsemax=min=c;
printf("max=%d,min=%d\n",max,min);
}
6.main()
{intx;
scanf("%d",&x);
switch(x)
{casex==0:
printf("x=0\n");break;
default:
Printf("x!
=0\n");
}
}
7.main()
{chara[]="china",b[]="good";
printf("%s,%s",a[],b[]);
}
8.#include"stdio.h"
main()
{file*p;
p=fopen("link.dat","r");
while(!
feof(p))
printf("%c\t",fgetc(p));
fcolse(p);
}
三、填空题(本大题共4小题,每小题2分,共8分。
)
9.若有定义:
inta[3][4]={{1,2},{3,5,7},{4,6,8,10}};则初始化后,a[1][2]得到的初值是______。
10.程序是求数组中最大元素的下标。
main()
{ints[100],i,k;
for(i=0;i<100;i++)
scanf("%d",&s[i]);
for(i=0,k=0;i<100;i++)
if(s[i]>s[k])__________
printf("k=%d\n",k);
}
11.函数capital_num()的功能是统计一段文字的大写字母数。
#include"stdio.h"
main()
{charc[256];
intk;
gets(c);
k=capital_num(c);
printf("numberofcapitalis%d\n",k);
}
intcapital_num(c)
charc[];
{intn=0,i;
for(i=0;c[i]!
='\0';i++)
if(c[i]>='A'&&c[i]<='Z')n++;
_____
}
12.已知inta[10],*p=a;那么数组元素a[5]的地址用p表示为_____
四、程序阅读题(本大题共2小题,每小题4分,共8分。
)
13.main()
{intx=1,y=1,i=1;
do
{x=x+y;y=x+y;i++;
printf("x=%dy=%d\n",x,y);
}while(i<=3);
}
程序运行的结果是_____
14.main()
{inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
prinrf("f()=%d\n",f(a,b,c));
}
intmax(a,b,c)
inta,b,c;
{a=aa:
b;
return=a;
}
intmin(a,b,c)
inta,b,c;
{a=a
a:
b;
a=aa:
c;
returna:
}
intf(a,b,c)
inta,b,c;
{return(max(a,b,c)+min(a,b,c))/2};}
输入三个数为:
90,72,48。
程序运行结果为_____
五、程序设计题(本大题共1小题,每小题7分,共7分)。
15.已知主函数main()调用函数fmax()来计算数组中的最大元素及下标,请在空白处写完函数fmax()。
intfmax(x,n,k)
intx[],n,*k;
{
}
main()
{inta[100],i,k,*p=&k,max;
for(i=0;i<100;i++)
scanf("%d",&a[i]);
max=fmax(a,100,p);
printf(“最大值为:
%d,最大值的下标为:
%d\n",max,k);
}
第二部分MCS—51单片机原理与接口技术
一、单项选择题(本大题共11小题,每小题1分,共11分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
16.8位二进制所表示的无符号整数,其相应的十进制数范围是()
A.0-255B.1-256C.1-255D.0-256
17.字母“b”的ASCII码是()
A.11HB.0BHC.B0HD.62H
18.十进制数-1用二进制补码表示,该补码是()
A.FFHB.00HC.FEHD.81H
19.8031单片机外接ROM时,使用()引脚来选通74LS373芯片
A.ALEB.P
C.
D.
20.如果8031单片机的一个机器周期为2微秒,则其时钟频率为()MHz
A.6B.8C.12D.16
21.8031单片机内含定时器和串行口的个数分别为()
A.2和1B.1和2C.3和1D.2和2
22.对程序存储区数据传送,应采用助记符为()
A.MOVB.MOVXC.MOVCD.PUSH
23.下列各指令中()才属于MCS-51指令系统的位指令
A.ANLC.,/bitB.XRLC,bitC.ORLbit,CD.MOVC,/bit
24.8031单片机外部中断0请求信号输入的引脚是()
A.RXDB.
C
D.
25.8031单片机的定时器1的中断程序入口地址为()
A.001BHB.0003HC.000BHD.0013H
26.8031片外可扩展数据存储器()KB
A.64B.32C.8D.4
二、改错题(本大题共3小题,每小题2分,共6分。
下面的程序或程序段存在一个错误或不妥处,请在其下划一条线,并将改正的内容写到每小题后的空白处。
)
27.某8031单片机时钟频率12MHz,T1为工作方式1,2毫秒定时中断,其部分初始化程序如下,请指出错误,并改正之。
MOVTMOD,#01H
MOVTH1,#0F8H
MOVTL1,#30H
MOVIP,#8
MOVIE,#88H
…
T1方式字段T0方式字段
TMOD寄存器格式
GATE
C/T
M1
M0
GATE
C/T
M1
M0
IP寄存器格式
—
—
—
PS
PT1
PX1
PT0
PX0
IE寄存器格式
EA
—
—
ES
ET1
EX1
ET0
EX0
28.下列程序要完成16位无符号数相加,两数分别存于30H,31H和40H,41H(低位在前)并把和存于30H,31H中(设和无进位输出)。
请指出错误,并改正之。
MOVA,30H
ADDA,40H
MOV30H,A
MOVA,31H
ADDA,41H
MOV31H,A
29.下列延时子程序,具有保护现场的指令(此处欲保护A及PSW两个特殊功能寄存器)请指出错误,并改正之。
DLY0:
PUSHACC
PUSHPSW
MOVR1,#32H
DLY1:
NOP
DJNZR1,DLY1
POPACC
POPPSW
RET
三、填空题(本大题共13小题,每小题2分,共26分)
30..87H是用8位二进制原码表示的十六进制数,其相应的十进制数是____。
31.假设2个一字节的十六进制数9FH,81H相加的和仍然为8位二进制数,那么相加后其进位标志为_________(1或0),溢出标志为_________(1或0)。
32.8031单片机外接ROM时,其P0口具有传送_________信号和_________信号的双重功能。
33.当8031单片机中IP=0EH,IE=8DH时,CPU能响应的优先权最低的中断源是_________。
IP寄存器格式
—
—
—
PS
PT1
PX1
PT0
PX0
IE寄存器格式
EA
—
—
ES
ET1
EX1
ET0
EX0
34.8031.单片机中,T0初始化后让其开始计数,应将TCON中的位置1。
定时器控制外部中断控制
TCON寄存器格式
TE1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
35.8031.单片机内部数据RAM中的位寻址区的地址范围是
36.某8031单片机时钟频率为12MHz,现将T0设置为定时方式1,定时时间为1毫秒,其计数器中的时间常数初值应为_________(写成四位十六进制数)
37.已知(31H)=21H,(32H)=04H执行下列指令组后(31H)=_________(32H)=_________
PUSH31H
PUSH32H
POP31H
POP32H
38.如要选择2组的工作寄存器交换数据,可先执行指令_________
PSW(地址为DOH)的格式为
CY
AC
FO
RS1
RS0
OV
—
P
39.执行下列指令组后,(A)=_________标志位(OV)=_________(P)=_________
MOVA,#0B4H
ADDA,#00H
SUBBA,#51H
40.执行下列指令组后,累加器(A)=_________。
它与R1中内容的关系是_________
MOVR1,#87H
MOVA,R1
CPLA
INCA
SETBACC.7
41.下列伪指令汇编后,存放25H的单元及LOOP的值分别是_________=25H
LOOP=_________。
ORG0100H
TAB:
DB‘ABC’
NOON:
DS03
BUF:
DB25H
LOOPEQU2100H
42.8031.单片机有4个口,其中_________口可以直接应用于I/O口。
四、程序阅读题(本大题共2小题,每小题4分,共8分)
43.阅读下列程序,说明程序的功能
MOVDPTR,#DATA1
MOVCONT,#00H
LOOP:
MOVA,@DPTR
HERE:
JZHERE
INCCONT
INCDPTR
SJMPLOOP
44.见如图,通过8031单片机的P1口接8只发光二极管,读如下程序后回答问题:
ORG0000H
LJMP0200H
ORG0200H
START:
MOVA,#01H
LOOP:
MOVP1,A
LCAILD2S;调用延时2秒子程序
RLA;A循环左移
SJMPLOOP
D2S:
……;子程序略
RET
END
1.第一次调用子程序时,哪个发光二极管亮?
2.第二次调用子程序时,哪个发光二极管亮?
3.第八次调用子程序时,哪个发光二极管亮?
4.第九次调用子程序时,哪个发光二极管亮?
五、程序设计题(本大题共1小题,共6分)
45.在3500H为首址的片外RAM区中,有20个补码表示的数,欲编程序,把其中正数传到20H为首址的片内RAM区中,负数不传送,请补全下列程序。
MOVDPTR,#3500H
MOVR2,#14H
MOVR0,#20H
六、应用题(本大题共1小题,共8分)
46.8031外部扩展DAC0831芯片,见如图,输入寄存器为1B28H,DAC寄存器为1B29H,假定00H对应D/A输出0V,FFH对应D/A输出5V,阅读如下程序,回答问题
ORG0000H
LJMPSTART
ORG0200H
START:
MOVDPTR,#1B28H
MOVA,#0
LP1:
MOVX@DPTR,A
INCDPTR
MOVX@DPTR,A
ACALLD1MS;调用1ms子程序
INCA
CJNEA,#0FFH,LP1
NOP
LP2:
MOVDPTR,#1B28H
MOVX@DPTR,A
INCDPTR
MOVX@DPTR,A
ACALLD1MS;调用1ms(1毫秒)子程序
DECA
CJNEA,#0,LP2
SJMPLP1
延时1ms(1毫秒)子程序略去
1.该程序运行后,D/A转换输出_________波形
2.波形周期为_________秒(忽略指令时间)
微型计算机原理与接口技术试题参考答案
课程代码:
02205
第一部分C语言程序设计
一、单项选择题(本大题共4小题,每小题1分,共4分。
)
1.A2.C3.C4.B
二、改错题(本大题共4小题,每小题2分,共8分。
)
5.把elseifa6.把casex==0:
printf("x=0\n");break;改成case0:
printf("x=0\n");break
7.把printf("%s,%s",a[],b[]);改成:
printf("%s,%s,"ab);
8.把file*p;改成FILE*p
三、填空题(本大题共4小题,每小题2分,共8分。
)
9.7
10.k=i;
11.returnn;
12.P+5
四、程序阅读题(本大题共2小题,每小题4分,共8分。
)
13.x=2y=3
x=5y=8
x=13y=21
14.f()=69
五、程序设计题(共7分)
15.intfmax(x,n,k)
intx[],n,*k;
{intm=x[0]i;
for(i=0;iif(mreturn(m);
}
第二部分MCS-51单片机原理与接口技术
一、单项选择题(本大题共11小题,每题1分,共11分。
)
16.A17.D18.A19.A20.A21.A22.C23.A24.B25.A26.A
二、改错题(本大题共3小题,每小题2分,共6分)
27.第一行应为MOVTMOD,#10H
28.错误:
ADDA,41H正确:
ADDCA,41H
29.错误:
POPACC正确:
POPPSW
POPPSWPOPACC
三、填空题(本大题共13小题,每小题2分,共26分)
30.-7
31.进位标志为1,溢出标志为1
32.数据低8位地址
33.外中断0
34.TRO
35.20H~2FH
36.0FC18H
37.(31H)=04H
(32H)=21H
38.SETBPSW.4或MOVPSW,#10H
CLRPSW.3XXX10XXX
39.(A)=63H
(OV)=1
(P)=0
40.(A)=F9H
(A)是(R1)的补码
41.(0106H)=25H
LOOP=2100H
42.P1
四、程序阅读题(本大题共2小题,每小题4分,共8分)
43.功能:
统计首址为DATA1的片内RAM中的数组在出现0以前数据的个数(不包括0,且小于255)并存于CONT单元中。
片内RAM首址DATA1
统计数组长度(不包括0)
在出现0以前的数组
数组长度小于255,存于CONT单元。
44.1.L1(最上面的发光二级管)亮,即P1.0对应的二极管亮
2.L2亮
3.L8亮(最下面的二极管)
4.L1又亮
五、程序设计题(本大题共1小题,共6分)
45.LOOP:
MOVXA,@DPTR
JBACC.7,COM
MOV@RO,A
INCRO
COM:
INCDPTR
DJNZR2,LOOP
HERE:
SJMPHERE
要点:
(1)正负数判断
(2)片外RAM和片内RAM传递指令
(3)循环程序中的循环部分,如修改计数器,检测结束条件。
六、应用题(本大题共1小题,共8分)
46.1三角波;
2.0.51秒;