微型计算机原理与接口技术复习题.docx
- 文档编号:28710161
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:24
- 大小:47.47KB
微型计算机原理与接口技术复习题.docx
《微型计算机原理与接口技术复习题.docx》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术复习题.docx(24页珍藏版)》请在冰豆网上搜索。
微型计算机原理与接口技术复习题
C语言程序设计
一、单项选择题:
在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号。
错选、多选或未选均无分。
1.若有代数式
:
则不正确的C语言表达式为【C】
A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3
2.通常使用后缀表明数的各种进制,以下叙述不正确的是【D】
A.后缀B:
二进制B.后缀H:
十六进制
C.后缀D:
十进制D.后缀A:
八进制
3.设floatx,由键盘输入:
12.45,能正确读入数据的输入语句是【A】
A.scanf("%5f",&x)B.scanf("%5d",&x)
C.scanf("%f",x);D.scanf("%s",&x)
4.完成C源程序编辑后,到生成执行文件,C语言处理系统必须执行的步骤依次为:
【B】
A.连接、编译B.编译、连接C.连接、运行D.运行
5.以下关于运算符优先级的描述中,正确的是【A】
A.!
(逻辑非)>算术运算>关系运算>&&(逻辑与)>‖(逻辑或)>赋值运算
B.&&(逻辑与)>算术运算>关系运算>‖(逻辑或)>赋值运算
C.关系运算>算术运算>&&(逻辑与)>‖(逻辑或)>赋值运算
D.赋值运算>算术运算>关系运算>&&(逻辑与)>‖(逻辑或)
6.下面函数调用语句含有实参的个数为【B】
func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
4.和十进制数255相等的二进制数是【D】
A.1101110B.11111110C.10000000D.11111111
D.11111111
7.一个C程序的执行是从【A】
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
8.已知字母A的ASCII码为十进制的65,则下面程序的输出是【A】
main()
{charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不确定的值
9.C语言规定,函数返回值的类型是由【D】
A.return语句中的表达式类型所决定B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定
10.16位二进制所表示的无符号整数,其相应的十进制数围是【D】
A.0~65536B.1~65536C.1~65535D.0~65535
11.下列说法中正确的是【C】
A.在执行C程序时不是从main()函数开始
B.C程序书写格式限制严格,一行必须写一个语句
C.C程序书写格式比较自由,一个语句可以分写在多行上
D.C程序书写格式严格,要求一行必须写一个语句,并要有行号
12.若有定义inta[lO];,则对a数组元素的正确引用是【C】
A.a[lO]B.a(10)
C.a[10—10]D.a[10.0]
13.下面函数调用语句含有实参的个数为【B】
func(a+b,(x,y),exp((exp1,exp2),(exp3,exp4,exp5)));
A.7B.3C.4D.5
14.下列叙述中正确的是【A】
A.指令由操作数和操作码两部分组成B.常用参数xxMB表示计算机的速度
C.计算机的一个字长总是等于两个字节D.计算机语言是完成某一任务的指令集
15.在计算机系统中,可执行程序是【C】
A.源代码B.汇编语言代码
C.机器语言代码D.ASCIl码
16.下列说法中错误的是【C】
A.程序的执行总是从主函数开始。
B.主函数可以调用任何非主函数的其它函数
C.程序可以从任何非主函数开始执行D.任何非主函数可以调用其它任何非主函数
二、填空题:
请在每小题的空格中填上正确答案。
错填、不填均无分。
1.微处理器是微型计算机的核心芯片,是将计算机中的运算器和控制器集成在一个很小的硅片上制成的集成电路,通常用英文字母简写为CPU。
2.程序三种最基本的结构是顺序结构、选择结构、循环结构。
3.在C语言中,一个函数一般由两个部分组成,他们是函数名和函数体。
4.设intx=3,y=5;则执行printf(“%d\n”,x&&y);后输出1。
5.以下程序是求100以能被5和被7同时整除的所有数之和。
main()
{inti=0,s=0;
while(i<100)
if(i%5==0&&i%7==0)
s=s+i++;
printf("s=%d\n",s);
}
6.已知x=5,y=6,执表达式x>2‖y<5的值为1。
7.若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是____3___。
8.设intx=7,y=3,则表达式x%y+x/y的值是_____3___。
9.十进制数—127用8位二进制数补码表示时,应为____81H____H。
10.任何一个数组的数组元素具有相同的名字和数据类型。
三、改错题:
每小题只有一个错误或不妥,请指出,并将其改正。
1.下面程序的功能是求数组中最大元素的下标。
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])k=i;
printf("k=%d\n",k);
}
错误:
scanf("%d",s[i])
改正:
scanf("%d",&s[i])
2.下面程序的功能是计算30个数的平均值。
voidmain()
{intn=30,i=1,t;
floatsum=0;
while(i<30)
{scanf("%d",&t);
sum=sum+t;
i++;
}
aver=sum/n;
printf("aver=%5.1f\n",aver);
}
错误:
while(i<30)
改正:
while(i<=30)
3.下面add函数的功能是求两个参数的和,并将和值返回调用函数。
voidadd(floata,floatb)
{
floatc;
c=a+b;
returnc;
}
错误:
voidadd(floata,floatb)
改正:
floatadd(floata,floatb)
4.下面的程序是要打印出1到10的十个整数值。
main()
{intn=1;
while(n<10)
{
printf(“%d”,n);
n++;
}
}
错误:
while(n<10)
改正:
while(n<=10)
5.下面程序的功能是计算圆的面积。
main()
{floatr;
floats;
printf("Enteravalueofradius:
\n");
scanf("%f",&r);
s=3.14*r*r;
printf("Theareaofcircleis%d\n",s);
}
错误:
printf("s=%d\n",s)
改正:
printf("s=%f\n",s)
6.程序功能:
输入的学生成绩如果不在0~100之间,则显示出错信息。
main()
{ints;
scanf("%d",&s);
if(0<=s<=100)
printf("Inputscoreis=%d\n",s);
else
printf("Inputscoreiswrong!
");
}
错误:
if(0<=s<=100)
改正:
if(s>=0&&s<=100)
7.以下程序是计算s=1*2*3*4*5的值
main()
{intk,s=1;
for(k=1;k<5;k++)
s=s*k;
printf(“s=%d\n”,s);
}
错误:
for(k=1;k<5;k++)
改正:
for(k=1;k<6;k++)或for(k=1;k<=5;k++)
四、程序阅读题:
请阅读下列程序,写出程序运行结果。
1.main()
{intnuml,num2,x;
scanf("%d%d",&numl,&num2);
if(numl>num2)
x=numl;numl=num2;num2=x;
printf("%d,%d\n",num1,num2);
)
程序运行时输入:
51,32
程序运行结果为:
32,51
2.main()
{inta,b,c;
printf("请输入3个整数:
");
scanf("%d,%d,%d",&a,&b,&c);
if(a
if(b elseprintf("max=%d\n",b); elseif(a elseprintf("max=%d\n",a); } 程序运行时输入的3个数为: 31,62,49 程序运行结果为: max=62 3.main() {intx,i; for(i=1;i<=5;i++) {scanf("%d",&x); if(x%2==0)printf("x=%d\n",x); } } 程序运行时输入的5个数为: 1314151617 程序运行结果为: x=14 x=16 4.#include voidmain() { inti,j,m,n; i=3; j=5; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 程序运行结果为: 4,6,4,5 5.#include voidmain() {intx=1,total=0,y; while(x<=10) { y=x*x; printf(“%d”,y); total+=y; x++; } printf(“\ntotalis%d\n”,total); } 程序运行结果为: 149162536496481100 totalis385 6.#include voidmain() {inta[5],s,i; for(i=0,s=0;i<5;i++) { scanf(“%d”,&a[i]); s=s+a[i] } s=s/5; for(i=0,s=0;i<5;i++) if(a[i]>s) printf(“%6d”,a[i]); } 程序运行时输入的5个数为: 5560657075 程序运行结果为: 7075 7.main() {intx,y; x=y=1; y=++x; printf("x=%d,y=%d\n",x,y); } 程序运行结果为: 2,2 8.main() {intx=10; while(x>7) {x-- printf("%d,",x); } } 程序运行结果是: 987 9.main() {intx,y; x=y=1; y=++x; printf("x=%d,y=%d\n",x,y); } 程序运行结果为: 2,2 10.main() {intx=11; while(x>8) {x-- printf("%d,",x); } } 程序运行结果是: 10.,9,8 五、程序设计题: 根据题意,将下列程序补充完整。 1.给一个百分制成绩,要求输出等级A、B、C、D、E。 90分以上为A,80~90分为B,70~79分为C,60~69分为D,60分以下为E。 main() {floatscore; chargrade; printf("请输入学生成绩: "); scanf("%f",&score); while(①) {printf("\n输入有误,请重新输入: "); scanf(②); } switch((int)(③)) {case10: case9: grade='A';break; case8: grade='B';break; case7: grade='C';break; case6: grade='D';break; ④; } printf("成绩是%5.1f,相应的等级是%c\n",score,grade); } 答: ①score>100||score<0②"%f",&score ③score/10④default: grade='E' 单片机原理与接口技术 一、单项选择题: 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号。 错选、多选或未选均无分。 1.8031单片机外部中断0请求信号输入的引脚是【B】 A.RXDB. C. D. 2.对程序存储区数据传送,应采用助记符为【C】 A.MOVB.MOVXC.MOVCD.PUSH 3.8031单片机所用的电源是【C】 A.±15VB.+15VC.+5VD.±5V 4.十进制数215转换成二进制数表示,是【A】 A.11010111BB.10001101BC.11011111BD.11110101B 5.16位二进制所表示的无符号整数,其相应的十进制数围是【D】 A.0~65536B.1~65536 C.1~65535D.0~65535 6.8031单片机有_________定时器/计数器。 【B】 A.2个13位B.2个16位 C.1个13位,1个8位D.2个8位 7.8031单片机外接ROM时,使用引脚来选通74LS373芯片。 【A】 A.ALEB. C. D. 8.PC中存放的是【A】 A.下一条要执行的指令的地址B.当前正在执行的指令 C.当前正在执行指令的地址D.下一条要执行的指令 9.某半导体存储器有8根数据线,13根地址线,则它的存储容量是【A】 A.8K×8位B.16K×8位 C.32K×8位D.64K×8位 10.单片机上电或按手动复位键,都可复位,使PC和大多数特殊功能寄存器(SFR)的初值为零。 但有一个SFR为07H,它是【B】 A.ACCB.SP C.BD.PSW 11.8031单片机访问片外存储器时,其地址总线由并行口提供,分别为【B】 A.P0口——低8位地址,Pl口——高8位地址 B.P0口——低8位地址,P2口——高8位地址 C.P0口——高8位地址,P1口——低8位地址 D.P0口——高8位地址,P2口——低8位地址 12.执行长调用指令LCALLaddrl6,它的操作是【C】 A.将断点地址进栈保存(保护断点) B.将子程序地址送PC(构成目的地址) C.保护断点和构成目的地址 D.保护断点、保护现场(即所用到的寄存器容入堆栈)及构成目的地址 13.2764是容量为8KB的EPROM,该芯片的地址线为根。 【D】 A.8B.12C.10D.13 14.下列指令中属于直接寻址方式的指令是【A】 A.MOV68H,AB.MOVA,#68H C.MOVA,R5D.MOVA,R1 15.当串行口向单片机的CPU发出中断请求时,若CPU允许并接受中断请求时,程序计数器PC的容将被自动修改为【C】 A.0003HB.000BC.0013HD.001BHE.0023H 16.主频为12MHz的单片机的机器周期为【C】 A.1/12µsB.0.5µsC.1µsD.2µs 17.MCS-51单片机选用的晶体振荡频率围,一般在【C】 A.4KHz~12KHzB.10KHz~100KHZ C.4MHz~12MHzD.4MHz~100MHZ 18.已知累加器(A)=87H,进位标志(CY)=0,执行RRCA指令后,(A)和(CY)的容分别为【D】 A.0EH,lB.0FH,0 C.C3H,0D.43H,1 19.外部中断0的入口地址是【A】 A.0003HB.000BHC.0013HD.0023H 20.总线是微处理器、存储器和I/O接口之间相互交换信息的公共通路。 总线中的控制总线作用是的信息通路。 【D】 A.处理器向存储器传送命令信号B.处理器向I/0接口传送命令信号 C.外界向处理器传送状态信号D.上述三种信号 21.MCS-51单片机P0口的第二功能是作分时复用口,可作为【B】 A.高8位地址总线/数据总线分时复用 B.低8位地址总线/数据总线分时复用 C.高8位地址总线/低8位地址总线分时复用 D.控制信号线/数据总线分时复用 二、填空题: 请在每小题的空格中填上正确答案。 错填、不填均无分。 1.87H是用8位二进制原码表示的十六进制数,其相应的十进制数是-7。 2.8031.单片机有P1个并行输入/输出口,其中______5___口可以直接应用于I/O口。 3.MCS-51单片机系列有5个中断源,可分为2个优先级。 4.MOVA,Ri属于寄存器间接寻址寻址方式,MOVA,41H属于直接寻址寻址方式。 5.LED数码显示有动态显示和静态显示两种显示形式。 6.8031单片机使用 和 来读写片外RAM的容。 7.堆栈数据的存取遵守先进后出或后进先出的原则。 8.若某存储芯片地址线为12根,那么它的存储容量为4kB。 9.执行下列指令组后,累加器(A)=_CCH____________,进位标志(CY)=_____0____。 SETBC MOVA,#25H ADDCA,#0A6H 10.在计算机中,一般用字长来区分是8位机、16位机还是32位计算机。 11.执行下列指令组后,累加器(A)=0F9H。 它与Rl中容的关系是: 是(R1)的补码。 MOVR1,#87H MOVA,R1 CPLA INCA SETBACC.7 12.MCS-51单片机系列有5个中断源,在同一个优先级的情况下,INT0(外部中断0)优先权最高,串行中断优先权最低。 13.在MCS-51单片机中,如采用6MHZ晶振,一个机器周期为2μs。 14.8031.单片机部数据RAM中的位寻址区的地址围是20H~2FH。 15.执行下列指令组后,(A)=63H,标志位(OV)=_____1____。 MOVA,#0B4H ADDA,#00H SUBBA,#51H 16.在MCS-51单片机中,如采用6MHZ晶振,一个机器周期为0.5μs。 三、改错题: 每小题只有一个错误或不妥,请指出,并将其改正。 1.下列指令组要完成,当(A)≤80H时,转去执行2800H开始的程序,当(A)>80H时,执行3700H开始的程序。 请找出错误,并改正之。 CJNEA,#80H,NEXT TEN: LJMP2800H NEXT: JNCTEN LJMP3700H 错误: JNCTEN 改正: JCTEN 2.下面程序是用查表法将存放在R0寄存器的BCD码转换为ASCII码。 MAIN: MOVA,R0 MOVDPTR,#TAB MOVXA,A+DPTR MOVR0,A RET TAB: DB30H,31H,32H,33H,34H DB35H,36H,37H,38H,39H 错误: OVXA,A+DPTR 改正: MOVCA,A+DPTR 3.MCS-51单片机读部ROM时使用的是“MOV”指令,读外部RAM时使用的是“MOVX”指令。 错误: 部ROM 改正: 部RAM 4.采用下面指令将外部RAM2000H单元中的数据送入A。 MOVDPTR,2000H MOVXA,DPTR 错误: MOVA,2000H 改正: MOVA,#2000H 四、程序阅读题: 请阅读下列程序,写出程序运行结果。 1.执行下列程序段后,(A)=8AH,(CY)=1。 CLRC MOVA,#C5H RLCA 2.下面的指令执行后,(R1)=48H,(A)=OAAH。 MOVR1,#48H MOV48H,#51 CJNER1,51H,00H JNCNEXT1 MOVA,#0FFH SJMPNEXT2 NEXT1: MOVA,#0AAH NEXT2: SJMPNEXT2 3.已知(2000H)=3FH,(2001H)=06H,(2002H)=5BH,(2003H)=4FH,片RAM中(20H)=01H,下面的指令执行后,(30H)=0A4H。 MOVA,20H INCA MOVDPTR,#2000H MOVCA,A+DPTR CPLA MOV30H,A 4.已知(40H)=11H,(41H)=22H,(R0)=40H,(R1)=41H试问,下面的指令执行后, (A)=11H,(40H)=11H,(41H)=11H,(42H)=11H MOVA,R0 MOVR1,A MOV42H,R1 五、程序设计题: 根据题意,将下列程序补充完整。 1.将以表格形式存放在从TABLE开始的部单元中的8个单字节正数求平均值。 MOVR0,#TABLE MOVR2,#8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 接口 技术 复习题