c语言易错知识点总结[工作范文]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言易错知识点总结
篇一:c语言易错知识
C语言教学中学生容易出错的知识点解析
0引言
C语言是一种很灵活的语言,在程序调试过程中常常会
遇到一些难解决的问题,一般语法错误计算机能检测出来,
而逻辑错误计算机则检测不出来。这给教师的教学带来比较
多的麻烦,也大大削减了学生学习的自信心。本文结合笔者多年教学经验,把学生容易出错的知识点进行总结,以供C 语言教学参考。1教学实例
以下实例均在Turbo C环境下调试运行。
递增(减)运算符的表达式
例如:i=3,a=(++i)+(++i)+(++i);
大多数学生都知道i++和++i的最终结果都是使i的值加1,但i++和++i作为表达式的用途是不一样的,++i是“先加后用”,i++是“先用后加”。上面的题目是“++”运算
符最典型的应用,其中a的结果是18,而不是有些书上分析的
4+5+6=15。因为在这里要考虑运算符的优先级,很显然
“ ++” 的优先级高于“ +”。若是“ i=3,a=(++i)+(++i)+(++i)
”则a结果是9,而两者最终的i值都将自增3即为6。“一” 运算符
和“ ++”运算符使用方式一样,不再赘述。
输入语句中缺取址符&
例如:scanf( “ %d ,x);
这一语句错在x前缺取址符,导致输入的数值没有赋给变量x,所以结果出错。再如:char a[10];scanf( “%S,&a); 有学生想,输入语句的输入变量前一定要加取址符,所以这个语句里加了取址符,肯定不会出错。而结果却又恰恰错了,这是为什么呢?因为a在这里既表示数组名字,又表示数组首地址,它本身已经代表了地址,所以就不用再加取址符了。解决此类问题的办法就是在使用输入语句的时候要仔细观察,什么时候该加取地址符号,什么时候不该加,一定要搞清楚。
逻辑运算符&&和位运算符&相混淆
例如:if(x&y)
xx人员此判别条件的本意是将x和y的“与” (&&)运
算结果作为条件。程序运行时,并不出错,但是结果却不对。原因是误用按位“与”运算符&替代了“与”运算符&&这
种错误初学者很容易犯,但是又十分隐秘,在某些特殊情况下甚至可以得出正确的结果,所以更具有迷惑性。位运算符是C语言独特的一种运算符,其中“&”表示对两个操作数
按二进制位进行“与”运算,规则是:0&0=0,0&1=0,1 &0=0,1 &1=1。如6&5=4,其中6 变为00000110,5变为00000101,按位“与”运算的结果为100即4。
误把赋值=当恒等==
例如:if(a==O)误写成if(a=O)。
上述写法将导致条件始终为假,进入不了if语句条件为真的分支。编程的时候要仔细,要遵守c语言的语法规则。
条件语句(if)和循环条件语句后误加分号
例如:if(x>y);x=y;
这样相当于满足条件执行空语句。下面的x=y语句将被无条件执行。一般情况下if条件后不需要加分号。
例如:for(i=1;imax)
{max=a[i]; m=i;}
printf( “ %d%” ,max,m);
}
程序看似一点毛病都没有,上机调试也都通过,但是结
果却不对。原因就在下标变量m没有赋初值,系统随机赋了初值,导致结果错误。给m赋初值0就可以了。
初值赋了,但是赋的位置不对
例如:求100以内的完数
s=0;
for(i=1;i 篇二:C语言知识点总结【完美版】
C语言最重要的知识点
总体上必须清楚的:
1) 程序结构是三种:顺序结构、选择结构(分支结
构)、循环结构
2)读程序都要从main入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式.数
据存放的位置就是他的地址.
4)bit是位是指为0或者1。byte 是指字节,一个字节=第五节:整数与实数
1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次)
a、C语言中的八进制规定要以0开头。(数码取值0-7)018的数值是非法的,八进制是没有8的,逢8进1。
b、C语言中的十六进制规定要以0x(X)开头。(数码取值0-9,a-f,A-F)
C.十进制没前缀,数码取值0-9
2)小数的合法写法:C语言小数点两边有一个是零的话,可以八个位.概念常考到的:
1、编译预处理不是C语言的一部分,不占运行时间,
不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
误的,一定不能出现分号
3、每个C语言程序中main函数是有且只有一个。
4、
在函数中不可以再定义函数。
5、算法:可以没有输入,但是一定要有输出。
6、break 可用于循环结构和switch语句。
7、逗号运算符的级别最低,赋值的级别倒数第二。
第一章C语言的基础知识
第一节、对C语言的基础认识
1、C语言编写的程序称为源程序,又称为编译单位。
2、C 语言书写格式是自由的,每行可以写多个语句,可以写多
行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点。
第二节、
2、每个C语言程序写完后,都是先编译,后链接,最
后运行。(.c---.obj---.exe )这个过程中注意.c和.obj
文件时无法运行的,只有.exe文件才可以运行。(常考!)
(程序xx-程序编译-程序连接-程序运行)
第三节、标识符1、标识符(必考内容):
合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为
数字就错了2、标识符分为关键字(保留字)、预定义标识符、