- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常见错误和程序分析
(1)忘记定义变量。例如:
void main()
{
x=3;
y=6;
printf(“%d\n”,x+y);
}
C要求对程序中用到的美一个变量都必须定义其类型,上面程序中没有对x,y进行定义。应在函数体的开头加int x,y;
(2)输入输出的数据类型与所用格式说明符不一致。例如,若a已定义为整数,b已定义为实型:
a=3;b=4.5; /*对a和b赋值*/
printf(“%f %d\n”,a,b);
编译时不给出出错信息,但运行结果将与原意不符,输出为0.000000 16402它们并不是按照赋值的规则进行转换(如把4.5转换为4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后2个字节中的数据按%d作为整数输出)。
(3)未注意int型的数据的数值范围。Turbo C等编译系统,对一个整型数据分配2个字节。因此一个整数的范围为-2的13次方到2的15次方减1,即-32768~32767常见这样的程序段:
int num;
num=89101;
printf(“%d”,num);
得到的却是23565,原因是89101已超过32767。2个字节容纳不下89101,则将高位截去,即将超过低16位的数截去,也即89101-65536=23565,有时还会出现负数。这种情况应改为:
Long int num;
num=89101;
printf(“%ld”,num);
注意,如果只定义num为long型,而在输出时扔用%d说明符,也会出现以上错误。
(4)在输出语句scanf中忘记使用变量的地址符。例如:
scanf(“%d%d”,a,b);
这是很多初学者刚学C语言时常见的疏忽,应写为scanf(“%d%d”,a,b);
(5)输入数据的形式与要求不符。例如有以下scanf函数:
scanf(“%d%d”,a,b);
有人输入3 , 4 ,这是错的数据间应该用空格来分隔,读者可以用printf(“%d%d”,a,b);来验证下。应该输入3 4,除非函数是scanf(“%d,%d”,a,b);
还应注意不能企图用
scanf(“input a b:%d,%d”,a,b);
想在屏幕上显示一行信息:input a b: 然后在其后显示a,b的值,这是不行的。可以改为:
printf(“input a b :”);
scanf(“%d,%d”a,b);
(6)误把“=”作为“等于”运算符,“==”才是关系运算符“等于”。
(7)语句后面漏分号。
(8)在不该加分号的地方加分号。例如if,for,while语句中,不应有分号,切勿画蛇添足。
(9)对应该有花括号的复合语句,忘记加花括号。例如
sun=0;
i=1;
while(i=100)
sum=sum+I;
i++;
这时候,其实有些人已看出问题了,就是while语句后没有花括号。
(10)括号不配对。当一个语句中使用多层次括号时常出现这类错误,纯粹粗心。
while((c=getchar()!=’#’)
putchar(c);
(11)在用标识符时忘记打写字母和小写字母的区别。例如:
void main()
{int a ,b ,c;
a=2;b=3;
C=A+B;
printf(“%d+%d=%d”,A,B,C);
}编译时出错,编译程序把a和A 认作是两个不同的变量名处理,
(12)引用数组元素时误用了圆括号。例如:
void main()
{int i,a[10];
for(i=0;i10;i++)
scanf(“%d”,a(i));
}
(13)在定义数组时,将定义的“元素个数”误认为是“可使用的最大下标值”例如: void main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=1;i=10;i++)
printf(“%d”,a[i]);
}
想输出a[1]到a[10]。C语言规定定义时用a[10]表示a数组有10个元素,是从a[0]到a[9],因此用a[10]就超出a数组的范围了。
(14)对二维或多维数组的定义和引用方法不对。例如:
void main()
{int a[5,4];
。
。
printf(“%d”,a[1+2,2+2]);
。
}
a[5,4]是错的,应改为a[5][4],同样a[1+2,2+2]也是错的。
(15)误以为数组名代表数组中全部元素。例如:
void main()
{int a[4]={1,3,5,7};
printf(“%d%d%d%d\n”,a);
您可能关注的文档
- CF手游雷霆山庄点位深度解析枪法的终极比拼.docx
- Chant在小学英语教学中的有效使用.doc
- CHAPTER9课堂自测题.doc
- CharlieRose采访杨澜英语视频双语字幕.doc
- Chomsky文法类型判断试验报告.doc
- ChromeTheme在线制作个性Chrome主题.doc
- CIP数据项目中图书分类号存在的问题.doc
- Cisco2800系列集成多业务路由器常见问题.docx
- CMA考试难度有多大看优财独家考后盘点如何说.docx
- CN2、CN2CE常见问题.doc
- 全国青少年(毒品预防教育)知识考试题库与答案 .pdf
- 2023年山东胶州市领军计划自主招生历史试题真题(含答案详解) .pdf
- 【人教版八年级生物】第六单元 第二章 认识生物的多样性 .pdf
- 冀人版-第三单元 电(提升卷)-四年级科学上册单元培优进阶练.docx
- 新郑市事业单位统考真题 .pdf
- 冀人版-第三单元动物的生长与繁殖(单元测试)四年级下册科学.docx
- CLCN4基因变异相关癫痫的临床表型及基因变异特点 .pdf
- 【《“双减”背景下小学中年级语文自主阅读策略探究》6500字】 .pdf
- 高一语文开学第一课+课件+2024-2025学年统编版高中语文必修上册 .pdf
- 密山市事业单位统考真题 .pdf
文档评论(0)