C语言阶段性知识点总结(4).doc_第1页
C语言阶段性知识点总结(4).doc_第2页
C语言阶段性知识点总结(4).doc_第3页
C语言阶段性知识点总结(4).doc_第4页
C语言阶段性知识点总结(4).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

石家庄市求实电脑职业培训学校C语言阶段性知识点总结石家庄市求实电脑职业培训学校全国计算机等级考试 二级C语言程序设计阶段性知识点总结(4)知识点范围:第五章第五章 循环结构根据条件的成立与否,某些语句被执行多次的结构被称为“循环结构”知识点1 while当型循环的使用方法:【教程第50页55页】 1、格式1:前测试当型循环。 while (条件) 循环体; 2、格式2:后测试当型循环。 do 循环体;while(条件); 3、【累加器】计算1+2+3+100的结果。变量初值一二三退出i0123.99100101sum0=0+0+1+2+3+99+100 int i=0,sum=0; while(i=100) sum=sum+i; i+;printf(“sum=%dn”,sum);可将程序变为:变量初值一二三退出i2345.99100101sum1=1+2+3+4+5+99+100int i=2,sum=1; while(i=100) sum=sum+i; i+;printf(“sum=%dn”,sum); 4、【连乘器】计算1*2*3*10的结果。 int i=2;double s=1; while(i=10) s=s*i; i+; printf(“s=%lfn”,s);*知识点2 for计数循环的使用方法【教程第55页57页】 一、格式: for(表达式1;表达式2;表达式3) 循环体;执行流程:(1)计算表达式1; (2)计算表达式2,看表达式2是否成立。 成立(表达式2结果为非0),转向执行(3)。 不成立(表达式2结果为0),转向执行(5)。 (3)执行循环体。 (4)计算表达式3,并转向执行(2)。 (5)退出循环,执行for循环以下的句子。 二、利用for循环实现累加器: int i,sum=0; for(i=0;i=100;i+) sum=sum+i;printf(“sum=%dn”,sum);分析:1、for循环一般需要一个循环变量(例如:i)。 2、表达式1决定了循环变量的初值。 3、表达式2决定了循环变量的终值。 4、表达式3决定了循环变量的步长。根据循环头分析循环体的执行次数: for(i=1;i=10;i+) 循环体执行次数:10次。 for(i=0;i=10;i+) 循环体执行次数:11次。for(i=1;i10;i+) 循环体执行次数:9次。for(i=1;i=10;i+=2) 循环体执行次数:5次。结论:循环体执行次数= (1)初值0。 (2)初值终值,则步长0。 三、实例1:输出所有的水仙花数。【各个位的立方和等于本身的三位数】 问题1:如何表示三个数字的立方和。 方法1:a*a*a+b*b*b+c*c*c 方法2:利用math.h(数学头文件)所含有的库函数。 abs(x),返回整型数据x的绝对值。 fabs(x),返回实型数据x的绝对值。 sqrt(x),返回x的算术平方根。 pow(x,y),返回x的y次方。 exp(x),返回自然对数底e的x次方。 问题2:如何表示三位数的各个位。 设三位数为i,则: 个位:i%10 十位:i/10%10 百位:i/100 # include # include main() int i; int gw,sw,bw; for(i=100;i=999;i+) gw=i%10; sw=i/10%10; bw=i/100; if(pow(gw,3)+pow(sw,3)+pow(bw,3)=i) printf(“%dt”,i);*知识点3 分析利用for循环实现的累加器程序。int i,sum=0; for(i=0;i=100;i+) sum=sum+i;printf(“sum=%dn”,sum);1、for循环的三个表达式中,表达式1只执行了1次;表达式3的执行次数与循环体相同。2、依据上述分析,表达式1可以删除,放在for循环以外;表达式3可以删除,放在循环体以内。但是分号不能少。int i=0,sum=0; for(;i100) break; printf(“sum=%dn”,sum); 4、结论:break只可以用于swithc体和循环体,在循环体中的功能为退出循环体,执行循环以下的语句。*知识点4 素数问题。【质数:只能被1和它本身整除的数】 一、输出100以内的所有素数: int i; printf(“1t2t3t5t7t”); for(i=11;i=97;i+=2) if(i%3!=0 & i%5!=0 & i%7!=0) printf(“%dt”,i); 注意:该种方法只适用于计算100以内的素数。 二、通用算法:1、让任意数字x与2、3、4、,相除,若余数均不为0,则x为素数。2、让任意数字x与2、3、4、,相除,若余数均不为0,则x为素数。【算法1】利用循环终值判断循环是否正常退出。# include # include main() int x,i; printf(“请输入一个整数:”); scanf(“%d”,&x); for(i=2;i=sqrt(x);i+) if(x%i=0) break;if(i=sqrt(x) printf(“Yesn”);else printf(“Non”); 【算法2】利用标志变量判断循环是否正常退出。 # include # include main() int x,i,f=0; printf(“请输入一个整数:”); scanf(“%d”,&x); for(i=2;i=sqrt(x);i+) if(x%i=0) f=1;break; if(f=0) printf(“Yesn”);else printf(“Non”);*知识点5 斐波那契数列问题。 数列:1,1,2,3,5,8,13, 数列特征:数列中任意数为相邻前两数之和。 分析:在已知规律的情况下,至少知道前两个数,数列才可以依次排开。1,1,2,3,5,8,f1f2ff1f2fint f1=1,f2=1,f;f=f1+f2;f1=f2;f2=f; 【题型1】输出该数列的前20项,每五项一行。 # include main() int f1=1,f2=1,f; int i=3; printf(“%dt%dt”,f1,f2); while(i=20) f=f1+f2; f1=f2; f2=f; printf(“%dt”,f); if(i%5=0) printf(“n”); i+; 【题型2】输出该数列的第20项。 # include main() int f1=1,f2=1,f; int i=3; while(i=20) f=f1+f2; f1=f2; f2=f; i+;printf(“fib(20)=%d”,f); 【题型3】计算该数列前20项的和。# include main() int f1=1,f2=1,f; int i=3,sum=f1+f2; while(i=20) f=f1+f2; sum=sum+f; f1=f2; f2=f; i+;printf(“fsum(20)=%d”,sum);*知识点6 循环嵌套的使用。* 【例题1】完成利用星号构成的矩形的输出。 int i,j; for(i=1;i=4;i+) for(j=1;j=5;j+) printf(“*”); printf(“n”); 【例题2】完成利用星号构成的直角三角形的输出。* int i,j; for(i=1;i=5;i+) for(j=1;j=0;i-) for(j=1;j=i;j+) printf(“ ”); for(j=1;j=4;j+) printf(“*”); printf(“n”); 【例题4】完成利用星号构成的等腰三角形的输出。*分析:13s1* 22s3* 31s5* 40s7*解法1:已知行数和空格个数与星号个数之间的对应关系。int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ ”); for(j=1;j=0;i-) for(j=1;j=i;j+) printf(“ ”); for(j=1;j=t;j+) printf(“*”);* t+=2; printf(“n”); 【例题5】完成利用星号构成的菱形的输出。# include main() int i,j; int s=1,t=5; for(i=3;i=0;i-) for(j=1;j=i;j+) printf(“ ”); for(j=1;j=s;j+) printf(“*”); s+=2; printf(“n”); for(i=1;i=3;i+) for(j=1;j=i;j+) printf(“ ”); for(j=1;j=t;j+) printf(“*”); t-=2; printf(“n”); *知识点7 continue的使用。 一、continue的作用:退出本次循环,执行下一次循环。当continue用于for循环体内时,需要先计算表达式3,再执行下一次循环。 二、利用continue实现素数问题。 # include # include main() int x,i,f=0; printf(“请输入一个整数:”); scanf(“%d”,&x); for(i=2;i=sqrt(x);i+) if(x%i!=0) continue;else f=1;break; if(f=0) printf(“Yesn”);else printf(“Non”);*知识点8 闰年问题。 1、判断一年是否为闰年的算法:(1)公元年数如能被4整除,而不能被100整除,则是闰年。(2)公

温馨提示

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

评论

0/150

提交评论