程序设计习题 第 2 章 做判断

 

2.1逻辑运算

1. 判断以下表达式是true还是false,并在SPL里运行一下看看结果。


A

1

=50>1 && 5-3<1

2

=50>1 || 5-3<1

3

=!(50<1)

4

=!100 && 5>1 && 9/4>2

5

=10\3==3 || 10%3!=3 && !10

6

=(10\3==3 || 10%3!=3) && !10

2. 编程练习

(1)输入任意一个自然数,判断它是奇数还是偶数

(2)某资格考试,有3个科目,通过任意两个科目(>=60分)就算合格

(3)任意输入一个数,判断它是正数,负数或零

(4)输入一个正整数,判断其是否是二位数

(5)输入两个数,按从大到小顺序输出

2.2分支结构

1. 根据网格布局判断A1B2B4A5A6的代码块


A

B

C

D

1

X

X



2


X

X


3



X

X

4


X

X


5

X

X



6

X

X



2. 编程练习

(1) 利用分支结构,实现分段函数

..

(2)做学生成绩系统,如果成绩大于80分,输出A,如果成绩大于70分并且小于80分,输出B,如果成绩大于60分并且小于70分,输出C,小于60分输出D

(3)给出三条边,判断是否可以组成三角形,如果可以的话计算周长和面积

提示:利用边长计算三角形面积公式为海伦公式

..p为周长的一半

(4)输入3个数,按从大到小输出

(5)输入任意一个年份和月份,判断该年该月有多少天(提示:闰年的计算方法:年数能被4整除,并且不能被100整除;或者能被400整除的整数年份。

2.3注释和跳转

1. 判断下面两段代码运行后A1的值分别是多少?A1输入6时,又分别是多少?


A

B

C

1

2



2

if A1>5

>A1=A1+4

>A1=A1+5

3

else

goto C2



A

B

1

2


2

if A1>5

goto A4

3

>A1=A1+5


4

>A1=A1+4


2. 编程练习:使用ifgoto语句计算1+2+3+……+100的和

参考答案:

2.1 逻辑运算

2.

1


A

1

6

2

=if(A1%2==0,"even","odd")

2


A


1

95

/科目1

2

83

/科目2

3

76

/科目3

4

=if((A1>=60 && A2>=60)||(A1>=60 && A3>=60)||(A2>=60 && A3>=60),"pass","fail")


3


A

1

3

2

=if(A1>0:"正数",A1<0:"负数",A1==0:"")

4


A

1

15

2

=if(A1>=10 && A1<100, output("Yes"), output("No"))

5


A

B

1

15

23

2

=if(A1>=B1, output(A1,B1),output(B1,A1))


2.2 分支结构

1.

A1的代码块为B1:D4

B2的代码块为C2:D3

B4的代码块为C4:D4

A5的代码块为B5:D5

A6的代码块为B6:D6

2.

1


A

B

1

5


2

if A1>1

>B1=3*A1-5

3

else if A1>=-1 && A1<=1

>B1=A1+2

4

else

>B1=5*A1+3

A1输入x的值

B1 函数计算结果存入B1

2


A

B

C

1

90

/输入成绩


2

if A1>=0 && A1<=100

if A1>=80

>output("A")

3


else if A1>=70

>output("B")

4


else if A1>=60

>output("C")

5


else

>output("D")

6

else

>output("Illegal score")


3


A

B

C

1

3

4

5

2

if A1 + B1 > C1 && A1 + C1 > B1 && B1 + C1 > A1

=A1+B1+C1

=B2/2

3


=sqrt(C2*(C2-A1)*(C2-B1)*(C2-C1))


4


>output(B2,B3)


5

else

>output("This side length group does not form a triangle")


4


A

B

C

1

23

62

15

2

if A1<B1

=A1


3


>A1=B1


4


>B1=B2


5

if A1<C1

=A1


6


>A1=C1


7


>C1=B5


8

if B1<C1

=B1


9


>B1=C1


10


>C1=B8


11

>output(A1,B1,C1)



5


A

B

C

1

2023

/输入年份


2

2

/输入月份


3

if A2==2

if A1%4==0 && A1%100!=0 || A1%400==0

>output(29)

4


else

>output(28)

5

else

if A2==1 || A2==3 || A2==5 || A2==7 || A2==8 || A2==10 || A2==12

>output(31)

6


else

>output(30)

2.3 注释和跳转

2.


A

B

C

D

1

1




2

if A1<=100

>B1=B1+A1

>A1=A1+1

goto A2