读程序题
- 格式:doc
- 大小:65.50 KB
- 文档页数:10
四、阅读下列程序,注释并填写指令执行后的结果(每题10分)1、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV R0,#20H ;#20H->R0 (R0)=20HMOV R1,#30H ; #30H->R1 (R1)=30HMOV A,R0 ;(R0)->A (A)=20HADD A,#36H ;(A)+#36H->A (A)=56HMOV P1,A ;(A)->P1 (P1)=56HINC R0 ;(R0)+1->R0 (R0)=21HINC R1 ;(R1)+1->R0 (R1)=31HANL A,R1 ;(A)&(R1)->A (A)=10HSWAP A ;累加器A的高低4位交换 (A)=01HPUSH ACC ;累加器A内容压栈MOV P1,A ;(A)->P1 (P1)=01HPOP B ;堆栈内容出栈到B寄存器 (B)=01HMOV R0,A ;(A)->R0 (R0)=01HMOV DPTR,#2200H ;#2200H->DPTR (DPTR)=2200HSETB C ;1->Cy (Cy)=1ADDC A,#0 ;(A)+0+(Cy)->A (A)=02HMOVX @DPTR,A ;(A)->(DPTR) (2200H)=02HEND(R0)= 01H (R1)= 31H (P1)= 01H(B)= 01H (2200H)= 02H2、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV SP,#50H ;#50H->SP (SP)=50H第1页共57页MOV R2,#10H ;#10H->R2 (R2)=10HMOV DPTR,#3000H ;#3000H->DPTR (DPTR)=3000HCRL A ;0->A (A)=0LOOP: MOVX @DPTR,A ;(A)->(DPTR)INC DPTR ;(DPTR)+1->DPTRDJNZ R2,LOOP ;(R2)-1->R2 若(R2)不等于零则转移到LOOP处INC DPH ;(DPH)+1->DPH (DPH)=31H (R2)=00H (DPL)=10H INC DPH ;(DPH)+1->DPH (DPH)=32HMOV 20H,#36H ;#36H->(20H) (20H)=36HSETB 00H ;位地址00H置1 20H.0=1 (20H)=37HMOV A,20H ;(20H)->A (A)=37HMOVX @DPTR,A ;(A)->(DPTR) (DPTR)=3210H (3210H)=37HINC A ;(A)+1->A (A)=38HINC A ;(A)+1->A (A)=39HPUSH ACC ;累加器A内容压栈 (SP)=51HXCH A,R2 ;累加器A的内容与R2内容互换 (A)=00H (R2)=39H POP DPH ;堆栈内容弹到DPH (DPH)=39HADD A,#55H ;(A)+#55H->A (A)=55HPUSH ACC ;累加器A内容压栈END(A)= 55H (R2)= 39H (20H)= 37H (DPTR)= 3910H (SP)= 51H3、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV R0,#30H ;#30H->R0 (R0)=30HMOV A,#12H ;#12H->A (A)=12HSETB C ;(Cy)=1ADDC A,R0 ;(A)+(R0)+Cy->A (A)=43HMOV @R0,A ;(A)->(R0) (30H)=43H第2页共57页SWAP A ;累加器A高低4位交换 (A)=34HINC A ;(A)+1->A (A)=35HMOV DPTR,#2000H ;#2000H->DPTR (DPTR)=2000HINC DPH ;(DPH)+1->DPH (DPH)=21HMOV P1,A ;(A)->P1 (P1)=35HINC A ;(A)+1->A (A)=36HMOVX @DPTR,A ;(A)->(DPTR) (2100H)=36HXCH A,R0 ; (A) R0 (A)=30H (R0)=36HRL A ;累加器A内容循环左移 (A)=60HPUSH ACC ;累加器A的内容入栈RL A ;累加器A内容循环左移 (A)=0C0HPOP ACC ;堆栈内容弹出到累加器A (A)=60HEND(A)= 60H (R0)= 36H (DPTR)= 2100H(P1)= 35H (30H)= 43H4、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV DPTR,#3000H ;#3000H->DPTR (DPTR)=3000HMOV R0,#20H ;#20H->R0 (R0)=20HMOV A,#23H ;#23H->A (A)=23HMOV R2,#0FH ;#0FH->R2 (R2)=0FHSETB 01H ;置位20H.1 (20H.1)=1SETB C ;置位Cy (Cy)=1ADDC A,@R0 ;(A)+((R0))+Cy->A (A)=26HINC R0 ;(R0)+1->R0 (R0)=21HMOV @R0,A ;(A)->((R0)) (21H)=26HLOOP: DJNZ R2, LOOP ;(R2)-1->R2 若R2内容不等于零则转移 SWAP A ;累加器A内容的高低4位交换 (A)=62H PUSH ACC ;累加器A内容入栈INC DPH ;(DPH)+1->DPH (DPH)=31HMOVX @DPTR,A ;(A)->(DPTR) (3100H)=62H第3页共57页POP B ;堆栈内容弹出到B (B)=62HRR A ;累加器A内容循环右移 (A)=31HADD A,B ;(A)+(B)->A (A)=93HMOV P1,A ;(A)->P1 (P1)=93HEND(21H)= 26H (R2)= 00H (A)= 93H (B)= 62H (3100H)= 62H5、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#1000H ;#1000H->DPTR (DPTR)=1000HMOV A,#13H ;#13H->A (A)=13HMOV R0,#20H ;#20H->R0 (R0)=20HSETB C ;1->Cy (Cy)=1MOV @R0,A ;(A)->((R0)) (20H)=13HRLC A ;累加器A的内容带进位循环左移 (A)=27HXCH A,@R0 ;累加器A的内容与20H单元的内容互换 (A)=13H (20H)=27H PUSH ACC ;累加器A的内容入栈POP DPL ;堆栈内容弹出到DPL (DPL)=13HMOVX @DPTR,A ;(A)->(DPTR) (1013H)=13HDEC A ;(A)-1->A (A)=12HPUSH DPH ;DPH内容压栈POP B ;堆栈内容弹出到B (B)=10HADD A,B ;(A)+(B)->A (A)=22HMOV P1,A ;(A)->P1 (P1)=22HCLR A ;累加器A内容清零ADD A,B ;(A)+(B)->A (A)=10HEND(P1)= 22H (B)= 10H (20H)= 27H (DPTR)= 1013H (R0)= 20H6、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV SP,#50H ;#50H->SP (SP)=50HMOV R0,#20H ;#20H->R0 (R0)=20H第4页共57页MOV R2,#10H ;#10H->R2 (R2)=10HMOV A,#24H ;#24H->A (A)=24HLOOP: MOV @R0,A ;(A)->((R0))INC R0 ;(R0)+1->R0DJNZ R2,LOOP ;(R2)-1->R2 若R2内容不等于0则跳转到LOOP处SETB 00H ;1->位地址为00H的位 (20H.0)=1 (20H)=25HSETB C ;1->Cy (Cy)=1ADDC A,#00H ;(A)+00H+(Cy)->A (A)=25HSWAP A ;累加器A内容高低四位互换 (A)=52HPUSH ACC ;累加器A内容压栈POP DPH ;堆栈内容弹出到DPH (DPH)=52HPUSH ACC ;累加器A内容压栈POP B ;堆栈内容弹出到B (B)=52HMOV A,R2 ;(R2)->A (A)=00HMOV DPL,A ;(A)->DPL (DPL)=00HMOV A,B ; (B)->A (A)=52HPUSH ACC ;累加器A内容压栈 (SP)=51HEND(A)= 52H (R2)= 00H (20H)= 25H (DPTR)= 5200H (SP)= 51H7、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#2100H ;#2100H->DPTR (DPTR)=2100HCLR A ;0->A (A)=00HMOV R1,#30H ;#30H->R1 (R1)=30HSETB C ;1->Cy (Cy)=1ADDC A,R1 ;(A)+(R1)+Cy->A (A)=31HMOV @R1,A ;(A)->((R1)) (30H)=31HPUSH ACC ;累加器A的内容压栈POP DPL ;堆栈内容弹出到DPL (DPL)=31HRR A ;累加器A的内容循环右移 (A)=98HMOV R0,A ;(A)->R0 (R0)=98HORL A,#24H ;(A) or 24H->A (A)=0BCHMOV P1,A ;(A)->P1 (P1)=0BCH第5页共57页SWAP A ;累加器A的内容高低四位交换 (A)=0CBHMOV DPH,A ;(A)->DPH (DPH)=0CBHMOV B,#02H ;#02H->B (B)=02HADD A,B ;(A)+(B)->A (A)=0CDHCLR ACC.3 ;0->ACC.3 (A)=0C5HSWAP A ;累加器A的内容高低四位交换 (A)=5CHEND(A)= 5CH (R0)= 98H (DPTR)= 0CB31H (P1)= 0BCH (30H)= 31H8、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV R3,#10H ;#10H->R3 (R3)=10HCLR A ;累加器A内容清零 (A)=00HMOV R0,#20H ;#20H->R0 (R0)=20HLOOP: MOV @R0,A ;(A)->((R0)) (20H)=00HINC R0 ;(R0)+1->R0 (20H)=01HDJNZ R3,LOOP ;(R3)-1->R3 若R3不等于零则跳转到LOOP处SETB 00H ;1->位地址00H位 (20H.0)=1 (20H)=01HSETB C ;1->Cy (Cy)=1SUBB A,#00H ;(A)-00H-Cy->A (A)=0FFHMOV DPL,A ;(A)->DPL (DPL)=0FFHPUSH ACC ;累加器A的内容压栈MOV A,R3 ;(R3)->A (A)=00HMOV DPH,A ;(A)->DPH (DPH)=00HPOP ACC ;堆栈内容弹出到A (A)=0FFHMOVX @DPTR,A ;(A)->(DPTR) (00FFH)=0FFHANL A,#55H ;(A) and 55H->A (A)=55HPUSH ACC ;累加器A的内容压栈 (SP)=51HCLR A ;累加器A内容清零 (A)=00HEND(A)= 00H (R3)= 00H (20H)= 01H (DPTR)= 00FFH (SP)= 51H第6页共57页9、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV R0,#30H ;#30H->R0 (R0)=30HMOV R1,#20H ; #20H->R1 (R1)=20HMOV A,R0 ;(R0)->A (A)=30HADD A,#37H ;(A)+#36H->A (A)=67HMOV P1,A ;(A)->P1 (P1)=67HINC R0 ;(R0)+1->R0 (R0)=31HINC R1 ;(R1)+1->R0 (R1)=21HANL A,R1 ;(A)&(R1)->A (A)=21HSWAP A ;累加器A的高低4位交换 (A)=12HPUSH ACC ;累加器A内容压栈MOV P1,A ;(A)->P1 (P1)=12HSWAP A ;累加器A的高低4位交换 (A)=21HPOP B ;堆栈内容出栈到B寄存器 (B)=12HMOV R0,A ;(A)->R0 (R0)=21HMOV DPTR,#2200H ;#2200H->DPTR (DPTR)=2200HSETB C ;1->Cy (Cy)=1ADDC A,B ;(A)+(B)+(Cy)->A (A)=34HMOVX @DPTR,A ;(A)->(DPTR) (2200H)=34HEND(R0)= 21H (R1)= 21H (P1)= 12H (B)= 12H (2200H)= 34H10、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV R2,#20H ;#20H->R2 (R2)=20HMOV DPTR,#3000H ;#3000H->DPTR (DPTR)=3000HCLR A ;0->A (A)=0LOOP: MOVX @DPTR,A ;(A)->(DPTR)INC DPTR ;(DPTR)+1->DPTRDJNZ R2,LOOP;(R2)-1->R2 若(R2)不等于零则转移到LOOP处INC DPH ;(DPH)+1->DPH (DPH)=31H (R2)=00H (DPL)=20H第7页共57页INC DPH ;(DPH)+1->DPH (DPH)=32HMOV 20H,#38H ;#36H->(20H) (20H)=38HSETB 01H ;位地址01H置1 20H.1=1 (20H)=3AHMOV A,20H ;(20H)->A (A)=3AHMOVX @DPTR,A ;(A)->(DPTR) (DPTR)=3220H (3220H)=3AHINC A ;(A)+1->A (A)=3BHINC A ;(A)+1->A (A)=3CHPUSH ACC ;累加器A内容压栈XCH A,R2 ;累加器A的内容与R2内容互换 (A)=00H (R2)=3CH POP DPH ;堆栈内容弹到DPH (DPH)=3CHADD A,#55H ;(A)+#55H->A (A)=55HPUSH ACC ;累加器A内容压栈,(SP)=51HEND(A)= 55H (R2)= 3CH (20H)= 3AH (DPTR)= 3C20H (SP)= 51H11、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV R0,#20H ;#20H->R0 (R0)=20HMOV A,#31H ;#31H->A (A)=31HSETB C ;(Cy)=1ADDC A,R0 ;(A)+(R0)+Cy->A (A)=52HMOV @R0,A ;(A)->(R0) (20H)=52HSWAP A ;累加器A高低4位交换 (A)=25HDEC A ;(A)-1->A (A)=24HMOV DPTR,#2000H ;#2000H->DPTR (DPTR)=2000HINC DPH ;(DPH)+1->DPH (DPH)=21HDEC DPL ;(DPL)-1->DPL (DPL)=0FFHMOV P1,A ;(A)->P1 (P1)=24HINC A ;(A)+1->A (A)=25HMOVX @DPTR,A ;(A)->(DPTR) (21FFH)=25HXCH A,R0 ; (A) R0 (A)=20H (R0)=25HRL A ;累加器A内容循环左移 (A)=40HPUSH ACC ;累加器A的内容入栈RL A ;累加器A内容循环左移 (A)=80H第8页共57页POP ACC ;堆栈内容弹出到累加器A (A)=40HEND(A)= 40H (R0)= 25H (DPTR)= 21FFH (P1)= 24H (20H)= 52H12、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV DPTR,#2000H ;#3000H->DPTR (DPTR)=2000HMOV 20H,#06H ;#06H->20H (20H)=06HMOV R0,#20H ;#20H->R0 (R0)=20HMOV A,#35H ;#35H->A (A)=35HMOV R2,#10H ;#10H->R2 (R2)=10HSETB 00H ;置位20H.0 (20H.0)=1 (20H)=07HSETB C ;置位Cy (Cy)=1ADDC A,@R0 ;(A)+((R0))+Cy->A (A)=3DHINC R0 ;(R0)+1->R0 (R0)=21HMOV @R0,A ;(A)->((R0)) (21H)=3DHLOOP: DJNZ R2, LOOP ;(R2)-1->R2 若R2内容不等于零则转移SWAP A ;累加器A内容的高低4位交换 (A)=0D3HPUSH ACC ;累加器A内容入栈INC DPH ;(DPH)+1->DPH (DPH)=21HMOVX @DPTR,A ;(A)->(DPTR) (2100H)=0D3HPOP B ;堆栈内容弹出到B (B)=0D3HRR A ;累加器A内容循环右移 (A)=0E9HADD A,B ;(A)+(B)->A (A)=0BCHMOV P1,A ;(A)->P1 (P1)=0BCHEND(21H)= 3DH (R2)= 00H (A)= 0BCH (B)= 0D3H (2100H)= 0D3H13、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#2000H ;#2000H->DPTR (DPTR)=2000HMOV A,#36H ;#36H->A (A)=36H第9页共57页MOV R0,#30H ;#30H->R0 (R0)=30HSETB C ;1->Cy (Cy)=1MOV @R0,A ;(A)->((R0)) (30H)=36HRLC A ;累加器A的内容带进位循环左移 (A)=6DHXCH A,@R0 ;累加器A的内容与20H单元的内容互换 (A)=36H (30H)=6DH PUSH ACC ;累加器A的内容入栈POP DPL ;堆栈内容弹出到DPL (DPL)=36HMOVX @DPTR,A ;(A)->(DPTR) (2036H)=36HDEC A ;(A)-1->A (A)=35HPUSH DPH ;DPH内容压栈POP B ;堆栈内容弹出到B (B)=20HADD A,B ;(A)+(B)->A (A)=55HMOV P1,A ;(A)->P1 (P1)=55HCLR A ;累加器A内容清零ADD A,B ;(A)+(B)->A (A)=20HEND(P1)= 55H (B)= 20H (30H)= 6DH (DPTR)= 2036H (R0)= 30H14、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#60H ;#60H->SP (SP)=60HMOV R0,#20H ;#20H->R0 (R0)=20HMOV R2,#10H ;#10H->R2 (R2)=10HMOV A,#24H ;#24H->A (A)=24HLOOP: MOV @R0,A ;(A)->((R0))INC R0 ;(R0)+1->R0DJNZ R2,LOOP ;(R2)-1->R2 若R2内容不等于0则跳转到LOOP处SETB 01H ;1->位地址为01H的位 (20H.1)=1 (20H)=26HSETB C ;1->Cy (Cy)=1ADDC A,20H ;(A)+(20H)+(Cy)->A (A)=4BHSWAP A ;累加器A内容高低四位互换 (A)=0B4HPUSH ACC ;累加器A内容压栈POP DPH ;堆栈内容弹出到DPH (DPH)=0B4HPUSH ACC ;累加器A内容压栈第10页共57页POP B ;堆栈内容弹出到B (B)=0B4HMOV A,R2 ;(R2)->A (A)=00HMOV DPL,A ;(A)->DPL (DPL)=00HADD A,B ;(A)+(B)->A (A)=0B4HPUSH ACC ;累加器A内容压栈 (SP)=61HEND(A)= 0B4H (R0)= 30H (20H)= 26H (DPTR)= 0B400H (SP)= 61H15、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#1100H ;#1100H->DPTR (DPTR)=1100HCLR A ;0->A (A)=00HMOV R1,#20H ;#20H->R1 (R1)=20HSETB C ;1->Cy (Cy)=1ADDC A,R1 ;(A)+(R1)+Cy->A (A)=21HMOV @R1,A ;(A)->((R1)) (20H)=21HINC A ;(A)+1->A (A)=22HINC A ;(A)+1->A (A)=23HPUSH ACC ;累加器A的内容压栈POP DPL ;堆栈内容弹出到DPL (DPL)=23HRR A ;累加器A的内容循环右移 (A)=91HMOV R0,A ;(A)->R0 (R0)=91HORL A,#24H ;(A) or #24H->A (A)=0B5HMOV P1,A ;(A)->P1 (P1)=0B5HSWAP A ;累加器A的内容高低四位交换 (A)=5BHMOV DPH,A ;(A)->DPH (DPH)=5BHMOV B,#02H ;#02H->B (B)=02HADD A,B ;(A)+(B)->A (A)=5DHCLR ACC.4 ;0->ACC.4 (A)=4DHSWAP A ;累加器A的内容高低四位交换 (A)=0D4HEND(A)= D4H (R0)= 91H (DPTR)= 5B23H (P1)= 0B5H (20H)= 21H第11页共57页16、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#60H ;#60H->SP (SP)=60HMOV R3,#20H ;#20H->R3 (R3)=20HMOV A,#20H ;#20H->A (A)=20HMOV R0,#20H ;#20H->R0 (R0)=20HLOOP: MOV @R0,A ;(A)->((R0))INC R0 ;(R0)+1->R0DJNZ R3,LOOP ;(R3)-1->R3 若R3不等于零则跳转到LOOP处SETB 02H ;1->位地址02H位 (20H.2)=1 (20H)=24HSETB C ;1->Cy (Cy)=1SUBB A,20H ;(A)-(20H)-Cy->A (A)=0FBHMOV DPL,A ;(A)->DPL (DPL)=0FBHPUSH ACC ;累加器A的内容压栈MOV A,R3 ;(R3)->A (A)=00HMOV DPH,A ;(A)->DPH (DPH)=00HPOP ACC ;堆栈内容弹出到A (A)=0FBHMOVX @DPTR,A ;(A)->(DPTR) (00FBH)=0FBHANL A,#55H ;(A) and 55H->A (A)=51HPUSH ACC ;累加器A的内容压栈 (SP)=61HSWAP A ;累加器A内容高低4位交换 (A)=15HEND(A)= 15H (R3)= 00H (20H)= 24H (DPTR)= 00FBH (SP)= 61H17、O RG 0MOV R2,#8 ;#8->R2 (R2)=8HMOV R0,#30H ;#30H->R0 (R0)=30HCLR A ; #0->A (A)=0CPL A ; 累加器A的内容取反,(A)=0FFHLOOP: MOV @R0,A ; (A)-> (R0) (30H)~(37H)=0FFHINC R0 ; (R0)+1->R0DJNZ R2,LOOP ; (R2)-1 -> R2 , (R2)≠0则转移到LOOP处MOV B,R2 ; (R2) ->B (B)=(R2)=0INC B ; (B)+1 ->B (B)=1第12页共57页M OV A,R0 ; (R0) ->A (A)=(R0)=38HC LR C ; 0 -> Cy Cy=0ADDC A,B ; (A)+(B)+Cy -> A (A)=39HMOV R0,A ; (A) ->R0 (R0)=(A)=39HR LC A ; 累加器A的内容带进位左移,(A)=72HMOV DPTR,#1234H ; #1234H ->DPTR (DPTR)=1234HM OVX @DPTR,A ; (A) ->(DPTR) (1234H)=72HSWAP A ;累加器A的内容高低4位交换,(A)=27HPUSH ACC ; 累加器内容入栈POP DPH ; 堆栈内容弹出到DPH (DPH)=27HE ND(R0)= 39H (A)= 27H(33H)= 0FFH (DPTR)= 2734H (1234H)= 72H评分办法:指令注释占5分,对于程序段注释部分写对的学生可酌情给1-4分;程序段执行结果每空1分,共5分。
递归是一种在编程中常见的技术,通过在函数内部调用自身来解决问题。
递归程序在理解和编写上有其独特之处,需要关注递归的基本思想、递归的终止条件、递归的执行过程以及可能的问题。
### 1. **理解递归的基本思想**递归的基本思想是将一个问题分解成更小规模的子问题,并通过解决子问题来解决原始问题。
在C++中,递归是通过函数调用自身来实现的。
当我们阅读一个递归程序时,首先要理解它是如何将问题分解成更小的子问题,并在子问题上进行递归调用的。
### 2. **递归的终止条件**递归必须有一个终止条件,否则将会陷入无限循环。
在阅读递归程序时,需要特别关注终止条件是如何定义的。
终止条件通常是在问题变得足够小以至于可以直接解决时触发的。
### 3. **递归的执行过程**理解递归的执行过程是阅读递归程序的关键。
当函数调用自身时,程序将进入一个新的函数调用栈,每个调用栈都有自己的局部变量和参数。
理解递归的执行过程涉及到在不同的调用栈之间跳转,追踪参数和局部变量的变化。
### 4. **可能的问题与优化**阅读递归程序时,要注意可能的问题,例如递归深度过大可能导致栈溢出。
优化递归程序也是一个重要的方面,有时可以通过记忆化递归或动态规划等方法来避免重复计算,提高程序的效率。
### 5. **实例分析**举例说明一个简单的递归程序,例如计算斐波那契数列的第n项。
这个例子可以用来演示递归是如何工作的,如何定义终止条件,以及在执行过程中变量的变化。
### 6. **递归与循环的比较**递归和循环都可以用于解决许多问题,但它们有各自的优缺点。
在阅读递归程序时,可以思考是否有可能使用循环来实现相同的功能,以及两者之间的区别。
### 7. **递归的应用场景**最后,可以讨论递归在实际开发中的应用场景。
递归通常用于解决具有递归结构的问题,如树和图的遍历、分治算法等。
通过了解递归的应用场景,可以更好地理解其在编程中的价值。
通过对这些方面的思考和讨论,读者可以更全面地理解C++递归程序的设计和执行。
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、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;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
一.程序阅读题1.若运行时输入100↙,写出以下程序的运行结果。
main (){int a ;scanf(“%d”,&a);printf(“%s”,(a%2!=0)?”No”:"Yes”);}答案: Yes2。
写出以下程序的运行结果.main ( ){ int a=2,b=7,c=5;switch (a>0) {case 1:switch (b<0) {case 1:printf(“@”);break ;case 2:printf(“!”);break ;}case 0:switch (c==5){case 1:pritnf(“*”) ; break ;case 2: printf(“#”);break ;default :printf(“#");break ;}default :printf(“&”);}printf(“\n”);}答案: *&3。
写出下面程序运行的结果。
main ( ){ int i,b,k=0 ;for (i=1; i〈=5 ;i++){b=i%2;while (b——==0)k++ ;}printf(“%d,%d”,k,b);}答案:2 04.写出下面程序运行的结果。
main (){ int k=1,n=263 ;do { k*= n%10 ; n/=10 ;} while (n);printf(“%d\n",k);}答案:365.写出下面程序运行的结果。
main (){int a=10,y=0 ;do {a+=2 ; y+=a ;if (y〉50)break ;} while (a=14) ;printf(“a=%d y=%d\n",a,y) ;}答案:a=16 y=60数组部分:1。
写出下面程序的运行结果.main ()答案:{int a[6][6],i,j ;for (i=1; i<6 ; i++)for (j=1 ;j<6 ; j++)a[i][j]=(i/j)*(j/i);for (i=1;i〈6 ;i++) {for (j=1 ; j〈6 ; j++)printf(“%2d",a[i][j]) ;printf(“\n");}}2。
一、选择题1、一个C程序中可以包含多个不同名的函数,但有且仅有一个。
(A)function (B)include (C)main (D)stdio2、在C语言中,每个语句和数据定义都是用结束的。
(A)分号(B)逗号(C)句号(D)括号3、不是C语言中提供的合法关键字。
(A)switch (B)print (C)case (D)default4、在C语言中,数据类型属于基本类型的是。
(A)整型、实型、字符型(B)空类型、枚举型(C)结构体类型、实型(D)数组类型、实型5、下面四个选项中,均为不合法的用户标识符的是。
(A)A p_0 do (B)float la0 a(C)b-a goto int (D)123 temp INT6、语句int i=3,k; k=(i++)+(i++)+(i++); 执行后k和i的值分别为。
(A)9和6 (B)12和5 (C)18和6 (D)15和57、判断字符串a和b相等,应当使用。
(A)if ( a = = b ) (B)if ( !strcmp (a , b) )(C)if ( strcpy ( a , b ) ) (D)if ( strcmp (a , b) )8、设a,b,c都是int型变量,且a=3,b=4,c=5 ;则以下表达式中,值为0的是。
(A)a&&b (B)a<=b (C)a||b+c&&b-c (D)!((a<b)&&!c||1) 9、用于表示输入输出的程序流程图的图形是。
(A(C(D10、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是。
(A)scanf(―%2d%2d%2d‖,&i,&j,&k);(B)scanf(―%d %d %d‖,&i,&j,&k);(C)scanf(―%d,%d,%d‖,&i,&j,&k);(D)scanf(―i=%d,j=%d,k=%d‖,&i,&j,&k);11、能正确表示―x的取值范围介于[1,10 ]和[200,210 ]之间―的表达式是。
三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);四、程序填空题1、从键盘上输入10个数,求其平均值。
main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main()scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);} 三、阅读程序题(1)3.141593,3.1416,3.142(2)6,8(3)4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、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;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。
1. 阅读以下程序:#include <iostream>using namespace std;void f(int x, int &y) { int z=x; x=y; y=z; }int main(){int x=0,y=1;f(x,y);cout<<x<<y<<endl;return 0;}运行时的输出结果是________。
2. 阅读以下程序:#include <iostream>using namespace std;const int M=3, N=4;int main(){int i,j,s=0;for(i=1;i<=M;i++)for(j=1;j<=N;j++)s+=i*j;cout<<”s=”<<s<<endl;return 0;}执行这段程序的结果是。
3. 阅读以下程序:#include <iostream>using namespace std;int a[8]={36,25,20,43,12,70,66,35};int main(){int s0,s1,s2;s0=s1=s2=0;for(int i=0; i<8; i++){switch(a[i]%3){case 0: s0+=a[i];break;case 1: s1+=a[i];break;case 2: s2+=a[i];break;}}cout<<s0<<’ ’<<s1<<’ ’<<s2<<endl;return 0;}该程序的输出结果是。
4. 阅读以下程序:#include<iostream>using namespace std;int main(){int x=24,y=88;int i=2,p=1;do{while(x%i==0 && y%i==0){p*=i;x/=i;y/=i;}i++;}while(x>=i && y>=i);cout<<p*x*y<<endl;return 0;}该程序的输出结果是。
【程序1】题目:将一个数组逆序输出。
要求:分析程序执行过程,并画出变化过程图#define N 5main(){ int a[N]={9,6,5,4,1},i,temp;printf("\n original array:\n");for(i=0;i<N;i++)printf("%4d",a[i]);for(i=0;i<N/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}printf("\n sorted array:\n");for(i=0;i<N;i++)printf("%4d",a[i]);}==============================================================【程序2】题目:有一个已经排好序的数组。
现输入一个数,要求按原来的规律将它插入数组中。
要求:分析程序执行过程,并画出变化过程图2.程序源代码:main(){int a[11]={1,4,6,9,13,16,19,28,40,100};int temp1,temp2,number,end,i,j;printf("original array is:\n");for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("insert a new number:");scanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++){ if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++)printf("%6d",a[i]);}============================================================== 【程序3】题目:求一个3*3矩阵对角线元素之和要求:分析程序执行过程,并画出变化过程图main(){float a[3][3],sum=0;int i,j;printf("please input rectangle element:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%f",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("duijiaoxian he is %6.2f",sum);}============================================================== 【程序4】题目:对10个数进行排序要求:分析程序执行过程,并画出变化过程图2.程序源代码:#define N 10main(){int i,j,min,tem,a[N];/*input data*/printf("please input ten num:\n");for(i=0;i<N;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");/*sort ten num*/for(i=0;i<N-1;i++){min=i;for(j=i+1;j<N;j++)if(a[min]>a[j]) min=j;tem=a[i];a[i]=a[min];a[min]=tem;}/*output data*/printf("After sorted \n");for(i=0;i<N;i++)printf("%5d",a[i]);}============================================================== 【程序5】题目:创建一个链表。
《JA V A程序设计》复习题之(三)阅读程序题(通信工程专业使用)三、阅读程序题。
1、阅读以下程序:public class Sum {public static void main( String args[]){double sum = 0.0 ;for ( int i = 1; i<= 100; i ++ )sum += i;,System.out。
println( "sum=" + sum );}}该程序完成的功能是:求sum=1+2+3+..。
+100的和。
2、阅读以下程序:public class Sum {public static void main(String args[]) {double sum = 0。
0:for (int i=1; i〈=100; i++)sum += i*i;System。
out.println( ”sum=”+sum);}}该程序的功能是:求出sum的值为1到100的平方和。
3、阅读以下程序:public class Sum {public static void main(String args[]) {double sum = 0.0;for(int i = 1; i 〈= 100; i++)sum += i*i*i;System。
out.println("sum=" + sum);}}此程序完成的功能是:计算并输出1到100的立方和sum值。
4、阅读以下程序:public class Sum {public static void main(String args[]){double sum = 0。
0;for (int i=1; i〈=100; i++)sum += 1。
0 / (double)i;System.out。
println(”sum="+sum);}}此程序完成的功能是:求解sum=1+1/2+1/3+.。
微机原理练习六读程序并回答问题 1.已知,(DS) =2000H, (BX =100H, (SI) =0002H,从物理地址20100H单元开始,依次存放数据12H、34H 56H、78H;而从物理地址21200H单元开始,依次存放数据2AH4CH 8BH 98H。
试说明下列各条指令单独执行后AX寄存器的内容。
① MOV AX 3600H(AX =② MOV AX [1200H](AX)=2.以下语句汇编后,变量③ MOVAX BX(AX)=④ MOV AX [BX](AX)=CON1 CON2 CON3和CON4的内容分别是多少?2= 10N2=5N3=3CON1 DB NOT N1CON2 DB ( N1 AND N2 OR N3 ) GE 0FHCON3 DW( N2 AND N1 XOR N3 ) LE 0FHCON4 DB ( N1 AND N3 OR N2 ) LT 0FH3•读下列程序,并在空白处填入合适指令,使该程序段能完成将100H个字节数据从2000H处搬到1000H处的操作。
MOV SI,2000HMOV CX ,100HCLD4指出下面指令序列的执行结果。
MOV DX ,2000HMOV BX ,1000HXCHG BX ,DX贝U: BX= ____________ DX= ____________________5设初值AX=6264H , CX=0001H,在执行下列程序段后,AX= ? CX= ?AND AX, AXJZ DONESHL CX , 1ROR AX , CLDONE : OR AX, 1234H贝U: AX= ____________ CX= ____________________6有数据定义如下,与之等同功能的指令是什么?DAT DW 100 DUP (?)MOV CX ,LENGTH DATADD AX ,TYPE DAT8. 对于给定的数据定义,变量R1和R2的值分别是多少?①A1 DB 1 ,2,3,'ABCA2 DB 0R1 EQU A2-A1则R1= ____________9. 选用最少的指令,实现下述要求的功能。
阅读程序题【2.1】以下程序的输出结果是。
main(D ) { float a;printf("%g",a);}A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0【2.2】下面程序的输出结果是B____。
#include <stdio.h>main( ){ int x=10;{ int x=20;printf ("%d,", x);}printf("%d\n", x);}A) 10,20 B) 20,10 C) 10,10 D) 20,20【2.3】以下程序的输出结果是___B_。
main(){ unsigned int n;int i=-521;n=i;printf("n=%u\n",n);}//变量i中的负号传送给变量n后,因n是无符号数,已不作为负号处理。
【2.4】以下程序的输出结果是。
main(D ){ int x=10, y=10;printf("%d %d\n", x――, ――y);}A) 10 10 B) 9 9 C) 9 10 D) 10 9【2.5】以下程序的输出结果是___B。
main(){ int n=1;printf("%d %d %d\n",n,n++,n--);} // C语言在执行printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理n- -,再处理n++,最后处理n,A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1【2.6】以下程序的输出结果是____。
main(){ int x=0x02ff,y=0x0ff00;printf("%d\n",(x&y)>>4|0x005f);A) 127 B) 255 C) 128 D) 1【2.7】以下程序的输出结果是____。
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1#Filename:002.py2 i = int(raw_input('Enter the profit:'))3 arr = [1000000,600000,400000,200000,100000,0]4 rat = [0.01,0.015,0.03,0.05,0.075,0.1]5 r = 06for idx in range(0,6):7if i>arr[idx]:8 r+=(i-arr[idx])*rat[idx]9print (i-arr[idx])*rat[idx]10 i=arr[idx]11print r【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?【感谢12楼的同学peiqianggao提供代码】# -*- coding:utf-8 -*-'''Created on 2015-6-7# 第三题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少@author: Administrator'''import mathnum = 1while True:if math.sqrt(num + 100)-int(math.sqrt(num + 100)) == 0 and math.sqrt(num + 268)-int(math.sqrt(num + 268)) == 0:print(num)breaknum += 1【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1#author: 叛军2import datetime3import time4 dtstr = str(raw_input('Enter the datetime:(20151215):'))5 dt = datetime.datetime.strptime(dtstr, "%Y%m%d")6 another_dtstr =dtstr[:4] +'0101'7 another_dt = datetime.datetime.strptime(another_dtstr, "%Y%m%d") 8print (int((dt-another_dt).days) + 1)【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。
以下是一个简单的 Python 读程序题,题目要求读取一个整数列表,并计算其中所有偶数的和:
```python
# 读取整数列表
num_list = input("请输入一个整数列表,用逗号分隔:").split(",")
# 将字符串列表转换为整数列表
num_list = [int(x) for x in num_list]
# 初始化偶数和为 0
even_sum = 0
# 遍历整数列表,计算偶数和
for num in num_list:
if num % 2 == 0:
even_sum += num
# 输出偶数和
print("所有偶数的和为:", even_sum)
```
在这个程序中,我们首先使用 `input()` 函数读取用户输入的整数列表,并使用 `split()` 方法将其分割成一个字符串列表。
然后,我们使用列表推导式将字符串列表转换为整数列表。
接下来,我们初始化一个变量 `even_sum` 为 0,用于存储偶数的和。
最后,
我们遍历整数列表,如果一个数是偶数,就将其加入 `even_sum` 中。
最后,我们输出偶数和。
数据库SQL程序读写题⼀、程序读写题基于Xsbook数据库完成下⾯的题⽬:1.查询计算机专业的学⽣的借书总⼈数,并指定列标题为…总⼈数?Select Count(*) As 总⼈数From XsWhere 专业名=?计算机?2.查询借阅了“计算机⽹络”这本书的所有学⽣的姓名Select 姓名From Xs,Book,JyWhere Book.书名='计算机⽹络' And Xs.借书证号=Jy.借书证号And Jy.Isbn=Book.Isbn 3.查询姓名为“李宏”所借所有书本的书名和作者。
Select 书名,作者From Xs,Book,JyWhere Xs.姓名='李宏' And Xs.借书证号=Jy.借书证号And Jy.Isbn=Book.Isbn⼆、程序读写题(空格⽤□表⽰)(⽤到的表是书上的学⽣选课表。
)1.写出结果。
Declare @A Char(6)Declare @B Char(6)Set @A='TANK'Set @B='HUNTER'Set @A=@A+@BSelect @A答案:TANK □□2.写出结果。
Declare @A Char(4)Set @A='管理'Select @A=( Select专业From XSB Where学号='没有' )Select @A答案:NULL3.写出Select语句,按照CJB(选课表)成绩进⾏降序排名,取出前三名。
Select Top 3 *From CJBOrder By成绩Desc4.Declare @V ar1 Char(10),@V ar2 Char(30)Set @V ar1=?中国?Set @V ar2=@Var1+?是⼀个伟⼤的国家?Select @V ar1,@Var2Go答案:中国⼝⼝⼝⼝⼝⼝|中国⼝⼝⼝⼝⼝⼝是⼀个伟⼤的国家⼝⼝⼝⼝5.Declare @V ar1 Nvarchar(30)Select @V ar1=?刘丰?Select @V ar1=(Select 姓名From Xsb Where 学号=?089999?)Select @V ar1 As Name //表中没有学号=?089999?的学⽣答案: Name Null三、程序读写题有如下语句Select Titles.Title_Id, Titles.Title, Publishers.Pub_NameFrom Titles Right Outer Join PublishersOn Titles.Pub_Id = Publishers.Pub_Id该查询将返回PUBLISHERS表的所有⾏,不包括TITLES表中的不匹配⾏。
python 程序阅读题 break continue
break 和 continue 是 Python 中的控制语句,用于在循环中控制程序的执行流程。
- break:当 break 语句被执行时,程序将跳出当前循环,继续执行紧随其后的语句。
例如:
for i in range(10):
if i == 5:
break
print(i)
上述代码将输出:
1
2
3
4
当 i 的值等于 5 时,程序执行 break 语句跳出循环。
- continue:当 continue 语句被执行时,程序将跳过当前循环中剩余的语句,直接进入下一次循环。
例如:
for i in range(10):
if i == 5:
continue
print(i)
上述代码将输出:
1
2
3
4
6
7
8
9
当 i 的值等于 5 时,程序跳过 print(i) 语句,直接进行下一次循环。
需要注意的是,break 和 continue 只作用于最内层的循环语句。
如果嵌套多层循环,执行 break 或 continue 语句时只会跳出或跳过当前层的循环,而不会影响外层的循环。
同时也需要注意,在使用 break 和 continue 时,要避免出现死循环。
如果逻辑上存在死循环,那么执行 break 或 continue 将无法结束循环,导致程序卡死。
因此,在编写代码时需要仔细考虑控制语句的使用场景,以免出现错误。
1、Do Until 条件循环体Loop则正确的叙述是A)如果“条件”值为0,则一次循环体也不执行B)如果“条件”值为0,则至少执行一次循环体C)如果“条件”值不为0,则至少执行一次循环体D)不论“条件”是否为“真”,至少要执行一次循环体2、假定有以下程序段n=0for i=1 to 3for j= -4 to -1n=n+1next jnext i运行完毕后,n的值是A)0B)3C)4D)123、阅读下面的程序段:K=0for I=1 to 3for J=1 to IK=K+JNext JNext I执行上面的语句后,K的值为______。
A)8 B)10C)14 D)21设有以下窗体单击事件过程:4、Private Sub Form_Click( )a = 1For i = 1 To 3Select Case iCase 1, 3a = a + 1Case 2, 4a = a + 2End SelectNext iMsgBox aEnd Sub打开窗体运行后,单击窗体,则消息框的输出内容是【11】5 5、运行下面程序代码后,变量J的值为______。
Private Sub Fun()Dim J as IntegerJ=10DOJ=J+3Loop While J<19End SubA)10 B)13C)19 D)216、运行下面程序,其输出结果(str2的值)为【13】。
ECADim str1, str2 As StringDim i As Integerstr1 = "abcdef"For i = 1 To Len(str1) Step 2str2 = UCase(Mid(str1, i, 1)) + str2NextMsgBox str27、运行下面程序,其运行结果k的值为【14】,其最里层循环体执行次数为【15】。
Dim i, j, k As Integeri = 1DoFor j = 1 To i Step 2k = k + jNexti = i + 2Loop Until i > 814(30)15(10)8、在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:Private Sub Command1_Click( )Dim a(10,10)For m=2 To 4For n=4 To 5a(m,n)=m*nNext nNext mMsgBox a(2,5)+a(3,4)+a(4,5)End Sub窗体打开运行后,单击命令按钮,则消息框的输出结果是A)22 B)32 C)42 D)529、在窗体中添加一个命令按钮(名为Command1)和一个文本框(名为Text1),并在命令按钮中编写如下事例代码:Private Sub Command1_Click( )m=2.17n=Len(Str$(m)+Space(5))Me.Text1=nEnd Sub窗体打开运行后,单击命令按钮,在文本框中显示A)5 B)8 C)9 D)1010、在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:Private Sub Command1_Click( )A=75If A>60 Then I=1If A>70 Then I=2If A>80 Then I=3If A>90 Then I=4MsgBox IEnd Sub窗体打开运行后,单击命令按钮,则消息框的输出结果是A)1 B)2C)3 D)411、在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:Private Sub Command1_Click( )s=”ABBACDDCBA”For I=6 To 2 Step -2x=Mid(s,I,I)y=Left(s,I)z=Right(s,I)z=x & y & zNext IMsgBox zEnd Sub窗体打开运行后,单击命令按钮,则消息框的输出结果是A)AABAAB B)ABBABA C)BABBA D)BBABBA 12、在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:Public x as integerPrivate Sub Command1_Click( )x=10Call s1Call s2MsgBox xEnd SubPrivate Sub s1( )x=x+20End SubPrivate Sub s2( )Dim x as integerx=x+20End Sub窗体打开运行后,单击命令按钮,则消息框的输出结果是A)10 B)30 C)40 D)5013、在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:Private Sub Command1_Click( )Static b as integerb=b+1End Sub窗体打开运行后,三次单击命令按钮后,变量b的值是_______。
3(14)下面VBA程序段运行时,内层循环总次数是_________。
9For m=0 To 7 Step 3For n=m-1 To m+1Next nNext m(15)在窗体中添加一个命令按钮(名称为Command1),然后编写如下代码:Private Sub Command1_Click( )Dim b,kFor k=1 to 6B=23+kNext kMsgBox b+kEnd Sub窗体打开运行后,三次单击命令按钮,消息框的输出结果是_______。
5116、以下程序段运行结束后,变量x的值为x=2y=4Dox=x*yy=y+1Loop While y<4A)2 B)4 C)8 D)2017、在窗体上添加一个命令按钮(名为Command1),然后编写如下事件过程: Private Sub Command1_Click()For i=1 To 4x=4For j=1 To 3x=3For k=1 To2x=x+6Next kNext jNext iMsgBox xEnd Sub打开窗体后,单击命令按钮,消息框的输出结果是A)7 B)15 C)157 D)53818、假定有如下的Sub过程:Sub sfun(x As Single,y As Single)t=xx=t/yy=t Mod yEnd Sub在窗体上添加一个命令按钮(名为Command1),然后编写如下事件过程: Private Sub Command1_Click()Dim a as singleDim b as singlea=5b=4sfun a,bMsgBox a & chr(10)+chr(13)& bEnd Sub打开窗体运行后,单击命令按钮,消息框的两行输出内容分别为A)1和1 B)1.25和1 C)1.25和4 D)5和419、在窗体中添加一个命令按钮,名称为Command1,然后编写如下程序:Private Sub Command1_Click()Dim s,iFor i=1 To 10s=s+iNext iMsgBox sEnd Sub窗体打开运行后,单击命令按钮,则消息框的输出结果为【11】 55 。
(20)在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序: Private Sub s(By Val p As lnteger)p=p*2End SubPrivate Sub Command1_Click()Dim i As Integeri=3Call s(i)If i>4 Then i=i^2MsgBox iEnd Sub窗体打开运行后,单击命令按钮,则消息框的输出结果为【12】 3 。
(21)设有如下代码:x=1dox=x+2loop until 【13】运行程序,要求循环体执行3次后结束循环,在空白处填入适当语句。
x=7(22)在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码:Private Sub Command1_Click( )a = 75If a>60 Thenk = 1Elself a>70 Thenk = 2Elself a>80 Thenk = 3Elself a>90 Thenk = 4EndIfMsgBox kEnd Sub窗体打开运行后,单击命令按钮,则消息框的输出结果是A)1B)2C)3D)4(23)设有如下窗体单击事件过程:Private Sub Form_Click( )a = 1For i = 1 To 3Select Case iCase 1,3a= a+1Case 2,4a= a+2End SelectNext iMsgBox aEnd Sub打开窗体运行后,单击窗体,则消息框的输出的结果是A)3B)4C)5D)6(24)设有如下程序:Private Sub Command1_Click( )Dim sum As Double, x As DoubleSum = 0n = 0For i = 1 To 5x=n/in=n+1sum=sum+xNext IEnd Sub该程序通过For循环来计算一个表达式的值,这个表达式是A)1+1/2+2/3+3/4+4/5B)1+1/2+1/3+1/4+1/5C)1/2+2/3+3/4+4/5D)1/2+1/3+1/4+1/5(25)下列Case语句中错误的是A)Case 0 To 10B)Case Is>10C)Case Is>10 And Is<50D)Case 3,5 Is>10(26)如下程序段定义了学生成绩的记录类型,由学号、姓名和三门课程成绩(百分制)组成。
Type Studno As Integername As Stringscore (1 to 3) As SingleEnd Type若对某个学生的各个数据项进行赋值,下列程序段中正确的是A)Dim S As StudStud.no=1001="舒宜"Stud.score=78,88,96B)Dim S As StudS.no=1001="舒宜"S.score=78,88,96C)Dim S As StudStud.no=1001="舒宜"Stud.score(1)=78Stud.score(2)=88Stud.score(3)=96D)Dim S As StudS.no=1001="舒宜"S.score(1)=78S.score(1)=88S.score(1)=96(27)若窗体中已有一个名为Command1的命令按钮、一个名为Label1的标签和一个名为Text1的文本框,且文本框的内容为空,然后编写如下事件代码:Private Function f(x As Long) As BooleanIf x Mod 2 = 0 Thenf = TrueElsef=FalseEnd IfEnd FunctionPrivate Sub Command 1_Click( )Dim n As Longn = Val(Me!text1)p = iif(f(n), "Even number", "Odd number")Me!Labell.Caption = n & "is" & pEnd Sub窗体打开运行后,在文本框中输入21,单击命令按钮,则标签显示内容为___________。