jnz和djnz_微型计算机原理与接口技术复习题

《微型计算机原理与接口技术复习题》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术复习题(17页珍藏版)》请在人人文库网上搜索。

1、C语言程序设计一、单项选择题:在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。错选、多选或未选均无分。1. 若有代数式:,则不正确的C语言表达式为 【 C 】A. a/b/c*e*3 B. 3*a*e/b/c C. 3*a*e/b*c D. a*e/c/b*32. 通常使用后缀表明数的各种进制,以下叙述不正确的是 【 D 】A. 后缀B:二进制 B. 后缀H:十六进制C. 后缀D:十进制 D. 后缀A:八进制3. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是 【A 】Ascanf(%5f,&x) B. scanf(%5d,&。

2、x)Cscanf(%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,exp。

3、5);A. 1 B. 2 C. 4 D. 54. 和十进制数255相等的二进制数是 【 D 】A. 1101110 B.11111110 C. 10000000 D.11111111D.111111117. 一个C程序的执行是从 【 A 】A. 本程序的main函数开始,到main函数结束B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C. 本程序的main函数开始,到本程序文件的最后一个函数结束D. 本程序文件的第一个函数开始,到本程序main函数结束8. 已知字母A的ASCII码为十进制的65,则下面程序的输出是 【 A 】main() char ch1,ch2;ch1=A。

4、+5-3;ch2=A+6-3;printf(%d,%cn,ch1,ch2);A. 67,D B. B,C C. C,D D.不确定的值9. C语言规定,函数返回值的类型是由 【 D 】A. return语句中的表达式类型所决定 B. 调用该函数时的主调函数类型所决定C. 调用该函数时系统临时决定 D. 在定义该函数时所指定的函数类型所决定1016位二进制所表示的无符号整数,其相应的十进制数范围是 【 D 】A.065536B.165536C.165535D.06553511. 下列说法中正确的是 【C 】A在执行C程序时不是从main()函数开始BC程序书写格式限制严格,一行内必须写一个语句C。

5、C程序书写格式比较自由,一个语句可以分写在多行上DC程序书写格式严格,要求一行内必须写一个语句,并要有行号12. 若有定义int alO;,则对a数组元素的正确引用是 【C 】AalO Ba(10)Ca1010 Da10.013. 下面函数调用语句含有实参的个数为 【B 】func(a+b,(x,y), exp(exp1,exp2),(exp3,exp4,exp5);A. 7 B. 3 C. 4 D. 514. 下列叙述中正确的是 【 A】A指令由操作数和操作码两部分组成 B常用参数xxMB表示计算机的速度C计算机的一个字长总是等于两个字节 D计算机语言是完成某一任务的指令集15在计算机系统中。

6、,可执行程序是 【C】A源代码 B汇编语言代码C机器语言代码 DASCIl码16. 下列说法中错误的是 【 C 】A. 程序的执行总是从主函数开始。 B. 主函数可以调用任何非主函数的其它函数C. 程序可以从任何非主函数开始执行 D. 任何非主函数可以调用其它任何非主函数 二、填空题:请在每小题的空格中填上正确答案。错填、不填均无分。1. 微处理器是微型计算机的核心芯片,是将计算机中的运算器和控制器集成在一个很小的硅片上制成的集成电路,通常用英文字母简写为 CPU 。2. 程序三种最基本的结构是顺序结构、 选择结构 、 循环结构 。3. 在C语言中,一个函数一般由两个部分组成,他们是 函数名 。

7、和 函数体 。4. 设int x=3,y=5; 则执行printf(“%dn”,x&y);后输出 1 。5. 以下程序是求100以内能被5和被7同时整除的所有数之和。main() int i=0,s=0;while(i2ysk) k=i;printf(k=%dn,k);错误: scanf(%d,si) 改正: scanf(%d,&si) 2. 下面程序的功能是计算30个数的平均值。void main( ) int n=30,i=1,t;float sum=0;while(i=0&s num2)x=numl;numl=num2;num2=x;printf(%d,%dn,num1,num2);)程。

