文档库 最新最全的文档下载
当前位置:文档库 › 第五章 分支程序设计

第五章 分支程序设计

第五章 分支程序设计
第五章 分支程序设计

第五章分支程序设计

练习题

5.4.1 单项选择题

1.双分支程序设计中实现分支的指令是()指令。

A.条件转移B.无条件转移C.移位D.算术运算

2.条件判断转移是根据标志寄存器中的标志位来判断的,用来实现条件判断转移标志位共有()位。

A.4 B.5 C.6 D.9

3.条件转移指令的转移范围是()。

A.0~65535B.~32768~32767C.0~255D.-128~127

4.用一条条件转移指令一次可实现()个分支。

A.2 B.3 C.4 D.多

5.下列指令会影响标志位的指令是()。

A.JMP L B.JC L C.MOV AL,L D.SHL AL,1

6.当两个无符号数进行相加时,执行“JC L”指令表示()转移。

A.结果溢出B.结果为0 C.结果为奇D.结果为负

7.当两个无符号数进行比较时,执行“JA L”指令表示()转移。

A.CF=0且ZF=0 B.CF=0且ZF=1

C.CF=1且ZF=0 D.CF=1且ZF=1

8.当“CMP AX,BX”比较时,执行“JG L”指令后转移列L,则表明()。

A.AX>BX B.AX=BX C.AX<BX D.AX≥BX

9.如果0100H单元存放条件转移指令的操作码,0101H单元存放条件转移指令的相对位移量13H,那么转移后的指令的偏移地址为()。

A、0102H

B、0113H

C、0115H

D、00FEH

10.下列叙述不正确的是()。

A.有符号数比较后的条件转移指令可采用JG、JL、JGE和JLE指令。

B.无符号数比较后的条件转移指令可采用JA、JB、JNE和JBE指令。

C.有符号数比较后判断溢出用JO和JNO指令。

D.无符号数比较后判断溢出用JS和JNS指令。

5.4.2 多项选择题

1.分支程序结构的形式有()。

A.单分支结构B.双分支结构C.多分支结构D.无分支结构

2.在分支结构的程序中,分支程序的流程一般有()。

A.判断转移框B.循环框C.产生条件框D.分支程序段框3.在下列的选项中,可以用来产生条件的选项有()。

A.数据传送指令B.算术运算指令C.逻辑运算指令D.转移指令

4.在多分支程序设计中,常用的方法有()。

A.地址表法B.计数法C.转移表法D.逻辑分解法

5.执行完指令“CMP AX,100”后,如果要实现AX寄存器中的无符号数高于100则转移到L,应该使用的指令有()。

A.JNS L B.JNC L C.JA L D.JNBE L

6.执行完指令“CMP AX,0”后,如果要实现AX寄存器中的内容为正数则转移到L,应该使用的指令有()。

A.JAE L B.JGE L C.JNS L D.JNC L

7.如果用“JS P”指令实现AX寄存器中的内容为负数转移,产生条件的指令可用()。

A.AND AX,8000H B.CMP AX,8000H

C.TEST AX,8000H D.CMP AX,0

8.如果用要判断AX寄存器中的内容为100H则转移到P,如下的选项有()。

A.CMP AX,100H B.SUB AX,100H

JZ P JE P

C.AND AX,100H D.XOR AX,100H

JZ P JZ P

9.设AX寄存器中的内容为有符号数,如果用要判断AX寄存器中的内容小于100H则转移到P,如下的选项有()。

A.CMP AX,100H B.SUB AX,100H

JL P JNG P

C.CMP AX,100H D.SUN AX,100H

JNGE P JNAE P

10.如果在TAB字单元中存放的是某程序的入口地址,要转移到该程序的的选项有()。

A.LEA BX,TAB B.MOV BX,0

JMP BX JMP TAB[BX]

C.JMP TAB D.JMP DWORD PTR[TAB]

5.4.3 填空题

1.当两个有符号数相减后,若要判断大于等于则转、需用、或指令。

2.在分支程序的结构中,其流程图一般由、、定向和四个部分组成。

3.转移表法分支程序设计中,其程序转移表中存放的是。

