1、微型计算机原理与接口技术自考题-4 及答案解析(总分:93.00,做题时间:90 分钟)一、单项选择题(总题数:16,分数:16.00)1.8086/8088的中断是向量中断,其中断服务程序的入口地址是由( )提供。A外设中断源BCPU 的中断逻辑电路C从中断控制器读回中断类型号左移两位D中断类型号指向的中断向量表中读出(分数:1.00)A.B.C.D.2.用 8位(bit)二进制能够表示的有符号数的范围是( ) A-127+128 B-128+127 C-127+127 D-128+128(分数:1.00)A.B.C.D.3.以下集成块型号中属于 16位系列单片机型号的是( ) A8051
2、B8051AH C8094BH D8052BH(分数:1.00)A.B.C.D.4.以下有关 C语言的说法中,正确的叙述是( ) AC 语言不但具备高级语言特征,还具备部分汇编语言的功能 BC 语言是一种模块化和结构化的程序设计语言,但程序只能有一个函数组成 CC 语言具有多种多样的数据类型,任何其他语言所有的数据类型,C 语言都有 DC+与 C语言不兼容,因而用户很难从面向过程的程序设计过渡到面向对象的程序设计(分数:1.00)A.B.C.D.5.下面不是三态锁存器的是( ) A74LS244 B74LS373 C74LS377 D74LS273(分数:1.00)A.B.C.D.6.8051
3、单片机串行口用工作方式 0时( ) A数据从 RDX串行输入,从 TXD串行输出 B数据从 RDX串行输出,从 TXD串行输入 C数据从 RDX串行输入或输出,同步信号从 TXD输出 D数据从 TXD串行输入或输出,同步信号从 RXD输出(分数:1.00)A.B.C.D.7.执行 PUSH指令以后,栈指针的变化为( )ASP 加一 BSP 加二CSP 减一 DSP 减二(分数:1.00)A.B.C.D.8.已知(CY)=1(A)=0FH,要使结果为(CY)=0 (A)=1FH,则需执行指令 ( )ARLC A BRRC A CRL A DRR A(分数:1.00)A.B.C.D.9.ADC08
4、09芯片的转换结束信号和输出允许信号分别为( )ASTART,ALE BEOC,OECSTART,EOC DSTART,OE(分数:1.00)A.B.C.D.10.指令 INC BX,其采用的寻址方式是( )A寄存器寻址 B立即寻址C寄存器间接寻址 D变址寻址(分数:1.00)A.B.C.D.11.已知累加器(A)=87H,进位标志(CY)=0,执行 RRC A指令后,(A)和(CY)的内容分别为( ) A0EH,1 B0FH,0 CC3H,0 D43H,1(分数:1.00)A.B.C.D.12.已知 char s120=“china“,char s220=“Beijing“,执行语句 pin
5、e(“%s“,strcat(s1,s2);后,则在屏幕上显示的内容是( )AChina BChinaBeijing CBeijing DBeijingChina(分数:1.00)A.B.C.D.13.关闭文件语句 fclose(fp);中的标识符 fp的类型是( ) AFile* BFILE* Cfile DFile(分数:1.00)A.B.C.D.14.用 16位(bit)二进制能够表示的有符号数的范围是( ) A-327632767 B-32767-32768 C-3276832768 D-3276732767(分数:1.00)A.B.C.D.15.C语言中最基本的数据类型是( ) A整型
6、、实型、逻辑型 B整型、实型、逻辑型、字符型 C整型、字符型、逻辑型 D整型、实型、字符型(分数:1.00)A.B.C.D.16.若 8255A的端口 A工作于方式 2,那么端口 B可工作于( )A方式 0 B方式 1C方式 2 D方式 0或方式 1(分数:1.00)A.B.C.D.二、填空题(总题数:4,分数:8.00)17.代数式 (分数:2.00)填空项 1:_18.下面程序的功能是将字符串 s中所有的字符 a删除。请填空。 #includestdio.h void main() char s80; int i,j=0; gets(s); for(i=0;si!=/0;i+) if(si
7、!=a)_; sj=/0; puts(s);(分数:2.00)填空项 1:_19.执行了 printf(“The file name is d:datadb“);语句,将输出 1。(分数:2.00)填空项 1:_20.下面程序的功能是,输出 100以内能被 3整除且个位数为 6的所有整数。请填空。 main() int i,j; for(i=0;i10;i+)j=i*10+6: if(_)continue;printf(“%d“,j); (分数:2.00)填空项 1:_三、改错题(总题数:4,分数:8.00)21.main() float a10=0.0; int i for(i=0;i3;i
8、+)scanf(“%d“,a1); for(i=0;i10;i+)a0=a0+ai; printf(“%d/n“,a0); 错误:_ 改正:_(分数:2.00)填空项 1:_22.main() int s,i; for(s=0,i=1;i3;i+,s+ =i) printf(“%d/n“,s); 错误:_ 改正:_(分数:2.00)填空项 1:_23.main() int x=1;y; y=x+: printf(“y=%d“,y); int z; z=+x: printf(“z=%d/n“,z); 错误:_ 改正:_(分数:2.00)填空项 1:_24.int ff(int n) static
9、 int f=1; f=f*n: return f; main() int i; for(i=1;i=5;i+); printf(“%d/n“,ff(i); 错误:_ 改正:_(分数:2.00)填空项 1:_四、程序阅读题(总题数:4,分数:16.00)25.#include“stdio.h“ main() int a,b; for(a=1,b=1;a=100;a+) if(b=20)break; if(b%3=1)b+=3;continue; b- =5; printf(“%d/n“,a); 程序运行结果是:_(分数:4.00)填空项 1:_26.#includestdio.h ss(cha
10、r*s) char *p=s: while(*p)p+; return(p-s); main() char *a=“abded“; int i; i=ss(a); printf(“%d/n“,i);程序运行结果是:_(分数:4.00)填空项 1:_27.#includestdio.h main() int x; scanf(“%d“,x); if(x=60)printf(“pass“); else printf(“fail“); 程序运行时输入 60回车,则程序运行结果是:_(分数:4.00)填空项 1:_28.#include stdiohmain() int num,s; scanf(“%
11、d“, sj=/0; puts(s);(分数:2.00)填空项 1:_ (正确答案:sj+=si)解析:解析 该算法是当 si中是 a则在下一次 si不为 a的字母覆盖。19.执行了 printf(“The file name is d:datadb“);语句,将输出 1。(分数:2.00)填空项 1:_ (正确答案:The file name is d:data.db)解析:20.下面程序的功能是,输出 100以内能被 3整除且个位数为 6的所有整数。请填空。 main() int i,j; for(i=0;i10;i+)j=i*10+6: if(_)continue;printf(“%d“
12、,j); (分数:2.00)填空项 1:_ (正确答案:j%3!=0)解析:解析 注意被 3整除的表达式。三、改错题(总题数:4,分数:8.00)21.main() float a10=0.0; int i for(i=0;i3;i+)scanf(“%d“,a1); for(i=0;i10;i+)a0=a0+ai; printf(“%d/n“,a0); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:scanf(“%d“,a1); 改正:将其修改为 scanf(“%f“,a1);)解析:解析 scanf 函数格式类型要对应。22.main() int s,i; for(s
13、=0,i=1;i3;i+,s+ =i) printf(“%d/n“,s); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:printf(“%d/n“,s);改正:将其修改为 printf(“%d/n“,s);)解析:解析 printf 函数的一般形式:printf(“格式控制字符串“,输出数据表列);而“s“为对象地址。23.main() int x=1;y; y=x+: printf(“y=%d“,y); int z; z=+x: printf(“z=%d/n“,z); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:int x=1;y; 改正:
14、int x=1,y;)解析:解析 申明变量时同类型变量名间用,隔开。24.int ff(int n) static int f=1; f=f*n: return f; main() int i; for(i=1;i=5;i+); printf(“%d/n“,ff(i); 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:for(i=1;i=5;i+); 改正:将其修改为 for(i=1;i=5;i+))解析:解析 for 语句形式:for(表达式 1;表达式 2;表达式 3)循环语句 s;四、程序阅读题(总题数:4,分数:16.00)25.#include“stdio.h“
15、 main() int a,b; for(a=1,b=1;a=100;a+) if(b=20)break; if(b%3=1)b+=3;continue; b- =5; printf(“%d/n“,a); 程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:8)解析:解析 在循环体中,当 b=1,4,7,10,13,16,19 时,对应 b=4,7,10,13,16,19,22 则共循环 7次,当 b=22时结束循环。因此 a=8。26.#includestdio.h ss(char*s) char *p=s: while(*p)p+; return(p-s); main() ch
16、ar *a=“abded“; int i; i=ss(a); printf(“%d/n“,i);程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:5)解析:解析 在被调函数中计算字符串的长度,在主函数中输出。27.#includestdio.h main() int x; scanf(“%d“,x); if(x=60)printf(“pass“); else printf(“fail“); 程序运行时输入 60回车,则程序运行结果是:_(分数:4.00)填空项 1:_ (正确答案:pass)解析:解析 条件语句的使用。28.#include stdiohmain() int nu
17、m,s; scanf(“%d“,&num); if(Bum=0&num=100) s=num/10; switch(S) case 6:printf(“%d- - -及格/n“,num);break; case 7:printf(“%d- - -中/n“,nun);break; case 8:printf(“%d- - - 良/n“,Bum);break; case 9: case 10:printf(“%d- - -优/n“,num);break; default:pfintf(“%d- - -差/n“,Bum);程序运行两次,第一次输入值为 85,第二次输入值为 45。 则程序第一次运行结
18、果为: 程序第二次运行结果为:(分数:4.00)填空项 1:_ (正确答案:85 - - -良 45- - -差)解析:五、程序设计题(总题数:1,分数:8.00)29.编制程序,输入 n个整数(n 从键盘输入,n0),输出它们的偶数和。(分数:8.00)_正确答案:(#includestdio.h void main() int i,n,x,sum=0; scanf(“%d“,n); for(i=1;i=n;i+) scanf(“%d“,x); if(x%2= =0)sum+=x; pfintf(“%d/n“,sum); )解析:六、填空题-单片机原理与接口技术(总题数:8,分数:16.00
19、)30.已知片内 RAM(34H)=44H,(35H)=55H,(36H)=66H,寄存器(R 1)=35H,执行下列指令组后,寄存器(R 1)=_H,(R 1)=_H。 DEC R1 INC R1(分数:2.00)填空项 1:_ (正确答案:34 45)解析:31.执行下列指令组后,标志位(OV)=_(P)=_。 MOV A,#0B4H ADD A,#00H SUBB A,#51H(分数:2.00)填空项 1:_ (正确答案:0 0)解析:解析 因为没有溢出 OV=0,因为 A=1O110100B-01010001B=01100011B结果 A中 1的个数为偶数,所以 p=0。32.指令 D
20、A A是_调整指令,它跟在_的加法指令后。(分数:2.00)填空项 1:_ (正确答案:十进制 BCD 码)解析:33.8031单片机若要求将外中断 1和定时器 0设置成高优先级,其余为低优先级,所用的字节操作指令为_。 IP寄存器各位内容 (分数:2.00)填空项 1:_ (正确答案:MOV IP,#06H)解析:34.MCS-51系列单片机有 40个引脚其中:_为时钟引脚、_为复位引脚。(分数:2.00)填空项 1:_ (正确答案:18 和 19 9)解析:35.MCS-51有_个中断源,有 2个中断优先级,优先级由软件填写特殊功能寄存器_进行选择。(分数:2.00)填空项 1:_ (正确
21、答案:5 IP)解析:36.8051内部并行口 P0口直接作输出口时,必须外接_;并行口作输入口时,必须先_,才能读入外设的状态。(分数:2.00)填空项 1:_ (正确答案:上拉电阻 将口锁存器置 1)解析:37.8051单片机有_条地址线,它寻址的地址范围_。(分数:2.00)填空项 1:_ (正确答案:16 64KB)解析:解析 216=65536B=64KB。七、改错题-单片机原理与接口技术(总题数:2,分数:4.00)38.已知在累加器 A中存放一个 BCD(09),下面子程序实现一个查平方表。 SQR: INC A MOVC A,A+PC RET TAB: DB 0,1,4,9,1
22、6 DB 25,36,49,64,81 错误:_改正:_(分数:2.00)填空项 1:_ (正确答案:错误:MOVC A,A+PC 改正:MOVC A,A+PC)解析:解析 语法错误39.下列程序段把片外 RAM从 8100H开始的 10个存储单元的内容移到片内 RAM 40H开始的单元。 PUSH A MOV R7,10 MOV R0,#40H MOV DPTR,#8100H LOOP:MOV A,DPTR MOV R0,A INC R0 INC DPTR DJNZ R7,LOOP POP ACC 错误:_ 改正:_(分数:2.00)填空项 1:_ (正确答案:错误:MOV A,DPTR 改
23、为:MOVX A,DPTR)解析:解析 访问外部 RAM只能用 MOVX操作码八、程序阅读题-单片机原理与接口技术(总题数:2,分数:8.00)40.下面程序是将字节地址_单元的内容逐一取出减 1,然后再放回原处,如果取出的内容为_,则不要减 1,仍将 0放回原处。 MOV R7,#10H MOV R1,#30H L00P:CJNE R1,#00H,NEXT MOV R1,#00H SJMP NEXT1 NEXT:DEC R1 NEXT1:INC R1 DJNZ R7,LOOP SJMP $ END(分数:4.00)填空项 1:_ (正确答案:30H3FH 00H)解析:解析 关键语句 LOO
24、P:CJNE R1,#00H,不能于#00H,执行 NEXT:DEC R1 语句。41.下面程序的功能是_。 ORG 4000h MOV R0,#20H MOV R7,#0AH MOV A,R0 DEC R7 LOOP:INC R0 MOV 40H,R0 CJNE A,40H,NEXT NEXT:JC LOOP1 MOV A,40H LOOP1:DJNZ R7,LOOP MOV 41H,A HERE:SJMP $ END(分数:4.00)填空项 1:_ (正确答案:求存放在片内 20H单元开始的 10个无符号数中最小值。)解析:九、程序设计题-单片机原理与接口技术(总题数:1,分数:8.00)
25、42.在 DATA1为首址的片外 RAM中存放一组单字节数据,以 ODH为结束符。欲统计该数组长度(不包括结束符),存入 R7中,并将原数据区域清零,保留结束符。试补全下列程序。 MOV R7,#00H MOV DPTR,#DATA1(分数:8.00)_正确答案:(LOOP:MOVX A,DPTR )解析:十、十、应用题(总题数:1,分数:1.00)43.下面程序是 A/D转换应用程序,可实现多路模拟量输入的巡回检测,采样数据被存放在片内 RAM单元中。阅读程序完成说明语句。 ORG 0000H AJMP MAIN ORG 0013H ;该地址是地址 AJMP INT1 MAIN:MOV R0
26、,#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 答:_;_;_;_; _;_;_;_;(分数:1.00)填空项 1:_ (正确答案:INT1 中断源的入口 存放转换结果的首地址 设置为边沿触发 809 通道 0的 没有 启动 0809进行转换 发生中断 修改通道地址)解析: