第一章:程序设计基础知识一、单项选择题1、面向过程的程序设计语言是________。A)机器语言B)汇编语言C)高级语言D)第四代语言2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是_________。A)设计数据结构和算法B)建立数学模型C)编写程序D)调试和运行程序3、以下常用算法中适合计算等差级数的算法是_________。A)枚举法B)递推法C)分治法D)排序法4、以下不属于算法基本特征的是__________。A)有穷性B)有效性C)可靠性D)有一个或多各输出5、以下描述中不正确的是___________。A)程序就是软件,但软件不仅仅是程序。B)程序是指令的集合,计算机语言是编写程序的工具。C)计算机语言都是形式化的语言,它有一个语法规则和定义。D)计算机语言只能编写程序而不能表示算法。6、下面描述中,正确的是_____________。A)结构化程序设计方法是面向过程程序设计的主流。B)算法就是计算方法。C)一个正确的程序就是指程序书写正确。D)计算机语言就是编写程序的工具而不是表示算法的工具。7、下面描述中,不正确的是______________。A)递归法的关键是必须有一个递归终止的条件。B)递归算法要求语言具有反复自我调用子程序的能力。C)对于同一个问题,递推算法比递归算法的执行时间要长。D)递推算法总可以转换为一个递归算法。8、N-S图与传统流程图比较,主要优点是_________。A)杜绝了程序的无条件转移。B)具有顺序、选择和循环三种基本结构。C)简单、只管。D)有利于编写程序。A)B)C)D)二、填空题1、在流程图符号中,判断框中应该填写的的是________。(判断条件)2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程)3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句)4、可以被连续执行的一条条指令的集合称为计算机的________。(程序)5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象)6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(功能操作流程控制)7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性)8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构)9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法)10、程序设计风格主要影响程序的________。(可读性)11、用模块组装起来的程序被成为________结构化程序。(模块化)12、采用自上而下,逐步求精的设计方法便于____________。(结构化和模块化)三、应用题1、用如何一种熟悉的方法描述求N个数中最小数的算法。2、用枚举法设计例1-4中百钱买百鸡问题的算法,并用流程图表示;YY开始结束输入n输入mink=1输入xxminmin=kk=k+1k=n?输出minNNNYY开始结束k=0输入nmin=32767输入xxminmin=kk=k+1k=n?输出minNa)递推3、分别用递推和递规两种算法计算斐波那契数列:f(n+2)=f(n+1)+f(n),f(1)=f(0)=1的前30项,并用流程图表示a)递推b)递规递推公式:f(n)=f(n-1)+f(n-2)递规公式:f(n)=f(n-1)+f(n-2)f(1)=f(0)=1x=1x20y=1y=33x+y+z=100且x*5+y*3+z/3=100z=100-x-y输出x,y,zy++x++yyYNNN开始结束N开始f1=1,f2=1,k=0f3=f1+f2f4=f2+f3输出f1,f2f1=f3,f2=f4k=k+2k15?结束Yb)递规4、求方程x3-x-1=0在x=1.5附近的一个根。使用迭代法设计其算法,并用流程图表示出来。解:一般迭代法:迭代公式:x1=1-x03,收敛条件:|x0/x1|=1e-5Y开始n=30n0?p=f(n)输出pn=n-1结束N开始设初值x0=1.5x1=x0*x0*x0-1.5|x0/x1|1e-5x0=x1x1=x0*x0*x0-1输出x1结束N开始x0=1.5f=x03-x0-1f0=3*x02-1x1=f/f0|x1/x01e-5x0=x1f=x03-x0-1f0=3*x02-1输出x1结束NY牛顿迭代法NYNn1?r=f(n-1)+f(n-2)r=1F(n)返回r牛顿迭代法:f(x)=x3-x-1,f’(x)=3x2-1迭代公式:x1=x0-f(x0)/f’(x0)收敛条件:|x0/x1|=1e-55、有分数序列如下:,...813,58,35,23,12试用迭代法求出该数列前20项的和,用流程图表示其算法。解:分子a,分母b,下一项分子c,某项t=a/b,和s。第一项:a=2,b=1,c=a,t=a/b,s=t第i项:c=a+b,b=a,a=c,t=a/b,s=s+t6、输入任意3个数a,b,c,再按从小到大顺序输出。输入a,b,c开始ab?t=a,a=b,b=tac?bc?t=a,a=c,c=tt=b,b=c,c=t输入a,b,c开始YNYYNNY开始n=20,s=0a=2,b=1,c=an0?t=a/b,s=s+tc=a+b,b=a,a=cn=n-1结束输出sN7、判断一个整数能否同时被3和7整除。N开始输入nn%3==0?n%7==0?输入”No”输入”Yes”开始YYN开始输入a,b,cab?ac?bc?输出a,b,c输出a,c,b输出c,a,bbc?ac?输入b,a,c输入b,c,a输入c,b,a结束YYYNNNNNYY8、求某课全班平均分。Ys=s+x,n++开始n=0,s=0输入xx=0?输入x输入s/n开始N