三级数据库技术上机2-选择和循环_第1页
三级数据库技术上机2-选择和循环_第2页
三级数据库技术上机2-选择和循环_第3页
三级数据库技术上机2-选择和循环_第4页
三级数据库技术上机2-选择和循环_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二课 选择和循环上机考试上机考试内容介绍内容介绍关系运算符和逻辑运算符1If语句2循环语句3真题解析4v关系运算符及其优先次序关系运算符及其优先次序关系运算符和关系表达式关系运算符和关系表达式优先级相同(高)优先级相同(高)优先级相同(低)优先级相同(低) 说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于逻辑运算符例,若a=1,b=2,c=3a=c 值为真a=c 值为假a!=c 值为真v逻辑运算符及其优先次序逻辑运算符及其优先次序逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式例:例:a&b 若若a,b为真,则为真,则a&b为真。为真。 a|b 若若a,b之一为真

2、,则之一为真,则a|b为真。为真。 !a 若若a为真,则为真,则!a为假。为假。& 逻辑与逻辑与| 逻辑或逻辑或! 逻辑非逻辑非优先次序从高到低:优先次序从高到低: !( (非非)-&()-&(与与)-|()-|(或或) ) 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 用逻辑表达式来表示闰年的条件用逻辑表达式来表示闰年的条件能被能被4整除,但不能被整除,但不能被100整除。整除。能被能被4整除,又能被整除,又能被400整除。整除。vIfIf语句的三种基本形式语句的三种基本形式条件语句条件语句表达式语句真(非0)假(0)例例v双分支选择双分支选择ifif语句语句if(i

3、f(表达式表达式) ) 语句语句1 1 else else 语句语句2 2例:例: ifif (xy) printf( (xy) printf(“%d%d”,x);,x); else else printf( printf(“%d%d”,y);,y);条件语句条件语句 条件条件 语句语句1 语句语句2YN例例v多分支多分支ifif语句语句ifif(表达式(表达式1 1)语句)语句1 1 else if( else if(表达式表达式2)2)语句语句2 2 else if( else if(表达式表达式3)3)语句语句3 3 else if( else if(表达式表达式m)m)语句语句m m

4、else else 语句语句n n条件语句条件语句例例 判别键盘输入字符的类别判别键盘输入字符的类别练习练习v输入一个学生的成绩,判断其所在的区段,90以上为优秀,80以上为良好,60以上为合格,60以下为不合格在在C C语言中可以用以下语句来实现循环:语言中可以用以下语句来实现循环:1 1)whilewhile语句。语句。2 2)do-whiledo-while语句。语句。3 3)forfor语句。语句。循环循环whilewhile语句语句真真(非零非零)表达式表达式 循环体循环体假假(零零)while 语句的形式语句的形式: while (表达式)表达式) 循环体;循环体; while w

