|  首页  |  资讯  |  评测  |  活动  |  学院  |  访谈  |  专题  |  杂志  |  产服  |  
您现在的位置:硅谷网> 学院> 论文>

硅谷杂志:C语言编程中常见错误解析

2012-12-25 12:15 作者:杨富强 豆成杰 来源:硅谷网 HV: 编辑: 【搜索试试
  【硅谷网12月25日文】据《硅谷》杂志2012年第19期刊文,C语言是一门计算机设计语言,是目前世界上比较流行且应用最广泛的程序设计语言之一。因其具有较强的数据处理能力、较易的编译方式、较广泛的应用,故在我国高等教育中凡与计算机、电气、通信相关的专业都将C语言作为一门必修的编程课程。更有为拿到计算机等级证书,不少非相关专业的同学想要通过自学,来提高编程水平。但是,很多初学者在上机编程时却错误百出,难查其中原因。依据平时教学经验,总结C语言编程中常见的错误,并提供正确编程的思路与方法,以供学习者参考。
  关键词:C语言;程序设计;错误解析
  1C语言程序特点分析
  C语言是一门应用广泛的计算机编程语言。它即具有高级语言的简洁紧凑、灵活、易编译的特点,又具有低级语言的实用性强、运行速度快的优势。综述C语言的特点主要有:简洁紧凑、灵活方便、运算符丰富、表达力强、允许直接访问物理地址、生成目标代码质量高、程序执行效率高等特点。从C语言的程序结构上看,C语言具有代码、数据的分隔化、结构化方式,能够使得程序层次清晰,便于使用、调试与维护。
  因C语言的优点众多、应用非常广泛,故把C语言作为计算机相关专业必修课程和计算机等级考试科目之一。然而学生在学习和编译C语言时,由于对C语言的语法格式、字符等掌握的不扎实而引起错误。所以无法解决相关的错误就成了不少初学者的拦路虎。
  2C语言编程中常见问题及错误解析
  在进行C语言编程时,常见错误很多,在此主要将其分成书写方面、语法格式方面和其他几方面进行解析。
  2.1C程序中的书写错误解析
  在C语言的编程过程中,由于书写错误而导致的程序出现问题、运行失败的情况屡见不鲜,多数编程者明明知道一些关键字或声明符的拼写,但由于在使用计算机输入字符时比较粗心马虎,误将字符打错而导致了程序的运行失败。需要注意的是,这类错误易发生且较难发现。
  程序1:
  mian()
  {inta=1,b=3,c;
  c=a+b;
  pirntf(“%d”,c);
  }
  在上段程序1中共出现了两处书写错误。
  ①程序中的主函数名:“main”误写成了“mian”;
  ②误将输出语句中的“printf”写成了“pirntf”。
  本程序乍一看没有什么问题,格式符号都不错,但是运行了才发现系统的提示有误。很多编程者都经历或遇到过此类错误,由于早期的一些编译程序只提示有误,具体错到哪里无提示,所以只能自己查错。最后仔细检查了很久、费了很大力气终于找到错误。究其原因并非编程者不清楚这些函数名、关键字的拼写,而是自己马虎,在输入字符时次序颠倒导致了书写错误,程序无法正确运行!
  2.2C程序中的语法格式错误解析
  除了书写方面,错误出现的最多的还是在C程序的语法和格式上。C语言的语法格式实际是比较灵活的,但是对于刚接触计算机编程知识的学生们来说,C语言的语法格式却是比较难掌握。一方面重要的原因就是练习的太少!下面我们通过实例来看几处常见的格式上的错误。
  程序2:
  main()
  {
  printf(“Welcome!”)
  }
  程序1中的输出语句缺少“;”。在C语言的程序中“;”是最常用、出现次数最多的符号。“;”在C语言里的作用就像句号在文章里的作用一样,即表示着一个句子的结束。有不少编程者其实还是马虎,使得程序缺少“;”而无法正确编译。
  程序3:
  main()
  {Floata,b;
  scanf(“%f,%d,%f”,a,b,c,);
  printf(“%f,%f,%f”,a,b,c);
  }
  上述程序3中,类型声明符“float”写成了“Float”。C语言的语法格式中,所有的关键字或声明符都不能出现有大写字母的形式!即使是自定义的变量名,大写与小写字符也不相同、不相通,所以“Float”是错误的!
  在输入语句中,出现了字符“c”,而“c”在使用之前未进行定义!如果出现这样的错误而找不出原因,就说明一些学习者根本就没有弄懂C语言中变量的意义。最容易犯错误的地方就是输入语句,而在本程序中的输入语句:scanf(“%f,%d,%f”,a,b,c,);中,变量名前没有加上地址符:“&”。这就是输入语句和输出语句的格式上最大的不同之处,故正确的输入语句应该是:scanf(“%f,%d,%f”,&a,&b,&c,);。
  程序4:
  main()
  {intx,y,z;
  scanf(“%d,%d”,&x,&y);
  printf(“%d”,z=x+y);
  }
  在程序4中,输入数据时一定要注意,在编程时如果两格式符“%d”之间有“,”(即“%d,%d”),那么在运行后输入的两个数据之间也要加“,”号。如果两格式符“%d”之间无符号,例:scanf(“%d%d”,&a,&b);这种情况在输入的两个数据之间用空格隔开。
  本程序的另外一个错误在输出语句中,与格式符“%d”相对应的应该是一个表达式或者是个变量名,而在程序中的“z=x+y”是一个赋值语句,不符合输出语句的语法要求,因此发生错误!
  2.3C程序中其他常见错误解析
  在C语言编程中,还有其他方面的一些常见错误,让我们再通过几个例子来进行解析。
  
  
  
  程序5:
  main()
  {
  charj;
  floati;
  scanf(“%f%c”,&i,&j);
  printf(“%f,%c”,i,j);
  }
  本程序5中其实无任何问题,要注意的是运行后的输入方式。在前面的程序4中其实谈到过因格式符之间的“,”与输入数据间的符号不相符而产生了问题。在本程序的输入语句:scanf(“%f%c”,&i,&j);中,格式符“%f%c”之间无任何符号,本来编程者想把数据2.15赋值给变量i,把字符’b’赋值给变量j,所以在输入数据时就很可能会以这种形式输入:2.15b;我们看到两个数据之间用了一个空格,这样其实相当于将2.15赋值给了变量i,而空格赋给了变量j。因为这种形式和之前提到的“%d%d”是不同的,往往是编程者忘记了空格也是字符常量!
  程序6:
  main()
  {
  floata,b;
  scanf(“%f,%.2f”,&a,&b);
  printf(“%f,%f”,a,b);
  }
  程序6中的输入语句:scanf(“%f,%.2f”,&a,&b);其中出现精度符“%.2f”。我们知道,C语言中虽然提供了宽度符“%nf”和精度“%.nf”,但并不是输入和输出语句都能一样使用。例如在输出语句中使用精度符“%.2f”,说明输出结果是精确到小数点后两位数字。而在输入语句中使用“%.2f”则没有任何意义!所以本程序的问题就在于输入语句中的“%.2f”使用错误!
  3结语
  由于篇幅限制,仍有很多问题不能在此一一解析。从上述的错误中我们得知,虽然C语言具有编译方法简单、程序易懂等优点,但是多数学者在编程时还是很容易犯错。原因就在于编程粗心和对C语言中的符号、程序格式及语法掌握的不够熟练。而C程序中的符号、程序格式及语法都是比较重要且是初学者必须要掌握的内容。所以只有做到多练习、多编程和平时多些注意、编程多些细心才能最终做到熟能生巧,一旦出现编译不成功,自己也能够很快查出错误并解决问题!
  
  作者简介:
  杨富强,河南商丘人,主要从事通信、计算机、电气方面的教育工作。
