自考—微型计算机原理与接口技术试04年4月

更新时间:2023-11-14 00:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国2004年4月自考微型计算机原理与接口技术试题

课程代码:02205

一、单项选择题(本大题共21小题,每小题1分,共21分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.main() { int x,y; x=y=1; y=++x;

printf(″%d,%d\\n″,x,y); }

程序运行结果为( ) A.2,2 B.1,2 C.2,1 D.1,1 2.main() {

int x=5,y=3,z=1;

printf(″%d\\n″,x>y&&y0); }

程序运行结果为( ) A.1 B.3 C.5 D.0 3.main() { int k=10; while(k= =0)

{k=k-1;

printf(“k=%d”,k);}

}

程序中循环体执行的情况是( ) A.执行10次 B. while构成无限循环 C.一次也不执行 D.执行一次 4.文件a.dat中依次存放0-9十个字符( ) #include” stdio.h” main() {FILE*p; int i; char c;

p=fopen(”a.dat”,”r”); for(i=0; i<4;i++) c=fgetc(p); fclose(p);

printf(”%c\\n”,c); }

程序运行结果为( ) A.0123 B.3 C.4 第 1 页

D.0

5.16位二进制所表示的无符号整数,其相应的十进制数范围是( ) A.0~65536 B.1~65536 C.1~65535 D.0~65535 6.MCS—51系列单片机8031片内EPROM有( ) A.0KB B.4KB C.2KB D.8KB 7.十进制数215转换成二进制数表示,是( ) A.11010111B B.10001101B C.11011111B D.11110101B 8.8031单片机所用的电源是( ) A.±15V B.+15V C.+5V D.±5V 9.8031单片机内有_________定时器/计数器。( ) A.2个13位 B.2个16位 C.1个13位,1个8位 D.2个8位 10.8031单片机外接ROM时,其P2口用作( ) A.数据总线 B.I/O口 C.地址总线低 8位 D.地址总线高8位 11.8031单片机外部ROM、RAM和I/O的地址空间容量共为( ) A.16K B.32K C.64K D.128K

12.8031单片机外接EPROM时,使用 引脚来读EPROM的数据。 ( )

A.ALE B.PSEN C.EA D.RD 13.执行返回指令RET,返回的地址来自( ) A.ROM区 B.堆栈指针SP C. 堆栈栈顶 D. 程序计数器PC 14.执行下列指令组后,A的内容为( ) MOV A.#55H ORL A.#00H A.55H B.AAH C.00H D.FFH 15.以下各指令中,___________不属于MCS—51系列的指令。( ) A.ADD A,Rn B.ADD Rn,#30H C.ADDC A,30H D.ADD A,@Ri 16.在2100H开始存放短转移指令SJMP 40H,执行该指令后,PC值为( ) A.2140H B.2142H C.2060H D.20C2H 17.8031单片机的定时器0的中断程序入口地址为( ) A.001BH B.0003H C.000BH D.0013H

18.8031单片机当允许CPU响应外中断1的中断请求时,其IE中的_______位必须为1。 IE寄存器格式 EA — — ES ET1 EX1 ET0 EX0 ( )

A.EX0和EA B.ES和EX1 C.EX1和EA D.ET1和EA 19.8031单片机中IP的内容为00H时,优先权最高的中断源是 IP寄存器格式 ( ) — — — PS PT1 PX1 PT0 PX0

A.外中断0 B.外中断1 C.定时器T0 D.串行口

20.当8031单片机IP中的PT0=1,PX1=1,PX0=0,PT1=0,PS=0时,优先权最高的中断源是( ) A.外中断0 B.外中断1 C.定时器T0 D.定时器T1 21.2764是容量为8KB的EPROM,该芯片的地址线为 根。( ) A.8 B.12 C.10 D.13 二、改错题(本大题6小题,每小题2分,共12分)

(下面的程序或程序段存在一个错误或不妥处请在其下划一条线,并将改正的内容写到每小题后的空白处) 22.main() { char cl,c2; cl=’9’;

第 2 页

c2=’10’;

printf(”cl=%c,c2=%c\\n”,c1,c2);

}

23.main() { float a,b,c;

scanf(”%f%f”,&a,&b); c=a>b?a=1;b=0:a+b; printf(”c=%f\\n”,c); }

