习题1
1.填空题
(1) 机器语言 是计算机直接理解执行的语言,由一系列 二进制指令 组成,其助记符构成了 汇编语言 ,接近人的自然语言习惯的程序设计语言为 高级语言 。
(2)结构化程序设计 方法主要内容有:自顶而下,逐步求精; 面向对象 方法将现实世界中的客观事物描述成具有属性和行为的 对象 ,抽象出共同属性和行为,形成 类 。
(3)C++程序开发通常要经过5个阶段,包括:编辑 、预处理 、编译 、连接 、运行与调试 。首先是 编辑 阶段,任务是 编辑源程序 ,C++源程序文件通常带有 .cpp 扩展名。接着,使用 编译器 对源程序进行 编译 ,将源程序翻译为机器语言代码(目标代码),过程分为词法分析、语法分析、代码生成3个步骤。
在此之前, 预处理器(预编译器)会自动执行源程序中的 预处理指令 ,完成将其他源程序文件包括到要编译的文件中,以及执行各种文字替换等。
连接器 的功能就是将目标代码同缺失函数的代码连接起来,将这个“漏洞”补上,生成 可执行文件 。程序运行时,可执行文件由操作系统装入内存,然后CPU从内存中取出程序执行。若程序运行过程出现错误,还需要对程序进行 调试 。
(4)对象与对象之间通过 消息 进行相互通信。
(5) 类 是对具有相同属性和行为的一组对象的抽象;任何一个对象都是某个类的一个具体实例。
(6) 多态性 是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
(7)面向对象的软件开发过程主要包括:面向对象的分析、面向对象的设计、面向对象的编程、面向对象的测试、面向对象的维护。
(8) 泛型程序设计 是指在程序设计时,将数据类型参数化,编写具有通用性和可重用的程序。
(9) #include (10)C++中使用 cin 作为标准输入流对象,通常代表键盘,与提取操作符 >> 连用;使用cout 作为标准输出流对象,通常代表显示设备,与 << 连用。 2.问答题 (1)叙述机器语言、汇编语言、高级语言的特点。 【答】机器语言特点: 由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言。用机器语言编程的程序成为目标程序,能被计算机直接识别和执行。机器语言属于低级语言,执行速度快,占用内存少。但是用机器语言编写程序具有编写难、识别难、记忆难、查错难、交流难等缺点。 汇编语言特点: 汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,需要有更多的计算机专业知识,汇编源程序一般比较冗长、复杂、容易出错。汇编语言有着机器语言同样的优点,执行速度快,占用内存少,用汇编语言所能完成的操作不是一般高级语言所能实现的。它是面向机器的,通用性差。 高级语言特点: 高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、C++、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。它比汇编语言易学,易懂,具有通用性强,易于移植等 优点.高级语言的语句功能强,它的一条语句往往相当于许多条指令,因而用于翻译的程序要占用较多的存储空间,而且执行时间长,且不易精确掌握,故在高速实时控制中一般是不适用的。 (2)结构化语言与面向对象的语言是截然分开的吗? 【答】不是截然分开的。面向对象的程序设计中也包含过程,含有结构化的思想。 (3)C语言编写的程序不加修改就可以在C++编译器中编译吗? 【答】可以。C++语言完全兼容C语言。 (4)C++的源程序是什么类型的文件,如何在Word中进行编辑? 【答】C++源程序是文本文件。在Word中进行编辑时,存为扩展名为.cpp的文本文件。在Windows的写字板、记事本中都可以编辑。 (5)如何将一个c++源程序变成可执行程序?产生的各类文件的扩展名是什么? 【答】通过编译变成带扩展名.obj的目标文件;再通过链接变成带扩展名.exe的可执行文件。 (6)如果要求不使用include包含头文件,有什么办法使程序正常编译运行? 【答】在相应的目录中,找到需要包含的头文件,将头文件复制到需要包含处。 (7)下列程序中如有错误与不妥当之处请指出。 ①///******************************************************************** * 程序文件名:p1_2.cpp * **********************************************************************/ ②Using namespace std③ #include Using std::endl;⑤ void main( )⑥ float num1,num2,num3; //定义三个数 cin⑦< 一共有10处错误。看看能说清楚不? 正确的程序应该为如下所示: /******************************************************************** * 程序文件名:p1_2.cpp ********************************************************************/ #include #include ⑩>> * (num1+num2+num3)/3>>endl; using namespace std; void main() { float num1,num2,num3; //定义三个数 cin>>num1>>num2>>num3; cout<<\"the average is:\"< 3.选择题 (1) C++语言属于(D) A.机器语言 B.低级语言 C.中级语言 D.高级语言 (2) C++语言程序能够在不用操作程序下编译、运行,说明C++具有良好的(B) A.适应性 B.移植性 C.兼容性 D.操作性 (3) #include语句(D) A.总是在程序运行时最先执行 B.按照在程序中的位置顺序执行 C.在最后执行 D.在程序运行前就执行了 (4) C++程序运行时,总是起始于(C) A.程序中的第一条语句 B.预处理命令后的第一条语句 C.main() D.预处理命令 (5) 下列说法正确的是(D) A.用C++语言书写程序时,不区分大小写字母 B.用C++语言书写程序时,每行必须有行号 C.用C++语言书写程序时,一行只能写一个语句 D.用C++语言书写程序时,一个语句可分几行写 (6) 下列概念中,不属于面向对象编程方法的是(D) A.对象 B.继承 C.类 D.过程调用 (7) 下列程序运行的结果为(B) #include #include using namespace std; int main() { cout< <<\ cout<<24< } A.3.333e+001.18 B.33.33,18 C.21.18 D.33.3,24 4.程序填空题 #include ① int main() { float i,j; cin ⑥>> I >> j; cout ⑦<< setw(10) << i*j; return 0; } 5.编程题 (1) (2) # include using namespace std; int main() { int num1; cout<<\"please input a number\"; cin>> num1; cout< } (3) /******************************************************************* * 程序名:作业5-(3).cpp * *功能:输入两个数,将它们相除,观察结果为无限循环小数时按精度从小到大输出的结果 * *************************************************************************************/ #include #include using namespace std; int main() { float i,j; cout<<\"任意输入两个数\"; cin>>i>>j; cout< } 因篇幅问题不能全部显示,请点此查看更多更全内容