算法习题精选精讲

合集下载

算法分析习题课PPT课件

算法分析习题课PPT课件

正整数K的不同的划分的个数叫做的划分数,记做p(K)。
比如对于6,可以进行如下不同的划分:
6;
------最大加数为6
5+1;
------最大加数为5
4+2; 4+1+1;
------最大加数为4
3+3;3+2+1;3+1+1+1;
------最大加数为3
2+2+2;2+2+1+1;2+1+1+1+1; ------最大加数为2
1+1+1+1+1+1+1
------最大加数为1
因此, p(K) =11。也就是说,6的划分数是11。
请设计一个分治算法,对于一个给定的整数(输入),求出该整数的划分数
(输出)。
8
.
分析 K=k1+k2+…+kp,其中(k1>=k2>=…>=kp)
比如对于6,可以进行如下不同的划分:
6;
------最大加数为6
End for
3
For j = 2 to m
4
For i = 2 to K
If i < j
p[i,j] =p[I,i];
5
If i == j
6
p[i,j] = 1 + p [i,i-1];
7
If i > j
p[i,j] = p[i, j-1] + p[i- j, j];
End for
End for
8
System.out.print(a[i]); } System.out.println(); } else { for (int i = k; i <= m; i++) {

高中数学 专题1.5 算法案例练习(含解析)新人教A版必修3(2021年整理)

高中数学 专题1.5 算法案例练习(含解析)新人教A版必修3(2021年整理)

2016-2017学年高中数学专题1.5 算法案例练习(含解析)新人教A版必修3编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(2016-2017学年高中数学专题1.5 算法案例练习(含解析)新人教A版必修3)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为2016-2017学年高中数学专题1.5 算法案例练习(含解析)新人教A版必修3的全部内容。

12 1。

5 算法案例一、选择题1.用更相减损术求1 515和600的最大公约数时,需要做减法次数是( )A .15B .14C .13D .12【解析】 1 515-600=915,915-600=315,600-315=285,315-285=30,285-30=255,255-30=225,225-30=195,195-30=165,165-30=135,135-30=105,105-30=75,75-30=45,45-30=15,30-15=15.∴1 515与600的最大公约数是15.则共做14次减法.【答案】 B2.用更相减损术可求得78与36的最大公约数是…( )A.24B.18 C 。

12 D 。

63.下列四个数中,数值最小的是( )A .25(10)B .54(4)C .10 110(2)D .10 111(2)【解析】 统一成十进制,B 中54(4)=5×41+4=24,C 中10 110(2)=1×24+1×22+2=22,D 中,10 111(2)=23.【答案】 C4.用秦九韶算法求多项式 a x a x a x f n n +++=-11)(时,求)( x f 需要算乘方、乘法、 加法的次数分别为( )A 。

算法分类题库及答案详解

算法分类题库及答案详解

算法分类题库及答案详解1. 算法按其设计方法可以分为哪几类?A. 暴力解法B. 贪心算法C. 分治算法D. 动态规划E. 所有以上答案:E2. 以下哪个算法不属于贪心算法?A. 活动选择问题B. 最小生成树C. 快速排序D. 霍夫曼编码答案:C3. 分治算法的基本思想是什么?A. 将问题分解成更小的子问题B. 直接求解问题C. 选择最优子问题D. 迭代求解答案:A4. 动态规划与分治算法的主要区别是什么?A. 动态规划需要存储中间结果B. 分治算法需要存储中间结果C. 动态规划不需要分解问题D. 分治算法不需要分解问题答案:A5. 暴力解法通常用于什么问题?A. 问题规模较小B. 问题规模较大C. 需要最优解D. 需要近似解答案:A6. 以下哪个算法是使用贪心算法解决的?A. 汉诺塔问题B. 旅行商问题C. 背包问题D. 八皇后问题答案:C7. 快速排序算法属于哪种算法类别?A. 暴力解法B. 贪心算法C. 分治算法D. 动态规划答案:C8. 动态规划通常用于解决什么问题?A. 线性问题B. 组合问题C. 排序问题D. 查找问题答案:B9. 以下哪个问题可以通过贪心算法得到最优解?A. 旅行商问题B. 背包问题C. 0/1背包问题D. 所有以上答案:B10. 汉诺塔问题通常使用什么算法解决?A. 暴力解法B. 贪心算法C. 分治算法D. 动态规划答案:C11. 以下哪个算法是动态规划算法的典型应用?A. 斐波那契数列B. 最长公共子序列C. 最短路径问题D. 所有以上答案:D12. 贪心算法在哪些情况下可能无法得到最优解?A. 问题具有最优子结构B. 问题不具有最优子结构C. 问题具有重叠子问题D. 问题不具有重叠子问题答案:B13. 动态规划算法的一般步骤是什么?A. 确定状态B. 确定状态转移方程C. 确定边界条件D. 所有以上答案:D14. 分治算法的一般步骤包括哪些?A. 分解问题B. 解决子问题C. 合并子问题的解D. 所有以上答案:D15. 以下哪个算法不是排序算法?A. 冒泡排序B. 选择排序C. 快速排序D. 霍夫曼编码答案:D16. 快速排序算法的时间复杂度在最坏情况下是多少?A. O(n log n)B. O(n^2)C. O(n)D. O(1)答案:B17. 动态规划算法在解决什么问题时会使用记忆化搜索?A. 线性问题B. 组合问题C. 排序问题D. 查找问题答案:B18. 贪心算法在选择策略时通常遵循什么原则?A. 选择当前最优B. 选择全局最优C. 选择随机D. 选择平均最优答案:A19. 以下哪个问题不适合使用贪心算法?A. 单源最短路径问题B. 旅行商问题C. 背包问题D. 霍夫曼编码答案:B20. 分治算法在解决哪些问题时特别有效?A. 线性问题B. 组合问题C. 排序问题D. 查找问题答案:B。

算法习题——精选推荐

算法习题——精选推荐

算法习题算法设计与分析试卷⼀、填空题(20分,每空2分)1、算法的性质包括输⼊、输出、确定性、有限性。

2、动态规划算法的基本思想就将待求问题分解成若⼲个⼦问题、先求解⼦问题,然后从这些⼦问题的解得到原问题的解。

3、设计动态规划算法的4个步骤:(1)找出最优解的性质,并刻画其结构特征。

(2)递归地定义最优值。

(3)以⾃底向上的⽅式计算出最优值。

(4)根据计算最优值得到的信息,构造最优解。

4、流⽔作业调度问题的johnson算法:(1)令N1={i|ai=bj};(2)将N1中作业依ai的ai的⾮减序排序;将N2中作业依bi的⾮增序排序。

5、对于流⽔作业⾼度问题,必存在⼀个最优调度π,使得作业π(i)和π(i+1)满⾜Johnson不等式min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}。

6、最优⼆叉搜索树即是最⼩平均查找长度的⼆叉搜索树。

⼆、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最⼤⼦段和为∑ak(2<=k<=4)=20(5分)2、由流⽔作业调度问题的最优⼦结构性质可知,T(N,0)=min{ai+T(N-{i},bi)}(1=3、最⼤⼦段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj){Int sum=0;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)int thissum=0;for(int k=i;k<=j;k++)this sum+=a[k];if(thissum>sum){sum=thissum;besti=i;bestj=j;}}return sum;}4、设计最优⼆叉搜索树问题的动态规划算法OptimalBinarysearchTree? (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int * * w){for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]= 0;}for(int r=0;rfor(int i=1;i<=n-r;i++){int j=i+r;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]= m[i+1][j];s[i][j]=i;for(int k=i+1;k<=j;k++){int t=m[i][k-1]+m[k+1][j];if(t}m[i][j]=t; s[i][j]=k;}}5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) ⽤两种⽅法求4个作业的最优调度⽅案并计算其最优值?(15分)法⼀:min(ai,bj)<=min(aj,bi)因为min(a1,b2)<=min(a2,b1)所以1→2 (先1后2)由min(a1,b3)<=min(a3,b1)得1→3 (先1后3)同理可得:最后为1→3→4→2法⼆:johnson算法思想N1={1,3,4} N2={2}N11={1,3,4} N12={2}所以N11→N12得:1→3→4→2三、简答题(30分)1、将所给定序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最⼤⼦段和,则a[1:n]的最⼤⼦段和有哪三种情形?(10分)答:(1)a[1:n]的最⼤⼦段和与a[1:n/2]的最⼤⼦段和相同。

专题 算法经典精讲 课后练习二及详解

专题 算法经典精讲  课后练习二及详解

题1运行下面的程序时,WHILE循环语句的执行次数是()A.3B.4C.15D.19题2执行下面的程序框图,输出的S=()A.25 B.9C.17 D.20题3阅读如下图所示的程序框图,则运行后输出的结果是________.如果执行如图所示的程序框图,输入n=6,m=4,那么输出的p等于()A.720 B.360C.240 D.120题5执行下面的程序语句,输入a=3,b=-1,n=4后,输出的结果是________.a =input a =;b =input b=;n =input n =;i =1;while i <=nc =a +b ; a =b ;b =c ;i =i +1;endprint io ,c ;题6若a =11时,下面的程序段输出的结果是______.题7读如下两个程序,完成下列题目:程序(1):程序(2):(1)程序(1)的运行结果为_________.(2)若程序(1),(2)运行结果相同,则程序(2)输入的值为_________.题8用秦九韶算法计算多项式f(x)=1+5x+10x2+10x3+5x4+x5在x= 2时,v3的值为()A.1B.2C.3D.4课后练习详解题1答案:B详解:0<20,1<20,2×2<20,3×3<20,4×4<20,5×5>20,程序结束.故WHILE循环语句共执行了4次,所以选B.题2答案:C详解:由结构框图中循环体执行了2次输出的结果为17.题3答案:-3详解:依次执行的是S=1,i=2;S=-1,i=3;S=2,i=4;S=-2,i=5;S=3,i=6;S=-3,i=7,此时满足i>6,故输出的结果是-3.题4答案:B详解:由框图可知:当n=6,m=4时,第一次循环:p=(6-4+1)×1=3,k=2.第二次循环:p=(6-4+2)×3=12,k=3.第三次循环:p=(6-4+3)×12=60,k=4.第四次循环:p=(6-4+4)×60=360,此时k=m,终止循环.输出p=360,故选B.题5答案:4详解:循环体被执行了4次,第一次执行循环体得的结果是:c=2,a=-1,b=2,i=2;执行第二次的结果是:c=1,a=2,b=1,i=3;执行第三次的结果是:c=3,a=1,b=3,i =4;执行第四次的结果是:c=4,a=3,b=4,i=5,此时c的值输出.题6答案:1详解:由于当a=11时,不满足条件a<10,所以执行y=a MOD 10,得到的结果是y=1.注意“a MOD 10”是a除以10的余数.题7答案:(1)6 (2)0详解:赋值语句给变量赋值时,变量的值总是最后一次所赋的值,故程序(1)中x的值最后为6.要使程序(2)中y的值为6,即x2+6=6,故x=0.即输入的x的值为0.题8答案:B详解:f(x)=1+5x+10x2+10x3+5x4+x5=(x4+5x3+10x2+10x+5)x+1=((x3+5x2+10x+10)x+5)x+1=((((x+5)x+10)x+10)x+5)x+1∴在x= 2时,v3的值为((x+5)x+10)x+10=2,故选B.。

最新数据结构与算法习题讲解(全)精品课件

最新数据结构与算法习题讲解(全)精品课件
第十二页,共97页。
注:证明时默认地利用了一个命题:当原序列为互不 相等的等可能序列时,新加入一个与原来序列任何数 值都不相等的数值,无论这个数值放在原序列的哪个 (nǎ ge)位置,都不可能使原不相等的序列相等。
例:210, 021, 012, 201, 120, 102,这时加入一个新的 数值3,无论把3插入序列的哪个(nǎ ge)位置,因为原 来序列的排列不相等,所以,他们还是不会相等,这 样,才保证了最后k个序列的k+1种可能都不相等,不 会重复。
第十三页,共97页。
b.第一个算法中,决定a[i]中一个之前没有 使用过的随机数是否被填入的时间是O(i)。 在那些需要测试的随机数中,需要产生期望 的随机数的次数为N/(N − i)次。得出结论如 下(rúxià):n个数中有i个可能是重复的。因 此,置换成功的概率为(N − i)/N。因此,在 独立的测试中,期望数为N/(N − i)。时间复 杂度即为:
while(k>=1)
{ if(n%2==0) j--;
return count();
}
}
main() {
int i,j; cout<<“Please input n:”<<endl; cin>>i; if(i<0)
i=-i; count(i); cout<<“所输入(shūrù)整数中 的二进制中1的个数 是:”<<j<<endl; return 0; }
(d) 120001/3 times as large a problem, or input size 2,289. 由N3=1.2*107 可得
第十八页,共97页。
2.18 数值分析中一个重要的问题是对某一个 任意的函数f找出方程f(x)=0的一个解。如果 该函数是连续的,并有两个点low和hign使得 f(low)和f(high)符号相反,那么在low与high之 间必然存在一个根。并且这个根可以通过二 分搜索求得。写一个函数,以f, low和high为 参数(cānshù),并且解出一个零点。

算法设计与分析常见习题及详解

算法设计与分析常见习题及详解

算法设计与分析常见习题及详解⽆论在以后找⼯作还是⾯试中,都离不开算法设计与分析。

本博⽂总结了相关算法设计的题⽬,旨在帮助加深对贪⼼算法、动态规划、回溯等算法的理解。

1、计算下述算法执⾏的加法次数:输⼊:n =2^t //t 为整数输出:加法次数 k K =0while n >=1 do for j =1 to n do k := k +1 n = n /2return k解析:第⼀次循环执⾏n次加法,第⼆次循环执⾏1/2次加法,第三次循环执⾏1/次加法…因此,上述算法执⾏加法的次数为==2n-12、考虑下⾯每对函数 f(n) 和 g(n) ,如果它们的阶相等则使⽤Θ记号,否则使⽤ O 记号表⽰它们的关系解析:前导知识:,因为解析:,因为解析:,因为解析:解析:3、在表1.1中填⼊ true 或 false解析:利⽤上题的前导知识就可以得出。

2=21/4n +n +21n +41...+1n +n −n +21n −21n +41....−1f (n )=(n −2n )/2,g (n )=6n1<logn <n <nlogn <n <2n <32<n n !<n ng (n )=O (f (n ))f (n )=Θ(n ),g (n )=2Θ(n )f (n )=n +2,g (n )=n n 2f (n )=O (g (n ))f (n )=Θ(n ),g (n )=Θ(n )2f (n )=n +nlogn ,g (n )=n nf (n )=O (g (n ))f (n )=Θ(nlogn ),g (n )=Θ(n )23f (n )=2(log ),g (n )=n 2logn +1g (n )=O (f (n ))f (n )=log (n !),g (n )=n 1.05f (n )=O (g (n ))4、对于下⾯每个函数 f(n),⽤f(n) =Θ(g(n))的形式,其中g(n)要尽可能简洁,然后按阶递增序排列它们(最后⼀列)解析:最后⼀个⽤到了调和公式:按阶递增的顺序排列:、、、、、、、、、(n −2)!=Θ((n −2)!)5log (n +100)=10Θ(logn )2=2n Θ(4)n 0.001n +43n +31=Θ(n )4(lnn )=2Θ(ln n )2+3n logn =Θ()3n 3=n Θ(3)n log (n !)=Θ(nlogn )log (n )=n +1Θ(nlogn )1++21....+=n1Θ(logn )=∑k =1nk 1logn +O (1)1++21....+n 15log (n +100)10(lnn )2+3n logn log (n !)log (n )n +10.001n +43n +313n 22n (n −2)!5、求解递推⽅程前导知识:主定理前导知识:递归树:例⼦:递归树是⼀棵节点带权的⼆叉树,初始递归树只有⼀个结点,标记为权重W(n),然后不断进⾏迭代,最后直到树种不再含有权为函数的结点为⽌,然后将树根结点到树叶节点的全部权值加起来,即为算法的复杂度。

算法设计与分析考点精讲串烧

算法设计与分析考点精讲串烧

一、选择题(每小题3分,共15分)1.算法与程序的主要区别在于算法具有()。

A.能行性 B.确定性 C.有限性 D.输入和输出答案:C。

2.对一个有序序列,以比较为基础的搜索算法的最坏情况时间复杂性的下界为()。

A.Ω(n) B.Ω(n2) C.Ω(n log n) D.Ω(log n)答案:D。

3.背包问题:n=6,C=10,V(1:6)=(15,59,21,30,60,5),W(1:6)=(1,5,2,3,6,1)。

该问题的最大价值为()。

A.101 B.110 C.115 D.120答案:C。

4.矩阵连乘积问题:M1(5×10), M2(10×4), M3(4×6)。

矩阵链乘M1M2M3需要的最少乘法次数为()。

A.348 B.328 C.720 D.320答案:D。

5.用贪心策略设计算法的关键是()。

A.将问题分解为多个子问题来分别处理 B.选好贪心策略C.获取各阶段间的递推关系式 D.满足最优性原理答案:B。

二、填空题(每小题4分,共20分)1.某算法的计算时间T(n)满足递归关系式:T(n)=2T(n-1)+O(1),n>1;T(1)=1。

则T(n)= 。

答案:2n-1。

2.用方法对状态空间树进行搜索时,每个结点有可能多次成为扩展结点。

3.子集和数问题一般陈述如下:已知n+1个正数:w i(1≤i≤n)和M,要求找出w i的和数是M 的所有子集。

其解可以表示为n-元组(x1, x2,⋯, x n),这里x i∈{0,1},1≤i≤n。

如果没有选择w i,则相应的x i=0;如果选择了w i,则x i=1。

此解空间的空间树上有个叶结点,共有个结点。

答案:2n,2n+1-1。

4.已知将两个分别包含n个和m个记录的已分类文件归并在一起得到一个分类文件需作n+m 次记录移动。

现有五个已分类文件F1,F2,F3,F4,F5,它们的记录个数分别为25,40,15,10,40,将这五个文件归并成一个分类文件需作次记录移动。

黄宇《算法设计与分析》课后习题解析(二)精选全文

黄宇《算法设计与分析》课后习题解析(二)精选全文

黄宇《算法设计与分析》课后习题解析(⼆)第2章:从算法的视⾓重新审视数学的概念2.1:(向下取整)题⽬:请计算满⾜下⾯两个条件的实数的区间解析:根据向下取整的含义,令,讨论a的取值范围即可解答:令,则可得:即:故的取值区间为:2.2: (取整函数)题⽬:证明:对于任意整数,(提⽰:将n划分为)。

解析:根据提⽰将n进⾏划分,根据取整函数的定义⽤k表⽰取整函数,即可证明;证明如下:因为对于任意整数,可划分为,则:① ;② ;综上:对于任意整数,, 得证;2.3: (斐波拉契数列)对于斐波拉契数列,请证明:1)题⽬:是偶数当且仅当n能被3整除解析:由斐波拉契数列的递归定义式,容易联想到数学归纳法;证明如下:(采⽤数学归纳法)i)当n = 1,2,3时,依次为1,1,2,符合命题;ii)假设当(k>=1)时命题均成⽴,则:① 当n = 3k+1时,是奇数,成⽴;② 当n = 3k+2时,是奇数,成⽴;③ 当 n = 3(k+1)时,是偶数,成⽴;综上:归纳可得为偶数当且仅当,得证;2)题⽬:x x =1+a (0<a <1)x =1+a (0<a <1)⌊x ⌋=1⇒⌊x ⌋=21⌊x ⌋=2⌊1+a +22a ⌋=1a +22a <1⇒0<a <−21⇒1<a +1<⇒21<x <2x (1,)2n ≥1⌈log (n +1)⌉=⌊logn ⌋+12≤k n ≤2−k +11n ≥12≤k n ≤2−k +11k +1=⌈log (2+k 1)⌉≤⌈log (n +1)⌉≤⌈log (2)⌉=k +1k +1=>⌈log (n +1)⌉=k +1k =⌊log (2)⌋≤k ⌊logn ⌋≤⌊log (2−k +11)⌋=k =>⌊logn ⌋=k n ≥1⌈log (n +1)⌉=k +1=⌊logn ⌋+1F n F n n ≤3k F =n F +n −1F =n −2F +3k F =3k −1>F 3k +1F =n F +3k +1F =3k >F 3k +2F =n F +3k +2F =3k +1>F 3k +3F n 3∣n F −n 2F F =n +1n −1(−1)n +1解析:同1)理,容易联想到数学归纳法证明如下:(采⽤数学归纳法)i)当n = 2时,, 易知成⽴;ii)假设当 n = k 时命题成⽴,① 若k = 2m, 则,当n = k+1 = 2m+1时,要证命题成⽴,即证: => ,代⼊递推式, 得:, 易知是恒等式,故命题成⽴;②当 k=2m+1时,同①理可证命题成⽴;综上:归纳可得,得证;2.4:(完美⼆叉树)给定⼀棵完美⼆叉树,记其节点数为,⾼度为,叶节点数为,内部节点数为1)题⽬:给定上述4个量中的任意⼀个,请推导出其他3个量解析:根据完美⼆叉树的结构特点易得解答:(仅以已知⾼度h推导其他三个量为例,其余同理)已知⾼度为h,可得:节点数:叶节点数:内部节点数:2)题⽬:请计算完美⼆叉树任意⼀层的节点个数:① 如果任意指定深度为的⼀层节点,请计算该层节点个数;② 如果任意指定⾼度为的⼀层节点,请计算该层节点个数;解析:根据完美⼆叉树的结构特点易得(注意节点深度和节点⾼度是互补的,相加为树⾼)解答:① ; ② ;2.5: (⼆叉树的性质)对于⼀棵⾮空的⼆叉树T,记其中叶节点的个数为,有1个⼦节点的节点个数为,有两个⼦节点的节点个数为1)题⽬:如果T是⼀棵2-tree,请证明。

算法习题——精选推荐

算法习题——精选推荐

Hanoi双塔问题(递推法)【问题描述】给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。

现要将这些国盘移到C柱上,在移动过程中可放在B柱上暂存。

要求:(1)每次只能移动一个圆盘;(2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序;任务:设A n为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出A n。

【输入】输入为一个正整数n,表示在A柱上放有2n个圆盘。

【输出】输出仅一行,包含一个正整数,为完成上述任务所需的最少移动次数A n。

【输入样例】12【输出样例】26火力网(递归法)【问题描述】假设我们有一个有n条横向街道和n条竖向街道的正方形城市,其中的街道都是笔直的。

并且在某些街道上造有碉堡或墙(图中方形黑块是墙,园形黑块是碉堡)。

每个碉堡对四面街道都开有射击孔。

而每个碉堡都可以被另一个处在同一条街道上且没有墙阻挡的碉堡摧毁,但墙是不能被摧毁的。

你的任务是在一个给定的城市地图上布置尽可能多碉堡,使碉堡之间是不能互相摧毁的。

【输入】第一行包含一个整数n,接下来的n行包含此城市的地图,‘.’表示空的街道,‘X’表示此处有堵墙。

【输出】对给出的地图输出所能布置的碉堡的最多数。

【输入样例】4.X......XX......【输出样例】5高精度计算(应用数组来记录位数非常多的数)用程序实现下列高精度运算一、高精度数与高精度数的加法二、高精度数与高精度数的减法三、高精度数与普通数的乘法四、高精度数与高精度数的乘法五、高精度数与普通数的除法六、根据下面圆周率π的级数展开形式以及上面的高精度计算法,求出π的值(精确到小数点后1000位)π=2+2×13+2×13×25+2×13×25×37+···活动选择(贪心法)【问题描述】假设有n个活动在学校的大礼堂里举行,每个活动有一个开始时间b i和结束时间e i (b i≤e i)。

高考数学 第4讲 算法初步知识点+典型例题+变式训练+基础训练+高考真题(精心整理,很实用)

高考数学 第4讲 算法初步知识点+典型例题+变式训练+基础训练+高考真题(精心整理,很实用)

第4讲算法初步【基础知识】一、算法的概念(1)算法概念:在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.(2)算法的特点:①有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.②确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可.③顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,且每一步都准确无误,才能完成问题.④不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.⑤普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.二、程序框图(1)程序框图基本概念:①程序构图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。

一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。

②构成程序框的图形符号及其作用三、基本算法语句1、输入、输出语句和赋值语句(1)输入语句①输入语句的一般格式INPUT “提示内容”;变量②输入语句的作用是实现算法的输入信息功能;③“提示内容”提示用户输入什么样的信息,变量是指程序在运行时其值是可以变化的量;④输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式;⑤提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开。

(2)输出语句①输出语句的一般格式PRINT “提示内容”;变量②输出语句的作用是实现算法的输出结果功能;③“提示内容”提示用户输入什么样的信息,表达式是指程序要输出的数据;④输出语句可以输出常量、变量或表达式的值以及字符。

(3)赋值语句①赋值语句的一般格式变量=表达式②赋值语句的作用是将表达式所代表的值赋给变量;③赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的。

算法题库及答案高中生

算法题库及答案高中生

算法题库及答案高中生1. 二分查找算法- 问题描述:在一个已排序的数组中,使用二分查找算法找出一个特定元素的位置。

- 算法步骤:- 确定数组的中间位置。

- 比较中间元素与目标值。

- 如果目标值等于中间元素,则查找成功。

- 如果目标值小于中间元素,则在左半部分继续查找。

- 如果目标值大于中间元素,则在右半部分继续查找。

- 重复以上步骤,直到找到目标值或搜索范围为空。

- 答案:二分查找的时间复杂度为O(log n),适用于已排序的数组。

2. 快速排序算法- 问题描述:快速排序是一种分治算法,用于对数组进行排序。

- 算法步骤:- 选择一个元素作为“基准”。

- 重新排列数组,使得所有比基准小的元素都在基准的左边,所有比基准大的元素都在基准的右边。

- 递归地将上述步骤应用于基准左边和右边的子数组。

- 答案:快速排序的平均时间复杂度为O(n log n),但在最坏情况下为O(n^2)。

3. 归并排序算法- 问题描述:归并排序是一种分治算法,用于对数组进行排序。

- 算法步骤:- 将数组分成两半,直到每个子数组只有一个元素。

- 将两个有序的子数组合并成一个有序数组。

- 重复以上步骤,直到整个数组有序。

- 答案:归并排序的时间复杂度为O(n log n),并且是稳定的排序算法。

4. 深度优先搜索(DFS)- 问题描述:在图或树中,深度优先搜索用于遍历所有节点。

- 算法步骤:- 从根节点开始,沿着一个分支尽可能深地搜索。

- 当无法继续深入时,回溯并沿着其他分支继续搜索。

- 答案:DFS可以用于解决路径搜索问题,如迷宫求解或图的连通性问题。

5. 广度优先搜索(BFS)- 问题描述:在图或树中,广度优先搜索用于遍历所有节点。

- 算法步骤:- 从根节点开始,逐层遍历所有节点。

- 使用队列来保持访问顺序。

- 答案:BFS常用于寻找最短路径或解决最短路径问题。

6. 动态规划算法- 问题描述:动态规划是一种解决复杂问题的方法,通常用于求解优化问题。

算法复习题目及答案讲解

算法复习题目及答案讲解

一、选择题1、二分搜索算法是利用( A )实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( A )。

A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法4、在下列算法中有时找不到问题解的是( B )。

A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法5. 回溯法解旅行售货员问题时的解空间树是( A )。

A、子集树B、排列树C、深度优先生成树D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。

A、备忘录法B、动态规划法C、贪心法D、回溯法7、衡量一个算法好坏的标准是( C )。

A 运行速度快B 占用空间少C 时间复杂度低D 代码短8、以下不可以使用分治法求解的是( D )。

A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题9. 实现循环赛日程表利用的算法是( A )。

A、分治策略B、动态规划法C、贪心法D、回溯法10、下列随机算法中运行时有时候成功有时候失败的是( C )A 数值概率算法B 舍伍德算法C 拉斯维加斯算法D 蒙特卡罗算法11.下面不是分支界限法搜索方式的是( D )。

A、广度优先B、最小耗费优先C、最大效益优先D、深度优先12.下列算法中通常以深度优先方式系统搜索问题解的是( D )。

A、备忘录法B、动态规划法C、贪心法D、回溯法13.备忘录方法是那种算法的变形。

( B )A、分治法B、动态规划法C、贪心法D、回溯法14.哈弗曼编码的贪心算法所需的计算时间为( B )。

A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)15.分支限界法解最大团问题时,活结点表的组织形式是( B )。

A、最小堆B、最大堆C、栈D、数组16.最长公共子序列算法利用的算法是( B )。

A、分支界限法B、动态规划法C、贪心法D、回溯法17.实现棋盘覆盖算法利用的算法是( A )。

