《C语言常见知识点与易错点》由会员分享,可在线阅读,更多相关《C语言常见知识点与易错点(3页珍藏版)》请在金锄头文库上搜索。
1、例一#includeint main()int w,y,s=0;for(w=2;w=1000;w+) 此处应再次声明s=0,否则会有下图结果for(y=1;yw;y+)原因:应为第一次判断语句为假,故不执行,又因直接进行第二次循环,造成此时s=s+y,无意义。if(w%y=0)s=s+y;if(s=w)printf(%d its factions are ,w);return 0;例二(补充知识点)#undef#define 的作用域为自 #define 那一行起到源程序结束。如果要终止其作用域可以使用 #undef 命令,格式为:#undef 标识符undef 后面的标识符表示你所要终止的宏
2、。比如前面在程序开头用 define 定义了一个宏 M,它原本的作用范围是一直到程序结束,但如果现在在程序中某个位置加了一句:1. #undef M那么这个宏的作用范围到此就结束了。#undef 用得不多,但大家要了解。例三对于for语句中有类似于for( ;stri=n; )时,这样的形式是错误的,应在之前加一个char c,改成for( ;c=stri=n。例四 当在一个循环中,判断循环的条件缺失,要先运行一部才行,则使用dowhile型。例子:代码:#include#includeint main()float f(float x); /调用迭代法函数。 float x0=1; printf(该方程的根是:%lf.n,f(x0); return 0; float f(float x) /定义函数。 double f,f1,x1;double t;dof=x*(x*x+2*x+3)+4;f1=x*(3*x+4)+3;x1=x-f/f1;t=x1;x1=x;x=t;while(fabs(x-x1)=1e-6); return x; /该函数值就是方程根。