资源描述
信息技术算法与程序设计习题集
一、常见的运算
类别
运算符
运算结果
优先级
算术运算符
+、-、*(乘)、/(除)、^(乘方)、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
a<b and (c-a)/2>0 T
a+b>c or b+c>a and c+a>b T
二、算法的一些概念
1.算法的定义:解决问题的确定的有限的步骤。
2.算法的描述:自然语言、流程图描述、计算机程序、伪代码。
3.常量和变量:
变量的特点:取之不尽,赋值即覆盖
变量的命名规则:以字母、数字、下划线组成,必须以字母开头。
变量的类型:整数型(Integer)、实数型(Single)、字符串型(String)
4.算法的三种基本结构:顺序结构、分支结构、循环结构
(1)顺序结构
顺序结构按照自上而下的顺序把每个步骤执行一次。
(2)分支结构(选择结构)
分支结构根据条件决定执行步骤1或步骤2中的算法步骤,判断框有一个入口两个出口,分支结构有一个入口,一个出口。
单分支语句格式
If <条件> Then
<步骤1的语句块>
End If
双分支语句格式
If <条件> Then
<步骤1的语句块>
Else
<步骤2的语句块>
End If
5.算法的特点:可行性、确定性(无二义性)、有穷性、可以没有输入,必须要有输出。
三、算法实例
(一)顺序结构
练习1:输入一个圆的半径,求圆的周长和面积,并输出结果。
代码:
Dim r As Single
r = InputBox("输入半径")
s = 3.14 * r ^ 2
c = 2 * 3.14 * r
Print "周长"; c
Print "面积"; s
练习2:输入一个两位数,交换个位和十位的值,输出结果。
代码:
x = InputBox("请输入")
a = Int(x / 10)
b = x Mod 10
y = 10 * b + a
Print y
练习3:输入两个变量的值,将两个变量中的值互相交换并输出结果。
代码:
Dim a As Single,
Dim b As Single
a = InputBox("第一个数")
b = InputBox("第二个数")
c = a
a = b
b = c
Print a; b
(二)分支结构(选择结构)
练习1:输入两个数,比较它们的大小,输出较大的数。
代码:
Dim a As Single
Dim b As Single
a = InputBox("请输入")
b = InputBox("请输入")
If a > b Then
Print a
Else
Print b
End If
练习2:输入一个三位数,判断它是否是水仙花数(三位数各个数位上的立方和等于它本身)。
代码:
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
练习3:输入一个数,求它的绝对值,并输出结果。
代码:
Dim a As Single
a = InputBox("请输入")
If a < 0 Then
a = -a
End If
Print a
练习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
方法二:(左边嵌分支)
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
代码:
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
练习5:购买地铁车票:乘1-4站3元/位,5-9站4元/位,9站以上5元/位,输入站数和人数,输出应付款。
练习6:长江遂桥货车通行费收费标准(载重用w表示,收费用m表示)
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
循环体语句
Loop Until 条件
Do while 条件
循环体语句
Loop
当循环和直到循环的区别:当循环的循环体可能一次也不执行,直到循环的循环体至少执行一次。
1.输出系列问题
练习1:输出5个*
n = 0
Do While n < 5
Print "*"
n = n + 1
Loop
练习2:输出1,2,3,4,5
方法一:用次数来控制循环
方法二:用输出的数字来控制循环
a = 1
Do While a < =5
Print a
a = a + 1
Loop
练习3:输出21,22,23,24,25的值
方法一:把a当成整个数
方法二:把a当指数
2.求和系列问题
练习1:求1+2+3+4+5的和
练习2:求1+3+5+7+9的和
练习3:求21+22+23+24+25的和
练习4: 求1×2+2×3+3×4+4×5+5×6的和。
练习5:求1+2+3+……+k的和,其中k由键盘输入。
练习6:求1*2*3*4*5的积
练习7:求1+2+3+……加到第几项和超过5?
方法一:用i来计算项数
方法二
练习8:求输入的5个数的平均值(如70,60,80,50,90)
Dim a As Single
s = 0
n = 0
Do While n < 5
a = InputBox("输入数据")
s = s + a
n = n + 1
Loop
Print s / 5
方法一:不用数组
方法二:用数组
练习9:输入若干个数的和,输入-1时结束。(如输入60,50,40,-1)
3.循环结构中嵌套分支结构
练习1:统计I级天数
n = 1
c = 0
Do While n <= 5
If a(n) <= 50 Then
c = c + 1
End If
n = n + 1
Loop
Print "I级天数"; c
练习2:求5个数的最大值,并输出最大值的位置。
练习3:求5个数的最小值,并输出最小值的位置。
练习4:求输入的5个数中正数的和
4.直到循环
练习1:输出5个*
n = 0
Do
Print "*"
n = n + 1
Loop Until n >= 5
练习2:求1+2+4+7+11的和
s = 0
a = 1
n = 1
Do
s = s + a
a = a + n
n = n + 1
Loop Until n > 5
Print s
5.数组:数组是一种特殊的变量,它在内存中的位置是连续的,用于存储一批类型、作用相同的数据。
数组元素的下标可以是常量也可以是变量,也可以是一个表达式,可以从0开始,数组元素可以参与运算,和普通的变量一样。
Dim d(10) As Single
n = 1
Do While n <= 10
a(n) = InputBox("输入")
n = n + 1
Loop
n = 10
Do While n >= 1
Print a(n)
n = n - 1
Loop
练习1:输入10个数,再将其逆序输出。
6.枚举算法:列举出各种可能的情况并逐一进行检验,根据检验的结果执行相应的操作,“枚”是一个一个,“举”是列举。
枚举算法的优点:有非常高的准确性和全面性;枚举算法的缺点:效率不高;枚举算法的注意事项:不能重复也不能遗漏;枚举算法的一般结构:循环结构中嵌入分支结构;枚举法的关键:列举和检验。
练习1:输出所有的水仙花数。(水仙花数是指三位数各数位上数字的立方和等于它本身)
练习2:有一5位数的编号,十位数处已模糊不清147*8,是57或67的倍数,输出所有这样的5位数。
练习3:今有鸡兔同笼,共有35个头,94只脚,问鸡和兔各有几只?
7.解析算法:根据题目中给出的已知条件,找出已知条件与要求结果之间的数学表达式,并通过表达式的计算来实现问题求解的方法。
解析法的关键:寻找正确的数学表达式。
8.计算机解决问题的一般过程:分析问题——设计算法——编写程序——上机调试
11
展开阅读全文