4.地址表法分支程序设计中,其地址表中存放的是。

5.逻辑分解法程序设计一般是利用多条指令实现多分支程序设计的。

6.条件转移指令是分支程序设计中最常用的指令之一,这类指令大体上可以分为三种,它们是条件转移,条件转移和条件转移指令。

7.条件转移指令的执行,是当条件时则转移。

8.在执行条件转移指令前,必须要执行产生条件码的指令,然后才能进行条件判断转移,而一般的数据传送指令影响条件码(标志位)。

9.当两个数进行比较后,执行指令表示结果为零转L。

10.为了实现程序的多路分支,通常使用、和三种方法的分支程序设计方法。

5.4.4 程序分析题

1.现有程序如下:

DA TA SEGMENT

X DB0ABH

FLAG DB0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

MOV AL,X

CMP AL,0

JGE L

MOV FLAG,0

JMP EXIT

L:MOV FLAG,1

EXIT:MOV AH,4CH

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序执行完后FLAG中的内容是多少?

2.现有程序如下:

DA TA SEGMENT

BUF DB 0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

MOV AH,1

INT21H

CMP AL,61H

JB N

CMP AL,7AH

JA N

SUB AL,20H

N:MOV BUF,AL

MOV AH,4CH

INT21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)如果要将“CMP AL,7AH”改为“CMP AL,7BH”,则相应的指令“JA N”应改为什么指令?

3.现有程序如下:

DA TA SEGMENT

A DB23

B DB0F0H

C DB0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

MOV AL,A

CMP AL,B

JZ L

JG M

MOV C,-1

JMP EXIT

L:MOV C,0

JMP EXIT

EXIT:MOV AH,4CH

INT21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后,C中的内容是什么?

4.现有程序如下:

DA TA SEGMENT

X DW 7000H

Y DW 9000H

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV AX,X

SUB AX,Y

JO L

MOV DL,‘N’

JMP EXIT

L:MOV DL,‘Y’

EXIT:MOV AH,2

INT 21H

MOV AH,4CH

INT21H

CODE ENDS

END START

请回答:(1)请程序完成什么功能?

(2)程序执行完后,显示输出的结果如何?5.现有程序如下:

DA TA SEGMENT

BUF1 DB ‘ABCDAC’

C1 =$-BUF1

BUF2 DB‘C’

BUF3DW0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV ES,AX

LEA DI,BUF1

MOV CX,C1

MOV AL,BUF2

CLD

REPNE SCASB

JNZ N

MOV DL,‘Y’

MOV AH,2

INT21H

DEC DI

MOV BUF3,DI

JMP EXIT

N:MOV DL,‘N’

MOV AH,2

INT 21H

EXIT:MOV AH,4CH

INT21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后,BUF3中的内容是什么?显示输出是什么?6.现有程序如下:

DA TA SEGMENT

BUF DB 23,125,96

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

LEA SI,BUF

MOV AL,[SI]

MOV BL,[SI+1]

MOV CL, [SI+2]

CMP AL,BL

JAE N1

XCHG AL,BL

N1: CMP AL,CL

JAE N2

XCHG AL,CL

N2: CMP BL,CL

JAE N3

XCHG BL,CL

N3: MOV [SI],AL

MOV [SI+1],BL

MOV [SI+2],CL

MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后BUF中的内容依次是什么?7.现有程序如下:

DA TA SEGMENT

X DB4FH

BUF DB 2 DUP(0)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV AL,X

MOV CL,4

SHR AL,CL

CMP AL,9

JBE L

ADD AL,7

L:ADD AL,30H

MOV BUF,AL

MOV AL,X

AND AL,0FH

CMP AL,10

JB M

ADD AL,7

M:ADD AL,30H

MOV BUF+1,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后BUF中的内容依次是什么?8.现有程序如下:

DA TA SEGMENT

A DW 1234H

B DW 5678H

S DB ‘NO SWAP!$’

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV AH,1

INT 21H

CMP AL,‘Y’

JNZ M

CMP AL,‘y’

JNZ M

MOV AX,A

XCHG AX,B

MOV A,AX

JMP N

M:MOV AH,9

LEA DX,S

INT 21H

N:MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)若鍵盘输入“Y”时,A,B中的值各为多少?9.现有程序如下:

DATA SEGMENT

X DB 23H

Y DB 45H

Z DW 0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DA TA

MOV DS,AX

MOV AL,X

CMP AL,0

JGE L

ADD AL,Y

MOV AH,0

ADC AH,0

MOV Z,AX

JMP EXIT

L:SUB AL,Y

MOV AH,0

SBB AH,0

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序计算的表达式是什么?

(2)程序运行后,Z中的内容是什么?

10.现有程序如下:

DA TA SEGMENT

BUF DB 0F3H

S DB 0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV AL,BUF

TEST AL,80H

JZ L

NEG AL

L:MOV S,AL

MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后S中的内容是什么?

11.现有程序如下:

DA TA SEGMENT

STR DB ‘ABCDEFGMABC’

C =$-STR

X = 5

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV ES,AX

CLD

LEA SI,STR

ADD SI,X

MOV DI,SI

INC SI

MOV CX,C

SUB CX,X

DEC CX

CMP CX,0

JBE EXIT

REP MOVSB

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后STR中的内容是什么?

12.现有程序如下:

DA TA SEGMENT

X DB 96H

Y DB 0A2H

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV AL,X

CMP AL,Y

JG L

XCHG AL,Y

L:MOV BL,AL

MOV CL,4

SHR AL,CL

CMP AL,9

JBE M

ADD AL,7

M:ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H

AND BL,0FH

CMP BL,9

JBE N

ADD BL,7

N:ADD BL,30H

MOV AH,2

MOV DL,BL

INT 21H

MOV DL,‘H’

MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后显示的内容是什么?

13.现有程序如下:

DA TA SEGMENT

D0 DB ‘DA TA 0$’

D1 DB ‘DA TA 1$’

D2 DB ‘DA TA 2$’

D3 DB ‘DA TA 3$’

X DB 02H

TAB DW DIS0,DIS1,DIS2,DIS3

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

LEA BX,TAB

MOV AL,X

AND AL,3

MOV AH,0

SHL AX,1

ADD BX,AX

JMP WORD PTR[BX]

DIS0:LEA DX,D0

JMP EXIT

DIS1:LEA DX,D1

JMP EXIT

DIS2:LEA DX,D2

JMP EXIT

DIS3:LEA DX,D3

EXIT: MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后显示输出的是什么?

14.现有程序如下:

DA TA SEGMENT

X DB 3

Y DB 45H

W DB 0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV BX,OFFSET TAB

MOV AL,X

MOV AH,0

AND AL,3

SHL AX,1

ADD BX,AX

JMP BX

EXIT:MOV AH,4CH

INT 21H

TAB:JMP SHORT M0

JMP SHORT M1

JMP SHORT M2

JMP SHORT M3

M0:MOV AL,Y

ADD AL,8

MOV W,AL

JMP EXIT

M1:MOV AL,Y

ADD AL,16

MOV W,AL

JMP EXIT

M2:MOV AL,Y

MOV W,AL

JMP EXIT

M3:MOV W,100

JMP EXIT

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)程序运行后W中的内容是什么?

15,现有程序如下:

DA TA SEGMENT

W DB ?

X DB 25

Y DW 0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DA TA

MOV DS,AX

MOV AL,X

MOV BL,W

CMP BL,0

JZ L1

CMP BL,1

JZ L2

CMP BL,2

JZ L3

MOV BL,AL

MUL AL

JMP EXIT

L1:ADD AL,100

L:MOV AH,0

ADC AH,0

JMP EXIT

L2:ADD AL,200

JMP L

L3:SUB AL,100

MOV AH,0

SBB AH,0

EXIT:MOV Y,AX

INT 21H

CODE ENDS

END START

请回答:(1)该程序完成什么功能?

(2)若W中的内容为5,程序运行后Y中的内容是多少?

5.4.5 程序填空题。

1.下列程序是判断BUF字缓冲区中有符号数的大小,当其数值大于-100时,就将FLAG字节单元清0,否则就将其置1。请在程序的空格处填上适当的指令。

MOV AX,BUF

(1)

(2)

MOV FLAG,0