8、序运行时输入:51,32 程序运行结果为: 32,51 2. main() int a,b,c; printf (请输入3个整数:); scanf (%d,%d,%d,&a,&b,&c); if(avoid main( ) int i,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. #includevoid main( ) int x=1,total=0,y;while(xvoid main( ) int a5,s,i;for(i=0,s=0;is)printf(“%6d”,ai);。

9、 程序运行时输入的5个数为: 55 60 65 70 75 程序运行结果为: 70 75 7. main() int x,y;x=y=1;y=+x;printf(x=%d,y=%dn,x,y);程序运行结果为: 2, 2 8. main() int x=10;while(x7)x-printf(%d, ,x);程序运行结果是: 9 8 7 9. main() int x,y;x=y=1;y=+x;printf(x=%d,y=%dn,x,y);程序运行结果为: 2,2 10. main() int x=11;while(x8)x-printf(%d, ,x);程序运行结果是: 10.,9,8 五。

10、、程序设计题:根据题意,将下列程序补充完整。1. 给一个百分制成绩,要求输出等级A、B、C、D、E。90分以上为A,8090分为B,7079分为C,6069分为D,60分以下为E。main() float score; char grade; printf (请输入学生成绩:); scanf (%f,&score); while( ) printf (n输入有误,请重新输入:); scanf ( ); switch(int)( ) case 10: case 9: grade=A;break; case 8: grade=B;break; case 7: grade=C;break; case。

11、 6: grade=D;break; ; printf(成绩是%5.1f,相应的等级是%cn,score,grade); 答:score100|score80H时,执行3700H开始的程序。请找出错误,并改正之。CJNE A, #80H, NEXTTEN: LJMP 2800HNEXT:JNC TENLJMP 3700H错误: JNC TEN 改正: JC TEN 2. 下面程序是用查表法将存放在R0寄存器的BCD码转换为ASCII码。MAIN: MOV A,R0MOV DPTR,#TABMOVX A,A+DPTRMOV R0,ARETTAB : DB 30H,31H,32H,33H,34HD。

12、B 35H,36H,37H,38H,39H错误: OVX A,A+DPTR 改正: MOVC A,A+DPTR 3. MCS51单片机读内部ROM时使用的是“MOV”指令,读外部RAM时使用的是“MOVX”指令。错误: 内部ROM改正:内部RAM4. 采用下面指令将外部RAM2000H单元中的数据送入A。MOV DPTR,2000HMOVX A,DPTR错误:MOV A,2000H 改正:MOV A,2000H四、程序阅读题:请阅读下列程序,写出程序运行结果。1. 执行下列程序段后,(A)= 8AH ,(CY)= 1 。CLR CMOV A,#C5HRLC A2. 下面的指令执行后,(R1)=。

13、 48H ,(A)= OAAH 。MOV R1,48H MOV 48H,51CJNE R1,51H,00HJNC NEXT1MOV A, #0FFHSJMP NEXT2NEXT1:MOV A, #0AAHNEXT2:SJMP NEXT23. 已知(2000H)=3FH,(2001H)=06H,(2002H)=5BH,(2003H)=4FH,片内RAM中(20H)=01H,下面的指令执行后,(30H)= 0A4H 。 MOV A,20HINC AMOV DPTR,2000HMOVC A,A+DPTRCPL AMOV 30H,A 4. 已知(40H)=11H,(41H)=22H,(R0)=40H,。

14、(R1)=41H试问,下面的指令执行后, (A)=11H , (40H)=11H , (41H)=11H , (42H)=11HMOV A,R0 MOV R1,A MOV 42H,R1五、程序设计题:根据题意,将下列程序补充完整。1. 将以表格形式存放在从TABLE开始的内部单元中的8个单字节正数求平均值。MOV R0,#TABLE MOV R2,#8 MOV A,#0 LOOP1: A,R0 ;求和 R0DJNZ MOV B,#8 ;求平均值RET答: ADD ; INC ; R2, LOOP1 ; DIV AB ; ; 2. 编程将片内RAM30H单元开始的个字节数据传送到片外RAM300。

15、0H开始的单元中去。STRAT:MOV R0,#30HMOV R7,#0FHMOV DPTR,#3000HLOOP: DJNZ R7,LOOPRET答: MOV A,R; ; MOVX DPTR,A ; INC R0 ; INC DPTR ;42. 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中。START: ;数据块首地址送R0MOV R7,#09H ;比较次数送MOV A,R0 ;取数送LOOP: INC R0 MOV 30H,R0 ;取数送H ;(A)与(30H)相比NEXT: ; (A)(30H)转BIE1MOV A,30H ;(A)(30H),大数。

16、送ABIE1: ;比较次数减1,不为0,继续比较MOV 50H,A ;比较结束,大数送50HRET 答: MOV R0,#40H ; CJNE A,30H,NEHT;JNC BIE1; DJNZ R7,LOOP;六、应用题: (本大题共1小题,共8分)1. 利用单片机实现数码管循环显示0-F的硬件连线图如下图所示,补充完善控制程序。AJMP STARTORG 30HSTART: MOV DPTR , ;指定表格起始地址INIT: CLR A ;初始化A,清零MOV R1,#0题43图ABC: MOV A , R1MOVC A , ;查表,获得对应数字的字型码MOV P1 , A ;送至P1口,。

17、显示ACALL ;延时 INC R1 ;加1使指针指向下一个字型码CJNE R1 , , ABC AJMP ;重新初始化,开始新的循环DLY: MOV R4 , #10 ; R4=10时,延时约1秒D1: MOV R5 , #200D2: MOV R6 , #248NOPDJNZ R6 , $DJNZ R5 , D2DJNZ R4 , D1 TAB: DB 0C0H,0F9H,0A4H, ,99H,92H,82H,0F8H80H,90H,88H,83H,0C6H,0A1H,86H, END答: #TAB ; A+DPTR ; DLY ; #10H ; INIT ; RET ; 0B0H ; 8。

18、EH 。2. 利用单片机实现8个发光二极管循环闪烁显示,某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。硬件连线图如下图所示,补充完善控制程序。题43图ORG 30HSTART: MOV A,#01H ;灯亮初值SHIFT: LCAIL FLASH ;调闪亮10次子程序 A ;右移一位 SHIFT ;循环FLASH: MOV R2, ;闪烁计数FLASH1: MOV ;点亮LCALL DELAY ;延时MOV ;灯熄灭LCALL DELAY ;延时 R2,FLASH1 ;循环RET DELAY: MOV R4 , #10 ; R4=10时,延时约1秒D1: MOV R5 , #200D2: MOV R6 , #248NOPDJNZ R6 , $DJNZ DJNZ RETEND答: RR A ; SJMP ; #0AH ; P1,A ; P1,#00H ; DJNZ ; R5,D2 ; R4,D1 。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值