ImageVerifierCode 换一换
格式:DOCX , 页数:75 ,大小:61.59KB ,
资源ID:7059831      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7059831.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言网络笔记转的修改.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言网络笔记转的修改.docx

1、C语言网络笔记转的修改C语言网络笔记程序设计方法:1.从问题的全局出发,写出一个概括性的抽象的描述。2.定义变量,选取函数,确定算法。算法这个东西不好说,遇到的问题多了,自然就会形成自己一整套的算法。3.按照解决问题的顺序把语句和函数在main()里面堆砌起来。一个好的C程序员应该做到:1.在运行程序之前存盘2.所有在程序中用到的常量都用预处理语句在程序开头定义3.所有在程序中用到的函数都在程序开头声明4.头文件的#ifndef5.变量名和函数名使用有意思的英文单词或汉语拼音6.尽量少用全局变量或不用全局变量7.采用层次的书写程序格式,对for,while,if_else,do_while,s

2、witch_case等控制语句或他们的多重嵌套,采用缩格结构8.所有对应的都对齐9.尽量用for,而不用while做记数循环10.尽量不用goto语句11.一个函数不宜处理太多的功能,保持函数的小型化,功能单一化12.一个函数要保持自己的独立性,如同黑匣子一样,单进单出13.函数的返回类型不要省略14.用malloc()分配内存空间时,以后一定要用free()释放15.打开文件后,记住在退出程序前要关闭16.出错情况的处理17.写上必要的注释这里说的是一些基本的,经常遇到的情况,还有其他很多要注意的地方,在实际编程中都会遇到.(六) 条件语句二、if-else语句if(表达式)语句1;else

3、语句2;同样,当语句1或语句2是多于一个语句时,需要用把语句括起来。三、if-elseif-else结构。if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;.else语句n;条件语句可以嵌套,这种情况经常碰到,但条件嵌套语句容易出错,其原因主要是不知道哪个if对应哪个else。例如:if(x20|x-10)if(yx)printf(Good);elseprintf(Bad);对 于上述情况,TurboC2.0规定:else语句与最近的一个if语句匹配,上例中的else与if(yx)相匹配。为了使else与if(x20|x20|x-10)if(yx)prin

4、tf(Good);elseprintf(Bad);例如求绝对值的功能在C的库里面就有。看下面的:y=fabs(x);/*求x的绝对值,然后赋值给y*/求开方sqrt(),求指数幂exp()等等,这些与数学方面有关的函数都在math.h里面。四、switch-case语句在编写程序时,经常会碰到按不同情况分转的多路问题,这时可用嵌套if-else-if语句来实现,但if-else-if语句使用不方便,并且容易出错。对这种情况,TurboC2.0提供了一个开关语句。开关语句格式为:switch(变量)case常量1:语句1或空;case常量2:语句2或空;.case常量n:语句n或空;defaul

5、t:语句n+1或空;执行switch开关语句时,将变量逐个与case后的常量进行比较,若与其中一个相等,则执行该常量下的语句,若不与任何一个常量相等,则执行default后面的语句。注意:1.switch中变量可以是数值,也可以是字符,但必须是整数。2.可以省略一些case和default。3.每个case或default后的语句可以是语句体,但不需要使用和括起来。例如:main()intx,y;scanf(%d,&x);switch(x)case1:y=x+1;break;/*退出开关语句,遇到break才退出*/case4:y=2*x+1;break;default:y=x-;break;

6、printf(%dn,y);从上面的例子可以看出,用开关语句编的程序一定可以用if语句做。那么在什么情况下需要用switch语句呢?一般在出现比较整的情况下或者能转化成比较整数的情况下使用。看下面的例子:例子:一个学生的成绩分成五等,超过90分的为A,80-89的为B,70-79为C,60-69为D,60分以下为E。现在输入一个学生的成绩,输出他的等级。(1).用if语句省略(2).用switch语句main()intnum;chargrade;scanf(%d,&num);num/=10;switch(num)case10:(冒号)case9:grade=A;break;case8:grad

7、e=B;break;case7:grade=C;break;case6:grade=D;break;default:grade=E;break;(可以省略的)printf(%c,grade);说明一点,并不是每个case里面有都语句,有时侯里面是空的,就好象这一题。switch语句执行的顺序是从第一case判断,如果正确就往下执行,直到 break;如果不正确,就执行下一个case。所以在这里,当成绩是100分时,执行case10:然后往下执行,grade=A;break; 退出。(妙)想想看,这里为什么要用num/=10;?假设当程序中有浮点数时怎么办呢?(七) 循环语句和循环控制一、循环语

8、句(一)、for循环它的一般形式为:for(;)注意:(1). For 与while 之间的选择是:当已知循环的结束点,用for否则用while.(2).for 循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,则不做其它处理 时便成为死循环。(3).for循环可以有多层嵌套。(二)、while循环它的一般形式为:while(条件)语句;while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。例如:#includestdio.hmain()charc;c=0;/*初始化c

