习题1
1.1 简答题
(1)什么是面向对象?如何理解面向对象中的一些基本概念:对象、类、继承、封装、包含、消息传递、多态性等。
(2)什么是编程语言?从编程语言的发展史中给我们什么启发?
(3)面向对象语言有哪些特点?
(4)C语言和C++语言有什么关系?
(5)C++语言对C语言在哪些方面进行了改进?
(6)C++语言对面向对象方法有哪些支持?
(7)简述C++语言中6种单词的有关规定。
(8)C++程序在结构上有何特点?在书写格式上有何要求?
(9)简述C++源程序实现的3个步骤。
(10)结合你所选用的C++源程序的编译系统,讲述对单文件和多文件的C++源程序的具体实现方法。
1.2 选择填空
(1)下列高级语言中,()是面向对象的程序语言。
A)BASIC
B)C
C)C++
D)Pascal
(2)关于C++语言与C语言的关系描述中,()是错误的。
A)C语言与C++语言是兼容的
B)C++语言对C语言进行了一些改进
C)C语言是C++语言的一个子集
D)C++语言和C语言都是面向对象的
(3)关于对类概念的描述中,()是错误的。
A)类就是C语言中的结构类型
B)类是创建对象的样板
C)类是具有共同行为的若干对象的统一描述体
D)类是抽象数据类型的实现
(4)关于对象的描述中,()是错误的。
A)对象就是C语言中的结构变量
B)对象是状态和操作的封装体
C)对象之间的信息传递是通过消息进行的
D)对象是某个类的一种实例
(5)下列字符中,()是不能构成标识符的。
A)下划线
B)连接符
C)数字字符
D)大小写字母
1.3 判断下列描述的正确性,对者画√,错者画×。
(1)面向对象方法具有三大特性:封装性、继承性和多态性。
(2)机器语言和汇编语言都是计算机能够直接识别的语言。
(3)C++语言允许函数重载,还允许设置默认的参数值,而C语言不允许。
(4)C++语言只支持封装性和继承性,不支持多态性。
(5)C++语言对C语言进行了一些改进,增加了运算符和关键字,并且对类型管理更严格。
(6)用C++语言编写程序时,应该特别注意格式,否则会影响可读性。
(7)C++语言是一种以解释方式实现的高级语言。
(8)C++源程序只在编译时出现错误信息,而在连接中不会出现错误信息。
(9)C++源程序的编译过程包含3个子过程:预处理过程、编译过程和连接过程,它们的顺序是可以改变的。
(10)在编译C++源程序过程中,出现了警告错也可以生成可执行文件。
1.4 分析下列程序的输出结果。
(1)
#include <iostream.h> void main( ) { cout<<"BeiJing"<<" "; cout<<"ShangHai"<<endl; cout<<"TianJing"<<endl; }
(2)
#include <iostream.h> void main( ) { int x,y; cout<<"Input x,y: "; cin>>x>>y; cout<<"x="<<x<<","<<"y="<<y<<endl; cout<<"x-y="<<x-y<<"\n"; }
假定,输入的两个数分别为8和7。
(3)
#include <iostream.h> void main( ) { char r='k'; int i=9,j=17; cout<<"r="<<r<<":"; cout<<"i+j="<<i+j<<endl; }
1.5 编译下列程序,改正所出现的错误信息,并分析输出结果。
(1)
main( ) { cout<<"This is a program." }
(2)
#include <iostream.h> void main( ) { cin>>x; int y=x*x; cout<<"y=<<y<<\n"; }
(3)
#include <iostream.h> void main( ) { int a,b; a=7; int s=a+b; cout<<"a+b="<<s<<endl; }
1.6 通过对上题中3个程序所出现问题的修改,回答下列问题:
(1)从对上题中第(1)题出现错误的修改,总结出编程时应注意哪些问题?
(2)C++程序中所出现的变量是否都必须先说明后使用?说明变量时,是否都应放在函数体的开头?
(3)使用cout与运算符“<<”输出字符串时应注意些什么?
(4)程序中说明了的变量,但没有赋值,能否使用?
(5)一个程序通过编译并运行后得到了输出结果,这一结果是否一定正确?