加载中 ...
首页 > 新闻资讯 > 软件开发 正文

浅析C语言程序的挂起错误及解决策略论文

2019-03-23 08:39:29 来源:沈阳软件公司 作者:沈阳软件开发

软件开发论文栏目提醒】:网学会员为宽大网友网络整理了,浅析C语言程序的挂起错误及解决议略论文,希望对各人有所资助!

  摘要:在程序设计教学中,程序一旦挂起,学生便感受无从下手。本文剖析了程序挂起的常见错误及响应的解决措施,以提高学习者的编程效率。
  要害词:C程序设计;程序挂起;解决议略
  中图分类号:文献标识码:
  0弁言
  “C语言程序设计”是盘算机专业的一门主要的专业基础课,一样平常院校都把它放在大一第一学期学习,由于学生在中学阶段险些没有接触历程序设计课程,再加上C语言涉及数据类型多、基本观点多、运算符富厚、运算规则繁多,学生在上机实验时经常遇到编辑的程序调试运行时堕落,甚至挂起,不再运行。鉴于此,本文在讨论说明C语言程序常见的挂起错误基础上,联合实例给出种种挂起错误的解决议略。
  1程序的挂起错误及解决议略
  1.1程序中有死循环
  死循环是程序举行循环判断的条件永远软件公司<a href=http://www.hvihi.com target=_blank class=infotextkey>沈阳<a href=http://www.hvihi.com target=_blank class=infotextkey>软件开发</a></a>,<a href=http://www.hvihi.com target=_blank class=infotextkey>沈阳<a href=http://www.hvihi.com target=_blank class=infotextkey>软件公司</a></a>为真,或使程序退出循环的判断条件永远为捏造成的,这样机械将无数次地执行统一段程序代码,泛起死循环,造成程序的挂起。例如下面一段程序:
  for(a=0;a<10;++a)
  {
  for(b=0;b<10;++a)
  {array[a][b]=0;
  }
  }
  在本段程序中,第二个循环本应在变量b增添到10后竣事,但在第二个循环的第三部门却增添变量a的值,这样变量b的值始终小于10,因此第二个for循环会一直举行下去。
  再如:voidmain()
  {inta=7;
  while(a<10)
  {==a;
  a/=2;
  }
  }
  只管每次循环中变量a的值要增添,但与此同事它又被减小了一半,因此变量a的值永远不会增添到10,While循环的条件始终为真,循环也永远不会竣事。
  解决议略:程序泛起死循环,一种解决议略是重新阅读程序,注重循环条件中循环控制变量是否使循环条件始终为真;另一种解决议略是调试程序时可以在每个循环体内增添输出语句,视察变量值的转变,从而找堕落误。
  1.2程序运行时间比期望的时间长
  在有些情形下,程序并没有被完全“锁死”,但它的运行时间比期望时间长。
  intfib(inti)
  {if(i<3)
  return1;
  else
  returnfib(i-1)+fib(i-2);
  }
  外貌看,上述程序是界说斐波那契数的一段程序代码,程序简练短小,看上去执行时间不会太长。但事实上盘算时第一步是2个子问题,第二步是4个子问题,第三步是8个子问题,云云继续,效果是子问题的数目以步数为指数不停增加。要盘算第40个斐波那契数的历程中,函数fib()将被挪用2亿多次。
  解决议略:在编程之初,仔细设计解决问题的算法,只管制止泛起假死锁征象。
  1.3程序在等候准确的输入
  有时程序制止运行是由于在等候准确的输入信息。程序等候用户输入信息,而程序没有输出响应的提醒信息,用户不知要输入信息,或者输入的信息不完全准确,程序看上去似乎锁住了。
  main()
  {
  FILE*in=fopen("num.dat","r");
  inttotal=0,n;
  while(fscanf(in,"%d",&n)!=EOF)
  {total+=n;}
  printf("thetotalis%dn",total);
  fclose(in);
  }
  若是文件num.dat中只包罗整数,程序能正常运行,若是文件中包罗整数以外的数据,当程序遇到一个不为整数的值时,它不会读入这个值,而是返回一个错误代码,而此时程序并未读到文件尾,与EOF比力的值为假,这样循环继续举行,n取某个未界说的值,程序再次读文件,再次遇到适才的错误数据,这样程序就会无休止地执行下去。
  解决议略:若是遇到程序中需要输入数据,就在响应的输入函数前,加入响应的提醒信息;若是遇到从文件中读取数据的,只管先去测试读入的数据是否准确。
  另有许多其它缘故原由会使程序挂起,但总的来说,它们都属于上述三种类型中的一种。若是着实不能确定程序挂起的缘故原由也可先检查程序的总体结构,然后根据程序的执行顺序依次检察程序的各个部门能否准确运行。若是各组成部门都能准确运行,再检查各部门是否带回准确的数值。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。