面向对象程序设计寒假作业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运行代码

浙公网安备 33010602011771号