24.main() { int a,*p; a=20; p=a;

printf(“a=%d”,*p); }

25.main() {struct student {char name[30]; int age; float score; }s,t, *p; p=&s;

scanf(”%s”,s.name); scanf(”%d”,&s.age); scanf(”%f”,&s.score); t.score=*p->score; printf(”%f\\n”,t.score); }

26.下列指令组,要完成当(A)≤80H时,转去执行2800H开始的程序,当(A)>80H时,执行3700H开始的程序。请找出错误,并改正之。

CJNE A, #80H, NEXT

TEN: LJMP 2800H NEXT: JNC TEN LJMP 3700H

27.下列子程序欲将累加器A中的原码表示的8位带符号二进制数变为补码形式仍存于A中。 请找出错误,并改正之。 COPL: JNB ACC.7, DONE CPL A INC A

ORL A,#80H

DONE: SJMP DONE

三、填空题(本大题共15小题,每小题2分,共30分。) 请在每小题的空格中填上正确答案。错填、不填均无分。

第 3 页

28.以下程序的功能是在输入的一组正整数中找出其中的最大者,若输入的数值为0,程序结束。 main()

{int a,max=0; scanf(”%d”&a); while(a)

{if(________)max=a; scanf(“%d”,&a);} printf(“%d”,max); }

29.以下程序是计算s=1*2*3*4*5的值 main() { int k,s=1;

for(k=1;_______;k++) s=s*k;

printf(“s=%d\\n”,s); }

30.下列程序的功能是:若数组元素的值为偶数则置0,奇数保持不变。 main()

{int a[100],i;

for(i=0;i<100;i++) scanf(”%d”,&a[i]); for(i=0;i<100;i++)

if(_________)a[i]=0; for(i=0;i<100;i++) printf(”?”, a[i]); }

31.函数gcd(a,b)的功能是求二数的最大公约数。 int gcd(a,b) int a,b; {int c; while(b) {c=a%b; a=b; b=c; }

____________ }

main() {int a,b;

scanf(“%d%d”,&a,&b);

printf(“gcd is %d\\n”,gcd(a,b)); }

32.十进制数—127用8位二进制数补码表示时,应为________H。 33.一个8位二进制数的补数是用100H减去该二进制数,那么81H的补数是100H—81H,其结果为____________H。 34.8031单片机使用RD和WR来读写片外____________的内容。

第 4 页

35.请写出二条相对寻址方式的指令________。 36.执行下列指令组后(A)=______________。 MOV A,#24H RL A RL A RL A RL A

37.执行下列指令组后,累加器(A)=_____________,进位标志(CY)=_________。 SETB C

MOV A, #25H ADDC A, #0A6H

38.堆栈区是在____________区开辟的一个区域,其数据的存取遵守_________的原则。

39.某8031单片机中,T1作为计数用,当有一脉冲从引脚P3.5(T1)输入时,TL1的内容将_________。

40.8031单片机中,如希望CPU能响应外中断1和串行口的中断,而不响应其他中断,其IE寄存器的内容应为_____________。 IE寄存器格式 EA — — ES ET1 EX1 ET0 EX0

41.若8031单片机的T0作定时器为工作方式1,T1作计数器为工作方式0,均无门控功能,则TMOD寄存器的内容应为______________B。

T1方式字段 T0方式字段 TMOD寄存器格式 GATE C/T M1 M0 GATE C/T M1 M0

42.可编程并行I/O接口芯片8255内部有_________端口,每个口有_________位线。 四、程序阅读题(本大题共4小题,每小题4分,共16分) 43.main()

{int a=1,b=2,*p1=&a,*p2=&b; p1=p2;

printf(“a=%d b=%d *p1=%d *p2=%d\\n”, a,b, *p1, *p2); }

程序运行的结果是: 44. int f(n) int n;

{if(n>0)return n*f(n-1); else return 1; }

main() { int k; k=f(5);

printf(”k=f(5)=%d\\n”,k); }

程序运行结果是:

45.阅读下列程序,说明程序的功能 MOV DPL, #00H MOV R1, #20H MOV R2, #30H

MOV R0, #50

第 5 页

本文来源:https://www.bwwdw.com/article/y24v.html

Top