9、*/while(c!=n)/*回车结束循环*/c=getche();/*带回显的从键盘接收字符*/注意:(1).在while循环体内也允许空语句。例如:while(c=getche()!=n);这个循环直到键入回车为止。(2).可以有多层循环嵌套。(3).语句可以是语句体,此时必须用和括起来。用while循环求1+2+100的和:main()intsn=0,i=0;while(+i=100)sn+=i;/*求1+2+100*/printf(%dn,sn);(三)、do-while循环它的一般格式为:do语句块;while(条件);(dowhile 需要“;”)二、循环控制(一)、break语句

10、当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。例如:main()intsn=0,i;for(i=1;i=100;i+)if(i=51)break;/*如果i等于51,则跳出循环*/sn+=i;/*1+2+50*/printf(%dn,sn);可以看出,最终的结果是1+2+50。因为在i等于51的时候,就跳出循环了。注意:1.break语句对if-else的条件语句不起作用。2.在多层循环中,一个break语句只向外跳一层。(二)、continue语句continue语

11、句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。(三)、goto语句goto语句是一种无条件转移语句,与BASIC中的goto语句相似。goto语句的使用格式为:goto标号;其 中标号是TurboC2.0中一个有效的标识符,这个标识符加上一个:一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的 语句。标号既然是一个标识符,也就要满足标识符的命名规则。另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与 if条件语句连

12、用,当满足某一条件时,程序跳到标号处运行。goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用 goto语句则比较合理。Goto语句一般很少用,而且很不好用main()intsn=0,i;for(i=1;i=100;i+)if(i=51)gotoloop;/*如果i等于51,则跳出循环*/sn+=i;/*1+2+50*/loop:;printf(%dn,sn);可以看出,这儿的goto语句和break作用很类似。这儿的loop:;printf(%dn,sn);也可以写成loop:printf(%dn,sn);main()intsn=0,i;for(i=1;i=10

13、0;i+)if(i=51)gotoloop;/*如果i等于51,则跳出本次循环*/sn+=i;/*1+2+50+52+100*/loop:;printf(%dn,sn);可以看出这儿的loop语句和continue的作用类似。但是某些情况下又必须使用goto语句,否则会让程序大大臃肿。如:main()inti,j,k;printf(ijkn);for(i=0;i2;i+)for(j=0;j3;j+)for(k=0;k3;k+)if(k=2)gotoloop;printf(%d%d%dn,i,j,k);loop:;输出结果为:ijk000001如果不使用goto语句,而使用break,conti

14、nue语句,应该这样main()inti,j,k;printf(ijn);for(i=0;i2;i+)for(j=0;j3;j+)for(k=0;k3;k+)if(k=2)break;printf(%d%d%dn,i,j,k);if(k=2)break;if(k=2)break;输出结果为:ijk000001所以在同时跳出多层循环时,应该使用goto语句。记住,所有的goto语句其实都是可以用break,continue代替的。下面举几个例子:1.求两个整数的最大公约数。例如10和15的最大公约数是5。分析:最大公约数一定小于等于最小的那个数一半,同时能被两数整除。妙解main()intnum

15、1,num2,i,min;scanf(%d%d,&num1,&num2);min=num10;i-)if(num1%i=0&num2%i=0)break;printf(最大公约数为%dn,i);3.判断一个整数是不是素数(素数就是只能被本身和1整除的数)。flag=0;/*标志变量复位*/if(num%i=0)flag=1;break;if(flag=0)printf(是素数n);elseprintf(不是素数n);(八) 数组数组,顾名思义就是一组同类型的数。四、字符数组Care:字符数组的hchararray5=72,69,76,76,79;/*用对应的ASCII码*/举几个例子:1.很不

16、错的题目:输入10个整数存入数组中,然后把它们从小到大排列并放在同一数组中。(思路:先找出最小的,放在第一个位置,为了防止把原先的数覆盖掉,可以把原先的第一个数和最小数的位置互换)。main()intarray10;inti,j,min,stmp;for(i=0;i10;i+)scanf(%d,&arrayi);for(i=0;i9;i+)min=arrayi;for(j=i+1;jarrayj)/*里面的4行语句很重要*/min=arrayj;stmp=arrayi;arrayi=arrayj;arrayj=stmp;for(i=0;i10;i+)printf(%d,arrayi);printf(n);分 析:先让第一个值作为基准,如果后面有比它小的,那么就把这两个数互换一下,同时把基准换成小的值。两个数互换应该这样(stmp=a;a=b; b=stmp;),而不是(a=b;b=a;),想想这是为什么?必须要用一个变量作为桥梁。这种一个一个的把最小的放在前面的排序方法,我们形象的叫做 冒泡法。冒泡法:#include ma

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1