5、hile 语句常称为语句常称为“当当型型”循环语句。循环语句。WhileWhile循环的写法循环的写法 表达式可以是任何类型的表达式表达式可以是任何类型的表达式2 2 循环体多于一句时,用一对循环体多于一句时,用一对 括起来括起来4 4 先判断表达式,后执行语句先判断表达式,后执行语句3 3 1 1whilewhile循环结构常用于循环次数不固定,根循环结构常用于循环次数不固定,根据是否满足某个条件决定循环与否的情况据是否满足某个条件决定循环与否的情况3 3 3 3例:统计从键盘输入的一行字符的个数(以回例:统计从键盘输入的一行字符的个数(以回车键作为输入结束标记车键作为输入结束标记while

6、(ch!=n) 判断是否输入结束判断是否输入结束 num+; ch=getchar(); printf(num=%dn,num); 注意注意表达式在判断前,必须要有明确的值表达式在判断前,必须要有明确的值1while (while (表达式表达式) )后面后面没有分号没有分号3循环体中一般有循环体中一般有改变条件表达式改变条件表达式的语句的语句2循环上机练习1- Fibonacci数列上机练习上机练习- -第第9393套套编写函数编写函数jsValue(int t), jsValue(int t), 它的功能是它的功能是: : 求求FibonacciFibonacci数列中大于数列中大于t t

7、的最小的一个数的最小的一个数, , 结果结果由函数返回。其中由函数返回。其中FibonacciFibonacci数列数列F(n)F(n)的定义为的定义为: : F(0)=0 F(0)=0,F(1)=1F(1)=1 F(n)=F(n-1)+F(n-2) (n2) F(n)=F(n-1)+F(n-2) (n2) 最后调用函数最后调用函数writeDat()writeDat()读取读取1010个数据个数据t, t, 分分别得出结果且把结果输出到文件别得出结果且把结果输出到文件out.datout.dat中。中。 例如例如: : 当当t = 1000t = 1000时时, , 函数值为函数值为: 15

8、97: 1597。分析分析v 已知已知F(0)=0F(0)=0,F(1)=1 F(1)=1 v 需要求需要求F(2)F(2),F(3)F(3),F(4) F(4) F(n) F(n)直到直到F(n)F(n)大大于于t tnF(2)=F(0)+F(1)nF(3)=F(1)+F(2)nnF(n)=F(n-1)+F(n-2) (n2) n求F(n)需要首先知道F(n-1)和F(n-2)v 使用使用whilewhile循环循环nfn=f0+f1;nf0=f1; f1=fn;循循环环上机上机练习练习2-求方程的根上机练习上机练习- -第第5252套套绝对值函数:abs(x)求整数x的绝对值 fabs(x

9、)求浮点数x的绝对值分析分析v迭代步骤中可以看出一个循环迭代步骤中可以看出一个循环v是一个条件循环是一个条件循环n循环执行的条件是x0,x1绝对值差大于0.000001v循环跳出时循环跳出时x0,x1x0,x1绝对值之差小于绝对值之差小于0.0000010.000001vcoscos(x x)=x -x1=x0;=x -x1=x0;循循环环上机上机练习练习3-回文上海自来上海自来水水来自海上来自海上上机练习上机练习- -第第4343套(回文)套(回文)今天的难点今天的难点分析分析v 对于一个任意位数的数对于一个任意位数的数m m,要判断是不是回文,要判断是不是回文,只要把改数倒序后看是否和原数

10、相同只要把改数倒序后看是否和原数相同v假设假设m m为为94499449,如何倒序?,如何倒序?gw为每次取到的个位数,newm为倒序后的m,初值为0ngw=m%10; gw=9nnewm=newm*10+gw; newm=9nm=m/10; m=944ngw=m%10; gw=4nnewm=newm*10+gw; newm=90+4=94nm=m/10; m=94ngw=m%10; gw=4nnewm=newm*10+gw; newm=940+4=944nm=m/10; m=9ngw=m%10; gw=9nnewm=newm*10+gw; newm=9440+9=9449nm=m/10; m

11、=0n结束forfor语句语句forfor的形式:的形式:for(初始表达式初始表达式1;条件表达式;条件表达式2;循环表达式;循环表达式3) 循环体循环体;例:表达式表达式3 3计算表达式计算表达式1 1循环体循环体判断表达式判断表达式2 2零零非零非零forfor的下一条语句的下一条语句执行流程执行流程: :forfor循环与循环与whilewhile循环的比较循环的比较它相当于以下语句:它相当于以下语句: fac=1;i=1; fac=1;i=1; while (i=n)while (i=n) fac fac* *=i;=i; i+; i+; 表达式表达式1 1;whilewhile(表

12、达式(表达式2 2)表达式表达式3 3;在一个循环体内又包含有另一个完整的循环结在一个循环体内又包含有另一个完整的循环结构,构, 称为循环嵌套称为循环嵌套1嵌套时,每一层循环在逻辑上必须是完整的嵌套时,每一层循环在逻辑上必须是完整的3while while 、forfor都可以互相嵌套都可以互相嵌套2循环的嵌套循环的嵌套循环嵌套时正确和错误的逻辑关系循环嵌套时正确和错误的逻辑关系 for(.).for(.).内循环内循环外循环外循环for(.).for(.).并列循环并列循环嵌套循环嵌套循环交叉循环交叉循环for(.). for(.) . 错误错误真真真真外循环初始条件外循环初始条件内循环初始

13、条件内循环初始条件内循环体内循环体外循环条件外循环条件假假内循环条内循环条件件假假内循环循环条件内循环循环条件外循环循外循环循环条件环条件循环结束循环结束二重循环嵌套结构执行流程二重循环举例二重循环举例#includevoid main()int i,n=0;for(i=1;i=10;i+)for(n=1;n10;n+)printf(%d ,n);printf(n);循循环环上机上机练习练习4-素数应用举例应用举例程序代码:程序代码:上机练习上机练习- -第第1 1套套v程序程序PROG1.CPROG1.C的功能是的功能是: : 计算计算500500800800区间内素区间内素数的个数数的个数

14、cntcnt,并按所求素数的值从大到小的顺,并按所求素数的值从大到小的顺序序, , 计算其间隔减、加之和,即第计算其间隔减、加之和,即第1 1个素数个素数- -第第2 2个素数个素数+ +第第3 3个素数个素数- -第第4 4个素数个素数+ +第第5 5个素数个素数 . . 的值的值sumsum。请编写函数。请编写函数countValue()countValue()实现程序的实现程序的要求要求, ,最后最后main()main()函数调用函数函数调用函数writeDAT()writeDAT()把结把结果果cntcnt和和sumsum,输出到文件,输出到文件OUT.DATOUT.DAT中。中。

15、分析分析v首先写一个判断素数的函数首先写一个判断素数的函数IsP(int n)IsP(int n)v在在countValue()countValue()函数中使用函数中使用forfor循环生成循环生成500500800800之间的数,注意从大到小之间的数,注意从大到小v在在forfor循环中判断是否是素数,如果是,则循环中判断是否是素数,如果是,则cnt+,cnt+,并求减加之和并求减加之和上机练习上机练习- -第第9191套套v程序程序PROG1.CPROG1.C的功能是的功能是: :计算计算100100以内满足以下条以内满足以下条件所有整数件所有整数I I的个数的个数cntcnt以及这些以

16、及这些I I之和之和sumsum。条。条件件: : I,I+4,I+10I,I+4,I+10都是素数,同时都是素数,同时I+10I+10小于小于100100。请考生编写函数请考生编写函数countValue()countValue()实现程序要求,实现程序要求,最后调用函数最后调用函数writeDAT()writeDAT()把结果把结果cntcnt和和sumsum输出输出到文件到文件out.datout.dat中。中。( (数值数值1 1不是素数不是素数) ) 分析分析v使用使用forfor循环生成循环生成I,I+10I,I+10小于小于100100,因此,因此I I只能取只能取到到9090v

17、forfor循环中使用循环中使用if(I,I+4,I+10if(I,I+4,I+10都是素数都是素数) )v满足条件的满足条件的I cnt+ I cnt+ 求求sumsum循循环环上机上机练习练习5-数字的数位操作上机练习上机练习- -第第1717套套 P58P58v程序程序PROG1.CPROG1.C的功能是的功能是: : 选出选出大于大于100100小于小于10001000范围范围之内所有之内所有个位数字与十位数字之和被个位数字与十位数字之和被1010除除所得余数恰是百位数字的所有素数所得余数恰是百位数字的所有素数 ( (如如293)293)。计算并输出上述这些素数的个数计算并输出上述这些

18、素数的个数cntcnt以及这些素以及这些素数值的和数值的和sumsum。请考生编写函数。请考生编写函数countValue()countValue()实实现程序要求,最后调用函数现程序要求,最后调用函数writeDAT()writeDAT()把结果把结果cntcnt和和sumsum输出到文件输出到文件out.datout.dat中。中。分析分析v大于大于100100小于小于10001000范围范围n用用forfor生成生成v个位数字与十位数字之和被个位数字与十位数字之和被1010除所得余数恰是除所得余数恰是百位数字的所有素数百位数字的所有素数n条件,在条件,在forfor里面使用里面使用ifi

19、f判断判断n满足条件的数计算满足条件的数计算cntcnt和和sumsum难点:编写判断素难点:编写判断素数的数的函数函数;复杂条复杂条件件表示成表示成表达式表达式上机练习上机练习- -第第5151套套v程序程序PROG1.CPROG1.C的功能是的功能是: :选出选出10001000至至50005000范围范围内内( (包括包括10001000、5000)5000)符合下面条件的四位自然数。符合下面条件的四位自然数。条件是条件是: : 千位数字与百位数字之和等于十位数千位数字与百位数字之和等于十位数字与个位数字之和字与个位数字之和, , 且千位数字与百位数字之且千位数字与百位数字之和等于个位数

20、字与千位数字之差的正和等于个位数字与千位数字之差的正1010倍倍。计。计算并输出这些四位自然数的个数算并输出这些四位自然数的个数cntcnt以及这些数以及这些数的和的和sumsum。请编写函数。请编写函数countValue()countValue()实现程序的实现程序的要求。最后要求。最后main()main()函数调用函数函数调用函数 writeDAT()writeDAT()把把结果结果cntcnt和和sumsum输出到输出到OUT.DATOUT.DAT文件中。文件中。 分析分析v10001000至至50005000范围范围nfor循环v千位数字与百位数字之和等于十位数字与个位千位数字与百位数字之和等于十位数字与个位数字之和数字之和, , 且千位数字与百位数字之和等于个且千位数字与百位数字之和等于个位数字与千位数字之差的正位数字与千位数字之差的正1010倍倍nfor循环里的If条件n添加满足计算cnt和sumv怎么怎么计算千位、百位、十位、个位计算千位、百位、十位、个位上机练习上机练习- -第第2 2套套v程序程序PROG1.CPROG1.C的功能是:计算出自然数的功能是:计算出自然数SIXSIX和和NINENINE满足条件满足条件SIX + SIX + SIX = NINE + N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论