算法粤教版高中信息技术必修一练习解析版精选全文

算法粤教版高中信息技术必修一练习解析版精选全文

可编辑修改精选全文完整版3.2.1算法(2)-粤教版(2019)高中信息技术必修一练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.某算法的部分流程图如第7题图所示。

执行这部分流程后,输出s和i的值分别是()A.-3 5B.-4 5C.-3 6D.-2 6【答案】A【解析】【分析】【详解】本题考查流程图。

Int(X)求不大于X 的最大整数,Int(s/10)=-3,故本题选A。

2.某算法的部分流程图如图所示,执行这部分流程后,变量s的值是()A.26B.30C.14D.10【答案】C【解析】【详解】本题考查流程图。

最终可得s=14,故本题选C。

试卷第2页,总15页3.以下哪个是算法的描述方法?()A.流程图描述法B.枚举法C.顺序法D.列表法【答案】A【解析】【详解】本题考查算法相关知识。

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。

不同的算法可能用不同的时间、空间或效率来完成同样的任务。

一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法的描述有流程图,自然语言和计算机语言。

故本题选A。

4.关于算法的描述,下列选项中正确的是()A.算法本身就是一种程序设计语言B.算法必须有输入C.算法的步骤可以是无穷的D.算法的每一步骤必须有确切的含义【答案】D【解析】【详解】本题考查的是算法相关知识。

所谓算法就是解题方法的精确描述,由有限个步骤组成,故选项A错误;有0 个或多个输入,故选项B错误;算法的步骤是有穷的,故选项C错误;算法具有确定性,指算法的每一步骤必须有确切的含义,故选项D正确。

5.以下不属于算法基本特征的是()A.可执行性B.确定性C.有穷性D.无限性【答案】D【解析】【详解】本题考查的是算法的特征。

算法练习题及答案

算法练习题及答案

算法练习题及答案一、排序算法1. 冒泡排序冒泡排序是一种简单但效率较低的排序算法。

它的基本思想是,重复地走访待排序的元素,依次比较相邻的两个元素,如果顺序错误就交换它们,直到整个序列有序。

实现代码如下:```pythondef bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] > arr[j+1]:arr[j], arr[j+1] = arr[j+1], arr[j]return arr```2. 快速排序快速排序是一种常用且高效的排序算法。

它的基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的小,然后再按此方法对这两部分数据分别进行快速排序,整个过程递归进行,直到序列有序。

实现代码如下:```pythondef quick_sort(arr):if len(arr) <= 1:return arrpivot = arr[0]left = [x for x in arr[1:] if x < pivot]right = [x for x in arr[1:] if x >= pivot]return quick_sort(left) + [pivot] + quick_sort(right)```二、查找算法1. 二分查找二分查找是一种针对有序数据集合的查找算法。

它的基本思想是,在有序数据集合中,取中间元素与目标元素进行比较,如果相等则查找成功;如果不相等,则根据比较结果,选择继续在前半部分或后半部分查找,以此类推,直到找到目标元素或确定目标元素不存在。

实现代码如下:def binary_search(arr, target):low, high = 0, len(arr) - 1while low <= high:mid = (low + high) // 2if arr[mid] == target:return midelif arr[mid] < target:low = mid + 1else:high = mid - 1return -1```2. 插值查找插值查找是一种自适应的查找算法,适用于数据分布比较均匀的有序数据集合。

算法分析课后习题解答讲课稿

算法分析课后习题解答讲课稿

2-34、Gray码是一个长度为2n的序列。

序列中无相同元素。

每个元素都是长度为n位的串。

相邻元素恰好只有一位不同。

用分治策略设计一个算法对任意的n构造相应的Gray码。

答:设序列中元素由0、1组成。

当n=1 时Gray码的序列有2个元素(21=2),分别为:0,| 1当n=2 时Gray码的序列有4个元素(22=4),分别为:00,10,| 11,01当n=3 时Gray码的序列有8个元素(23=8),分别为:000,100,110,010,| 011,111,101,001当n=4 时Gray码的序列有16个元素(24=16),分别为:0000,1000、1100、0100,0110,1110,1010,0010,| 0011,1011,1111,0111,0101,1101,1001,0001从上面的列举可得如下规律:n=k时,Gray码的序列有2k个元素,分别为:n=k-1时的Gray码元素正向后加0,得前2k-1个元素,反向后加1的后2k-1个元素。

如n=2时Gray码序列的4个元素分别为:00,10,11,01当n=3 时Gray码序列的前4个元素(23=8),分别为:000,100,110,010是n=2时Gray码四个元素正向后加0,即:000,100,110,010Gray码序列的后4个元素(23=8),分别为:011,111,101,001 是n=2时Gray码四个元素反向后加1,n=2时Gray即:011,111,101,001可以看出,Gray码可以用分治策略,递归实现,2n的Gray码可以用2n-1的Gray码构成。