【对“硅谷杂志:C语言编程中常见错误解析”发布评论】

版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
广告
相关
·硅谷网学院:分步走,教新手怎样搭建网站
·硅谷网解密:4G网络中的微波传输解决方案
·硅谷网学院:探秘无刷直流电机的建模与仿真
·硅谷网学院:如何提高中技生单片机应用能力
·硅谷网学院:热载流子效应对器件可靠性影响
·热载流子效应研究及其对器件可靠性有哪些影响?
·如何用入侵检测系统保护计算机系统的安全?
·董燕:计算机网络安全面临的问题及防范措施
头条
硅谷网解密:4G网络中的微波传输解决方案 硅谷网解密:4G网络中的微波传输解决方案
在2013年12月4日,工信部向中国移动、中国联通、中国电信颁发TD-LTE(4G)经营许可之后……
·硅谷网解密:4G网络中的微波传输解决方案
·创意产业的批量化规律 工业造型方法论之加减
·《硅谷》杂志:浅谈电信运营商开展IPTV业务
·《硅谷》杂志:新型桌面搜索关键技术的研究与
·硅谷杂志:基于时间技术的搜索引擎排名算法
图文
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介
最新
·佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
·利用重力势能做功发电介绍和势能输出系统介绍
·李磊:新时代下电网调度自动化技术的发展分析
·提升企业竞争力以及企业人力资源管理优化思考
·《硅谷》杂志:采油分层测静压工艺技术浅究
热点
·判断连续时间系统的线性非时变性和因果性
·3DMAX+Vary室内漫游动画制作的技法浅析
·长期使人困惑的问题:TCP连接中断的实时检测
·佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
·关于汽轮机油系统失火原因分析及防范措施的一
旧闻
·硅谷杂志:关于网络安全解决方案的探讨
·博物馆数字化展示应用研究
·探讨气体检测中如何应用数字信号处理技术
·硅谷杂志:云计算在飞行试验数据处理中的探索
·徐海:智能变坡水槽控制系统的设计与实现
广告
硅谷影像
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
佳惠安抗菌喷剂敷料杀(抑)菌临床检验结论
利用重力势能做功发电介绍和势能输出系统介绍
利用重力势能做功发电介绍和势能输出系统介绍
公关负责人离职背后:危机公关案例分析
公关负责人离职背后:危机公关案例分析
硅谷网解密:4G网络中的微波传输解决方案
硅谷网解密:4G网络中的微波传输解决方案
使用Autoit脚本在虚拟内存盘设置考试模拟系统
使用Autoit脚本在虚拟内存盘设置考试模拟系统
探秘开滦集团设备租赁管理系统的设计和实现
探秘开滦集团设备租赁管理系统的设计和实现
关于我们·About | 联系我们·contact | 加入我们·Join | 关注我们·Invest | Site Map | Tags | RSS Map
电脑版·PC版 移动版·MD版 网站热线:(+86)010-57255600
Copyright © 2007-2020 硅谷网. 版权所有. All Rights Reserved. <京ICP备12003855号-2>