c语言程序设计的一般错误的是,《C语言程序设计》第十章 程序常见错误分析.pdf...

第十章 程序常见错误分析

第十章 程序常见错误分析

C 语言是一种方便灵活、功能性很强的程序设计语言,但是对于初学者很难掌

握,尤其是出了错还不知道错误在哪儿,这是由于 c 编译程序对语法的检查不如其

他高级语言那样严格,往往要求设计者自己设法保证程序的正确性,因此调试一个

c 语言程序是不容易的,需要设计者不断积累经验,提高程序设计和调试的水平。

本章将初学者容易犯的错误集中列举出来,供初学者参考,另外,还介绍了调

试程序的一般方法,以便于初学者提高调试程序的能力。

10.1 常见错误分析

程序出错通常有两种情况:

一、语法错误。这种错误通常 c 语言编译程序会给出“出错信息”,并且告诉你

在哪一行出错,程序

设计者只要细心,会很快发现并排除这类错误。

二、逻辑错误。这种错误通常 c 语言编译程序不会检查出来,因此它比语法错

误更难检查,这就要求

程序设计者必须要有丰富的经验,才能很快的解决。有时可能设计者忘记加某种符

号,例如,复合语句的花括号,而导致程序出错,这种错误经过仔细检查,还是可

以发现的。但是,如果程序从算法上就有问题,那修改和检查起来就非常困难了,

像这种错误,在这里不作赘述。

下面将程序中常见的错误列举出来,供初学者参考,并以此为鉴。

1.没有定义变量

在 c 语言程序中,变量一般是先定义后使用。

例如:

main ()

{int x=10,y=2;

s=x*y+3;

printf(“%d\n”,s);

}

编译后,编译程序在程序第三行给出出错信息“Undefined symbol 's' in function

main ”,意思是在 main 函数中第三行有未定义的符号‘s ’,如果在程序开头这样写

“int x=10,y=2,s; ”上面的程序就顺利通过编译程序了。

再如:

127

第十章 程序常见错误分析

main ()

{int x=10;y=2;

printf (“%d\n”, x*y+3);

}

编译后,编译程序在程序第一行给出出错信息“Undefined symbol 'y' in function

main ”,在定义类型一致的多个变量时,变量之间用逗号隔开,如果用分号隔开说明

这句定义语句结束,后面的变量就没有被定义,如果将“y =2 ;”这句前的分号改成

逗号,程序就不会出错了。这种错误是初学者最爱犯的错误。

2 .未注意数据的数值范围

各种不同类型的数据类型表示数的范围不同,例如,int 类型的数占 2 个字节,

表示范围-32768~

32767,如果所表示的数超过这个范围,结果就会出错,如下面的程序段:

int num;

num=89101;

printf(“%d”,num);

程序运行结果是 23565 ,而不是 89101,原因是 89101 已超过了32767,两个字节容

不下 89101,则将高位截取。见图 12.1

00 00 00 00 00 00 00 01 01 01 11 00 00 00 11 01 89101:

23565 :

01 01 11 00 00 00 11 01

3 .输入输出的数据类型与所用格式说明符不一致

输入输出的数据类型应与所用格式说明符匹配,否则将会导致运行结果与原意

不符。

例如下面的程序段:

int a=3;

float b=4.5;

printf(“%f,%d\n”,a,b);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dapper源码学习和源码修改(下篇)

继上篇Dapper源码学习和源码修改 讲了下自己学习Dapper的心得之后,下篇也随之而来,上篇主要讲的入参解析那下篇自然主打出参映射了。 好了,废话不多说,开始吧。 学习之前你的先学习怎么使用Dapper,这个我在上篇都提过…

2020蓝桥杯省赛---java---B---6(成绩分析)

题目描述 时间限制: 1.0s 内存限制: 512.0MB 本题总分:15 分【问题描述】 小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是 一个 0 到 100 的整数。请计算这次考试的最高分、最低分和平均分。【输入格式】 输入的第一行包…

Photoshop基本操作

一、缩放工具: 1.按快捷键z,单击图片即可放大缩小 2.按住alt键,滚动鼠标滑轮,往上放大,往下缩小 3.如果细微缩放出不来:编辑–》首选项–》性能–》在openGL绘图前面的复选框中打钩–》确定–》重新开ps软件 二、抓手工…

c语言程序设计实践教程张卫国,C语言程序设计实践教程

本书包括三大章和六个附录。第一章介绍了VC6.0调试C语言程序的基础知识和方法,其目的是使读者掌握调试C语言程序的基本方法和技能,主要内容包括:VC6.0的安装、VC6.0的界面介绍、VC6.0错误类型及其查询方法、建立和运行C语言程序的方法以及VC6…

mybatis入门(六)之SQL语句构建器类

转载自 mybatis SQL语句构建器类 问题 Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL语句。这么来做通常是由于SQL语句需要动态来生成-否则可以将它们放到外部文件或者存储过程中。正如你已经看到的那样,MyBatis在它的XML映射特性中有一个强大的动…

2020蓝桥杯省赛---java---B---5(排序)

