1、2 2说明:说明:3 334 44对数组变量的处理只对数组变量的处理只能一个数组元素一个能一个数组元素一个数组元素地处理数组元素地处理例 int a10;printf(“%d”,a);()()必须 for(j=0;j10;j+printf(“%dt”,aj);6 6例题巩固在C 语言中,引用数组元素时,其数组下标的数据类型允许是 。A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式C语言中,数组名代表 A数组全部元素的值B数组首地址C数组第一个元素的值D数组元素的个数 合法的数组定义是Aint a=”string”;Bint a5=0,1,2,3,4,5;Cchar a
2、=”string”;Dchar a=0,1,2,3,4,5;若有定义和语句:char s10;s=a,b,c,d;printf(“%sn”,s);则结果是(以下u代表空格)A输出abcdB输出aC输出abcdu u u u uD编译不通过若有说明:int a10;则对a 数组元素的正确引用是 。A)a10 B)a3.5 C)a(5)D)a10-10以下能对一维数组a 进行正确初始化的语句是 。A)int a10=(0,0,0,0,0);B)int a10=;C)int a=0;D)int a10=”10*1”;对以下说明语句的正确理解是 。int a10=6,7,8,9,10;A)将5 个初值
3、依次赋给a1至a5B)将5 个初值依次赋给a0至a4 C)将5 个初值依次赋给a6至a10D)因为数组长度与初值的个数不相同,所以此语句不正确若已定义数组:若已定义数组:float a8;则下列对数组元;则下列对数组元素引用正确的是素引用正确的是 。A a0=1;B.a8=a0;C.a=1;D.a3.5=1;阅读程序,写出运行结果:main()int i,a10;for(i=0;i0)printf(“%3d”,a-i);if(!(i%5)putchar(n);输入数据 1 2 3 4 5 6 7 8 9 10,则运行结果为:A1 2 3 4 5 6 7 8 9 10B10 9 8 7 6 5
4、4 3 2 1 C1 2 3 4 5 6 7 8 9 10D10 9 8 7 65 4 3 2 1 执行下面的程序段后,变量k中的值为_。int k=3,s2;s0=k;k=s1*10;A)不定值 B)33 C)30 D)10 下列程序执行后的输出结果是_。main()int a,b5;a=0;b0=3;printf(%d,%dn,b0,b1);A)3,0 B)3 0 C)0,3 D)3,不定值 以下程序的输出结果是_。main()int i,p=0,a10=1,5,9,0,-3,8,7,0,1,2;for(i=1;i10;i+)if(aiap)p=i;printf(%d,%dn,ap,p);
5、A)-3,4 B)0,1 C)9,2 D)2,9 有如下说明:int a10=0,1,2,3,4,5,6,7,8,9;则数值不为9的表达式是_。A)a10-1 B)a8 C)a9-0 D)a9-a0 有如下程序 main()int n5=0,0,0,i,k=3;for(i=0;ik;i+)ni=i+1;printf(%dn,nk);该程序的输出结果是_。A)不确定的值 B)4 C)2 D)0 212121 222222232323252525四、对数组进行输入和输出四、对数组进行输入和输出26262727例例6.4 6.4 求若干个数求若干个数(不多于不多于1010个个)的最大数的最大数,最小
6、数最小数#define N 10#include stdio.hvoid main()int I,n;float aN,max,min;printf(input data numbers:);scanf(%d,&n);printf(enter numbers:);for(i=0;in;i+)scanf(%f,&ai);max=min=a0;for(ifor(i=1=1;inimax)max)max=max=aiai;if(aiif(aimin)min)min=min=aiai;printf(nmaxprintf(nmax=%=%f,minf,min=%=%fnfn ,max,minmax,mi
7、n);292929五、应用举例五、应用举例3030301、排序、排序u1、冒泡法排序、冒泡法排序u2、选择法排序、选择法排序2、查找、查找u1、顺序查找、顺序查找u2、折半查找、折半查找313131a0a1a2a3 an-2an-1a0a1a2a3 a-2a-1323232a0a1 a2 a3a4 a5 a6 a7a8a9数组数组amax=a0;for(i=1;imax)max=ai;343434353535 13 21 90 32 -1 13 21 32 90 -1 13 21 32 -1 90a0 a1 a2 a3 a4 第一轮第一轮 21 13 90 32 -1 13 21 90 32
8、-1 4141424242引例:从一组数中,引例:从一组数中,引例:从一组数中,引例:从一组数中,引例:从一组数中,引例:从一组数中,46464647474848484949491、排序、排序u1、冒泡法排序、冒泡法排序u2、选择法排序、选择法排序2、查找、查找u1、顺序查找、顺序查找u2、折半查找、折半查找50505051515152525253535310987654321054545410987654321021378819920564568075555555109876543210213788199205645680755656565858582、折半折半查找查找59595960606
9、0折半查找算法折半查找算法 设待查元素所在区域的下界为设待查元素所在区域的下界为low,上界为,上界为high,则中间位置,则中间位置mid=(low +high)/2 若若mid元素值等于给定值,则查找成功元素值等于给定值,则查找成功;若若mid元素值小于给定值,则在区域元素值小于给定值,则在区域mid+1,high进行折半查找;进行折半查找;若若mid元素值大于给定值,则在区域元素值大于给定值,则在区域low,mid-1内进行折半查找;内进行折半查找;6161610513192137566475808892 0 1 2 3 4 5 6 7 8 9 10 11lowhighlow high主要代码:主要代码:假设已有定义:假设已有定义:int aN,key,i,low,high,mid,find=0;low=0;high=N-1;while(low=high)mid=(low+high)/2;if(key=amid)find=1;break;else if(keyamid)high=mid-1;else low=mid+1;63636464