上海高一信息技术算法与程序设计习题集
- 格式:doc
- 大小:2.88 MB
- 文档页数:11
1 信息技术算法与程序设计习题集
一、常见的运算
类别 运算符 运算结果 优先级
算术运算符 +、-、*(乘)、/(除)、^(乘方)、mod(求余) 数值
关系运算符 >、=、<、>=、<=、<> True(T,1)或False(F,0)
逻辑运算符 not、and、or True(T,1)或False(F,0)
not>and>or
逻辑运算规则
A B A and B A or B C Not C
T T T T T F
T F F T F T
F T F T
F F F F
习题:
(1)1<5 and 4>3 or not -1=1 T
(2)"a">"b" or 5<6 and 8>=2*4 T
(3)假设变量a的值是1,变量b的值是2,变量c的值是3,计算下列表达式的值。
a^3+b*c 7
c mod b +a 2
int(c/b) >b-a F
a0 T
a+b>c or b+c>a and c+a>b T
二、算法的一些概念
1.算法的定义:解决问题的确定的有限的步骤。
2.算法的描述:自然语言、流程图描述、计算机程序、伪代码。
3.常量和变量:
变量的特点:取之不尽,赋值即覆盖
变量的命名规则:以字母、数字、下划线组成,必须以字母开头。
变量的类型:整数型(Integer)、实数型(Single)、字符串型(String)
4.算法的三种基本结构:顺序结构、分支结构、循环结构
(1)顺序结构
顺序结构按照自上而下的顺序把每个步骤执行一次。
步骤1步骤2
(2)分支结构(选择结构)
分支结构根据条件决定执行步骤1或步骤2中的算法步骤,判断框有一个入口两个出口,分支结构有一个入口,一个出口。
2 单分支语句格式
If Then
End If
5.算法的特点:可行性、确定性(无二义性)、有穷性、可以没有输入,必须要有输出。
三、算法实例
(一)顺序结构 练习1:输入一个圆的半径,求圆的周长和面积,并输出结果。
输入半径r输出c和s开始结束c←2*3.14*rs←3.14*r^2
练习2:输入一个两位数,交换个位和十位的值,输出结果。
输入一个两位数x输出y开始结束a←int(x/10)b←x mod 10 y=b*10+a
练习3:输入两个变量的值,将两个变量中的值互相交换并输出结果。
开始输入a,bc←aa←bb←c输出a,b结束 双分支语句格式
If Then
Else
End If
代码:
Dim a As Single,
Dim b As Single
a = InputBox("第一个数")
b = InputBox("第二个数")
c = a
a = b
b = c
Print a; b 代码:
Dim r As Single
r = InputBox("输入半径")
s = 3.14 * r ^ 2
c = 2 * 3.14 * r
Print "周长"; c
Print "面积"; s
代码:
x = InputBox("请输入")
a = Int(x / 10)
b = x Mod 10
y = 10 * b + a
Print y 步骤1步骤2条件YN条件NY步骤1 3 (二)分支结构(选择结构)
练习1:输入两个数,比较它们的大小,输出较大的数。
a>bYN开始输入两个数a,b结束输出a的值输出b的值
练习2:输入一个三位数,判断它是否是水仙花数(三位数各个数位上的立方和等于它本身)。
开始a^3+b^3+c^3=na=int(n/100)b=int(n/10)-a*10c=n mod 10结束输出”是水仙花数”输入n输出” 不是水仙花数”NY
练习3:输入一个数,求它的绝对值,并输出结果。
开始结束输入a输出a a<0 a=-aYN 代码:
Dim a As Single
Dim b As Single
a = InputBox("请输入")
b = InputBox("请输入")
If a > b Then
Print a
Else
Print b
End If
代码:
Dim n As Single
n = InputBox("输入一个三位数")
a = Int(n / 100)
b = Int(n / 10) - a * 10
c = n Mod 10
If a ^ 3 + b ^ 3 + c ^ 3 = n Then
Print "是水仙花数"
Else
Print "不是水仙花数"
End If
代码:
Dim a As Single
a = InputBox("请输入")
If a < 0 Then
a = -a
End If
Print a 4 练习4:阶梯电价
第一档 第二档 第三档
方案1 每月用电 <110度 110度-210度 >210度
电价 维持现有电价 超出部分上涨不低于5分钱 超出部分每度涨价不低于0.20元
方法一:(右边嵌套分支)
方法二:(左边嵌分支)
Dim x As Single
x = InputBox("输入用电")
If x < 110 Then
y = 0.61 * x
Else
If x <= 210 Then
y = 0.61 * 110 + 0.66 * (x - 110)
Else
y = 0.61 * 110 + 0.66 * 100 + 0.81 * (x - 210)
End If
End If
Print "电费"; y 开始结束输入用电x输出电费y x<110 y=0.61*x y=0.61*110+0.66*(x-110)x<=210 y=0.61*110+0.66*100+0.81*(x-210)YNYN开始结束输入用电x输出电费y x≥110YN y=0.61*xy=0.61*110+0.66*100+0.81*(x-210) x>210y=0.61*110+0.66*(x-110)YN 5 Dim x As Single
x = InputBox("输入用电")
If x >= 110 Then
If x > 210 Then
y = 0.61 * 110 + 0.66 * 100 + 0.81 * (x - 210)
Else
y = 0.61 * 110 + 0.66 * (x - 110)
End If
Else
y = 0.61 * x
End If
Print "电费"; y
练习5:购买地铁车票:乘1-4站3元/位,5-9站4元/位,9站以上5元/位,输入站数和人数,输出应付款。
a<=4YN开始输入站数a,人数b结束输出mm=3*bm=4*bm=5*ba<=9YN
练习6:长江遂桥货车通行费收费标准(载重用w表示,收费用m表示)
13010至15吨(含15吨)1055吨至10吨(含10吨)14515吨以上952吨至5吨(含5吨)602吨及以下通行费载重 代码:
Dim a As Integer
Dim b As Integer
a = InputBox("输入站数")
b = InputBox("输入人数")
If a <= 4 Then
m = 3 * b
Else
If a <= 9 Then
m = 4 * b
Else
m = 5 * b
End If
End If
Print "应付款"; m 6 开始输入载重w输出费用m结束m=60m=95m=130w≤2m=105215Ym=145NAA
(三)循环结构(重复结构)
当遇到需要重复执行的操作时,可以用循环结构,循环结构有一个入口,一个出口。
当循环和直到循环的区别:当循环的循环体可能一次也不执行,直到循环的循环体至少执行一次。
1.输出系列问题
练习1:输出5个*
Dim w As Single
w = InputBox("输入载重")
If w <= 2
Then
m = 60
End If
If w > 2 And w <= 5 Then
m = 95
End If
If w > 5 And w <= 10 Then
m = 105
End If
If w > 10 And w <= 15 Then
m = 130
End If
If w > 15 Then
m = 145
End If
Print "应付款", m
Do while 条件
循环体语句
Loop 当循环的一般形式
循环体条件YN初始值Do
循环体语句
Loop Until 条件 直到循环的一般形式
循环体条件初始值YNn = 0
Do While n < 5
Print "*"
n = n + 1
Loop 开始输出”*”n←n+1n<5n=0YN结束