c语言设计第四版答案,c语言设计第四版答案解析

dfnjsfkhak 13 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言设计第四版答案问题,于是小编就整理了2个相关介绍c语言设计第四版答案的解答,让我们一起看看吧。

  1. 如果在写C语言时,代码没错,但是结果总错是什么原因?

用C语言编写的源文件经过编译,若没有产生编译错误,则系统将( )?

答案是错误的,系统将生成目标文件,选B。因为C语言中编译程序是把一个源程序翻译成目标程序的工作过程。这一过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。在语法分析过程中发现有语法错误,给出提示信息,没有错误则生成目标文件。C语言通过汇编汇编语言代码翻译成目标机器指令。对于被翻译系统处理的每一个C语言源程序,都将最终经过这一处理而得到相应的目标文件。目标文件中所存放的也就是与源程序等效的目标的机器语言代码。 扩展资料C语言的源文件成为目标文件的过程:

1、源文件经过预处理,生成.i的文件 (预处理器cpp)。

c语言设计第四版答案,c语言设计第四版答案解析-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

2、将预处理后的文件转换成汇编语言,生成文件.s文件。

3、从汇编变为目标代码(机器代码)生成.o(.obj)的文件 (汇编器as)。

4、连接目标代码,生成可执行程序 (连接器ld)。

c语言设计第四版答案,c语言设计第四版答案解析-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

如果在写C语言时,代码没错,但是结果总错是什么原因?

错误有两种:语法错误和逻辑错误。

前者,编译过程中编译器会报错。

后者,就是程序有错。例如,c语言不做越界检查,数组越界不报错,但结果不正确。还有未初始化就引用值,等等。

c语言设计第四版答案,c语言设计第四版答案解析-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

所以你的问题本身就是错误,先设定自己没错,再问是谁的错。

软件工程:没有错误是不可能的,唯一不变的就是错误本身。

出了错。先得怀疑一切,一步步排除错误,而不是坚持自己没错。

写c语言的时候,如果代码没错,这只能说明语法没有出错,直接导致的结果就是能编译通过,并不意味着执行的结果就是正确的。影响c语言代码执行结果的因素非常多。

一、指针的不正确运用;

二、变量精度问题。charint,unsigned int,long ,float等,如果变量精度使用不正确,也会影响运算结果;

三、运算符应用不正确。例如除,取余的区别;

四、正负符号位;

五、运算符的优先级使用;

六、编译器不同。各种编译器也可能造成结果不一致;

C语言虽然是一门比较简单的语言,但是要掌握这些细节,其实并不容易。

我想你要表达的是,编绎时,没显示出错,但就是结果错了。要细致地找原因。

根据我以往的经验,原因有以下几点。

1,内存没有释放。

用new,malloc等分配内存,而在结束时来释放,频繁调用,系统崩溃。

或者根本没使用new或malloc,在使用内存时异常

2,变量与地址用错。

char *p;

char cp

第一个p指地址,在程序中用错。

3,画笔CPen,CStatic等未恢复

你写的代码,如果你觉得你的代码没错,但是运行出错了,可以肯定的告诉你,说明你的知识还不够,可能是语言层面,可能是逻辑问题,可能是编译优化,可能是操作系统相关,反正一句话就是在你有限的知识体系内,根本不知道问题所在,所以才有此疑问。把你的错误放到stackoverflow上一查就出来了。相信我,你不是第一个遇到同样问题的人。

很高兴回答答主的问题,希望我的回答对答主有帮助。

根据您的描述,首先排除您的代码语法上出现错误,因为这种错误在代码编译时,编译器就会报错,这种错误相对容易好找。

然后就是查找代码逻辑上的错误,将自己的构思通过画流程图展示出来,然后将程序运行的流程和自己的构思流程对照是否吻合。

之后再查询字段的数据类型是否正确,比如如果存储类型为小数时,必须定义为float或double类型,否则显示结果肯定跟预期的完全不一样。

最后如果还是程序运行错误,那么恭喜你,发现了编译器的BUG了!🤫

到此,以上就是小编对于c语言设计第四版答案的问题就介绍到这了,希望介绍关于c语言设计第四版答案的2点解答对大家有用

标签: 错误 语言 代码