(3

L:MOV FLAG,1

M:MOV AH,4CH

INT 21H

2.下列程序是判断X和Y有符号字数据的大小,当X中的数据大于Y中的数据时,就将Z置1,当X中的数据小于Y中的数据时就将Z送-1,否则将Z清0,请在程序的空格处填上适当的指令。

MOV AX,X

(1)

(2)

JG M

MOV Z,-1

JMP EXIT

L:MOV Z,0

JMP EXIT

M:(3)

EXIT:MOV AH,4CH

INT 21H

3.下列程序是判断两个无符号字数据X、Y的大小,当X>Y时执行X-Y,当X<Y时执行Y-X,当X=Y时执行X+Y,其运算后的结果存放在W中。请在程序的空格处填上适当的指令。

MOV AX,X

MOV BX,Y

CMP AX,BX

(1)

JB M

ADD AX,BX

(2)

L:(3)

JMP EXIT

M:XCHG AX,BX

SUB AX,BX

EXIT:MOV W,AX

MOV AH,4CH

INT 21H

4.设X、Y是双精度32位无符号数变量,下列程序是完成2个数大小的判断,当X大于Y时,将字节变量F置1,否则将字节变量F清0,请在程序的空格处填上适当的指令。

MOV AX,X+2

MOV BX,X

CMP AX,Y+2

JB L1

(1)

CMP BX,Y

(2)

L1:(3)

JMP EXIT

L2:MOV F,1

EXIT:MOV AH,4CH

INT 21H

5.下列程序是将BUF字节缓冲区中的两位十六进制数转换成两位十六进制数ASCII码,并将转换结果存放在Y单元中的程序。请在程序的空白处填上的适当的指令。

MOV AL,BUF

(1)

SHR AL,CL

(2)

JBE L

ADD AL,7

L:ADD AL,30H

MOV Y,AL

MOV AL,BUF

(3)

CMP AL,10

(4)

ADD AL,7

M:ADD AL,30H

MOV Y+1,AL

MOV AH,4CH

INT 21H

6.下列程序是判断键盘输入字符,若输入字符为数字,则将其数字的ASCII码送BUF;若为字母,则将其对应的大写字母送BUF;否则将0送BUF,请在程序的空格处填上适当的指令。

MOV AH,1

INT 21H

CMP AL,30H

(1)

CMP AL,39H

(2)

CMP AL,41H

JB M

CMP AL,5BH

(3)

CMP AL,61H

JB M

CMP AL,7AH

(4)

SUB AL,20H

L:MOV BUF,AL

JMP EXIT

M:MOV AL,0

MOV BUF,AL

EXIT:MOV AH,4CH

INT 21H

7.下列程序是判断两个有符号字数据X、Y,当两数都为正数时,则2送W;当两数都为负数时,则执行-2送W;当两数异号时,则0送W,请在程序的空格处填上适当的指令。

MOV AX,X

MOV BX,Y

TEST AX,8000H

(1)

TEST BX,8000H

JZ L

P:MOV W,0

JMP EXIT

L:MOV W,2

JMP EXIT

M:TEST BX,8000H

(2)

(3)

EXIT:MOV AH,4CH

INT 21H

8.下列程序是比较字符串STR1和STR2中第一个不相等的字符,若查找到,则将FLAG字节单元置1,并将查找的字符串STR1的偏移地址送ADR字单元,否则FLAG清0,请在程序的空

格处填上适当的指令。

LEA SI,STR1

(1)

MOV CX,100

CLD

(2)

(3)

MOV FLAG,0

JMP EXIT

L:MOV FLAG,1

(4)

MOV ADR,SI

EXIT:MOV AH,4CH

INT 21H

9.下列程序是根据键盘输入的不同进行相应的处理。当输入为‘Y’或‘y’时,则将BUF1中100个字节的内容传送给BUF2,当输入‘N’或‘n’时,则将BUF2中100个字节的内容传

送给BUF1,否则直接退出。请在程序的空格处填上适当的指令。

MOV AH,1

INT 21H

CMP AL,‘Y’

JZ L

(1)

JZ L

CMP AL,‘N’

JNZ M

CMP AL,‘n’

JNZ M

JMP EXIT

L:LEA SI,BUF1

(2)

MOV CX,100

CLD

REP MOVSB

JMP EXIT

M:LEA SI,BUF2+99

LEA DI,BUF1+99

MOV CX,100

(3)

REP MOVSB

EXIT:MOV AH,4CH

INT 21H

10.下列程序是X和Y两个压缩BCD相加,如果相加结果超时100,则显示OVER字符串中的内容,否则,将相加结果送W,并显示P字符串中的内容中,请在程序的空格处填上适当的指令。

MOV AL,X

ADD AL,Y

(1)

(2)

MOV W,AL

LEA DX,P

JMP EXIT

L:LEA DX,OVER

EXIT:MOV AH,9

(3)

MOV AH,4CH

INT 21H

5.4.6 程序设计题

1.编写一程序,从键盘输入一字符,若输入的字符为Y(或y),则将字变量A和B中的16位无符号数相乘,其结果存放在F字单元中,否则将执行A/B的运算,其结果的商存在F,

余数存放在F+2中。

2.编写一程序,判断X字节变量中的三个数,根据比较结果FLAG字节变量置1:(1)若三个数都为0,则FLAG送3

(2)若两个数为0则FLAG送2

(3)若一个数为0则FLAG送1

(4)若全不为0则FLAG送0

3.设X为有符号数的字变量,编写一程序,若X的绝对值大于10,则将其绝对值送Y,否则将X+10的值送Y。

4.编写一程序,判断X、Y字节变量中的数据,根据判断结果置FLAG字节变量。

(1)若两个数都为奇数,则将FLAG送2

(2)若两个数都为偶数,则将FLAG清0

(3)若两个数为一奇一偶,则将FLAG清1

5.编写一程序,统计X字节变量中为1的位数,并将统计的结果显示出来。

6.编写一程序,将字符串缓冲区BUF中的小写字母变换成大写字母。

7.编写一程序,将BUF缓冲的2位十六进制数转换成二进制数显示输出。

8.编写一程序,将X变量中的16位二进制数转换成十六进制数显示输出。

9.用地址表法编写一程序,根据键盘输入数值分别显示输出对应字符串:

(1)输入0时,显示“INPUT0!”

(2)输入1时,显示“INPUT1!”

(3)输入2时,显示“INPUT2!”

(4)其它输入时,显示“INPUT ERROR!”

10.编写一程序,将BUF字节缓冲区中的100字节按相反方向存放到BUF1中。

11.编写一程序,用串比较指令,比较STR1和STR2字符串,若两个字符串完全相等,则显示输出‘OK!’,若不相等,则显示输出‘ERROR!’和STR1中第一个不相等的字符。12.编写一程序,比较两个有符号字变量X和Y。

(1)若两个数都大于等于100,则将两个数分加1。

(2)若两个数都不大于等于100,则将两个数分别减1。

(3)若两个数一个大于等于100,另一个数不大于等于100,则将两数互换。

13.假定A、B、C字节变量中存放的是三个相等的数据,但由于某种原因使其中的一个数据发生变化,试编写一程序找出三个数中变化的代码存放在D中,并将变化的代码单元恢复成原来的数据。

14.编写一程序,将A和B中的两位压缩BCD码相加,并将相加的结果用十进制显示输出。

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计 基础练习(A) 一、填空题 1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。 2、逻辑运算符!是单目运算符,其结合性是由右结合性。 3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。 4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。 6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x2&&x<3。 8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。 11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。 !(x>y)+(y!=z)||(x+y)&&(y-z) 15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。 !(x=a)&&(y=b)&&0 16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。 二、选择题 1、逻辑运算符两侧运算对象的数据类型(D)。 A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据 2、以下关于运算符优先顺序的描述中正确的是(C)。 A)关系运算符<算术运算符<赋值运算符<逻辑与运算符 B)逻辑与运算符<关系运算符<算术运算符<赋值运算符 C)赋值运算符<逻辑与运算符<关系运算符<算术运算符 D)算术运算符<关系运算符<赋值运算符<逻辑与运算符 3、下列运算符中优先级最高的是(B)。 A)< B)+ C)&& D)!= 4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表 达式是(C)。 A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

