《上海高一信息技术算法与程序设计习题集.pdf》由会员分享,可在线阅读,更多相关《上海高一信息技术算法与程序设计习题集.pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、信息技术算法与程序设计习题集一、常见的运算 类别 运算符 运算结果 优先级 算术运算符+、-、*(乘)、/(除)、(乘方)、mod(求余)数值 关系运算符 、=、=、=、True(T,1)或 False(F,0)逻辑运算符 not、and、or True(T,1)或 False(F,0)notandor 逻辑运算规则 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)13 or not -1=1 T(2)ab or 5=2*4 T(3)假设变量 a 的值是 1,变量 b 的值是 2,变量 c 的值是
2、 3,计算下列表达式的值。a3+b*c 7 c mod b+a 2 int(c/b)b-a F a0 T a+bc or b+ca and c+ab T 二、算法的一些概念 1 算法的定义:解决问题的确定的有限的步骤。2 算法的描述:自然语言、流程图描述、计算机程序、伪代码。3 常量和变量:变量的特点:取之不尽,赋值即覆盖 变量的命名规则:以字母、数字、下划线组成,必须以字母开头。变量的类型:整数型(Integer)、实数型(Single)、字符串型(String)4 算法的三种基本结构:顺序结构、分支结构、循环结构(1)顺序结构 顺序结构按照自上而下的顺序把每个步骤执行一次。(2)分支结构(
3、选择结构)分支结构根据条件决定执行步骤 1 或步骤 2 中的算法步骤,判断框有一个入口两个出口,分支结构有一个入口,一个出口。条件YN条件N单分支语句格式 If Then End If 5 算法的特点:可行性、确定性(无二义性)、有穷性、可以没有输入,必须要有输出。三、算法实例(一)顺序结构 练习 1:输入一个圆的半径,求圆的周长和面积,并输出结果。输入半径r输出c和s开始结束c2*3.14*rs3.14*r2 练习 2:输入一个两位数,交换个位和十位的值,输出结果。输入一个两位数x输出y开始结束aint(x/10)bx mod 10 y=b*10+a 练习 3:输入两个变量的值,将两个变量中
4、的值互相交换并输出结果。开始输入a,bcaabbc输出a,b结束(二)分支结构(选择结构)练习 1:输入两个数,比较它们的大小,输出较大的数。双分支语句格式 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
5、Mod 10 y=10*b+a Print y abYN开始输入两个数a,b结束输出a的值输出b的值 练习 2:输入一个三位数,判断它是否是水仙花数(三位数各个数位上的立方和等于它本身)。开始a3+b3+c3=na=int(n/100)b=int(n/10)-a*10c=n mod 10结束输出”是水仙花数”输入n输出”不是水仙花数”NY 练习 3:输入一个数,求它的绝对值,并输出结果。开始结束输入a输出a a b Then Print a Else Print b End If 代码:Dim n As Single n=InputBox(输入一个三位数)a=Int(n/100)b=Int(n
6、/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:阶梯电价 第一档 第二档 第三档 方案 1 每月用电 210度 电价 维持现有电价 超出部分上涨不低于 5 分钱 超出部分每度涨价不低于 0.20元 方法一:(右边嵌套分支)方法二:(左边嵌分支)Dim x As Single x=InputBox(输入用电)If x 110 Then y=0.6
7、1*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 x110 y=0.61*x y=0.61*110+0.66*(x-110)x210y=0.61*110+0.66*(x-110)YNDim 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.6
8、6*(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(
9、输入站数)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 开始输入载重w输出费用m结束m=60m=95m=130w2m=1052w55w101015Ym=145NAA (三)循环结构(重复结构)当遇到需要重复执行的操作时,可以用循环结构,循环结构有一个入口,一个出口。当循环和直到循环的区别:当循环的循环体可能一次也不执行,直到循环的循环体至少执行一次。1 输出系列问题 练习 1:输出 5 个*练习 2:输出 1,2,3,4,5 Dim w As Singl
10、e w=InputBox(输入载重)If w 2 And w 5 And w 10 And 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 开始输出”*”nn+1n5n=0YN结束方法一:用次数来控制循环 方法二:用输出的数字来控制循环 练习 3:输出 21,22,23,24,25的值 方法一:把 a 当成整个数 方法二:把 a 当指数
11、2 求和系列问题 练习 1:求 1+2+3+4+5的和 开始输出aa=a+1a=5a=1YN结束输出a a=a+1开始结束 n5YN n=n+1 a=1 n=0a=1 Do While a =5 Print a a=a+1 Loop 输出a开始结束a=32YNa=2*aa=2输出2a开始结束a=5YNa=a+1a=1开始结束 n=5Ns=s+nn=n+1s=0 n=1输出sY 练习 2:求 1+3+5+7+9的和 练习3:求21+22+23+24+25的和 练习 4:求 1 2+23+34+45+56 的和。练习 5:求 1+2+3+k 的和,其中 k 由键盘输入。练习 6:求 1*2*3*4
12、*5的积 练习 7:求 1+2+3+加到第几项和超过 5?方法一:用 i 来计算项数 方法二 练习 8:求输入的 5 个数的平均值(如 70,60,80,50,90)开始结束s=5YN s=s+n n=n+1 i=i+1 s=0 n=1 i=0输出i开始结束s=5YN s=s+n n=n+1 s=0 n=1输出n-1开始结束 n=9Ns=s+nn=n+2s=0 n=1输出sY开始结束 n=5Ns=s+2*n-1n=n+1s=0 n=1输出sY开始结束 n=5Ns=s+2nn=n+1s=0 n=1输出sY开始结束 n=32Ns=s+nn=n*2s=0 n=2输出sY开始结束 n=5Ns=s+n*
13、(n+1)n=n+1s=0 n=1输出sY开始结束 n=kNs=s+nn=n+1s=0 n=1输出sY输入k开始结束 n=5Ns=s*nn=n+1 s=1 n=1输出sY方法一:不用数组 方法二:用数组 练习 9:输入若干个数的和,输入-1 时结束。(如输入 60,50,40,-1)3.循环结构中嵌套分支结构 练习 1:统计 I 级天数 输入 a开始结束 n5Ns=s+an=n+1s=0 n=0输出 s/5Y输入a(n)开始结束 n=5Ns=s+a(n)n=n+1s=0 n=1输出s/5Y开始结束 n=5 n=1 c=0 a(n)=50 c=c+1YYNN输出c n=n+1Dim a As S
14、ingle s=0 n=0 Do While n 5 a=InputBox(输入数据)s=s+a n=n+1 Loop Print s/5 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 开始结束 a-1s=0输出sNY输入as=s+a输入a练习 2:求 5 个数的最大值,并输出最大值的位置。开始结束 nmax max=a(n)d=nYYNN输出max,d n=n+1 练习 3:求 5 个数的最小值,并输出最小值的位置。练习 4:求输入的 5 个数中正数的和 4 直到循环 练习 1:输出 5 个
15、*练习 2:求 1+2+4+7+11 的和 开始结束n5 s=s+a a=a+n n=n+1s=0 a=1 n=1NY输出s n=0 Do Print *n=n+1 Loop Until n=5 s=0 a=1 n=1 Do s=s+a a=a+n n=n+1 Loop Until n 5 Print s 开始结束 n0 s=s+aYYNN输出s n=n+1输入a开始结束 n=5 min=a(1)n=2 d=1 a(n)=5n=n+1n=0YN5数组:数组是一种特殊的变量,它在内存中的位置是连续的,用于存储一批类型、作用相同的数据。数组元素的下标可以是常量也可以是变量,也可以是一个表达式,可以
16、从 0 开始,数组元素可以参与运算,和普通的变量一样。练习 1:输入 10 个数,再将其逆序输出。开始输入a(n)n=1 n=1 n=n-1YN结束A 6枚举算法:列举出各种可能的情况并逐一进行检验,根据检验的结果执行相应的操作,“枚”是一个一个,“举”是列举。枚举算法的优点:有非常高的准确性和全面性;枚举算法的缺点:效率不高;枚举算法的注意事项:不能重复也不能遗漏;枚举算法的一般结构:循环结构中嵌入分支结构;枚举法的关键:列举和检验。练习 1:输出所有的水仙花数。(水仙花数是指三位数各数位上数字的立方和等于它本身)a=int(n/100)b=int(n/10)-a*10c=n mod 10a
17、3+b3+c3=n输出n n=999 n=n+1 n=100开始结束YYNN 练习 2:有一 5 位数的编号,十位数处已模糊不清 147*8,是 57 或 67 的倍数,输出所有这样的 5 位数。x=14708+n*10 x mod 57=0 or x mod 67=0输出x n=9 n=n+1 n=0开始结束YYNN 练习 3:今有鸡兔同笼,共有35 个头,94 只脚,问鸡和兔各有几只?y=35-x2*x+4*y=94输出x,y x=34 x=x+1 x=1开始结束YYNN 7解析算法:根据题目中给出的已知条件,找出已知条件与要求结果之间的数学表达式,并通过表达式的计算来实现问题求解的方法。解析法的关键:寻找正确的数学表达式。8计算机解决问题的一般过程:分析问题设计算法编写程序上机调试 Dim d(10)As Single n=1 Do While n=1 Print a(n)n=n-1 Loop 初始值 第1次 第2次 第3次 第4次 最后一次AAA=1001Y123410234511YYYYN
限制150内