算法描述:void Gray( type a[],int n){ char a[];if (n==1) { a[0]=’0’;a[1]=’1’;}if (n>1){ Gray(a[],n-1);int k=2n-1-1; //Gray码的个数,因为数组下标从0开始int i=k;for (int x=k;x>=0;x--){char y=a[x];a[x]=y+’0’;a[i+1]=y+’1’; i++;}}}3-7 给定由n个英文单词组成的一段文章,……答:设由n 个单词组成的一段文章可以表示为A[1:n],它的“漂亮打印”方案记为B[1:n],构成该最优解的最小空格数(最优值)记为m[1][n](1)分析最优解的结构:A[1:n]的最优解B[1:n],必然在第k个单词处断开,那么A[1:k]是“漂亮打印”,并且A[k+1:n]也是“漂亮打印”。

数列与算法有关习题精选精讲

数列与算法有关习题精选精讲

与算法有关1. 已知数列{a n }的各项均为正数,观察程序框图,若10,5==k k 时,分别有2110115==S S 和 (1)试求数列{a n }的通项;(2)令m a nb b b b n +++=...,221求的值.解:由框图可知 分,则有是等差数列,设公差为分3.............................................................).........11(11}{2........................................................1.. (111)113221-++-=+++=k k k k n k k a a d a a d a a a a a a a S分4................................................................).........11(1)11....1111(11113221---=-++-+-=∴k k k a a d a a a a a a d S (1)由题意可知,k=5时,211010;115===S k S时, 分故分舍去或问得分9...............................................12)1(8.........................................).........(21215 (2110))11(1115)11(111111161-=-+=⎩⎨⎧-=-=⎩⎨⎧==⎪⎪⎩⎪⎪⎨⎧=-=-∴n d n a a d a d a a a d a a d n (3)由(2)可得:1222-==n an n b分分12..............................................................).........14(3241)41(210................................2...22...123121-=--=+++=+++∴-m m m m b b b2. 根据如图所示的程序框图,将输出的x 、y 值依次分别记为;,,,,,200721x x x x n y 1,y 2,…,y n ,…,y 2007。

算法经典例题及答案.doc

算法经典例题及答案.doc

第三步,判断"NO 是否成立,输入a,6,c-11x 〉10 3、根据・尸,x=10 设计算法并画出程序框图,求输入才的值,输出y 的值.[解析] 第一步:14K10算法如下: 输入x.第二步:如果x>10,那么y= —11;如果才=]0,那么y=0;如果次10,那么y=4;[注意] 算法专题训练1、设计一个程序框图,使之能判断任意输入的整数X 是奇数还是偶数. [解析]程序椎图如下.除以2的余数/输出”是奇数7施出七是偶数7 2、已知关于*的一元二次方程 彩+新+《=0(编制),设计一个算法,判断方程是否有实数根.写出算法步骤,并画出程序框图.[分析]根据3=力=若一4%的符号来判断,因此要用条件结构. [解析]算法如下:第一步,输入缶b, c .第二步,计算3 =廿一4眼・ 若成立,输出方程有实数根;若不成立,输出方程无实数根. 程序框图如下:/输出方程有实数根//输出方程无实数根/~r^输出y 值.使用条件结构,有两种可能则用一个判断框,有三种可能结果则用两个判断框,依此类推.否 是 =1?否是程序框图如下:/输入X /4、如图所示是某函数广(x)给出x的值时,求相应函数值y的程序框图.⑴写出函数广(x)的解析式;⑵若输入的*取X和*2(|为|<|&|)时,输出的*值相同,试简要分析*1与*2的取值范围./输入%]y=x2-1/输出y/JL(结束)[解析]⑴由程序框图知该程序框图执行的功能是求函数73 =成一11的值,故,3的解析式为心= |V—1|.(2)画出f(x)=成一11的草图如下图.由图象的对称性知:要使广3)=广3)旦31<|版|,需一15<1,同时也羽>1或一成WM—1,「•xi的取值范围是以| —, 长的取值范围是{x| 泰或一y[2^x<—l}.5、设计一个算法,找出区间[1,1000]内的能被7整除的整数,画出程序框图.[解析]第一步,取k=\.第二步,判断AW1000是否成立,若不成立,则执行第五步.第三步,若#除以7的余数为0,则输出上第四步,将妇KJ值增加1,返回执行第二步.第五步,结束.程序框图如图.[解析]程序框图如下:6、画出求满足12+22+32+- + /?2>106的最小正整数〃的程序框图.7、国家法定工作II 内,每周工作时间满工作量为40小时,每小时工资8元;如需要加班,则加班时间每小时工资为10元.某人在一周内工作时间为*小时,个人住房公积金、失业险等合计为10%.试画出其净得工资y 元的算法的程序框图.(注:满工作量外的工作时间为加班)[解析]由题意知,当03W40时,乂=8*(1 —10%)=7.2才,7.2x0<xW40 当尤>40 时,r=[40X8+U-40) X10] X (1-10%) =9x-72, :.y=\•9才一72*>40此函数为分段函数,故用条件结构表达,条件为*>40,程序椎图为:8、相传古代印度国王舍罕要褒赏他聪明能干的宰相达依尔(国际象棋的发明者),问他需要什么,达依尔说:“国王只要在国际象棋的棋盘第一格子上放一粒麦子,第二个格子上放两粒,第三个格子上放四粒,以后按此比例每一格加一倍,一直放到第64格(国际象棋8X8 = 64格),我就感恩不尽,其他什么也不要了. ”国王想: “这有多少,还不容易!”让人扛来一袋小麦,但不到一会儿就全用没了,再扛来一袋很快又没有了,结果全印度的粮食用完还不够,国王很奇怪.一个国际象棋棋盘能放多少粒小麦,试用程序框图表示其算法.[分析]根据题目可知:第一个格放1粒=2°,第二个格放2粒=2',第三个格放4粒=2七第.四个格放8粒=23,…,第六十四格放263粒.则此题就转化为求1 + 21+22+23+21+-+263的和的问题.我们可引入一个累加变量S,一个计数变量1 , 累加64次就能算出一共有多少粒小麦.[解析]一个国际象棋棋盘一共能放1+21 + 22+23+21 + -+263粒小麦.程序框图如图所示./ 输His/I J(结束〕9、(1)用辗转相除.法求840与1764的最大公约数.(2)用更相减损术求459与357的最大公约数.[解析]⑴1746=840X2 + 84 840 = 84X10 + 0 所以840与1764的最大公约数为84. (2)459-357=102 357-102=255 255-102=153 153-102 = 51 102-51=51所以459与357的最大公约数为51.10、用秦九韶算法求多项式f3 =/-5/+6? + ^+0. 3好2当*=—2时的值.[解析],: f'3 =/—5/+6^+0 • x+x +0. 3^+2= (((((*—5)x+6)x+0)x+l)x+0. 3)矛+2.••当x=— 2 时,v()=l Ui = —2 —5=—7 处=—7X (―2)+6 = 20 K J =20X (—2) +0 = —40 KI=-40X (一2)+1 = 81 府=81 X (— 2)+0.3 =— 161. 7 ^=-161. 7X (-2)+2 = 325.4A A-2) =325. 4.11、有甲、乙、丙三种溶液分别重147 g, 343 g, 133 g,现要将它们分别全部装入小瓶中,每个小瓶装入液体的质量相同,则每瓶最多装多少溶液?[解析]每个小瓶的溶液的质量应是三种溶液质量147, 343, 133的公约数,最大质量即是其最大公约数. 先求147 与343 的最大公约数:343-147=196, 196—147 = 49, 147 — 49 = 98. 98—49 = 49.所以147与343的最大公约数是49.再求49 与133 的最大公约数:133—49=84, 84-39=35, 49-35 = 14, 35-14 = 21, 21-14=7,14-7=7,所以49与133的最大公约数为7,所以147, 343, 133的最大公约数为7.即每瓶最多装7 g溶液.12、已知175(8)= 120+r,求正整数匕[解析]V 175(8)= 1X82+7X8.1+5X8° = 12.5, A 125=120+r. Ar=5,即所求正整数尸为5.13、已知44(,)= 36,把67(由转化为十进制数.[解析]由题意得36 = 4X^l+4XA°,则k=8,故67a)=67⑻= 6X8' + 7X8°=55.14、把八进制数2011⑻化为五进制数.[分析]|八进制数|-> FF赫阙一百顽薮[解析]2011(8)= 2X83+OX82+1X8, + 1X8°=1 024 + 0 + 8+1 = 1 033.5| 1033 余数5 | 206 35 | 41 15 | 8 15 I 1 30 1A 2011 ⑻= 13113 ⑸.[点评]把一个非十进制数转化为另一个非十进制数,通常是把这个数先转化为十进制数,然后把I•进制数再转化为另一个非十进制数.15、若10pl⑵=湘2(3),求数字*, y的值及与此两数等值的十进制数.[分析]由二进制及三进制可知,ye {0,1), (1, 2},将二进制数和三进制数都转化为十进制数,再由两数相等及x、*的取值范围可得出x、y的值.[解析]V 10/1 ⑵二配?⑶,.-.lX2:i+0X22+yX2+l = ^X32+0X3 + 2,将上式整理得9*—2y=7,7由进位制的性质知, 01,2}, *日{0,1},当尸0时,*=6(舍),当尸]时,x=l.・・・x=ul,已知数为102⑶= 1011⑵,与它们相等的十进制数为1X32+OX3+2 = 11.。

备战高考数学(精讲+精练+精析)专题13.1算法初步试题理(含解析)

备战高考数学(精讲+精练+精析)专题13.1算法初步试题理(含解析)

专题1 算法初步(理科)【三年高考】1.【2016高考新课标1卷】执行右面的程序框图,如果输入的011x y n ===,,,则输出x ,y 的值满足(A )2y x = (B )3y x = (C )4y x = (D )5y x =n=n +1输出x,y x 2+y 2≥36?x =x+n-12,y=ny 输入x,y,n开始【答案】C【解析】当0,1,1x y n ===时,110,1112x y -=+=⨯=,不满足2236x y +≥;2112,0,21222n x y -==+==⨯=,不满足2236x y +≥;13133,,236222n x y -==+==⨯=,满足2236x y +≥;输出3,62x y ==,则输出的,x y 的值满足4y x =,故选C. 2.【2016高考新课标3理数】执行下图的程序框图,如果输入的46a b ==,,那么输出的n =( )(A )3 (B )4 (C )5 (D )6【答案】B3.【2016年高考四川理数】秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的《数书九章》中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法.如图所示的程序框图给出了利用秦九韶算法求某多项式值的一个实例,若输入n ,x 的值分别为3,2,则输出v 的值为(A )9 (B )18 (C )20 (D )35【答案】B【解析】程序运行如下3,21,201224,10n x v i v i ==→==≥→=⨯+==≥4219,0092018,10,v i v i →=⨯+==≥→=⨯+==-<结束循环,输出18v =,故选B.4.【2016高考新课标2理数】中国古代有计算多项式值的秦九韶算法,下图是实现该算法的程序框图.执行该程序框图,若输入的2,2x n ==,依次输入的a 为2,2,5,则输出的s =( )(A )7 (B )12 (C )17 (D )34【答案】C【解析】由题意,当2,2,0,0x n k s ====,输入2a =,则0222,1s k =⋅+==,循环;输入2a =,则2226,2s k =⋅+==,循环;输入5a =,62517,32s k =⋅+==>,结束.故输出的17s =,选C.5.【2016年高考北京理数】执行如图所示的程序框图,若输入的a 值为1,则输出的k 值为()A.1B.2C.3D.4【答案】B【解析】输入1=a ,则0=k ,1=b ;进入循环体,21-=a ,否,1=k ,2-=a ,否,2=k ,1=a ,此时1==b a ,输出k ,则2=k ,选B.6. 【2015高考新课标1,理9】执行右面的程序框图,如果输入的t =0.01,则输出的n =( )(A )5 (B )6 (C )7 (D )8【答案】C【解析】执行第1次,t =0.01,S =1,n =0,m =12=0.5,S =S -m =0.5,2m m ==0.25,n =1,S =0.5>t =0.01,是,循环, 执行第2次,S =S -m =0.25,2m m ==0.125,n=2,S=0.25>t =0.01,是,循环, 执行第3次,S =S -m =0.125,2m m ==0.0625,n =3,S=0.125>t =0.01,是,循环, 执行第4次,S =S -m =0.0625,2m m ==0.03125,n =4,S =0.0625>t =0.01,是,循环, 执行第5次,S =S -m =0.03125,2m m ==0.015625,n =5,S =0.03125>t =0.01,是,循环, 执行第6次,S =S -m =0.015625,2m m ==0.0078125,n =6,S=0.015625>t =0.01,是,循环, 执行第7次,S =S -m =0.0078125,2m m ==0.00390625,n =7,S=0.0078125>t=0.01,否,输出n =7,故选C. 7.【2015高考北京,理3】执行如图所示的程序框图,输出的结果为( )A .()22-,B .()40-,C .()44--,D .()08-,开始x=1,y=1,k=0s=x-y,t=x+yx=s,y=tk=k+1k≥3输出(x,y)结束是否【答案】B8.【2015高考新课标2,理8】右边程序框图的算法思路源于我国古代数学名著《九章算术》中的“更相减损术”.执行该程序框图,若输入,a b分别为14,18,则输出的a=( )A.0 B.2 C.4 D.14【答案】B【解析】程序在执行过程中,a,b的值依次为14a=,18b=;4b=;10a=;6a=;2a=;2b=,此时2a b==程序结束,输出a的值为2,故选B.9.【2015江苏高考,4】根据如图所示的伪代码,可知输出的结果S 为________.【答案】7【解析】第一次循环:3,4S I ==;第二次循环:5,7S I ==;第三次循环:7,10S I ==;结束循环,输出7.S =10.【2014全国1高考理第7题】执行右面的程序框图,若输入的k b a ,,分别为1,2,3,则输出的M=( ) A.320 B.27 C.516 D.815【答案】DS ←1I ←1While I < 8S ←S +2I ←I +3End WhilePrint S(第4题图)【解析】程序在执行过程中,1,2,3a b k ===,1n =;1331,2,b ,2222M a n =+====; 28382,,b ,33323M a n =+====;3315815,,b ,428838M a n =+====,程序结束,输出158M =. 11.【2014江西高考理第7题】阅读如下程序框图,运行相应的程序,则程序运行后输出的结果为( )A.7B.9C.10D.11【答案】B【解析】第一次循环:11,lg ,3i S ==第二次循环:1313,lg lg lg ,355i S ==+= 第三次循环:1515,lg lg lg ,577i S ==+=第四次循环:1717,lg lg lg ,799i S ==+= 第五次循环:1919,lg lg lg 1,91111i S ==+=<-结束循环,输出9.i =选B. 12.【2014高考湖北卷理第13题】设a 是一个各位数字都不是0且没有重复数字的三位数.将组成a 的3个数字按从小到大排成的三位数记为()I a ,按从大到小排成的三位数记为()D a (例如815a =,则()158I a =,()851D a =).阅读如图所示的程序框图,运行相应的程序,任意输入一个a ,输出的结果b = .【答案】495【三年高考命题回顾】纵观前三年各地高考试题, 主要考查算法概念和程序框图,理解算法的基本结构,基本算法语句高考很少涉及.命题主要集中在算法的三种基本逻辑结构的框图表示,程序框图与其它知识结合是新的热点.【2017年高考复习建议与高考命题预测】由前三年的高考命题形式可以看出, 算法初步主要掌握算法概念和程序框图,理解算法的基本结构、基本算法语句,理解古代算法案例,体会蕴含的算法思想,增强有条理的思考与表达能力,提高逻辑思维能力.而高考命题主要集中在算法的三种基本逻辑结构的框图表示,程序框图与其它知识结合是新的热点.题目的位置也靠前,属于中低档题,估计2017年高考难度在中低档,基本出题方式不变,也可能变换一种考法,比如告诉输出结果,考查判断语句等是命题演变的趋势.算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础.算法初步虽然是新课标增加的内容,但与前面的知识有着密切的联系,并且与实际问题的联系也非常密切.因此,在高考中算法初步知识将与函数、数列、三角、概率、实际问题等知识点进行整合,是高考试题命制的新“靓”点.这样试题就遵循了“在知识网络交汇处设计试题”的命制原则,既符合高考命题“能力立意”的宗旨,又突出了数学的学科特点.这样做,可以从学科的整体高度和思维价值的高度考虑问题,可以揭示数学各知识之间得到的内在联系,可以使考查达到必要的深度.考查形式与特点是:(1)选择题、填空题主要考查算法的含义、流程图、基本算法语句等内容,一般在每份试卷中有1题,多为中档题出现.(2)在解答题中可通过让学生读程序框图去解决其它问题,此类试题往往是与数列题结合在一起,具有一定的综合性,可以考查学生的识图能力及对数列知识的掌握情况.复习建议:一般地讲,算法是人们解决问题的固定步骤和方法.在本模块中,我们应重点掌握的是在数值计算方面的算法.高考新课程标准数学考试大纲对《算法初步》的要求是:(1)算法的含义、流程图:①了解算法的含义,了解算法的思想;②理解流程图的三种基本逻辑结构:顺序结构、选择结构、循环结构.(2)基本算法语句:理解几种基本算法语句——输入语句、输出语句、赋值语句、选择语句、循环语句的含义.注意的是,考纲对算法的含义和算法的思想的要求是“了解”,而对流程图和基本算法语句的要求是“理解”.由此可见,复习中应把重点放在流程图和基本算法语句上,要对这两方面的内容重点掌握、多加练习.表达算法的方法有自然语言、流程图和基本算法语句三种.自然语言描述算法只是学习算法的一个过渡,流程图和基本算法语句才是学习的重点,同时也是难点,尤其是选择结构和循环结构,在复习中是重中之重.【2017年高考考点定位】高考对算法的考查有两种主要形式:一是直接考查程序框图;二是程序语言运用.从涉及的知识上讲,算法初步知识与函数、数列、三角、概率、实际问题等知识点进行整合,小题目综合化是这部分内容的一种趋势.【考点1】算法与程序框图【备考知识梳理】(1)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等.在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成(2)描述算法可以用不同的方式.例如:可以用自然语言和数学语言加以叙述,也可以借助形式语言(算法语言)给出精锐的说明,也可以用程序框图直观的显示算法全貌.①自然语言就是人们日常使用的语言,可以是人之间来交流的语言、术语等,通过分步的方式来表达出来的解决问题的过程.其优点为:好理解,当算法的执行都是先后顺序时比较容易理解;缺点是:表达冗长,且不易表达清楚步骤间的重复操作、分情况处理现象、先后顺序等问题.②程序框图:程序框图是用规定的图形符号来表达算法的具体过程.优点是:简捷形象、步骤的执行方向直观明了.③程序语言:程序语言是将自然语言和框图所表达的解决问题的步骤用特定的计算机所识别的低级和高级语言编写而成.特点:能在计算机上执行,但格式要求严格(3)算法的特征:①确定性:算法的每一步都应当做到准确无误、“不重不漏”.“不重”是指不是可有可无的、甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣.分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步”的继续.③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行.2.程序框图(1)程序框图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形;(2)构成程序框的图形符号及其作用程序框名称功能起止框表示一个算法的起始和结束,是任何算法程序框图不可缺少的.输入、输出框表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置.处理框赋值、计算.算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内.判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时在出口处标明则标明“否”或“N”.流程线算法进行的前进方向以及先后顺序循环框用来表达算法中重复操作以及运算连结点连接另一页或另一部分的框图注释框帮助编者或阅读者理解框图(3)程序框图的构成一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字3.几种重要的结构(1)顺序结构顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构.见示意图和实例:顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.如在示意图中,A 框和B 框是依次执行的,只有在执行完A 框指定的操作后,才能接着执行B 框所指定的操作.(2)条件结构如下面图示中虚线框内是一个条件结构,此结构中含有一个判断框,算法执行到此判断给定的条件P 是否成立,选择不同的执行框(A 框、B 框).无论P 条件是否成立,只能执行A 框或B 框之一,不可能既执行A 框又执行B 框,也不可能A 框、B 框都不执行.A 框或B 框中可以有一个是空的,即不执行任何操作 见示意图(3)循环结构在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理过程.重复执行的处理步骤称为循环体.循环结构有两种形式:当型循环结构和直到型循环结构.①当型循环结构,如左下图所示,它的功能是当给定的条件P 成立时,执行A 框,A 框执行完毕后,返回来再判断条件P 是否成立,如果仍然成立,返回来再执行A 框,如此反复执行A 框,直到某一次返回来判断条件P 不成立时为止,此时不再执行A 框,离开循环结构.继续执行下面的框图.②直到型循环结构,如右下图所示,它的功能是先执行重复执行的A 框,然后判断给定的条件P 是否成立,如果P 仍然不成立,则返回来继续执行A 框,再判断条件P 是否成立.以次重复操作,直到某一次给定的判p A BYN断条件P 时成立为止,此时不再返回来执行A 框,离开循环结构.继续执行下面的框图见示意图【规律方法技巧】1. 识别程序框图运行和完善程序框图的步骤识别运行程序框图和完善程序框图是高考的热点.解答这一类问题,第一,要明确程序框图的顺序结构、条件结构和循环结构;第二,要识别运行程序框图,理解框图所解决的实际问题;第三,按照题目的要求完成解答.对程序框图的考查常与数列和函数等知识相结合,进一步强化框图问题的实际背景.2.解决程序框图问题要注意几个常用变量:(1)计数变量:用来记录某个事件发生的次数,如1i i =+.(2)累加变量:用来计算数据之和,如S S i =+.(3)累乘变量:用来计算数据之积,如p p i =⨯.3. 程序框图问题的解法(1)解答程序框图的相关问题,首先要认清程序框图中每个“框”的含义,然后按程序框图运行的箭头一步一步向前“走”,搞清每走一步产生的结论.(2)要特别注意在哪一步结束循环,解答循环结构的程序框图,最好的方法是执行完整每一次循环,防止执行程序不彻底,造成错误.4.判断条件的注意事项解决此类问题应该注意以下三个方面:一是搞清判断框内的条件由计数变量还是累加变量来表示;二是要注意判断框内的不等式是否带有等号,这直接决定循环次数的多少;三是要准确利用程序框图的赋值语句与两个变量之间的关系,把握程序框图的整体功能,这样可以直接求解结果,减少运算的次数.5.画程序框图的规则如下:(1)一个完整的程序框图必须有起止框,用来表示程序的开始和结束.(2)使用标准的图形符号表示操作,带箭头的流程线表示算法步骤的先后顺序,框图一般按从上到下、从左到右的方向画(3)算法中间要处理数据或计算,可分别写在不同的处理框中.(4)如果一个流程由于纸面等原因需要分开画.要在断开处画上连结点,并标出连结的号码.如图一.实际上它们是同一点,只是化不才分开画.用连结点可避免流程线的交叉或过长,使流程图清晰.(5)注释框不是流程图必需的部分,只是为了提示用户一部分框图的作用以及对某些框图的操作结果进行说明.它帮助阅读流程图的用户更好的理解流程图的来龙去脉.(6)在图形符号内用于描述的语言要非常简练清楚【考点针对训练】1. 【2016湖北华师一附中高三检测】若如下框图所给的程序运行结果为S =41,则图中的判断框①中应填入的是( )A .6?i >B .6?i ≤C .5?i >D .5?i <【答案】C2. 【2016年江西九江高三三模】设22,21,20,19,1854321=====x x x x x ,将这五个数据依次输入下面程序框图进行计算,则输出的S 值及其统计意义分别是( )A .2=S ,即5个数据的方差为2B .2=S ,即5个数据的标准差为2C .10=S ,即5个数据的方差为10D .10=S ,即5个数据的标准差为10【答案】A 【解析】∵2])2022()2021()2020()2019()2018[(5122222=-+-+-+-+-=S ,∴选A. 【考点2】算法与程序框图【备考知识梳理】1.输入语句输入语句的格式:INPUT “提示内容”; 变量例如:INPUT “x =”; x 功能:实现算法的输入变量信息(数值或字符)的功能.要求:(1)输入语句要求输入的值是具体的常量;(2)提示内容提示用户输入的是什么信息,必须加双引号,提示内容 “原原本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开;(3)一个输入语句可以给多个变量赋值,中间用“,”分隔;输入语句还可以是“提示内容1”;变量1,“提示内容2”;变量2,“提示内容3”;变量3,……”的形式.例如:INPUT“a =,b =,c=,”;a ,b ,c.2.输出语句输出语句的一般格式:PRINT“提示内容”;表达式例如:PRINT“S=”;S功能:实现算法输出信息(表达式)要求:(1)表达式是指算法和程序要求输出的信息;(2)提示内容提示用户要输出的是什么信息,提示内容必须加双引号,提示内容要用分号和表达式分开.(3)如同输入语句一样,输出语句可以一次完成输出多个表达式的功能,不同的表达式之间可用“,”分隔;输出语句还可以是“提示内容1”;表达式1,“提示内容2”;表达式2,“提示内容3”;表达式3,……”的形式;例如:PRINT “a ,b ,c:”;a ,b ,c.3.赋值语句赋值语句的一般格式:变量=表达式赋值语句中的“=”称作赋值号作用:赋值语句的作用是将表达式所代表的值赋给变量;要求:(1)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个常量、变量或含变量的运算式.如:2=x 是错误的;(2)赋值号的左右两边不能对换.赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量.如“A =B ”“B =A ”的含义运行结果是不同的,如x =5是对的,5=x 是错的,A +B =C 是错的,C=A +B 是对的.(3)不能利用赋值语句进行代数式的演算.(如化简、因式分解、解方程等),如)1)(1(12+-=-=x x x y这是实现不了的.在赋值号右边表达式中每一个变量的值必须事先赋给确定的值.在一个赋值语句中只能给一个变量赋值.不能出现两个或以上的“=”.但对于同一个变量可以多次赋值.4.条件语句(1)“IF —THEN —ELSE ”语句格式:IF 条件 THEN语句1ELSE语句2END IF说明:在“IF—THEN —ELSE”语句中,“条件”表示判断的条件,“语句1”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;END IF 表示条件语句的结束.计算机在执行“IF—THEN —ELSE”语句时,首先对IF 后的条件进行判断,如果符合条件,则执行THEN 后面的“语句1”;若不符合条件,则执行ELSE 后面的“语句2”.(2)“IF—THEN”语句格式:IF 条件 THEN语句END IF说明:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,直接结束判断过程;END IF表示条件语句的结束.计算机在执行“IF—THEN”语句时,首先对IF后的条件进行判断,如果符合条件就执行THEN后边的语句,若不符合条件则直接结束该条件语句,转而执行其它后面的语句5.循环语句(1)当型循环语句当型(WHILE型)语句的一般格式为:WHILE 条件循环体WEND说明:计算机执行此程序时,遇到WHILE语句,先判断条件是否成立,如果成立,则执行WHILE和WEND之间的循环体,然后返回到WHILE语句再判断上述条件是否成立,如果成立,再执行循环体,这个过程反复执行,直到一次返回到WHILE语句判断上述条件不成立为止,这时不再执行循环体,而是跳到WEND语句后,执行WEND后面的语句.因此当型循环又称“前测试型”循环,也就是我们经常讲的“先测试后执行”、“先判断后循环”.(2)直到型循环语句直到型(UNTIL型)语句的一般格式为:DO循环体LOOP UNTIL 条件说明:计算机执行UNTIL语句时,先执行DO和LOOP UNTIL之间的循环体,然后判断“LOOP UNTIL”后面的条件是否成立,如果条件成立,返回DO语句处重新执行循环体.这个过程反复执行,直到一次判断“LOOP UNTIL”后面的条件不成立为止,这时不再返回执行循环体,而是跳出循环体执行“LOOP UNTIL 条件”下面的语句.因此直到型循环又称“后测试型”循环,也就是我们经常讲的“先执行后测试”、“先循环后判断”.【规律方法技巧】1.涉及具体问题的算法时,要根据题目进行选择,以简单、程序短、易于在计算机上执行为原则.注意条件语句的两种基本形式及各自的应用范围以及对应的程序框图.条件语句与算法中的条件结构相对应,语句形式较为复杂,要会借助框图写出程序.利用循环语句写算法时,要分清步长、变量初值、终值,必须分清循环次数是否确定,若确定,两种语句均可使用,当循环次数不确定时用while 语句.2. 条件语句的主要功能是来实现算法中的条件结构.因为人们对计算机运算的要求不仅仅是一些简单的代数运算,而是经常需要计算机按照条件进行分析、比较、判断,并且按照判断后的不同情况进行不同的操作和处理.如果是要解决像“判断一个数的正负”、“比较数之间的大小”,“对一组数进行排序”、“求分段函数的函数值”等很多问题,计算机就需要用到条件语句.条件结构的差异,造成程序执行的不同.当代入x 的数值时,“程序一”先判断外层的条件,依次执行不同的分支,才有可能判断内层的条件;而“程序二”中执行了对“条件1”的判断,同时也对“条件2”进行判断,是按程序中条件语句的先后依次判断所有的条件,满足哪个条件就执行哪个语句.3. 赋值语句在程序运行时给变量赋值;“=”的右侧必须是表达式,左侧必须是变量;一个语句只能给一个变量赋值;有计算功能;将一个变量的值赋给另一个变量时,前一个变量的值保持不变;可先后给一个变量赋多个不同的值,但变量的取值只与最后一次赋值有关.关于赋值语句,有以下几点需要注意:①赋值号左边只能是变量名字,而不是表达式,例如3m =是错误的.②赋值号左右不能对换,赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量,例如y x =,表示用x 的值替代变量y 的原先的取值,不能改写为x y =.因为后者表示用y 的值替代变量x 的值. ③在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”.4. 学习了循环语句的两种格式,我们来挖掘一下应用循环语句编写程序的“条件三要素”.第一、循环语句中的变量一般需要进行一定的初始化操作.第二、循环语句在循环的过程中需要有“结束”的机会.程序中最忌“死循环”.所谓的“死循环”就是指该循环条件永远成立,没有跳出循环体的机会. 第三、在循环中要改变循环条件的成立因素程序每执行一次循环体,循环条件中涉及到的变量就会发生改变,正在步步逼近满足跳出循环体的条件.【考点针对训练】1. 【2016年江西师大附中高三模考】如右图,当输入5x =-,15y =时,图中程序运行后输出的结果为( )A .3; 33B .33;3 C.-17;7 D .7;-17【答案】A【解析】因为0<x ,所以执行183=+=y x ,即此时18=x ,15=y ,输出为y x y x +-,,而33,3=+=-y x y x ,所以输出结果为33,3,本题正确选项为A.2. 【2016届陕西省高三高考全真模拟四】如图所示,当输入,a b 分别为2,3时,最后输出的M 的值是 .【答案】3【解析】由算法的伪代码程序语言可知输出的是两数2,3a b ==中最大的数,故应输出3,故应选C.【应试技巧点拨】1.识别程序框图运行和完善程序框图的步骤识别运行程序框图和完善程序框图是高考的热点.解答这一类问题,第一,要明确程序框图的顺序结构、条件结构和循环结构;第二,要识别运行程序框图,理解框图所解决的实际问题;第三,按照题目的要求完成解答.对程序框图的考查常与数列和函数等知识相结合,进一步强化框图问题的实际背景.2.解决程序框图问题要注意几个常用变量:(1)计数变量:用来记录某个事件发生的次数,如1i i =+.(2)累加变量:用来计算数据之和,如S S i =+.(3)累乘变量:用来计算数据之积,如p p i =⨯.3. 程序框图问题的解法(1)解答程序框图的相关问题,首先要认清程序框图中每个“框”的含义,然后按程序框图运行的箭头一步一步向前“走”,搞清每走一步产生的结论.(2)要特别注意在哪一步结束循环,解答循环结构的程序框图,最好的方法是执行完整每一次循环,防止执行程序不彻底,造成错误.4.判断条件的注意事项解决此类问题应该注意以下三个方面:一是搞清判断框内的条件由计数变量还是累加变量来表示;二是要注意判断框内的不等式是否带有等号,这直接决定循环次数的多少;三是要准确利用程序框图的赋值语句与两个变量之间的关系,把握程序框图的整体功能,这样可以直接求解结果,减少运算的次数.5.画程序框图的规则如下:(1)一个完整的程序框图必须有起止框,用来表示程序的开始和结束.(2)使用标准的图形符号表示操作,带箭头的流程线表示算法步骤的先后顺序,框图一般按从上到下、从左到右的方向画(3)算法中间要处理数据或计算,可分别写在不同的处理框中.(4)如果一个流程由于纸面等原因需要分开画.要在断开处画上连结点,并标出连结的号码.如图一.实际上它们是同一点,只是化不才分开画.用连结点可避免流程线的交叉或过长,使流程图清晰.(5)注释框不是流程图必需的部分,只是为了提示用户一部分框图的作用以及对某些框图的操作结果进行说明.它帮助阅读流程图的用户更好的理解流程图的来龙去脉.(6)在图形符号内用于描述的语言要非常简练清楚6.解决循环结构框图问题,首先要找出控制循环的变量其初值、步长、终值(或控制循环的条件),然后看循环体,循环次数比较少时,可依次列出即可获解,循环次数较多时可先循环几次,找出规律,要特别注意最后输出的是什么,不要出现多一次或少一次循环的错误7.在循环结构中,填判断框中的条件是常见命题方式,此条件应依据输出结果来确定,解答时,一般先循环2至3次,发现规律,找出什么时候结束循环,也就找到了循环条件,要特别注意条件“不等式”中是否包括等号.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.计算236312222+++++,写出算法的程序.解:s=1n=2i=1WHILE i<=63s=s+n∧ii=i+1WENDPRINT “1+2+2∧2+2∧3+…+2∧63=”;sEND2.写出已知函数⎪⎩⎪⎨⎧<-=>=).(1),(),(1xxxy输入x的值,求y的值程序.解:INPUT “请输入x的值:”;xIF x>0 THENy=1ELSEIF x=0 THENy=0ELSEy=-1END IFEND IFPRINT “y的值为:”;yEND3.新课标B版数学必修3教材41页第7题:用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡3只一元,问能买多少公鸡,母鸡和小鸡?程序如下:for x=1:20 for y=1:33 z=100-x-y; if 5*x+3*y+z/3<>100else x y z end end end4.(本小题满分14分)根据下面的要求,求满足1+2+3+…+n > 500的最小的自然数n。

(1)画出执行该问题的程序框图;(2)以下是解决该问题的一个程序,但有几处错误,请找出错误并予以更正。

解:(1(2)①DO应改为WHILE; 10分②PRINT n+1 应改为PRINT n ; 12分 ③S=1应改为S=0 14分5. 儿童乘坐火车时,若身高不超过1.1 m ,则不需买票;若身高超过1.1 m 但不超过1.4 m ,则需买半票;若身高超过1.4 m ,则需买全票.试设计一个买票的算法,并画出相应的程序框图及程序。

解:程序是:INPUT “请输入身高h (米):”;hIF h<=1.1 THEN PRINT “免票” ELSEIF h<=1.4 THEN PRINT “买半票” ELSE PRINT “买全票” END IF END IF END6.意大利数学家菲波拉契,在1202年出版的一书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子? 试画出解决此问题的程序框图,并编写相应的程序.解: 分析: 根据题意可知,第一个月有1对小兔,第二个月有1对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第N 个月有两F 对兔子,第N -1个月有S 对兔子,第N -2个月有Q 对兔子,则有F=S+Q,一个月后,即第N+1个月时,式中变量S 的新值应变第N 个月兔子的对数(F 的旧值),变量Q 的新值应变为第N -1个月兔子的对数(S 的旧值),这样,用S+Q 求出变量F 的新值就是N+1个月兔子的数,依此类推,可以得到一个数序列,数序列的第12项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为1,以此为基准,构造一个循环程序,让表示“第×个月的I 从3逐次增加1,一直变化到12,最后一次循环得到的F ”就是7.设计算法求100991431311211⨯++⨯+⨯+⨯ 的值。

要求画出程序框图,写出用基本语句编写的程序。

解:这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法。

程序框图如图所示:10==k SDO1))1(/(1+=+*+=k k k k S SLOOP UNTIL 99>kPRINTSEND8.求100以内的所有勾股数。

for i=1:100 for j=1:100 for k=2:100 if i*i+j*j<>k*k else i j k end end end end9. 计算 236312222+++++ ,写出算法的程序. 解:s=1n=2 i=1WHILE i <=63 s=s+n ∧i i=i+1 WENDPRINT “1+2+2∧2+2∧3+…+2∧63=”;s END10. 写出已知函数⎪⎩⎪⎨⎧<-=>=).0(1),0(0),0(1x x x y 输入x 的值,求y 的值程序. 解:INPUT “请输入x 的值:”;xIF x>0 THEN y=1 ELSEIF x=0 THEN y=0 ELSE y=-1 END IF END IFPRINT “y 的值为:”;y END11. 2000年我国人口为13亿,如果人口每年的自然增长率为7‟,那么多少年 后我国人口将达到15亿?设计一个算法的程序. 解:A=13R=0.007 i=1 DOA=A*(1+R ) i=i+1LOOP UNTIL A >=15 i=i -1PRINT “达到或超过15亿人口需要的年数为:”;i END12.1982年我国大陆人口10亿3千万,编程上机计算,若人口增长率r=1%,则哪一年我国人口增长到12亿,若r=O .5%,r=O .2%又是何年?INPUT r=O .01 i=O p=10.3 y=1982 WHILE P ≤12 i=i+1 p=p※(1+ r) y=y+1 WEND PRINT y ,p END13.假定在银行中存款10000元,按11.25%的利率,一年后连本带息将变为11125元,若将此款继续存人银行,试问多长时间就会连本带利翻一番?请用直到型和当型两种语句写出程序. 用直到型INPUT“money =”,10000 x=mOney r=11.25/100 y=OWHILE x≥2r y=y+1 x=x+r*x WEND PRINT y END 用当型 INPUT m=10000 X=m y=Or=11.25/100 Do m<2*x y=y+1x=x + r*x算法语句常见错误解析夏 文 凯人教版必修3第一章《算法初步》是新课程标准中的新增内容,是高考考查的内容。

程序的设计是本章的一个难点和重点,此难点主要体现在语句的选择、语句的使用、语句的衔接三方面。

如果概念不清、运用不当就容易出错,哪怕一个极细小的错误都会导致整个程序无法被计算机运行而宣告失败,所以,我们在设计程序时,一定要时时小心,处处留意,确保准确无误。

为帮助同学们防错、识错、纠错,笔者搜集了教学中一些常见的错误,望同学们加深对它们的理解,引以为戒。

一 输入语句常见错误解析例 判断下列给出的输入语句是否正确,为什么,怎样改正?(1)INPUT a ; b ; c (2) INPUT x = 2 解:(1)错误,变量之间应该用“,”隔开,应改为:INPUT a ,b ,c 备注:输入语句的一般格式是如果是输入一个变量,一般可以写成 INPUT “x=”;x 也可以简写为INPUT x ,如果是两个变量,一般可以写为也可以简写为INPUT a, b 变量中间要用“,”分隔,三个或三个以上的变量以此类推。

(2)错误,输入语句又称“键盘输入语句”,在程序运行过程中,停机等候用户由键盘输入数据,而不需要在写程序时指定,所以INPUT 后面只能是变量,不能是表达式,应改为:INPUT “请输入x 的值”;x 或INPUT x二输出语句常见错误解析例判断下列给出的输出语句是否正确,为什么,怎样改正?(1)PRINT A=3 (2)解:(1)错误,输出语句的格式为PRINT 语句不能用赋值号“=”,应改为:PRINT A(2)错误,输出语句可以输出多个表达式,不同的表达式之间用“,”分隔,不能用“;”分隔。

所以应改为:PRINT A ,B三 赋值语句常见错误解析例 判断下列给出的赋值语句是否正确,为什么,怎样改正? (1) 3=A (2)x+y+z=0 (3)A=B=4解:(1) 错误,赋值语句的一般格式是 , 赋值号的左边只能是变量,右边是一个常数或表达式,所以应改为:A=3(2) 错误,赋值语句不能给表达式赋值。

(3例 某同学编了一个交换两个变量A 和B 的值的程序(图一) 解:按照此程序运行,如果输入3,9输出的结果不是 A=B 表示把变量B 的值9赋给变量A, A 的初始值3被“覆盖”, A 的值变为9,变量B 的值保持不变;B=A 表示把刚才变量A 的值9变量B 的值被 “覆盖”,变为9 ,所以最后输出的是 量赋多个不同的值,但是变量的取值总是取最近被赋予的值),所以要交换两个变量的值,必须引如一个 中间变量x,暂时存放变量A 的值,并把其传递给变量B ,所以中间应改为:。

INPUT “a=”;a INPUT “b=”;b(图一)例:编写一个程序,对于函数⎪⎩⎪⎨⎧>+=<+-=)0(1)0(0)0(1x x x x x y 输入x 的值,输出相应的函数的值。

某同学编写了一个程序(图二),正确吗?如果不对,错在哪里?为什么?解析:条件语句的格式有两种,一个是只有一个“分支”的条件语句,它的格式见图三,一个是有两个“分支”的条件语句,它的一般格式见图四,这个同学编写的程序实际上两次运用了两个分支的条件语句,但是第一个条件语句实际上并不完整,少了一个END IF ,所以应在PRINT y 前加一个END IF.例:闰年是指年份能被4整除但是不能被100整除,或者能被400整除的年份,编写一个程序,判断输入的年份是否为闰年。

错解:依题意设计的程序如下:解析:本题是教材上的一道习题,这个错解是教师教学用书给出的答案,错误的原因在于,本程序有两套条件语句,当我们输入一个年份后,要被执行两次判断,结果会输出两次,对有些年份会输出两个相反的结果。

如:输入年份2008,按照第一套条件语句,2008是闰年,但是按照第二套条件语句,2008不是闰年。

正解:依题意设计的程序如图六。

备注:本程序把三个判断的条件集中在一起,对输入的年份只判断一次,便见分晓,有效地避免了错解中自相矛盾的现象,同时本解法还将错解中的赋值语句省略,集中到条件语句中说明是一个十分简捷程序。

(图二) (图三) (图四)(图六)例:分别用WHILE 型语句和UNTIL 型语句设计一个求100131211+⋅⋅⋅+++的值的程序。

错解:设计程序如下:错解分析:在WHILE 型程序里面i=1、sum=1,控制循环的条件为i ≤100,按此算法最后得到的结果应为1001312111+⋅⋅⋅++++,而不是题目要求的100131211+⋅⋅⋅+++,改正的方法是将sum=1改为sum=0;在UNTIL 型程序里面i=1、sum=0,控制条件为100≥i ,按此算法最后得到的结果是99131211+⋅⋅⋅+++,而不是题目要求的100131211+⋅⋅⋅+++,改正的方法是将100≥i 改为100>i 。

相关文档
最新文档