《《循环结构数组》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《循环结构数组》PPT课件.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【知识点【知识点【知识点【知识点5 5 5 5】switch switch switch switch 语句作为语句作为语句作为语句作为do-while do-while 语句的循环体语句的循环体语句的循环体语句的循环体200930.写出下列程序的输出结果写出下列程序的输出结果#include main()int a=1,2,3,4,i=0;doswitch(ai)case 2:case 3:putchar(A);break;case 4:case 5:putchar(B);case 6:putchar(C);break;default:putchar(X);while(i+0);5 3 1
2、-12书写形式及执行过程书写形式及执行过程语句书写形式语句书写形式流程图流程图for(for(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3 3)循环体;循环体;表达式表达式表达式表达式2 2非非非非0 0?循环体循环体循环体循环体 结束循环,结束循环,结束循环,结束循环,执行下面的执行下面的执行下面的执行下面的语句语句语句语句Y YN N计算计算计算计算 表达式表达式表达式表达式1 1计算计算计算计算 表达式表达式表达式表达式3 3【知识点【知识点【知识点【知识点6 6 6 6】for for 语句语句语句语句3201003 执行下列执行下列C语言程序段,循环体被执行的次数是语言
3、程序段,循环体被执行的次数是 for(i=0,j=0;(j!=4)|(i3);j+,i+)printf(%d,j);A2 B3 C4 D 无限无限【C】200817.已知已知int k,x;则语句;则语句for(k=0,x=0;k=9&x!=10;k+)x+=2;执行后执行后k的值是的值是 。54【知识点【知识点【知识点【知识点7 7 7 7】switch switch switch switch 语句作为语句作为语句作为语句作为for for 语句的循环体语句的循环体语句的循环体语句的循环体201133程序运行时从键盘上分别输入程序运行时从键盘上分别输入5,3,1,2,5,写出下列,写出下列
4、程序的输出结果。程序的输出结果。main()int k,n,s2=0,s3=0,s4=0,s5=0;for(k=1;k6;k+)scanf(%d,&n);switch(n)case 3:s3+=1;break;case 4:s4+=1;break;case 5:s5+=1;break;default:s2+=1;printf(N1_2=%dn,s2);printf(N3=%dn,s3);printf(N4=%dn,s4);printf(N5=%dn,s5);N1_2=2N3=1N4=0N5=25【知识点【知识点【知识点【知识点8 8 8 8】if-else if-else if-else if
5、-else 语句作为语句作为语句作为语句作为for for 语句的循环体语句的循环体语句的循环体语句的循环体201231请写出下列程序的输出结果。请写出下列程序的输出结果。#includemain()int a10=79,64,15,21,57,91,39,180,55,49;int i,x,y;if(a0a1)x=a0;y=a1;else x=a1;y=a0;printf(%d,%d,x,y);for(i=2;i10;i+)if(aiy)y=ai;printf(%d,%dn,x,y);64,79,15,1806【知识点【知识点【知识点【知识点9 9 9 9】循环辅助语句循环辅助语句循环辅助语
6、句循环辅助语句continuecontinuecontinuecontinue和和和和breakbreakbreakbreak1break语句语句用在用在switch语句中,用于跳出语句中,用于跳出switch语句。语句。用在循环体中,用于跳出本层循环(对多层循环而言)。用在循环体中,用于跳出本层循环(对多层循环而言)。2continue语句语句只能用于循环语句的循环体中。用于结束本次循环。只能用于循环语句的循环体中。用于结束本次循环。执行执行continue时,循环体中时,循环体中continue下面的语句都不执下面的语句都不执行,重新进行循环判断以决定是否继续进行下次循环。行,重新进行循环
7、判断以决定是否继续进行下次循环。7201020.下列语言程序运行后的输出结果是下列语言程序运行后的输出结果是 。void main()int i=0,s=0;while(+i)if(i=10)break;if(i%3!=1)continue;s=s+i;printf(s=%3dn,s);s=12201217.C语言中强制退出当前循环可使用的语句是语言中强制退出当前循环可使用的语句是 。break(或或goto)8【知识点【知识点【知识点【知识点10101010】循环的嵌套循环的嵌套循环的嵌套循环的嵌套一个循环体内又包含了另一个完整的循环体,称为循环的嵌一个循环体内又包含了另一个完整的循环体,称
8、为循环的嵌套,也称为多重循环。注意:循环不得交叉,可以并列,也套,也称为多重循环。注意:循环不得交叉,可以并列,也可以内嵌。要搞清循环的层次。可以内嵌。要搞清循环的层次。9201232下列程序的功能是输出高度为下列程序的功能是输出高度为h的三角型。下的三角型。下图是图是h为为4时的输出。请将程序空白处补充完整。时的输出。请将程序空白处补充完整。*#include*main()int k,j,h;printf(Please enter h:);scanf(%d,);for(k=1;k=;k+)for(j=1;j=;j+)printf();for(j=1;j=;j+)printf(*);print
9、f(n);&hhh-k2*k-12*k-110【知识点【知识点【知识点【知识点11111111】三种循环的比较三种循环的比较三种循环的比较三种循环的比较200905.已知已知 int i,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+;=1;s=1;while(i=100)s=s+i;i+;=2;s=1;while(i=100)s=s+i;i+;【C】200906.下列叙述正确的是下列叙述正确的是 语句的循环体至少执行一次语句的循环体至少
10、执行一次-while语句的循环体至少执行一次语句的循环体至少执行一次-while语句的循环体不能是复合语句语句的循环体不能是复合语句语句能够从循环体内转到循环体外语句能够从循环体内转到循环体外【B】11【编程题【编程题【编程题【编程题1 1 1 1】200934.编写程序计算下列多项的值并输出,直到最后一项编写程序计算下列多项的值并输出,直到最后一项的值小于。的值小于。#includemain()int i,k=1;float s=0,f=1.0;i=1;while(f=1e-4)k=k*i;f=1.0/k;s=s+f;i+;printf(%f,s);评分参考:评分参考:定义变量正确得定义变量
11、正确得1分,分,阶乘计算正确得阶乘计算正确得2分,分,累加正确得累加正确得3分,分,循环条件控制正确得循环条件控制正确得2分,分,输出结果正确得输出结果正确得1分。分。12201234编写程序:从键盘输入一个浮点数编写程序:从键盘输入一个浮点数a(a0),利用迭利用迭代公式计算。迭代公式如下,要求:当代公式计算。迭代公式如下,要求:当xi+1-xi的绝对值小于的绝对值小于10-6时迭代结束,输出结果时迭代结束,输出结果xi+1。#include#includemain()float a,x=1,x1=0;scanf(%f,&a);while(fabs(x-x1)=1e-6)x1=x;x=(x1
12、+a/x1)/2;printf(sqrt(%f)-%fn,a,x);【编程题【编程题【编程题【编程题2 2 2 2】13201134编写编写C语言程序计算数列语言程序计算数列0,1,1,2,4,7,中的第中的第15个数并输出。提示:个数并输出。提示:x0=0,x1=1,x2=1,xi=xi-1+xi-2+xi-3(i2)main()int x0=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(%dn,x2);【编程题【编程题【编程题【编程题3 3 3 3】评分标准:定义正确
13、评分标准:定义正确1分,赋初值正确分,赋初值正确2分,分,循环计算正确循环计算正确4分,输出正确分,输出正确2分。分。14第三章第三章 数组数组v第一节第一节 一维数组一维数组v第二节第二节 二维数组二维数组v第三节第三节 字符数组和字符串字符数组和字符串15v一、一维数组的定义一、一维数组的定义v1定义形式定义形式 类型说明符类型说明符 数组名数组名常量表达式常量表达式;例如:例如:int a3;float x5;char ch7;数组元素也称下标变量。数组元素也称下标变量。【知识点【知识点【知识点【知识点1 1 1 1】一维数组的定义、初始化及数组元素引用一维数组的定义、初始化及数组元素引
14、用一维数组的定义、初始化及数组元素引用一维数组的定义、初始化及数组元素引用16二、二、二、二、一维数组的初始化一维数组的初始化(1)定义的同时,初始化)定义的同时,初始化方法方法示例示例(1 1)在定义数组的同时,对数组)在定义数组的同时,对数组进行初始化。进行初始化。int a5=1,2,3,4,5;int a5=1,2,3,4,5;(2 2)若对所有元素赋初值,则数)若对所有元素赋初值,则数组长度可省略。组长度可省略。int a=1,2,3,4,5;int a=1,2,3,4,5;(3 3)如果只对数组的前若干个元)如果只对数组的前若干个元素赋初值,那么未赋初值的元素其素赋初值,那么未赋初
15、值的元素其初值为初值为0 0。int a5=1,2,3;int a5=1,2,3;(4 4)要想让一个数组中全部元素)要想让一个数组中全部元素为为0 0,可以写成:,可以写成:int a5=0,0,0,0,0;int a5=0,0,0,0,0;或或int a5=0;int a5=0;17(2)定义后,再赋值。)定义后,再赋值。main()int a5;a0=2;a1=a0;scanf(%d,&a2);18三、一维数组元素的引用:三、一维数组元素的引用:三、一维数组元素的引用:三、一维数组元素的引用:引用原则:先定义,后引用;引用原则:先定义,后引用;逐个引用,不能一次引用整个数组。逐个引用,不
16、能一次引用整个数组。1.引用形式:引用形式:数组名数组名 下标下标 例如:例如:a2,a1+2,ai+,ai+j;都是合法的数组元素引用。都是合法的数组元素引用。注意注意注意注意:数组元素一经引用就和变量一样使用。:数组元素一经引用就和变量一样使用。19201005 给数组赋初值给数组赋初值错误错误的语句是的语句是Aint dd=0;Bint bb5=1,3,5;Cint cc3=5,4,3,2;Dint aa=1,2,3,4,5;【C】200818已知已知int a10=1,2,3,5,6;则;则aa1=。320200832下面程序的功能是:将有下面程序的功能是:将有l5个数据元素的整型数个
17、数据元素的整型数组的最大值与末元素对调后输出,填空完成程序。组的最大值与末元素对调后输出,填空完成程序。main()int x15,max,n,i;for(i=0;i15;i+)scanf(%d,xi);max=x0;n=0;for(i=1;i15;i+)if()max=xi;n=i:xn=x14;for(i=0;i15;i+)printf(%d,xi);maxmax)(2分分)x14=max (2分分)【知识点【知识点【知识点【知识点2 2 2 2】一维数组的应用(最大值、最小值等)一维数组的应用(最大值、最小值等)一维数组的应用(最大值、最小值等)一维数组的应用(最大值、最小值等)21v一
18、、二维数组的定义一、二维数组的定义定义形式定义形式 类型说明符类型说明符 数组名数组名常量表达式常量表达式1 常量表达式常量表达式2;int a23;int b32;【知识点【知识点【知识点【知识点3 3 3 3】二维数组的定义、初始化及元素引用二维数组的定义、初始化及元素引用二维数组的定义、初始化及元素引用二维数组的定义、初始化及元素引用22二、二维数组的初始化二、二维数组的初始化二、二维数组的初始化二、二维数组的初始化1.1.分行赋值分行赋值方法方法示例示例分分行行赋赋值值全部元素初始化全部元素初始化int a32=1,2,3,4,5,6;int a32=1,2,3,4,5,6;部分元素初
19、始化部分元素初始化int a32=1,2,3;int a32=1,2,3;第一维长度省略第一维长度省略初始化初始化int a 2=1,2,3;int a 2=1,2,3;注意:第二维长度不能省略!注意:第二维长度不能省略!232.2.按行连续赋值按行连续赋值方法方法示例示例按按行行连连续续赋赋值值全部元素初始化全部元素初始化int a32=1,2,3,4,5,6;int a32=1,2,3,4,5,6;部分元素初始化部分元素初始化int a32=1,2,3,4;int a32=1,2,3,4;第一维长度省略第一维长度省略初始化初始化int a 2=1,2,3,4,5,6;int a 2=1,2
20、,3,4,5,6;注意:第二维长度不能省略!注意:第二维长度不能省略!24三、二维数组元素的引用三、二维数组元素的引用二维数组元素的表示形式:二维数组元素的表示形式:数组名数组名下标下标1下标下标2main()int x34;x01=1;x02=x01+2;scanf(%d,&x03);printf(%d,x03);25201017.已知已知int a3=2,4,6,8,10;,;,数组元素数组元素a11的值是的值是 。6201104已知已知int a45;则对数组则对数组a的元素引用正确的是的元素引用正确的是Aa04 Ba45 Ca25 D a44【A A】201117.已知已知float
21、m105;则数组则数组m允许使用的允许使用的最后一个元素是最后一个元素是 。M94M9426输入输入:for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&xij);【知识点【知识点【知识点【知识点4 4 4 4】二维数组的输入与输出二维数组的输入与输出二维数组的输入与输出二维数组的输入与输出输出输出:按行输出,形式固定。:按行输出,形式固定。for(i=0;i3;i+)for(j=0;j4;j+)printf(%4d,xij);printf(n);27200931.写出下列程序的输出结果写出下列程序的输出结果#include main()int i,j,a34=1,2,
22、3,0,2,1,5,0,7,6,5,0;for(i=0;i3;i+)for(j=0;j3;j+)ai3+=aij;for(i=0;i3;i+)for(j=0;j4;j+)printf(%3d,aij);printf(n);1 2 3 6 2 1 5 8 7 6 5 1828字符数组字符数组字符串字符串赋初值时,字符个数赋初值时,字符个数=字符数组长度字符数组长度如:如:1)char d5=a,b,c,d,e;赋初值时,字符个数赋初值时,字符个数字符数组长度字符数组长度如:如:char d6=abcde;或或char d6=abcde;输入时用:输入时用:1)for(i=0;i5;i+)scan
23、f(%c,&di);2)for(i=0;i5;i+)di)=getchar();输入时用:输入时用:1)scanf(%s,d);2)gets(d);输出时用:输出时用:1)for(i=0;i5;i+)printf(%c,di);2)for(i=0;i5;i+)putchar(di);输出时用:输出时用:1)printf(%s,d);2)puts(d);【知识点【知识点【知识点【知识点5 5 5 5】字符数组与字符串字符数组与字符串字符数组与字符串字符数组与字符串29200908.下列语句正确的是下列语句正确的是 A.char s5;s=abc ;B.char s5=abcxyz ;C.char
24、 s=12345 ;D.char s5=1,2,3,4,5,0;【C】30(1)测试字符串长度函数)测试字符串长度函数strlen()strlen是是STRing LENgth的缩写。的缩写。格式:格式:strlen(字符数组名字符数组名);功能:字符数组所表示的字符串的的长度,并作为功能:字符数组所表示的字符串的的长度,并作为该函数的返回值返回。该函数的返回值返回。【知识点【知识点【知识点【知识点6 6 6 6】字符串函数字符串函数字符串函数字符串函数(2)字符串连接函数)字符串连接函数strcat()()strcat是是STRing CATenate的缩写。的缩写。格式:格式:strcat
25、(字符数组字符数组1,字符数组字符数组2);功能:把字符数组功能:把字符数组2所表示的串连到字符数组所表示的串连到字符数组1所表示的串的后面,并删去串所表示的串的后面,并删去串1后的结束标记后的结束标记“0”。31(3)字符串比较函数)字符串比较函数strcmp()()strcmp是是STRing CoMPare的缩写。的缩写。格式:格式:strcmp(字符数组字符数组1,字符数组字符数组2);(4)字符串复制函数)字符串复制函数strcpy()()strcpy是是STRing CoPY的缩写。的缩写。格式:格式:strcpy(字符数组字符数组1,字符串字符串2);功能:将字符串功能:将字符串
26、2复制到字符数组复制到字符数组1中去。中去。32200804已知已知char sr20;int i;从键盘向数组;从键盘向数组sr输入一字符输入一字符串的正确语句是串的正确语句是Agets(sr);Bgets(sr20);Cfor(i=0;i20;i+)scanf(sr);Dfor(i=0;i20;i+)gets(&sr);【A】200907.已知已知char str130,str2=student_no;,执行语句;,执行语句strcpy(str1,str2);后后,strlen(str1)的值是的值是【B】201219已知已知char s120=Good,*s2=Luck!;函数函数str
27、len(strcat(s1,s2)的值是的值是 。933201234编写程序:从键盘输入一个浮点数编写程序:从键盘输入一个浮点数a(a0),利用迭利用迭代公式计算。迭代公式如下,要求:当代公式计算。迭代公式如下,要求:当xi+1-xi的绝对值小于的绝对值小于10-6时迭代结束,输出结果时迭代结束,输出结果xi+1。#include#includemain()float a,x1000;int i=0;scanf(%f,&a);x0=0;x1=1;while(fabs(xi+1-xi)=1e-6)i+;xi+1=(xi+a/xi)/2.0;printf(sqrt(%f)-%fn,a,xi+1);
28、【编程题【编程题【编程题【编程题1 1 1 1】34201134编写编写C语言程序计算数列语言程序计算数列0,1,1,2,4,7,中的第中的第15个数并输出。提示:个数并输出。提示:x0=0,x1=1,x2=1,xi=xi-1+xi-2+xi-3(i2)main()int x15,i;x0=0;x1=1;x2=1;for(i=3;i15;i+)xi=xi-1+xi-2+xi-3;printf(%dn,x14);【编程题【编程题【编程题【编程题2 2 2 2】评分标准:定义正确评分标准:定义正确1分,赋初值正确分,赋初值正确2分,分,循环计算正确循环计算正确4分,输出正确分,输出正确2分。分。35200834编写编写c语言程序实现:从键盘上输入语言程序实现:从键盘上输入10个学生某门个学生某门课的成绩,计算平均成绩,统计并输出所有高于平均分的学课的成绩,计算平均成绩,统计并输出所有高于平均分的学生成绩及人数。生成绩及人数。main()int i,n=0;float x10,av=0;for(i=0;i10;i+)scanf(%f,&xi);av=av+xi;av=av;for(i=0;iav)n+;n,xi);printf(%dn,n);【编程题【编程题【编程题【编程题3 3 3 3】36