题目描述 思路分析 01231391,而01231314105。 让下标为j的字符提到最前,正好达到100次交换,这样也满足了最小字典序,也可以验证一下。 代码实现 package TEST;public class Main {public static void main(String[] args) {St…

ASP.NET Core MVC 源码学习:MVC 启动流程详解

前言 在 上一篇 文章中,我们学习了 ASP.NET Core MVC 的路由模块,那么在本篇文章中,主要是对 ASP.NET Core MVC 启动流程的一个学习。 ASP.NET Core 是新一代的 ASP.NET 应用程序,它是跨平台的,并且不依赖于 IIS&…

ps基础知识

一、ps全称:Adobe Photoshop ,Adobe Photoshop是由Adobe Systems 开发和发行的专门用于图形图像处理的软件。 二、PS的应用领域: 1.在平面设计中的应用 2.在插画设计中的应用 3.在网页设计中的应用 4.在界面设计中的应用 5.在数码艺术中的应用…

Photoshop的绘图工具

一、油漆桶工具 1.快捷键:g 2.选区图像部分,使用油漆桶工具直接单击选区部分即可 3.返回上一步:ctrlshiftz 4.不透明度:一般我们调整不透明度的时候,使用调整图层的不透明度的方法来实现要求。 二、渐变工具&#xff1…

C语言调用es6,ES6 箭头函数、普通函数、调用方法

importReact,{Component} fromreact;import{Platform,StyleSheet,Text,Image,View,TouchableOpacity,ToastAndroid,} fromreact-native;export default classsrrowFunDemo extendsComponent {constructor(props) {super(props);this.state {data0: 点击0,data1: 点击1,data2: 点…

2020蓝桥杯省赛---java---B---9(子串分值和)

题目描述 时间限制: 3.0s 内存限制: 512.0MB 本题总分:25 分【问题描述】 对于一个字符串 S,我们定义 S 的分值 f(S) 为 S 中出现的不同的字符个 数。例如 f(”aba”) 2,f(”abc”) 3, f(”aaa”) 1。 现在给定一个字符串 S[0…n−1]&…

GitHub 贡献第一的微软开源软件列表

作者|木环 编辑|小智 在GitHub上贡献最多的公司,不是Facebook,也不是Google,而是微软。InfoQ对微软数个较受社区欢迎的项目进行了整理,以飨读者。希望开源的精神,能给技术社区带来更多的实惠&am…

mybatis入门(七)之日志

转载自 mybatis入门(七)之日志 Mybatis 的内置日志工厂提供日志功能,内置日志工厂将日志交给以下其中一种工具作代理: SLF4JApache Commons LoggingLog4j 2Log4jJDK logging MyBatis 内置日志工厂基于运行时自省机制选择合适…

Photoshop图像修饰工具

一、修饰工具: 1.准确来说是一个修饰工具组。 2.进行图像修饰时,没根据具体情况,进行针对性的选择相应的工具进行修饰。 二、仿制图章工具组: 1.仿制图章工具组 2.图案图章工具 三、修复工具组 1.污点修复画笔工具 2.修复画笔工具 3.修补工具…

android 画布控件,Android canvas画图操作之切割画布实现方法(clipRect)

本文实例讲述了Android canvas画图操作之切割画布实现方法。分享给大家供大家参考,具体如下:android切割画布的历程不算很难,可是理解起来也比较麻烦,这里写一下我的理解 但是不一定正确:canvas.clipRect(30,30,70,Reg…

MyBatis传入多个参数的问题

转载自 MyBatis传入多个参数的问题 一、单个参数&#xff1a; public List<XXBean> getXXBeanList(String xxCode); <select id"getXXXBeanList" parameterType"java.lang.String" resultType"XXBean">select t.* from tableN…

老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典

前面两篇&#xff08;简单运维1、简单运维2&#xff09;介绍了一些Windows Server Docker相关的基本运维知识。今天这一篇&#xff0c;Windows Server Dockerfile葵花宝典&#xff0c;涵盖了许多典型场景的Windows Server下的Dockerfile实例&#xff0c;并且每一个都包含可直接…

2020蓝桥杯省赛---java---B---2(寻找 2020)+测试txt

题目描述 text 0020000002202020002220002022002222202022020200022200020200222022002202202020020022200202000000002200222002022220222202220000222202200200202220200222200222202200000220220020202200022002200200200222000202220202002000000202200200220022020002022…

用一年的时间,依靠SEO创造一个成功的网站

以下内容是一位SEO前辈&#xff08;站长世界的创始人Brett Tabke&#xff09;写的&#xff0c;这篇文章在我最初学习SEO时&#xff0c;深刻得影响了我&#xff0c;给我了足够的自信。希望对你也有所帮助。 a)准备工作和建立内容。      在你注册域名之前&#xff0c;你就应…

Mybatis传入参数类型为Map

转载自 Mybatis传入参数类型为Map mybatis更新sql语句&#xff1a; <update id"publishT00_notice" parameterType"Map"> update test set createdate #{createdate}, creator #{creator} where id in <foreach collection"ids"…