电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言常见错误分析

3页
  • 卖家[上传人]:杨****
  • 文档编号:36333328
  • 上传时间:2018-03-27
  • 文档格式:DOC
  • 文档大小:33KB
  • / 3 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、C 语言常见错误分析语言常见错误分析1、书写标识符时,忽略了大小写字母的区别、书写标识符时,忽略了大小写字母的区别 C 语言认为大写字母和小写字母是两个不同的字符,如在编译程序过程中,系统会把 a 和 A 看做是两个不同的变量名。习惯上,符号常量名用大写表示,变量名用小写表示,以 增加程序的可读性。 2、忽略了变量的类型,进行了不合法的运算、忽略了变量的类型,进行了不合法的运算main() float a=3.4,b=0.4; printf(“%d”,a%b); %是求余运算符,得到 a/b 的余数。整形变量 a 和 b 可以进行求余运算,而实型变量则不 允许进行“求余”运算。 3、将字符常量与字符串常量混淆、将字符常量与字符串常量混淆char c;c=”a”; 这里就是混淆了字符常量和字符串常量,字符常量是由一对单引号括起来的单个字符,字 符串常量是由一对双引号括起来的字符序列。 4、忽略了、忽略了“=”与与“= =”的区别的区别C 语言中, “=”是赋值运算符, “= =”是关系运算符。例如:if(a= =3) a=b; if(a=3) a=b; 前者是进行比较运算,a 是否和 3

      2、 相等;后者表示如果 a 和 3 相等,把 b 的值赋给变量 a。 由于习惯问题,我们往往会犯这样的错误:if(a=3) a=b; 结果 a 总是等于 b 的值,原因是条 件 a=3 是给 a 赋值 3,判断条件非 0,总是执行 a=b。 5、忘记加分号或多加分号、忘记加分号或多加分号考试过程中应特别注意这种情况,分号是 C 语句中不可缺少的一部分,语句末尾必须有 分号,但也不能乱加。例如: #include float fun(int n) main() int n;float s;printf(“nPlease enter N:”); scanf(“%d”,s=fun(n);printf(“the result is : %fn”,s); 这是一个函数调用,在函数首部 float fun(int n)后是没有分号的。 少加或多加分号系统在编译时都会报错。还有一种情况在系统编译时并不会报错,但是程 序的执行顺序被改变了,如: if(a%3= =0) ; i+; 本意是如果 3 整除 a,则 i 加 1,但由于 if(a%3= =0)后多加了分号,即 if 语句后为空语句,程序将无条件

      3、执行 i+语句,不论 3 是否整除 a,i 都将自动加 1。 6、输入变量时忘记加地址运算符、输入变量时忘记加地址运算符“scanf(“%d%d”,a,b); 此时,无法正确给 a 和 b 读入数据。scanf 函数的作用是:按照 a、b 在内存中所分配 的地址将 a、b 的值存进去。 “ (2)多加“scanf(“%s”,C 语言编译系统对数组名的处理是:数组名代表该数组的起始地址,scanf 函数中的 输入项是字符数组名,因此不必再加地址运算符“C 语言规定:如果在“格式控制”字符串中,除了格式说明以外还有其他字符,则在输入 数据时应输入相同的字符。下面输入是合法的:3,4 此时若不用逗号而用空格或其他 字符是不对的,如:3 4 (中间为空格) 3:4 中间为冒号 8、输入字符的格式与要求不一致、输入字符的格式与要求不一致在用“%c”格式输入字符时, “空格字符”和“转义字符”都将作为有效字符输入。 例如:scanf(“%c%c%c”, 如输入:a b c 字符a送给了 c1,字符 (空格)送给了 c2,字符b送给了 c3, 因为%c 只要求读入一个字符,后面不需要用空格作为两个字

      4、符的间隔。 9、输入输出的数据类型与所用格式说明符不一致、输入输出的数据类型与所用格式说明符不一致例如:a 定义为整型,b 定义为实型。int a=3; float b=4.5;printf(“%f%dn”,a,b); 编译时不给出错信息提示,但运行结果将与意愿不符,这种错误尤其需要注意。 10、输入数据时,企图规定精度、输入数据时,企图规定精度scanf(“%7.2f”, 上述语句是不合法的,输入数据时不能规定精度。 11、switch 语句中漏写语句中漏写 break 语句语句例如:根据考试成绩的等级打印出百分制分数段 switch(grade) case A:printf(“85 100n”);case B:printf(“70 84n”);case C:printf(“60 69n”);case D:printf(“60n”);default:printf(“errorn”); 由于漏写了 break 语句,case 只起标号的作用,而不起判断的作用。因此,当 grade 值为 A 时,printf 函数在执行完第一个 printf 语句后接着执行后面的 printf 函数语句

      5、。正确的写 法应在每个分支后加上 break,应改为: switch(grade) case A:printf(“85 100n”);break;case B:printf(“70 84n”); break;、 、/case C:printf(“60 69n”); break;case D:printf(“60n”); break;default:printf(“errorn”); 12、在定义数组时,将定义的、在定义数组时,将定义的“元素个数元素个数”误认为是可使用的最大下标误认为是可使用的最大下标例如:main() static int a10=1,2,3,4,5,6,7,8,9,10;printf(“%d”,a10); C 语言规定:定义时用 a10表示数组 a 中有 10 个元素,其下标由 0 开始,所以数组元 素 a10是不存在的,这种错误称为“越界” 。 13、自加(、自加(+ +) ,自减(,自减(- -)运算符的使用)运算符的使用自加(减)运算符只能与变量相结合,其运算规则为:自加(减)后缀形式是先引用后 加(减)值;自加(减)前缀形式是先加(减)后引用。 14、if 与与 else 的匹配问题的匹配问题在考试过程中若不能准确确定 else 与其前面哪个 if 相匹配时,应遵循一原则:见到 else 后,要与它前面的离它最近的没有配对的那个 if 相匹配。 15、 “/”与与“”的混淆的混淆前者是除号,在进行相除运算时常会把“/”写成“” ,应特别注意。 16、C 语言关键字的拼写语言关键字的拼写如:mainmian(错误) printfpirntf(错误)returnretrun(错误) whileWhile(错误) 17、在做改错题时要注意数字与拼音的区别、在做改错题时要注意数字与拼音的区别字形相似的有:0(零)与 o(字母) ,1(数字)与 l(小写字母 L)等。

      《C语言常见错误分析》由会员杨****分享,可在线阅读,更多相关《C语言常见错误分析》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.