浅析C语言程序的挂起错误及解决策略论文
【软件开发论文栏目提醒】:网学会员为宽大网友网络整理了,浅析C语言程序的挂起错误及解决议略论文,希望对各人有所资助!
摘要:在程序设计教学中,程序一旦挂起,学生便感受无从下手。本文剖析了程序挂起的常见错误及响应的解决措施,以提高学习者的编程效率。
要害词:C程序设计;程序挂起;解决议略
中图分类号:文献标识码:
0弁言
“C语言程序设计”是盘算机专业的一门主要的专业基础课,一样平常院校都把它放在大一第一学期学习,由于学生在中学阶段险些没有接触历程序设计课程,再加上C语言涉及数据类型多、基本观点多、运算符富厚、运算规则繁多,学生在上机实验时经常遇到编辑的程序调试运行时堕落,甚至挂起,不再运行。鉴于此,本文在讨论说明C语言程序常见的挂起错误基础上,联合实例给出种种挂起错误的解决议略。
1程序的挂起错误及解决议略
1.1程序中有死循环
死循环是程序举行循环判断的条件永远软件公司为真,或使程序退出循环的判断条件永远为捏造成的,这样机械将无数次地执行统一段程序代码,泛起死循环,造成程序的挂起。例如下面一段程序:
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,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
使用“扫一扫”即可将网页分享至朋友圈。