寒假作业1
这个作业属于哪个课程 | 2020面向对象程序设计张栋班 |
---|---|
这个作业要求在哪里 | 面向对象程序设计寒假作业1 |
这个作业的目标 | 对c语言与c++的思考,安装开发环境,了解编译的过程,学习文字的编程,通过思考与学习提高基础能力并记录博客 |
作业正文 | 第一次作业 |
其它参考文献 | c语言编译过程 |
问答题:
1、(1)类型用错不报错。比如有时候将部分int型变量修改为float型变量缺漏修改了一个int型变量,而接下来赋给该变量的值都是float型,而运行过程中该变量都是以int型的形式出现,从而导致错误,查错也要花费一定的时间和精力。
(2)缺乏一定的“检查”功能。比如在语句中,部分符号敲成了该符号旁边的符号,如%敲成了¥,在较长的代码的中很难查出符号敲错,而导致代码无法ac。
(3)定义数组容易越界。
(4)对数组赋值麻烦,每给一个数组赋值就要写若干个循环,特别是多维数组,就可能出现(2)中所述的错误。
(5)对于新手来说,使用指针很可能指错,指向一些乱七八糟的地方。
2、编译过程:C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件
(1)预编译处理
读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。
(2)编译阶段
编译程序所要作得工作就是通过词法分析和语法分析,在确认所有的指令都符合语法规则之后,将其翻译成等价的中间代码表示或汇编代码。
(3)优化阶段
主要的工作是删除公共表达式、循环优化(代码外提、强度削弱、变换循环控制条件、已知量的合并等)、复写传播,以及无用赋值的删除,等等;或者是考虑是如何充分利用机器的各个硬件寄存器存放的有关变量的值,以减少对于内存的访问次数。
(4)汇编过程
汇编过程实际上指把汇编语言代码翻译成目标机器指令的过程。
(5)链接程序
链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够诶操作系统装入执行的统一整体。
实践题:
1、安装了visual stdio 2019 community,莫名地查到了编译器版本。
2、通过开始查找cmd,并编辑了一段程序,用命令行找到文件的位置并打开。
编程题:
(由于visual stdio出现不明原因,写的代码基本无法编译运行,在此我使用了dev c++)
1、题目要求输入输出的是都是汉字,要弄清楚一个汉字相当与一个字符串,可以先写输入模板。
2、自己可以写一个函数将汉字的数字转化为阿拉伯数字。
3、通过简单的加减,得到钱包里的钱,然后输出。
附上完整的代码
遇到的问题:
相同的字符串比较不能简单的“==”,会出大问题。