C语言编程常见错误.doc

C语言编程常见错误.doc

ID:50668260

大小:45.51 KB

页数:8页

时间:2020-03-07

C语言编程常见错误.doc_第1页
C语言编程常见错误.doc_第2页
C语言编程常见错误.doc_第3页
C语言编程常见错误.doc_第4页
C语言编程常见错误.doc_第5页
资源描述:

《C语言编程常见错误.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C语言编程常见错误2008-12-0812:491.书写标识符时,忽略了大小写字母的区别。      intmain(void)      {          inta=5;          printf("%d",A);          return0;      }编译器认为a和A是两个不同的变量名,而显示出错信息。C语言规定大写字母和小写字母是不同的字符;而有些编程语言是不分大小写的。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。2.忽略了变量的类型,进行了不合法的运算。      intmain(void)   

2、   {          floata,b;          printf("%d",a%b);          return0;      }%是求余运算符,a%b的结果是a除以b的余数。只有%左右两边的操作数都是整型时,才可以进行求余运算。故而上面的程序是错误的,因为a和b是浮点型变量。3.将字符常量与字符串常量混淆。      charc;      c="a";这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C语言规定以作字符串常量的结束标志,它是由系统自

3、动加上的,所以"a"实际上包含两个字符:'a'和''。所以把"a"赋给字符变量是不行的。4.忽略了“=”与“==”的区别。   许多高级语言都使用“=”符号作为关系运算符的“等于”。如BASIC程序中可以写:       if(a=3)then…但C语言中,“=”是赋值运算符,“==”才是关系运算符。如:       if(a==3)           a=b;a==3是比较a是否等于3;而a=b;表示把b的值赋给a。初学者往往会把a==3错写成a=3,这样写是符合语法的,但是不符合我们的期望。如果错写成了a=3,有些编译器会给出警

4、告。5.忘记加分号。   分号是C语句中不可缺少的一部分,语句末尾必须有分号。       a=1       b=2;编译时,编译器发现“a=1”后面没有分号,就会报错。改错时,如果在编译器所说的有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。6.多加分号。       {           z=x+y;           t=z/100;           printf("%f",t);       };上面代码中,大括号}后面的分号(;)是毫无必要的!因为单独一个;也是合法的C语言语句,所以}后面写了;也是合法的,但

5、是毫无必要!又如:       if(a%3==0);           i++;程序员的本意是如果3整除a,则i加1。但由于if(a%3==0)后加了分号,则if语句到此结束。不论3是否整除a,程序都会执行i++;语句。再如:       for(i=0;i<5;i++);       {           scanf("%d",&x);           printf("%d",x);       }程序员的本意是先后输入5个数,每输入一个数后再将它输出。但由于for()后加了一个分号,循环体变为空语句;。空语句;执行5次后,下

6、面的程序块才开始执行,导致的结果是只能输入一个数并输出它。7.使用scanf函数时忘记加取址运算符“&”。      inta,b;      scanf("%d%d",a,b);这样写是错误的!应该改成scanf("%d%d",&a,&b);8.输入数据的方式与要求不符。      scanf("%d%d",&a,&b);   输入时,不能用逗号作两个数据间的分隔符。例如:3,4。而要使用空格、回车或者tab键作为分隔符。例如:34。如果我们想用逗号(,)来做分隔符,可以这样写:      scanf("%d,%d",&a,&b);此时

7、不用逗号而用空格或其它字符是不对的。例如:3:4。又如:      scanf("a=%d,b=%d",&a,&b);输入应如以下形式:      a=3,b=49.输出的数据类型与所用格式说明符不一致。   例如,a定义为整型,b定义为浮点型       inta=3;       floatb=4.5;       printf("%f%d",a,b);编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。应该改成:       printf("%d%f",a,b);10.输入数据时,企图规定精度。       

8、scanf("%7.2f",&a);这样做是不合法的,输入数据时不能规定精度。11.switch语句中漏写break语句。   例如:根据考试成绩的等级打印出百分制数段。       swit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。