昆工c语言题库,昆工C语言-C语言第三讲.ppt
昆工C语言-C语言第三讲.ppt
C语言第三讲,C语言第三讲,授课教师杨瑾 ,循环结构-while语句,格式 while(表达式) 循环体语句 注意 1. while是C语言的关键字。 2.表达式是C语言中任意合法的表达式,作用是控制循环。 while-3 whilem10 whilem whileab 思考什么情况下表达式为真什么是为假 3.while语句也只能控制紧跟它的一条语句。若需要控制多条语句,必须用括起,构成一条复合语句。,int i1,sum0; whilei10 sumsumi; i; ,小括号及表 达式不能省,循环结构-while语句,格式 while(表达式) 循环体语句 注意 4. 循环体中的可以由一条空语句构成,表示循环体部分不做任何的操作。如 while表达式 ;/*;是循环体,它是一条空语句*/ 5.执行过程 1计算圆括号中表达式的值。若为非0则执行循环体语句,若为0则跳出循环。 2执行完循环体语句后重复过程(1)。,int i1,sum0; whilei10 sumsumi; i; ,小括号及表 达式不能省,循环结构-while语句,格式 while(表达式) 循环体语句 注意 循环体中如果只有一条语句,可以不加花括号。如 分析上面程序段 通常应该在循环体内改变表达式中有关变量的值,使表达式最终为零。否则会出现死循环。,int i1,sum0; whilei10 sumsumi;,小括号及表 达式不能省,若表达式一开始为假,则循环体一次也不执行。如 int i11;分析上面程序段,练习巩固, 习题集P30 _1 分析 1x2,x的值真,x1, 2x1,x的值真,x0 3x0,x的值假,x-1,循环执行结束 4输出x的值为-1练习巩固, 习题集P23 _1 1N10,n7为真,nn-1后n为9,输出n的值9 2N9,n7为真,nn-1后n为8,输出n的值8 3N8,n7为真,nn-1后n为7,输出n的值7 4N7,n7为假,结束循环。B,练习巩固, 习题集P23 _3 1x0,y5,z3,z0 x0 x0 x0 x4值假,结束循环。 5输出x,y,z的值3,2,0A,循环结构- do-while语句,格式 do 循环体 while表达式; 注意 1. do是C语言的关键字,和while一起搭配使用。 2. do;while(表达式);/*;是循环体,它是一条空语句*/。 3. 执行过程 1执行循环体语句。 2计算圆括号中表达式的值。若为非0则重复(1),否则跳出循环。,int i1,sum0; do sumsumi; i; whilei10 ;,小括号及表达式不能省,分号必不可少,循环结构-do-while语句,格式 do 循环体 while表达式; 注意 4. do-while循环的重要区别循环体至少要执行一次。,int i1,sum0; do sumsumi; i; whilei10 ;,小括号及表达式不能省,分号必不可少,练习巩固, 习题集P30 _2 1 sum1,i1,判断i5为真 2 sum2,i2,判断i5为真 3 sum4,i3,判断i5为真 4 sum7,i4,判断i5为真 5 sum11,i5,判断i5为假,结束循环。 6 输出sum的值为11。练习巩固, 习题集P24 _5 1s1,a-1,判断an,因此an一定成立。继续执行。 2s2,a-3,判断an,此时s的值为2,那么肯定an的值为假,也就是an为真,因为a此时为-3,所以n的值为-3。结束循环。循环结构- for语句,格式 for(表达式1;表达式2;表达式3) 循环体 注意 1. for是C语言的关键字。 2. 圆括号内三个表达式, 以分号”;”隔开; 3. 循环体可以是空语句,也可以是一条语句,还可以是复合语句;,fori1;i10;i sumsumi; i; ,循环结构- for语句,格式 for(表达式1;表达式2;表达式3) 循环体 注意 4. 执行过程 for(表达式1;表达式2;表达式3) 循环体 ,fori1;i10;i sumsumi; i; ,循环结构-for语句,格式 for(表达式1;表达式2;表达式3) 循环体 注意,fori1;i10;i sumsumi; i; ,int i1,sum0; whilei10 sumsumi; i; ,for循环表达式1可以缺省。 表达式2可以缺省; 表达式3可以缺省; for 分号不能缺省。,循环结构-for语句,main int i; fori1;i100;i ifi40 continue; printf”3d”,i; ,练习把1-100之间能被4整除的数输出.,练习巩固, 习题集P25 _9 1 i1,i10为真,s2,i3 2 i10为真,s24,i5 3 i10为真,s246,i7 4 i10为真,s2468,i9 5 i10为真,s246810,i11 6 i10为假,跳出循环。 7 s246810刚好是自然数110中的偶数之和。练习巩固, 习题集P31 _4 1 t1,i0为真,t5,i4 2 i0为真,t20,i3 3 i0为真,t60,i2 4 i0为真,t120,i1 5 i0为真,t120,i0 6 i0为真,t0,i-1 7 i0为假,结束循环 8 输出t的值为0数组-一维数组,一维数组的定义格式 类型名 数组名常量表达式; int a5; 注意 1. 数组名属于用户标识符,必须满足用户标识符的命名规则。 如int do5; float 3com10; char a-b5; 都是非法的定义 2.定义数组时,方括号必不可少,方括号中的表达式必须是正的整型常量表达式。不能含有变量。 如int a5.3; int a-4; int an; int N5; int aN; 都是非法的定义 3.同一数组元素在内存中所占的存储空间是依次连续的。数组下标是从0开始,到数组长度减1结束。,a0 a1 a2 a3 a4,数组-一维数组,一维数组的初始化 1. 在定义一维数组的同时可以将各元素的初值依次放在一对中赋给数组,初值之间用逗号隔开。 如int a101,2,3,4,5,6,7,7,9,10; int a51,2,3,4,5; 错 int a51;2;3;4;5; 错 2.若初值个数少于数组元素的个数时;不能多于 如int a51,2,3; int a42*2; int a30; 3.数组的长度可以省略。若定义时,未赋初值,则长度绝不能省略。 如int a 1,2,3,4; 数组的长度是4。 int a ; 是非法的。 4.只能在定义时可以用给数组整体赋值,不是定义时,则只能单独给每个数组元素赋值。 如 int a4; a1,2,3;或a41,2,3,4;是非法的。,数组-一维数组,一维数组的引用 格式数组名下标表达式 如 int a10;/*定义数组*/ int ba4;/*引用数组元素a4*/ int ba2*2; /*引用数组元素a4*/ 说明 1.数组中的元素其实就是一个变量,占一个存储单元。 如int a101,2,3,4,5,6,7,7,9,10; int a51,2,3,4,5; 错 int a51;2;3;4;5; 错 2.引用数组元素时,下标不能越界 3. 不能对数组进行整体引用,只能单独引用其元素。 如int a10; int b10a;/*错误*/ int b10a10;/*错误*/ b0a0;b1a1;等 /* 正确,单独引用*/ fori0;i100;i aibi;,练习巩固, 习题集P48 _2 1 i7为真,i1,p12为假,不执行 2 i7为真,i2,p22为真,j13 3 i7为真,i3,p32为假,不执行 4 i7为真,i4,p42为真,j28 5 i7为真,i5,p52为假,不执行 6 i7为真,i6,p62为真,j45 7 i7为真,i7,p12为假,不执行 8 i7为假,结束循环 输出j的值为45练习巩固, 习题集P56 _2 1 i1,i4为真值,ni0,输出ni1的值1,i2; 2 i2,i4为真值,ni0,输出ni1的值1,i3; 3 i3,i4为真值,ni0,输出ni1的值1,i4; 4 i4,i4为真值,ni0,输出ni1的值1,i5; 5 i5,i4为假值,不执行语句,退出循环语句。 所以最后得到的值为1111数组-二维数组,二维数组的定义格式 类型名 数组名常量表达式1常量表达式2; int a23; 注意 1. 两对方括号必不可少,之间不能有空格。 2. 定义之后,6个连续的存储单元。,在内存中的存放形式(依次连续),数组-二维数组,二维数组的初始化 1.按行赋值 int a331,2,3,4,5,6,7,7,9; 2.直接赋值 int a341,2,3,4,5,6,7,7,9; int a220,0,0,0,0;/*非法的 个数不能多于数组元素个数*/ 注意 1. 里层的 的对数不能多于行数。花括号内初值个数不 能多于列数。不能出现空花括号 对。 如int a341,2,3,4,5,6,7,7,9,10,11,12,13,1,2; int a341,2,3,410,11,12,13;以上定义均是非法的。 2.若在定义二维数组的同时进行初始化,则可以不写第一 维的长度,第二维则不能省略。若定义时未赋初值,则各维 的长度均不能省略。 如int a 31,2,3,5,4,6; 合法 int a 3;或int a3 ;都是非法的。,数组-二维数组,二维数组的引用 格式数组名 下标表达式1 下标表达式2 如 int a23;/*定义数组*/ int ba00;/*引用数组元素a00*/ int ba111; /*引用数组元素a12*/ 说明 1.不论是一维数组还是二维数组都不能整体引用。 如如int a34; int b34a;/*是非法的*/ 2. 引用数组元素时,下标可以是C语言中任何合法的表达式,且可以含有变量。 如 int a231,2,3,4,5,6; int b,i1; ba65i; /*引用数组a11*/,注意引用时,下标不能越界,练习巩固, 2007年4月考试试题 (24)以下错误的定义语句是 A)int x30,1,1,2,3; B)int x431,2,3,1,2,3,1,2,3,1,2,3; C)int x41,2,3,1,2,3,1,2,3,1,2,3; D)int x31,2,3,4;, 若有定义int a23;,以下选项中对a数组元素正确引 用的是 A)a21 B)a23 C)a03 D)a12 1,D,C,练习巩固, 2007年9月试题 若有定义语句int a36; 按在内存中的存放顺序,a数组的第10个元素是 A)a04 B)a13 C)a03 D)a14, 设有定义语句int a30,1,2;,则数组元素a12的值为,B,练习巩固, 习题集P56 _3 1.i0,i3为真值,saiiai3-i-1; ssa00a02; s01910。执行for语句的表达式3i;变量i1; 2.i3为真值,s104418。i2; 3.i3为真值,s187530。i3; 4.i3为假值。不执行语句,退出循环语句。 最后输出s的值,即30.循环结构的嵌套,循环结构的嵌套在一个循环体内,又包含另一个循环。,三种循环语句可以相互嵌套。 main int i,j; fori1;i3;i forj1;j4;j printf“nid,jd”,i,j; printf“nid,jd”,i,j; ,i1,j1 i1,j2 i1,j3 i2,j1 i2,j2 i2,j3,外层循环每进行一轮, 内层循环要一直循环结束。,二,三章知识检查, 程序段int x12; double y3.141593; printf“d8.6f“,x,y;的输出结果是 A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930, 以下是if语句的形式if表达式 语句 其中“表达式” A)必须是逻辑表达式 B)必须是关系表达式 C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式,D,A,二,三章知识检查, 有以下程序 include main int x; scanf“d“, 程序运行时,输入的值在哪个范围才会有输出结果 A)不等于10的整数 B)大于3且不等10的整数 C)大于3或等于10的整数 D)小于3的整数B,二,三章知识检查, 有以下程序 include main int a1,b2,c3,d0; if a1 程序运行后的输出结果是 A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1,C,二,三章知识检查,有以下程序 include main int a1,a2; char c1,c2; scanf“dcdc“, 若想通过键盘输入,使得a1的值为12,a2的值为14,c1的值为字符a,c2的值为字符b,程序输出结果是12,a,34,b则正确的输入格式是(以下代表空格,代表回车) A)12a34b B)12a34b C)12,a,34,b D)12a34b,A,二,三章知识检查, 有以下程序 include main char c1,c2; c1A8-4; c2A8-5; printf “c,dn”c1,c2; 已知字母A的ASCII码为65,程序运行输出后的结果是 A)E,68 BD,69 CE,D D输出无定值,A,Thank you,
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
