文档详情

C语言初学者上机容易犯的错误.doc

发布:2017-06-08约1.05千字共2页下载文档
文本预览下载声明
1、scanf函数中,遗忘输入列表中的地址符。 例如对两个整形变量由键盘输入赋值。同学们往往容易遗忘地址符 scanf(%d%d,x,y); 2、在使用数学函数时,忘记在程序初始位置把math.h文件包含进来。 例如使用数学函数fabs,sqrt等函数时,需要在程序开始加上#include math.h或者#include math.h 3、在if语句的条件表达式中,容易把赋值运算符=与逻辑等运算符==相混淆。其实,初学者容易把==写成= 例如:if(x==1)????? //初学者容易把==写成= ???? printf(OK); 4、对除运算符了解不透。对于除运算符,如果参加运算的两个量其中有一个是浮点数的话,最后的结果便为浮点型,但若两个数均为整数的话,则结果为整型,而且仅仅是简单的截取整数部分。 例如1/2的结果是0而不是0.5 例如?=和???++及?=等等 ?6、变量输入时的格式符要与其定义时类型相同,否则会出现运行时错误。 例如:int i; ??????????? scanf(%f,i); 7、强制类型转换时,容易落掉小括号。 例如:(float)5/2; 说明:如果需要进行强制类型转换的是表达式的话,需要把表达式括起来。当然如果需要转换的是一个变量或者常量的话,括号可以省略,例如该例子。 8、switch语句中,括号里的表达式是整型(包括型和枚举类型),但不能是其他类型,例如浮点型。 9、输出时的格式符要与变量的类型相吻合。 例如, 如果变量x是int型, 输出时,格式符应该是%d。 而x变量是float型,输出时,格式符应该是%f。 很多同学变量输入输出的格式符和变量的类型不一致,导致出现结果错误。 编译链接时没错,但运行结果错误。 10、if 和else的匹配问题。 if语句嵌套时,else跟哪个if语句成对呢。 从上向下看,每遇到一个else,则往回看,与离其最近的一个,并且没有被配对的if配对。 11、数组定义时,其长度是常量,而不能是变量。 例如: int a[10]; 或者 #define N 10 int a[N]; 对于这种不正确: int n; int a[n]; 12、数组作为函数参数时的虚实结合。 定义函数时,数组作为函数的虚拟参数(简称虚参)。那么在调用该函数时,实在参数(简称实参)是数组的名字,不要写成数组元素的形式或者数组定义时的形式。此时传递的是数组的首地址,而不是数组元素。
显示全部
相似文档