2019最新第06章数组数学
- 格式:ppt
- 大小:356.54 KB
- 文档页数:22
第6章数组6.1怎样定义和引用一维数组6.1.1怎样定义一维数组一般格式:类型数组名[常量表达式]; 如: int a[10];说明:(1) 数组名的命名规则遵循C 语言的标识符;(2) 常量表达式,用来指定该数组中元素的个数,也就是该数组的长度。
该长度必须在这里是一个常量表达式(数字常量、符号常量) ,不能是变量。
由 于前面已经指定了类型,指定了元素个数后,该数组一共占用的空间大小就确定 了,^口:上例,a 是int 型,每个int 型在VC 中占4字节,而后面又定义了 10 个元素,所以,a 共占用了 4*10=40个字节的空间;(3) 可以使用sizeof 运算来求出某个数组占用了多少空间; 特别强调,其中常量表达式不能是变量,如:int n=10;int a[n];//错误,因为n 是变量 #defi ne N 10 int b[N]; //正确,因为N 是符号常量 int c[N+3]; //正确的,因为N+3是常量表达式对于以下定义: int a[10];那么,系统就会在内存中划出一片存储空间,女口 右图:显然,每个元素在内存中都是连续的,从而可以 根据上一个元素的地址,来计算出下一个元素的地址, 假设a 的第0个元素存在1000地址上,那么,a[5]的 地址:Add (a[0])+5*4=1020。
而对 a[i]的地址:Add (a[i])=Add (a[0]+i*4)(4) 数组定义后,元素的排列是从a[0]开始的,因此定义的int a[10] 中, 只有a[0]~a[9],并不存在a[10]这个元素。
(5) 数组定义后,其中的每个元素的值都是不确定的(就是不知道值为多 少,也可以说是随机的),如果想要在定义时就有初值,可以有两种方法:方法一:用static 来修饰,那么,该数组中的每个元素都会被初始化为 0: static int b[10]; //数组b 中的10个元素每个值都是010001004 100810201036int a[10]; //数组a中的10个元素值不确定方法二:在定义时,同时给出值,如:int c[10]={1,2,3}; // 给出了3 个值如果所给的值比数组元素少,那么后面的每个元素都会自动初始化成0,如上面的 c 数组,后面的c[3]~c[9] 都是0(6)前面第 4 点说了,定义的a[10] 的元素是从a[0]~a[9] ,没有a[10] 这个元素,如果在程序中引用了a[10],实际上是一种“越界错误”,但是在VC中,一般还发现不了。
6.3程序框图[读教材·填要点]程序框图等基本单循环结构、条件结构、输出、输入程序框图就是算法步骤的直观图示,算法的来连接.用程序框图表示的算流程线元构成了程序框图的基本要素,基本要素之间的关系由法,比用自然语言描述的算法更加直观明确、流向清楚,而且更容易改写成计算机程序.[小问题·大思维] 1.程序框图和流程图有什么区别和联系?提示:(1)程序框图是流程图的一种.(2)程序框图有一定的规范和标准,而日常生活中的流程图则相对自由一些,可以使用不同的色彩,也可以添加一些生动的图形元素.2.下列关于流程图、程序框图、工序流程图的说法,哪一个是正确的?①流程图只有一个起点和一个终点; ②程序框图只有一个起点和一个终点; ③工序流程图只有一个起点和一个终点.提示:流程图通常有一个起点,一个或多个终点.工序流程图可以有多个终点,而程序框图只有一个终点.故说法②正确.国庆期间,某旅行社组团旅游,每团人数x (人)不超过60(人)时的飞机票单价为 y =⎩⎪⎨⎪⎧900, ,20],850, ,40],800,,60],试画出计算飞机票单价的程序框图. [自主解答] 程序框图如下:若人数大于60人,给出提示:“超员!”,则如何改动程序框图?解:在判断框“――→是”后加一“判断执行框”,其程序框图如图所示:画算法的程序框图时,注意自上而下,分而治之的方法,即为先全局后局部,先整体后细节,先抽象后具体的逐步细化过程.这样得到的程序框图结构清晰,一目了然.1.高二(1)班共有40名学生,每一次考试数学老师总要统计成绩在100分~150分,80分~100分和80分以下的各分数段的人数,请你帮助老师设计一个程序框图,解决上述问题.解:程序框图如图所示.(全国卷Ⅱ)执行如图所示的程序框图,如果输入的a=-1,则输出的S=( )A.2 B.3C.4 D.5[自主解答] 运行程序框图,a=-1,S=0,K=1,K≤6成立;S=0+(-1)×1=-1,a=1,K=2,K≤6成立;S=-1+1×2=1,a=-1,K=3,K≤6成立;S=1+(-1)×3=-2,a=1,K=4,K≤6成立;S=-2+1×4=2,a=-1,K=5,K≤6成立;S=2+(-1)×5=-3,a=1,K=6,K≤6成立;S=-3+1×6=3,a=-1,K=7,K≤6不成立,输出S=3.[答案] B读图的关键是根据程序框图理解算法的功能,进而利用算法读出输出结果.2.执行如图所示的程序框图,则输出S的值为( )A.3 B.-6C.10 D.-15解析:第一次执行程序,得到S=0-12=-1,i=2;第二次执行程序,得到S=-1+22=3,i=3;第三次执行程序,得到S=3-32=-6,i=4;第四次执行程序,得到S=-6+42=10,i=5;第五次执行程序,得到S=10-52=-15,i=6,结束循环,输出的S=-15.答案:D某工厂2017年生产小轿车200万辆,技术革新后预计每年的生产能力比上一年增加5%,问最早哪一年该厂生产的小轿车数量超过300万辆?写出解决该问题的一个算法,并画出相应的程序框图.[巧思] 由题意,2017年的年产量为200万辆,以后每年的年产量都等于前一年的年产量乘以(1+5%),考虑利用循环结构设计算法.[妙解] 算法如下:第一步,令n=0,a=200,r=0.05.第二步,T=ar(计算年增量).第三步:a=a+T(计算年产量).第四步,如果a≤300,那么n=n+1,返回第二步;否则执行第五步.第五步,N=2017+n+1.第六步,输出N.程序框图如图所示.1.下列对程序框图的描述正确的是( ) A .程序框图中的循环可以是无尽的循环B .对一个程序来说,判断框中的条件是唯一的C .任何一个程序框图中都必须有判断框D .任何一个算法都离不开顺序结构解析:顺序结构是最基本、最简单的一种算法结构,其他任何一个算法结构都含有顺序结构.答案:D2.执行如图所示的程序框图,如果输入的x =0,y =1,n =1,则输出x ,y 的值满足( )A .y =2xB .y =3xC .y =4xD .y =5x解析:输入x =0,y =1,n =1,运行第一次,x =0,y =1,不满足x 2+y 2≥36; 运行第二次,x =12,y =2,不满足x 2+y 2≥36;运行第三次,x =32,y =6,满足x 2+y 2≥36,输出x =32,y =6.由于点⎝ ⎛⎭⎪⎫32,6在直线y =4x 上,故选C.答案:C3.(全国卷Ⅲ)执行如图所示的程序框图,为使输出S 的值小于91,则输入的正整数N的最小值为( )A .5B .4C .3D .2解析:执行程序框图,S =0+100=100,M =-10,t =2;S =100-10=90,M =1,t =3,S <91,输出S ,此时,t =3不满足t ≤N ,所以输入的正整数N 的最小值为2.答案:D4.下图为某一函数的求值程序框图,根据框图,如果输出y 的值为3,那么应输入x =( )A .1B .2C .3D .6解析:该程序的作用是计算分段函数y =⎩⎪⎨⎪⎧x -3,x>6,6,2<x≤6,5-x ,x≤2的函数值,由题意,若x >6,则当y =3时,x -3=3,解得x =6,舍去;若x ≤2,则当y =3时,5-x =3,解得x =2,故输入的x 值为2.答案:B5. 按如图所示的程序框图运算,若输入x =7,则输出k 的值是________.解析:依题意,执行题中的程序框图,当输入x =7时,进行第一次循环时,x =15,k =1;x =15≤115, 进行第二次循环时,x =31,k =2;x =31≤115, 进行第三次循环时,x =63,k =3;x =63≤115,进行第四次循环时,x =127,k =4;x =127>115,此时结束循环,输出k =4.答案:46.设计程序框图,求出12×⎝ ⎛⎭⎪⎫-23×34×⎝ ⎛⎭⎪⎫-45×…×99100的值.解:程序框图如图所示.一、选择题1.下列问题中,可以只用顺序结构就能解决的是( )A .求关于x 的方程ax 2+bx +c =0的根B .求函数f (x )=⎩⎪⎨⎪⎧x2,x≥0,x ,x<0的值C .求1+4+7+10+13的值D .时钟的运行解析:A项还应用到条件结构,B项也应用到条件结构,D项应用到循环结构.答案:C2.中国古代有计算多项式值的秦九韶算法,如图是实现该算法的程序框图.执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s=( )B.12A.7D.34C.17解析:第一次运算:s=0×2+2=2,k=1;第二次运算:s=2×2+2=6,k=2;第三次运算:s=6×2+5=17,k=3>2,结束循环,s=17.答案:C 3.执行如图的程序框图,如果输入的x,t均为2,则输出的S=( )B.5A.4D.7C.6解析:执行循环体,第一次循环,M=2,S=5,k=2;第二次循环,M=2,S=7,k=3.故输出的S=7.答案:D 4.(全国卷Ⅰ)如图所示的程序框图是为了求出满足3n-2n>1 000的最小偶数n,那么在◇和▭两个空白框中,可以分别填入( )A .A >1 000和n =n +1B .A >1 000和n =n +2C .A ≤1 000和n =n +1D .A ≤1 000和n =n +2解析:程序框图中A =3n-2n,且判断框内的条件不满足时输出n ,所以判断框中应填入A ≤1 000,由于初始值n =0,要求满足A =3n -2n>1 000的最小偶数,故执行框中应填入n =n +2.答案:D二、填空题5.运行如图所示的程序框图,若输出的y 值的范围是[0,10],则输入的x 的值的范围是________.解析:本题是计算分段函数y =⎩⎪⎨⎪⎧3-x , x<-1,x2, -1≤x≤1,x +1, x>1的值的算法流程.当0≤3-x ≤10时,-7≤x <-1;当0≤x 2≤10时,-1≤x ≤1; 当0≤x +1≤10时,1<x ≤9. 故输入的x 的范围是[-7,9].答案:[-7,9]6.执行如图所示的程序框图,输出的s是________.解析:第一次循环:i=1,s=1;第二次循环:i=2,s=-1;第三次循环:i=3,s=2;第四次循环:i=4,s=-2,此时i=5,执行s=3×(-2)=-6,故输出s=-6.答案:-6 7.执行如图所示的程序框图,如果输入a=1,b=2,则输出的a的值为________.解析:第一步:a=1+2=3;第二步:a=3+2=5;第三步:a=5+2=7;第四步:a=7+2=9>8,满足条件,退出循环,所以输出的a的值为9.答案:9 8.某城市缺水问题比较突出,为了制定节水管理办法,对全市居民某年的月均用水量进行了抽样调查,其中4位居民的月均用水量分别为x1,…,x4(单位:吨).根据如图所示的程序框图,若x1,x2,x3,x4分别为1,1.5,1.5,2,则输出的结果s为________.解析:第一次执行后,s 1=0+1=1,s =1,i =2;第二次执行后,s 1=1+1.5=2.5,s =12×2.5=1.25,i =3;第三次执行后,s 1=2.5+1.5=4,s =43,i =4;第四次执行后,s 1=4+2=6,s =14×6=1.5,i =5>4,结束循环,故输出的结果s 为1.5.答案:1.5 三、解答题9.如图,在边长为4的正方形ABCD 的边上有一点P ,沿着折线BCDA由点B (起点)向点A (终点)运动.设点P 运动的路程为x ,△APB 的面积为y ,求y 与x 之间的函数关系式.并画出程序框图.解:由题意可得y =⎩⎪⎨⎪⎧2x , 0≤x≤4,8, 4<x≤8,-, 8<x≤12.程序框图如图:10.用分期付款的方式购买价格为1 150元的冰箱,如果购买时先付150元,以后每月付50元,加上欠款的利息,若一个月后付第一个月的分期付款,月利率为1%,那么购买冰箱钱全部付清后,实际共付出款额多少元?画出程序框图.解:购买时付款150元,余款1 000元分20次付清,每次的付款数组成一个数列{a n }.a 1=50+(1150-150)×1%=60(元),a 2=50+(1150-150-50)×1%=59.5(元),…a n =50+[1 150-150-(n -1)×50]×1%=60-12(n -1)(n =1,2…,20),∴a 20=60-12×19=50.5(元).总和S =150+60+59.5+…+50.5=1 255(元).程序框图如图:。