分支与循环程序设计实验报告

分支与循环程序设计实验-报告

————————————————————————————————作者: ————————————————————————————————日期:

实验名称 分支与循环程序设计实验 指导教师 罗志祥 专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137******** 一、任务要求 1. 设有8bits 符号数X 存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。 264/2 106410 X X Y X X X X ?≥? =<

C++程序设计第五章答案

《C/C++程序设计》实验报告 实验五 练习5.2 代码如下: #include using namespace std; //display the number's 逆序 int sumDigits(long n) { int i,sum=0; while(n>0) { i = n % 10; n = n / 10; sum = sum + i; } return sum; } int main() { cout<<"enter an integer:"; int a; cin >>a; //use the function sumDigits cout< using namespace std;

//display the number's 逆序 int reverse(int number) { int i,sum=0; while(number>0) { i = number % 10; number = number / 10; sum = sum*10 + i; } return sum; } int main() { cout << "Please enter an integer:"; int a; cin >> a; //use the function int reverse cout< #include using namespace std; //Prompt the user to enter the number void displayPattern(int n) { for(int row = 1; row <= n;row++) { for(int column = 1;column <= n - row;column++) { cout<=1;num--) {

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

第10章 程序设计基础_习题参考答案

第10章习题参考答案 一、选择题 1.编写程序时,不需要了解计算机内部结构的语言是( C )。 A.机器语言B.汇编语言 C.高级语言D.指令系统 2.能够把由高级语言编写的源程序翻译成目标程序的系统软件叫( D )。 A.解释程序B.汇编程序 C.操作系统D.编译程序 3.结构化程序设计主要强调的是( B )。 A.程序的规模B.程序的可读性 C.程序的执行效率D.程序的可移植性 4.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( D )。 A.调用语句B.命令C.口令D.消息 5.下列程序段的时间复杂度是( A )。 t=i; i=j; j=t; A.O(1) B.O(3) C.O(n) D.O(3n) 6.一位同学用C语言编写了一个程序,编译和连接都通过了,但就是得不到正确结果,那么下列说法正确的是( C )。 A.程序正确,机器有问题B.程序有语法错误 C.程序有逻辑错误D.编译程序有错误 二、填空题 1.程序设计的基本步骤是(分析问题,确定数学模型)、(设计算法,画出流程图)、(选择编程工具,按算法编写程序)、(调试程序,分析输出结果)。 2.用高级语言编写的程序称为(源程序),把翻译后的机器语言程序叫做(目标程序)。 3.结构化程序设计的3种基本逻辑结构为顺序、选择和(循环)。 4.面向对象程序设计以(对象)作为程序的主体。 5.在面向对象方法中,信息隐蔽是通过对象的(封装)性来实现的。 6.在最坏情况下,冒泡排序的比较次数为(n(n-1)/2)。 三、问答题 1.什么是程序?什么是程序设计? 程序是计算机指令的集合,这些指令描述了计算机的一系列操作步骤。 使用计算机解决实际问题,通常是先要对问题进行分析并建立数学模型(对数值计算问题)或提出对数据处理的需求(对非数值计算问题),然后进行算法设计,并用某一种程序设计语言编写程序,最后调试程序,使之运行后能产生预期的结果。这个过程称为程序设计。 2.什么是算法?它有何特征?如何描述算法? 计算机解决问题的方法和步骤,就是计算机解题的算法。 算法具有5个特性:有穷性、确定性、有效性、一般要有数据输入、要有结果输出。 描述算法有多种不同的工具:自然语言、流程图、结构化流程图和伪代码等。 3.简述冒泡排序、折半查询的基本思想。 冒泡法排序法是每趟将相邻的两个数两两进行比较,若满足排序次序,则进行下一次比较,若不满足排序次序,则交换这两个数,直到最后。总的比较次数为n-1次,此时最后的

