《最新循环结构数组PPT课件》由会员分享,可在线阅读,更多相关《最新循环结构数组PPT课件(37页珍藏版)》请在金锄头文库上搜索。
1、循环结构数组201030写出下列写出下列C语言程序的运行结果。语言程序的运行结果。main()int a=7; do switch(a%2) case 1:a- -;break; case 0:a+;break; a- -; printf(%5dn,a); while(a0); 5 3 1 -12【知识点【知识点【知识点【知识点10101010】 循环的嵌套循环的嵌套循环的嵌套循环的嵌套一个循环体内又包含了另一个完整的循环体,称为循环的嵌一个循环体内又包含了另一个完整的循环体,称为循环的嵌套,也称为多重循环。注意:循环不得交叉,可以并列,也套,也称为多重循环。注意:循环不得交叉,可以并列,也可
2、以内嵌。要搞清循环的层次。可以内嵌。要搞清循环的层次。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(* *); printf(n); &hhh-k2*k-12*k-110【知识点【知识点
3、【知识点【知识点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+;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-w
4、hile语句的循环体至少执行一次语句的循环体至少执行一次C.do-while语句的循环体不能是复合语句语句的循环体不能是复合语句D.continue语句能够从循环体内转到循环体外语句能够从循环体内转到循环体外【 B 】11【编程题【编程题【编程题【编程题1 1 1 1】200934.编写程序计算下列多项的值并输出,直到最后一项编写程序计算下列多项的值并输出,直到最后一项的值小于的值小于0.0001。#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(%
5、f,s);评分参考:评分参考:定义变量正确得定义变量正确得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); whi
6、le(fabs(x-x1)=1e-6) x1=x; x=(x1+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(%d
7、n,x2);【编程题【编程题【编程题【编程题3 3 3 3】评分标准:定义正确评分标准:定义正确1分,赋初值正确分,赋初值正确2分,分, 循环计算正确循环计算正确4分,输出正确分,输出正确2分。分。14第三章第三章 数组数组v第一节第一节 一维数组一维数组v第二节第二节 二维数组二维数组v第三节第三节 字符数组和字符串字符数组和字符串15v一、一维数组的定义一、一维数组的定义v1定义形式定义形式 类型说明符类型说明符 数组名数组名常量表达式常量表达式 ;例如:例如:int a3; float x5; char ch7; 数组元素也称下标变量。数组元素也称下标变量。【知识点【知识点【知识点【知识
8、点1 1 1 1】一维数组的定义、初始化及数组元素引用一维数组的定义、初始化及数组元素引用一维数组的定义、初始化及数组元素引用一维数组的定义、初始化及数组元素引用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)如果只对
9、数组的前若干个元)如果只对数组的前若干个元素赋初值,那么未赋初值的元素其素赋初值,那么未赋初值的元素其初值为初值为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三、一维数组元素的引用:三、一维数组元素的引用:三、一维数组元素的引用:三、一维
10、数组元素的引用: 引用原则:先定义,后引用;引用原则:先定义,后引用; 逐个引用,不能一次引用整个数组。逐个引用,不能一次引用整个数组。 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
11、a10=1,2,3,5,6;则;则aa1= 。320200832下面程序的功能是:将有下面程序的功能是:将有l5个数据元素的整型数个数据元素的整型数组的最大值与末元素对调后输出,填空完成程序。组的最大值与末元素对调后输出,填空完成程序。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分分)【知识点【知识点【知识点【知识点
12、2 2 2 2】 一维数组的应用(最大值、最小值等)一维数组的应用(最大值、最小值等)一维数组的应用(最大值、最小值等)一维数组的应用(最大值、最小值等)21v一、二维数组的定义一、二维数组的定义定义形式定义形式 类型说明符类型说明符 数组名数组名常量表达式常量表达式1 常量表达式常量表达式2; int a23; int b32;【知识点【知识点【知识点【知识点3 3 3 3】 二维数组的定义、初始化及元素引用二维数组的定义、初始化及元素引用二维数组的定义、初始化及元素引用二维数组的定义、初始化及元素引用22二、二维数组的初始化二、二维数组的初始化二、二维数组的初始化二、二维数组的初始化1.
13、1.分行赋值分行赋值方法方法示例示例分分行行赋赋值值全部元素初始化全部元素初始化int a32 =1,2,3,4,5,6;int a32 =1,2,3,4,5,6;部分元素初始化部分元素初始化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;部分元素初始化部
14、分元素初始化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,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
15、的值是的值是 。6201104已知已知int a45;则对数组则对数组a的元素引用正确的是的元素引用正确的是Aa04 Ba45 Ca25 D a44【A A】201117.已知已知float 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+)
16、 for(j=0;j4;j+) printf(%4d,xij); printf(n); 27200931.写出下列程序的输出结果写出下列程序的输出结果#include main() int i,j,a34=1,2,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字符数组字符数组字符串字符串赋初值时,字符个数赋初值时,字符个数=字符数组长度字符数组长度如:如
17、: 1)char d5=a,b,c,d,e; 赋初值时,字符个数赋初值时,字符个数字符数组长度字符数组长度如:如: char d6=abcde; 或或char d6=abcde;输入时用:输入时用:1)for(i=0;i5;i+) scanf(%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
18、(d);【知识点【知识点【知识点【知识点5 5 5 5】 字符数组与字符串字符数组与字符串字符数组与字符串字符数组与字符串29200908.下列语句正确的是下列语句正确的是 A. char s5;s= abc ; B. char s5= abcxyz ;C. char s = 12345 ; D. char s5= 1,2,3,4,5,0;【 C 】30(1)测试字符串长度函数)测试字符串长度函数strlen() strlen是是STRing LENgth的缩写。的缩写。格式:格式:strlen (字符数组名字符数组名);功能:字符数组所表示的字符串的的长度,并作为功能:字符数组所表示的字符串
19、的的长度,并作为该函数的返回值返回。该函数的返回值返回。【知识点【知识点【知识点【知识点6 6 6 6】 字符串函数字符串函数字符串函数字符串函数(2)字符串连接函数)字符串连接函数strcat()() strcat是是STRing CATenate的缩写。的缩写。格式:格式:strcat (字符数组字符数组1,字符数组字符数组2);功能:把字符数组功能:把字符数组2所表示的串连到字符数组所表示的串连到字符数组1所表示的串的后面,并删去串所表示的串的后面,并删去串1后的结束标记后的结束标记“0”。31(3)字符串比较函数)字符串比较函数strcmp()() strcmp是是STRing CoM
20、Pare的缩写。的缩写。格式:格式:strcmp (字符数组字符数组1,字符数组字符数组2);(4)字符串复制函数)字符串复制函数strcpy()() strcpy是是STRing CoPY的缩写。的缩写。格式:格式:strcpy (字符数组字符数组1,字符串字符串2);功能:将字符串功能:将字符串2复制到字符数组复制到字符数组1中去。中去。32200804已知已知char sr20;int i;从键盘向数组;从键盘向数组sr输入一字符输入一字符串的正确语句是串的正确语句是Agets(sr); Bgets(sr20);Cfor(i=0;i20;i+) scanf(sr); Dfor(i=0;i
21、20;i+) gets(&sr);【 A 】200907.已知已知char str130,str2=student_no;,执行语句;,执行语句strcpy(str1,str2);后后,strlen(str1)的值是的值是A.9 B.10 C.29 D.30【 B 】201219已知已知char s120= Good,* *s2=Luck!; 函数函数strlen(strcat(s1,s2)的值是的值是 。933201234编写程序:从键盘输入一个浮点数编写程序:从键盘输入一个浮点数a(a0),利用迭利用迭代公式计算。迭代公式如下,要求:当代公式计算。迭代公式如下,要求:当xi+1-xi的绝对
22、值小于的绝对值小于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);【编程题【编程题【编程题【编程题1 1 1 1】34201134编写编写C语言程序计算数列语言程序计算数列0,1,1,2,4,7,中的第中的第15个数并输出。提示:个数并输出。提示:x0=0,x1=1,x2=1,xi=xi
23、-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 = avl0.0; for(i=0;iav) n+;printf(%7.2fn,xi); printf(%dn,n);【编程题【编程题【编程题【编程题3 3 3 3】36