一起答
主观

#include<stdio.h>

main()

{int n,sum=0;

scanf("%d",&n);

do{sum=sum+(n%10)*(n%10);

n=n/10;}while(n);

printf("sum=%d",sum);

}

程序运行时,从键盘输入2345<回车>,运行结果是:______

试题出自试卷《2012年微型计算机原理与接口技术自考题模拟(4)》
参考答案
查看试卷详情
相关试题
  1. 下面程序是A/D转换应用程序,可实现多路模拟量输入的巡回检测,采样数据被存放在片内RAM单元中。阅读程序完成说明语句。

    ORG 0000H

    AJMP MAIN

    ORG 0013H ;该地址是①地址

    AJMP INT1

    MAIN:MOV R0,#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

    答:①______;②______;③______;④______;

    ⑤______;⑥______;⑦______;⑧______;

  2. RAM中60H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R6中。

  3. 下面程序段是将ROM 3000H单元内容送R7。

    MOV DPTR,#3000H

    CLR A

    MOVC A,@R7+DPTR

    MOV R7,A

    错误:______

    改正:______

  4. 以下是8051单片机定时/计数器的初始化程序(设单片机晶振频率是6MHz):T0作为定时,定时时间为______,T1作为计数,记满______溢出。

    ORG 0000H

    LJMP 0050H

    ORG 0050H

    MOV TMOD,#20H

    MOV TH0,#63H

    MOV TL0,#18H

    MOV TH1,#9CH

    MOV TL,#9CH

    SETB EA

    SETB TR0

    SETB TR1

    SJMP $

  5. 下面程序是将片内RAM______开始的单元内10个二进制数,找出其中最大值并存于单元中。

    START: MOV R0,#40H

    MOV R7,#09H

    MOV A,@R0

    LOOP: INC R0

    MOV 30H,@R0

    CJNE A,30H,NEXT

    NEXT: JNC BIE1

    MOV A,30H

    BIE1: DJNZ R7,LOOP

    MOV 50H,A

    RET

  6. 下面程序段是将片外RAM20H~25H单元清零。

    MOV R0,#20H

    MOV R7,#06H

    CLR A

    LOOP: MOV @R0,A

    INC R0

    DJNZ,#3000H

    错误:______

    改正:______

  7. 某8031单片机时钟频率为12MHz,现将T0设置为定时方式1,定时时间为1毫秒,其计数器中的时间常数初值应为______。(写成四位十六进制数)

  8. 8031单片机内部数据RAM中的位寻址区的地址范围是______。

  9. 执行下面一段程序后,(A)=______,(B)=______。

    MOV SP,#60H

    MOV A,#10H

    MOV B,#01H

    PUSH A

    PUSH B

    POP A

    POP B