面向对象程序设计寒假作业1

这个作业属于哪个课程 面向对象程序设计
这个作业要求在哪里 寒假作业1
这个作业的目标 安装开发环境,了解编译过程,实现白话文编程,记录学习过程,发布博客
作业正文 问答题 实践题
其他参考文献 https://www.cnblogs.com/CarpenterLee/p/5994681.html#top https://www.cnblogs.com/-beyond/p/6636485.html
问答题(寒假作业1)
1.C语言的缺点
<1>在浮点数的判断大小上,有些小数因为二进制的转换导致不能准确地储存正确的值,这时就可能存在判断结果出错。这时候就需要我们认为地设置一个精度来判断,如果两数之差的绝对值处于精度之外的话,我们可以看作两数相等。类似的例子出现在C语言DS的二分法求解一元四次方程中。
<2>while因为数值范围所造成的死循环。类似的比如char的取值范围为 -128127,while(c<151)所造成的死循环;int i=0;while (i<100){i–;},这是一个伪死循环,int的取值范围为 -21474836482147483647,当i自减至 -2147483648时,再自减会变为2147483647,循环结束。类似的还有自然数溢出的问题。
<3>数组无法正常发挥作用。比如说 int arr[100000]需要在主函数外的全局开设以及数组越界无法正常识别。
<4>C语言是面向过程编程。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现,因此对于拓展性方面,C语言较弱。
2.C语言/C++的编译过程
1.预处理(Preprocessing),
2.编译(Compilation),
3.汇编(Assemble),
4.链接(Linking)。
1.预处理(Preprocessing)
预处理用于将所有的#include头文件以及宏定义替换成其真正的内容,预处理之后得到的仍然是文本文件,但文件体积会大很多。gcc的预处理是预处理器cpp来完成的,你可以通过如下命令对test.c
进行预处理:
gcc -E -I./inc test.c -o test.i
或者直接调用cpp命令
cpp test.c -I./inc -o test.i
上述命令中-E是让编译器在预处理之后就退出,不进行后续编译过程;-I指定头文件目录,这里指定的是我们自定义的头文件目录;-o指定输出文件名。
经过预处理之后代码体积会大很多,预处理之后的程序还是文本,可以用文本编辑器打开。
2.编译(Compilation)
这里的编译不是指程序从源文件到二进制程序的全部过程,而是指将经过预处理之后的程序转换成特定汇编代码(assembly code)的过程。编译的指定如下:
gcc -S -I./inc test.c -o test.s
上述命令中-S让编译器在编译之后停止,不进行后续过程。编译过程完成后,将生成程序的汇编代码test.s,这也是文本文件,内容如下:test.c汇编之后的结果test.s
3.汇编(Assemble)
汇编过程将上一步的汇编代码转换成机器码(machine code),这一步产生的文件叫做目标文件,是二进制格式。gcc汇编过程通过as命令完成:
as test.s -o test.o
等价于:
gcc -c test.s -o test.o
这一步会为每一个源文件产生一个目标文件。因此mymath.c也需要产生一个mymath.o文件
4.链接(Linking)
链接过程将多个目标文以及所需的库文件(.so等)链接成最终的可执行文件(executable file)。
命令大致如下:
ld -o test.out test.o inc/mymath.o ...libraries...
参考资料:https://www.cnblogs.com/CarpenterLee/p/5994681.html#top
实践题(寒假作业1)
1.查看C++编译器版本
首先浏览器打开MinGW官网进行下载MinGW,安装结束后打开“此计算机”,点击“属性”,点击“高级系统设置”,点击“环境变量”,选择“用户变量”中的“path”,在其后添加“;C:\MinGW\bin”,完成环境变量的设定。接着win+r输入cmd后输入g++ -v查看编译器版本。

2.用命令行编译一份C语言/C++代码。
win+r 输入cmd进入命令台,输入cd+C:\Users\GC\Desktop\编程应用\代码盒\HL\C++进入对应cpp目录后输入g++ -o demo (实践题)寒假作业1.cpp 编译名称为demo.exe的文件后输入demo.cpp运行代码

posted @ 2020-01-26 11:04  Mr-CaoMei  阅读(149)  评论(0)    收藏  举报