资源描述:
《浅谈初学C语言常犯的几点错误》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅谈初学C语言常犯的几点错误【摘要】《c语言程序设计》课程是计算机专业的重要基础课程之一,C语言具有数据结构复杂,知识点繁多,较难掌握这一特点,它的理论性和实践性都很强,对于没有编程语言基础的学生来说学习起来非常困难。本文对初学者在学习C语言中常遇到的错误作以归纳总结,供初学者及教学者分析参考。【关键字】c语言,初学,错误1、分号的使用错误1)忘记加分号。最初上机编写c程序,这几乎是每个人必犯的错误,分号是C语句的组成部分,是C语句的结束,忘记写分号是一个语法错误。2)多加分号。随着学习的进行,冇一些学生会对丢分号这个错误矫枉过正,会在不该
2、加分号地方加分号。错误程序:intmain();Intmain()后面的分号是多余的,在函数首部后面要直接写函数体,不能写分号。错语程序段:求1+2+……+100的程序优S二0;i二1;While(i<=100);{s二s+i;i++;}在这个错误中,while(i<二100)后面的分号被识别为一条空语句,做while语句的循环体,而下面真正该做循环体的语句会被识别为独立的语句。这个不是语法错误,但会形成死循环。1)for结构屮的分号换成逗号在for结构中的表达式一和表达式二是要用分号间隔的,下面的程序是错误的。错语语句:for
3、(i=l,i<=100,i++)s=s+i;i=l和i++这两个表达式后面的逗号应改成分号,这是分作间隔符的一种情况。2、scanf函数所使用错误当输入项是变量时忘记加取地址运算符错误语句:scanf("%d%d”,a,b);3、空格、逗号、双引号等间隔符和定界符的使用错误初写C程序的人往往感到无从下手,什么地方该加空格或逗号间隔感到很不确定,对于双引号单引号这样的定界符则往往漏加。1)未加空格间隔。错误语句:into,b,c;在这个错误的例子中,原本是要定义int型变量,int和a应用空格分隔开。2)漏加双引号。错误语句:print
4、fCa=%d,a);在这个错误屮%d后面漏写了双引号,会引起语法错误,在学习过程屮应当养成成对键入双引号的习惯。4、将关运算符误写成赋值运算符的错误在学习C语言的过程中,要逐步克服自然思维并建立起计算机思维,这个错误就是由于自然思维习惯造成的o错误程语句if(x二y)printf(“x二y”)在上面的程序中,是要判断x与y是否相等,而不是要把y的值赋给x,所以要把x二y,改为x二二y。5.流程控制语句当中内嵌语句的指定错误C语言具有书写格式自山,程序结构简洁的特点,但也使编程人员不易用固定格式控制程序结构。如流程控制语句的内嵌语句,在书写上
5、没有固定的格式,初学者往往因此分不清程序结构,从而出现错误。错误程序段:求1+2++100的程序S=0;i=l;While(i<=100)s二s+i;i++;很显然s二s+i;和i++;这两条语句都应做while的内嵌语句,但上面的程序虽然把它们写在一行,但并不能使两条语句的地位一致,只冇s二s+I;被识别为内嵌语句,而i++;被识别为与while语句并列的语句。所以要把这两条语句用花括•号括•成一条复合语句,使其都成为内嵌语句,所以上面的程序段应改为:S=0;i=l;While(i<=100){s二s+i;i++;}6.累加变
6、量不赋初值的错误在C语言中,局部变量不赋初值,其当中会存有一个不确定的值,对于要存放累中和的变量,一定为其赋初值为0或要累加的第一项,对于要多次累加的,耍注意第次累加之前都耍把累加变量赋初值。错误程序:求1000以内的完数。#include<stdio.h>#include&11;math,h>Intmain(){inti,a,s二0,n,k;for(i二l;i<1000;i++){//应在此处为s赋初值0for(k=l;k<i/2;k++)if(i%i==0)s=s+i;if(s=i)printf(“%d“,
7、i);}}在上面程序当屮,虽在开始为s赋初值0,但在第一层循环屮要进行多次累加,每次累加都应重新开始,所以要在循环体当中首先为s赋值为0。7•引用数组时,下标越界错误C语言中数组元素的下标是从0开始的,因此,数组当中最后一个元素的下标是数组的长度减1。错误程序段:inta[10],i;for(i=l;i<=10;i++)scanf(“%d”,a[i]);在上面的程序当中i的初值应为0,终值应为9o所以应改为:for&指针学习当中的错误1)学习指针过程当中,初学者往往会混淆指针变量和指针变量所指向的变量从而不能正确的通过指针引用变量。错
8、语程序段:inta,b;int*ptrl,*ptr2;scanf(〃%d%d%d〃,&a,&b);ptrl二&a;ptr2=&b;if(ptrl&