1【知识点5】switch语句作为do-while语句的循环体200930.写出下列程序的输出结果#includestdio.hmain(){inta[]={1,2,3,4},i=0;do{switch(a[i]){case2:case3:putchar('A');break;case4:case5:putchar('B');case6:putchar('C');break;default:putchar('X');}}while(i++3);}XAABC奥尿垫培保漏博恒秆囊顾彻肢倪姻庚商壳脉都潭施择术汁札蔡谜汗裕隔协循环结构数组循环结构数组2201030.写出下列C语言程序的运行结果。main(){inta=7;do{switch(a%2){case1:a--;break;case0:a++;break;}a--;printf(%5d\n,a);}while(a0);}531-1邢邻舔辜径孝稀惊鳞随椎员钻档篆差劣蝗捆珐盂娠释胃皂琴阀底呛审廷坏循环结构数组循环结构数组3书写形式及执行过程语句书写形式流程图for(表达式1;表达式2;表达式3){循环体;}表达式2非0?循环体结束循环,执行下面的语句YN计算表达式1计算表达式3【知识点6】for语句洱歉往四邻涯权男掺疾仆陕棱询两爵角肃右柠荡蹲圭窒同扬霜梳降绚从窄循环结构数组循环结构数组4201003.执行下列C语言程序段,循环体被执行的次数是for(i=0,j=0;(j!=4)||(i3);j++,i++)printf(%d,j);A.2B.3C.4D.无限【C】200817.已知intk,x;则语句for(k=0,x=0;k=9&&x!=10;k++)x+=2;执行后k的值是。5国渤筐纫韭擦鸡递塘澜靡返汀竭宋屹氦胶岁歹慕铝笨炕吵艰递抒物屡您阳循环结构数组循环结构数组5【知识点7】switch语句作为for语句的循环体201133.程序运行时从键盘上分别输入5,3,1,2,5,写出下列程序的输出结果。main(){intk,n,s2=0,s3=0,s4=0,s5=0;for(k=1;k6;k++){scanf(%d,&n);switch(n){case3:s3+=1;break;case4:s4+=1;break;case5:s5+=1;break;default:s2+=1;}}printf(N1_2=%d\n,s2);printf(N3=%d\n,s3);printf(N4=%d\n,s4);printf(N5=%d\n,s5);}N1_2=2N3=1N4=0N5=2锰彻恬争剐习拆啡丧俏藩论寇抿藉空仑炎公贫好袍盐束剩翁久唐资萤鲸刃循环结构数组循环结构数组6【知识点8】if-else语句作为for语句的循环体201231.请写出下列程序的输出结果。#includestdio.hmain(){inta[10]={79,64,15,21,57,91,39,180,55,49};inti,x,y;if(a[0]a[1]){x=a[0];y=a[1];}else{x=a[1];y=a[0];}printf(%d,%d,,x,y);for(i=2;i10;i++)if(a[i]x)x=a[i];elseif(a[i]y)y=a[i];printf(%d,%d\n,x,y);}64,79,15,180捣掏渍费昧鬼起熙子附主珐邮氰固野危觅伪咋逊郑吊旬它措揖诺槽窃吧唬循环结构数组循环结构数组7【知识点9】循环辅助语句continue和break1.break语句①用在switch语句中,用于跳出switch语句。②用在循环体中,用于跳出本层循环(对多层循环而言)。2.continue语句①只能用于循环语句的循环体中。用于结束本次循环。②执行continue时,循环体中continue下面的语句都不执行,重新进行循环判断以决定是否继续进行下次循环。忙苍景惦莎洛寨铸仁补晶际煤暖悄睬柱脓鸭弦芽朵鸯乎授照荆饲污博三父循环结构数组循环结构数组8201020.下列语言程序运行后的输出结果是。voidmain(){inti=0,s=0;while(++i){if(i==10)break;if(i%3!=1)continue;s=s+i;}printf(s=%3d\n,s);}s=12201217.C语言中强制退出当前循环可使用的语句是。break(或goto)肠稀若悼视溃宰轻稗命料兵涵嫉贯则歹汝肮婚纶灶容帽甭雏梅匈榜臀趋滁循环结构数组循环结构数组9【知识点10】循环的嵌套一个循环体内又包含了另一个完整的循环体,称为循环的嵌套,也称为多重循环。注意:循环不得交叉,可以并列,也可以内嵌。要搞清循环的层次。稍寓朱舒句蔑谴价森敷腮矿尝伪碾氛镍甫臀付肆氰忘绊努沂偷踞伐赠毕缸循环结构数组循环结构数组10201232.下列程序的功能是输出高度为h的三角型。下图是h为4时的输出。请将程序空白处补充完整。*********#includestdio.h*******main(){intk,j,h;printf(Pleaseenterh:);scanf(%d,①);for(k=1;k=②;k++){for(j=1;j=③;j++)printf();for(j=1;j=④;j++)printf(*);printf(\n);}}&hhh-k2*k-1霹歼案盈喳饭节惮柞善甄薪埔余坪烦储闺事谢糕砰鲍街造诈翼申储次镜擒循环结构数组循环结构数组11【知识点11】三种循环的比较200905.已知inti,s;,下列不能实现计算“从1到100求和”的程序段的是A.for(i=1,s=0;i=100;i++)s+=i;B.s=0;for(i=1;i=100;)s=s+i++;C.i=1;s=1;while(i=100){s=s+i;i++;}D.i=2;s=1;while(i=100){s=s+i;i++;}【C】200906.下列叙述正确的是A.while语句的循环体至少执行一次B.do-while语句的循环体至少执行一次C.do-while语句的循环体不能是复合语句D.continue语句能够从循环体内转到循环体外【B】淆道坷螺盗贩弗核肪午僵浇咎瘦嚎浴歹抓帧纷浇昭汕僻洼沪吗尖曙主薯款循环结构数组循环结构数组12【编程题1】200934.编写程序计算下列多项的值并输出,直到最后一项的值小于0.0001。1111112!3!4!!sn#includestdio.hmain(){inti,k=1;floats=0,f=1.0;i=1;while(f=1e-4){k=k*i;f=1.0/k;s=s+f;i++;}printf(%f,s);}评分参考:定义变量正确得1分,阶乘计算正确得2分,累加正确得3分,循环条件控制正确得2分,输出结果正确得1分。帘稻泊貌挡溃淀墅淤于榜乒然拉焙杂袁程焊坝东院梁骑二唉躁凶润剃辛雕循环结构数组循环结构数组13201234.编写程序:从键盘输入一个浮点数a(a≥0),利用迭代公式计算。迭代公式如下,要求:当xi+1-xi的绝对值小于10-6时迭代结束,输出结果xi+1。0111()(0,1,2,...)2iiixaxxix#includestdio.h#includemath.hmain(){floata,x=1,x1=0;scanf(%f,&a);while(fabs(x-x1)=1e-6){x1=x;x=(x1+a/x1)/2;}printf(sqrt(%f)-%f\n,a,x);}【编程题2】后储痛溯敲瘤占芽椭芝柜拳夹移哦晚枝罢对贷寂略紧煽蹦卜京惹糊硕炯衬循环结构数组循环结构数组14201134.编写C语言程序计算数列0,1,1,2,4,7,……中的第15个数并输出。提示:x0=0,x1=1,x2=1,xi=xi-1+xi-2+xi-3(i2)main(){intx0=0,x1=1,x2=1,i;x0=0;x1=x2=1;for(i=1;i=4;i++){x0=x0+x1+x2;x1=x0+x1+x2;x2=x0+x1+x2;}printf(%d\n,x2);}【编程题3】评分标准:定义正确1分,赋初值正确2分,循环计算正确4分,输出正确2分。绍阵缓侗垄婉困猩乙桨段馏沦槐因取花遭珠遍阁温界安犯撅狰腐阀泪住假循环结构数组循环结构数组15第三章数组第一节一维数组第二节二维数组第三节字符数组和字符串梨凭丢茅弥旨台赔谦鬃拈猜予聂搅洗票遮丰报魏侥昨莲佩瞅扳耻说疗琴铜循环结构数组循环结构数组16一、一维数组的定义1.定义形式类型说明符数组名[常量表达式];例如:inta[3];floatx[5];charch[7];数组元素也称下标变量。【知识点1】一维数组的定义、初始化及数组元素引用乡逃钓啮出讯玲钧脚桔锅夫尘整管冒糯嵌孵舟赋溪因庚淹泊含羽岂骂滓适循环结构数组循环结构数组17二、一维数组的初始化(1)定义的同时,初始化方法示例(1)在定义数组的同时,对数组进行初始化。inta[5]={1,2,3,4,5};(2)若对所有元素赋初值,则数组长度可省略。inta[]={1,2,3,4,5};(3)如果只对数组的前若干个元素赋初值,那么未赋初值的元素其初值为0。inta[5]={1,2,3};(4)要想让一个数组中全部元素为0,可以写成:inta[5]={0,0,0,0,0};或inta[5]={0};拎说钞紊厘捆胆按殆撮坪云界世廉赊帕时俘逾梯弦填涛迅蹋刘影渭恿率赘循环结构数组循环结构数组18(2)定义后,再赋值。main(){inta[5];a[0]=2;a[1]=a[0];scanf(%d,&a[2]);}宠烹里鲍比谗门讼辈贸邻杠卵吏吃负室龙击并岗住邀嗣桥蓟蛛烟捧锦喇跋循环结构数组循环结构数组19三、一维数组元素的引用:引用原则:先定义,后引用;逐个引用,不能一次引用整个数组。1.引用形式:数组名[下标]例如:a[2],a[1+2],a[i++],a[i+j];都是合法的数组元素引用。注意:数组元素一经引用就和变量一样使用。冯胡甄番赐猪纱舷薛汇郭简她榔潜颧俏啸体鲤凡段校牙筹猜揖汗门机诫霹循环结构数组循环结构数组20201005.给数组赋初值错误的语句是A.intdd[]={0};B.intbb[5]={1,3,5};C.intcc[3]={5,4,3,2};D.intaa[]={1,2,3,4,5};【C】200818.已知inta[10]={1,2,3,5,6};则a[a[1]]=。3阴府跨溪墒摩晤厕锭肩锤富拐凭镣钠啥撒嗅樟柄倘铣棉桔泻秒汹所责肺拾循环结构数组循环结构数组21200832.下面程序的功能是:将有l5个数据元素的整型数组的最大值与末元素对调后输出,填空完成程序。main(){intx[15],max,n,i;for(i=0;i15;i++)scanf(%d,&x[i]);max=x[0];n=0;for(i=1;i15;i++)if(①){max=x[i];n=i:}x[n]=x[14];②;for(i=0;i15;i++)printf(%d,x[i]);}maxx[i](或x[i]max)(2分)x[14]=max(2分)【知识点2】一维数组的应用(最大值、最小值等)斋涝府彝碟贪烹盲蝉钻识择馈柜为墩徽冕嚣虏卫涤尺初麦渭娘免冈党轧蹋循环结构数组循环结构数组22一、二维数组的定义定义形式类型说明符数组名[常量表达式1][常量表达式2];inta[2][3];intb[3][2];【知识点3】二维数组的定义、初始化及元素引用挟饮混涵岭怖趁湘岳眶津餐搽路瞎宏涩往鞋沁奢雁席蕊纹贺琼跳撑孕舰讲循环结构数组循环结构数组23二、二维数组的初始化1.分行赋值方法示例分行赋值全部元素初始化inta[3][2]={{1,2},{3,4},{5,6}};部分元素初始化inta[3][2]={{1,2},{3}};第一维长度省略初始化inta[][2]={{1,2},{3}};注意:第二维长度不能