C++程序设计基础课后答案 第五章

5.1 阅读下列程序,写出执行结果 1.#include < iostream.h > struct data { int n ; float score ; } ; void main() { data a[3] = { 1001,87,1002,72,1003,90 } , *p = a ; cout << (p++)->n << endl ; cout << (p++)->n << endl ; cout << p->n++ << endl ; cout << (*p).n++ << endl ; } 2.#include < iostream.h > struct employee { char name[ 20 ] ; char sex ; } ; void fun( employee *p ) { if( (*p).sex == 'm' ) cout << (*p).name << endl ; }

void main() { employee emp[5] = { "Liming", 'm', "Wangxiaoping", 'f', "Luwei", 'm' } ; int i ; for( i=0; i<3; i++ ) fun( emp+i ) ; } 3. #include < iostream.h > struct node { char * s ; node * q ; } ; void main() { node a[ ] = { { "Mary", a+1 }, { "Jack", a+2 }, { "Jim", a } } ; node *p = a ; cout << p->s << endl ; cout << p->q->s << endl ; cout << p->q->q->s << endl ; cout << p->q->q->q->s << endl ; } 4.#include < iostream.h > class A

Matlab实验五分支结构程序设计答案

实验五分支结构程序设计 实验内容 (1)从键盘输入一个数,将它反向输出,例如输入693,输出为396 >> clear >> format long g s=input('s=') n=fix(log10(s)); A=0; for i=1:n a=fix(s/10^n); x=fix(mod(s,10^i)/10.^(i-1)); A=A+x*10^(n+1-i); end A+a s=693 s = 693 ans = 396 (2)输入一个百分制成绩,要求输出成绩等级A,B,C,D,E其中90-100位A,80-89为B,70-79为C,60-69为D,60以下为E 1)分别用if语句和switch语句实现 2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息 If语句 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理');

elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩98 a = 98 A 成绩合理 >> a=input('输入成绩') if a>=90&a<=100 disp('A 成绩合理'); elseif a>=80&a<90 disp('B 成绩合理'); elseif a>=70&a<80 disp('C 成绩合理'); elseif a>=60&a<70 disp('D 成绩合理'); elseif a<60 disp('E 成绩合理'); else disp('成绩错误') end 输入成绩148 a = 148 成绩错误 switch语句 >> a=input('输入成绩') switch a; case num2cell(0:59) disp('E 成绩合理'); case num2cell(60:69) disp('D 成绩合理'); case num2cell(70:79) disp('C 成绩合理'); case num2cell(80:89) disp('B 成绩合理'); case num2cell(90:100) disp('A 成绩合理'); otherwise disp('成绩错误'); end

智慧树知到《Python程序设计基础》章节测试答案

智慧树知到《Python程序设计基础》章节测试答案绪论 1、学好Python程序设计要注意的几个问题是 A:多看多练 B:多想多整理 C:多交流多请教 D:只看视频,不思考、不练习 答案: 多看多练,多想多整理,多交流多请教 2、本门课程将主要介绍哪些内容 A:运算符 B:内置函数 C:常用数据类型 D:文件操作 答案: 运算符,内置函数,常用数据类型,文件操作 第一章 1、下面特点属于Python语言的有哪些? A:开源 B:免费 C:跨平台 D:解释执行 答案: 开源,免费,跨平台,解释执行 2、Python支持函数式编程。 A:对 B:错 答案: 对

3、对于Python程序,对代码缩进的要求非常严格。 A:对 B:错 答案: 对 4、一般建议,每行Python代码的长度不要超过屏幕宽度,如果确实太长的话,应使用续行符。 A:对 B:错 答案: 对 5、一般来说,程序中的重要代码应加上适当的注释。 A:对 B:错 答案: 对 6、下面导入标准库对象的语句,正确的有? A:from math import sin B:from random import random C:from math import D:import 答案: from math import sin,from random import random,from math import * 第二章 1、Python无法表示9999这样大的整数。 A:对 B:错 答案: 错 2、集合中的元素都是唯一的,不会有重复。 A:对

B:错 答案: 对 3、Python中变量的类型是动态的,随时可以变化。 A:对 B:错 答案: 对 4、可以使用break作为变量名。 A:对 B:错 答案: 错 5、Python支持复数以及相关的运算。 A:对 B:错 答案: 对 6、Python中没有++和–这两个运算符。 A:对 B:错 答案: 对 第三章 1、已知x = [1, 2, 3],执行语句(4)之后,x的值是什么?A:[1, 2, 3, 4] B:[4] C:[1, 2, 3] D:4 答案:

