算法与程序设计习题集与考点整理Word文档下载推荐.docx
《算法与程序设计习题集与考点整理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《算法与程序设计习题集与考点整理Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
(1)1<
5and4>
3ornot-1=1T
(2)"
a"
"
b"
or5<
6and8>
=2*4T
(3)假设变量a的值是1,变量b的值是2,变量c的值是3,计算下列表达式的值。
a^3+b*c7
cmodb+a2
int(c/b)>
b-aF
a<
band(c-a)/2>
0T
a+b>
corb+c>
aandc+a>
bT
二、算法的一些概念
1.算法的定义:
解决问题的确定的有限的步骤。
2.算法的描述:
自然语言、流程图描述、计算机程序、伪代码。
3.常量和变量:
变量的特点:
取之不尽,赋值即覆盖
变量的命名规则:
以字母、数字、下划线组成,必须以字母开头。
变量的类型:
整数型(Integer)、实数型(Single)、字符串型(String)
4.算法的三种基本结构:
顺序结构、分支结构、循环结构
(1)顺序结构
顺序结构按照自上而下的顺序把每个步骤执行一次。
(2)分支结构(选择结构)
分支结构根据条件决定执行步骤1或步骤2中的算法步骤,判断框有一个入口两个出口,分支结构有一个入口,一个出口。
单分支语句格式
If<
条件>
Then
<
步骤1的语句块>
EndIf
双分支语句格式
Else
步骤2的语句块>
5.算法的特点:
可行性、确定性(无二义性)、有穷性、可以没有输入,必须要有输出。
三、算法实例
(一)顺序结构
练习1:
输入一个圆的半径,求圆的周长和面积,并输出结果。
代码:
DimrAsSingle
r=InputBox("
输入半径"
)
s=3.14*r^2
c=2*3.14*r
Print"
周长"
;
c
面积"
s
练习2:
输入一个两位数,交换个位和十位的值,输出结果。
x=InputBox("
请输入"
a=Int(x/10)
b=xMod10
y=10*b+a
Printy
练习3:
输入两个变量的值,将两个变量中的值互相交换并输出结果。
DimaAsSingle,
DimbAsSingle
a=InputBox("
第一个数"
b=InputBox("
第二个数"
c=a
a=b
b=c
Printa;
b
(二)分支结构(选择结构)
输入两个数,比较它们的大小,输出较大的数。
DimaAsSingle
Ifa>
bThen
Printa
Printb
输入一个三位数,判断它是否是水仙花数(三位数各个数位上的立方和等于它本身)。
DimnAsSingle
n=InputBox("
输入一个三位数"
a=Int(n/100)
b=Int(n/10)-a*10
c=nMod10
Ifa^3+b^3+c^3=nThen
Print"
是水仙花数"
不是水仙花数"
输入一个数,求它的绝对值,并输出结果。
Ifa<
0Then
a=-a
Printa
练习4:
阶梯电价
第一档
第二档
第三档
方案1
每月用电
<
110度
110度-210度
210度
电价
维持现有电价
超出部分上涨不低于5分钱
超出部分每度涨价不低于0.20元
方法一:
(右边嵌套分支)
DimxAsSingle
输入用电"
Ifx<
110Then
y=0.61*x
Ifx<
=210Then
y=0.61*110+0.66*(x-110)
Else
y=0.61*110+0.66*100+0.81*(x-210)
EndIf
电费"
y
方法二:
(左边嵌分支)
Ifx>
=110Then
Ifx>
210Then
DimaAsInteger
DimbAsInteger
输入站数"
输入人数"
=4Then
m=3*b
Ifa<
=9Then
m=4*b
m=5*b
应付款"
m
练习5:
购买地铁车票:
乘1-4站3元/位,5-9站4元/位,9站以上5元/位,输入站数和人数,输出应付款。
练习6:
长江遂桥货车通行费收费标准(载重用w表示,收费用m表示)
DimwAsSingle
w=InputBox("
输入载重"
Ifw<
=2Then
m=60
Ifw>
2Andw<
=5Then
m=95
5Andw<
=10Then
m=105
10Andw<
=15Then
m=130
15Then
m=145
m
(三)循环结构(重复结构)
当循环的一般形式
直到循环的一般形式
当遇到需要重复执行的操作时,可以用循环结构,循环结构有一个入口,一个出口。
Do
循环体语句
LoopUntil条件
Dowhile条件
Loop
当循环和直到循环的区别:
当循环的循环体可能一次也不执行,直到循环的循环体至少执行一次。
1.输出系列问题
输出5个*
n=0
DoWhilen<
5
*"
n=n+1
输出1,2,3,4,5
用次数来控制循环
用输出的数字来控制循环
a=1
DoWhilea<
=5
a=a+1
输出21,22,23,24,25的值
把a当成整个数
把a当指数
2.求和系列问题
求1+2+3+4+5的和
练习2:
求1+3+5+7+9的和
求21+22+23+24+25的和
求1×
2+2×
3+3×
4+4×
5+5×
6的和。
求1+2+3+……+k的和,其中k由键盘输入。
求1*2*3*4*5的积
练习7:
求1+2+3+……加到第几项和超过5?
用i来计算项数
方法二
练习8:
求输入的5个数的平均值(如70,60,80,50,90)
s=0
a=InputBox("
输入数据"
s=s+a
Prints/5
不用数组
用数组
练习9:
输入若干个数的和,输入-1时结束。
(如输入60,50,40,-1)
3.循环结构中嵌套分支结构
统计I级天数
n=1
c=0
=5
Ifa(n)<
=50Then
c=c+1
I级天数"
求5个数的最大值,并输出最大值的位置。
求5个数的最小值,并输出最小值的位置。
求输入的5个数中正数的和
4.直到循环
LoopUntiln>
求1+2+4+7+11的和
a=a+n
Prints
5.数组:
数组是一种特殊的变量,它在内存中的位置是连续的,用于存储一批类型、作用相同的数据。
数组元素的下标可以是常量也可以是变量,也可以是一个表达式,可以从0开始,数组元素可以参与运算,和普通的变量一样。
Dimd(10)AsSingle
=10
a(n)=InputBox("
输入"
n=10
DoWhilen>
=1
Printa(n)
n=n-1
输入10个数,再将其逆序输出。
6.枚举算法:
列举出各种可能的情况并逐一进行检验,根据检验的结果执行相应的操作,“枚”是一个一个,“举”是列举。
枚举算法的优点:
有非常高的准确性和全面性;
枚举算法的缺点:
效率不高;
枚举算法的注意事项:
不能重复也不能遗漏;
枚举算法的一般结构:
循环结构中嵌入分支结构;
枚举法的关键:
列举和检验。
输出所有的水仙花数。
(水仙花数是指三位数各数位上数字的立方和等于它本身)
有一5位数的编号,十位数处已模糊不清147*8,是57或67的倍数,输出所有这样的5位数。
今有鸡兔同笼,共有35个头,94只脚,问鸡和兔各有几只?
7.解析算法:
根据题目中给出的已知条件,找出已知条件与要求结果之间的数学表达式,并通过表达式的计算来实现问题求解的方法。
解析法的关键:
寻找正确的数学表达式。
8.计算机解决问题的一般过程:
分析问题——设计算法——编写程序——上机调试