C程序设计(第四版)_谭浩强_第五章_课后习题答案

循环结构程序设计 P115 5.1 用while计算1至100的合. #include int main() { int i=1,sum=0; while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定. { sum=sum+i; i++; } printf("The sum is %d .\n",sum); return 0; } #include int main() { int i=1,sum=0; do// do-while可以做的事,用while都可以做到. { //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行. sum=sum+i; i++; }while(i<=100); printf("The sum is %d .\n",sum); return 0; } P118 5.3 比较do-while与while的差别. #include

{ int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0. while(i<=10) { sum=sum+i; i++; } printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11. do { sum=sum+i; i++; }while(i<=10); //此重点在于理解二者的差别. printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,b=0,a,c; for(i=0;i<=1000;i++) { printf("Please input amount :"); //循环体内套有输出语句以及跳出语句. scanf("%d",&a); b=b+a; if(b>=100)

实验二 MATLAB程序设计 含实验报告

实验二 MATLAB 程序设计 一、 实验目的 1.掌握利用if 语句实现选择结构的方法。 2.掌握利用switch 语句实现多分支选择结构的方法。 3.掌握利用for 语句实现循环结构的方法。 4.掌握利用while 语句实现循环结构的方法。 5.掌握MATLAB 函数的编写及调试方法。 二、 实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 M 文件的编写: 启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正 三、 实验内容 1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因 c b a 、、的不同取值而定) ,这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。并输入几组典型值加以检验。 (提示:提示输入使用input 函数) 2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。 要求:(1)用switch 语句实现。 (2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。 (提示:注意单元矩阵的用法) 3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。重复此过程,最终得到的结果为1。如: 2?1 3?10?5?16?8?4?2?1 6?3?10?5?16?8?4?2?1 运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。 请为关键的Matlab 语句填写上相关注释,说明其含义或功能。 4. 的值,调用该函数后,

《JavaScript 程序设计基础教程(第2版)》习题答案

《JavaScript 程序设计基础教程(第2版)》习题 答案 第一章Web 技术概述 一、单选题 1)D 2)D 3)D 4)A 5)C 6)D 7)C 8)C 9)D 10)D 11)A 12)D 13)D 14)D 15)A 二、综合题 (略) 第二章HTML/XHTML 制作 一、判断题 1)对2)错3)对4)错5)对 6)错7)错8)错9)错10)对 11)对12)对13)错14)错15)对 16)错17)对18)错19)错20)对 21)错22)错 二、单选题 1)D 2)C 3)C 4)B 5)A 6)B 7)B 8)B 9)C 10)C 11)B 12)C 13)C 14)C 15)C 16)C 17)A 三、综合题 1)ex020301.htm 2)ex020302.htm 3)ex020303.htm 4)ex020304.htm 5)ex020305.htm 6)ex020306.htm 7)ex020307.htm 8)ex020308.htm

9)ex020309.htm 10)ex020310.htm 11)略 第三章CSS 技术 一、判断题 1)错2)对3)错4)对5)错 6)错7)对8)错9)对10)错 11)对12)错13)错14)错15)错 16)错17)错18)对19)对20)错 21)错 二、单选题 1)B 2)B 3)A 4)C 5)B 6)C 7)A 8)B 9)D 10)B 11)D 12)B 13)A 14)B 15)D 16)A 17)B 18)C 19)B 20)D 21)B 22)A 23)D 24)A 三、综合题 1)ex030301.htm 2)ex030302.htm 3)ex030303.htm 4)ex030304.htm 5)ex030305.htm 6)ex030306.htm 7)ex030307.htm 8)ex030308.htm 9)ex030309.htm 10)ex030310.htm 11)ex030311.htm 12)ex030312.htm 13)ex030313.htm 14)ex030314.htm 15)ex030315.htm 16)略 第四章JavaScript 编程基础 一、判断题 1)错JavaScript 是Microsoft公司设计的脚本语言。 2)对JavaScript 既文档中可用于Web客户端应用,也可以用于Web服务器端应用。3)对在HTML文档中通过使用