面向对象的程序设计试题库.docx
《面向对象的程序设计试题库.docx》由会员分享,可在线阅读,更多相关《面向对象的程序设计试题库.docx(10页珍藏版)》请在冰豆网上搜索。
面向对象的程序设计试题库
面向对象的程序设计
一、单项选择题
1、下面那种结构不是C++的控制结构()
A顺序结构B选择结构
C循环结构D判断结构
答:
D
2、下列是C++语言中合法标识符的是()。
A.3threeB.if
C._1oneD.while
答:
C
3、下列是合法的C++语言语句的是()。
A.if(x>0)thenx=x-1;elsex=x+1;
B.if(x>0)x=x-1;elsex=x+1;
C.ifx>0x=x-1;elsex=x+1;
D.ifx>0x=x-1;
答:
B
4、下面那一种不是计算机内部表示整数的方法()
A二进制码B原码
C补码D反码
答:
A
5、在C++语言中,下列数为合法的实数的是()。
A.5E-3B.5E-3.5
C.E5D.-3.5E
答:
A
6、C++语言中数据类型最大的是()
AlongBfloat
CintDchar
答:
B
7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为()。
A.函数声明B.嵌套函数
C.定义函数D.递归函数
答:
D
8、表达式0x55^0xB4的结果为()。
A.0xF5B.0x15
C.0xE1D.0x1E
答:
C
9、C++中,源代码文件后缀为()
A.cppB.objC.exeD.c
答:
A
10、0X5A&0XB7结果是()
A0X13B0X12
C0X14D0X15
答:
B
二、填空题
1、程序的基本控制结构包括()、()和()。
答:
顺序结构,选择结构,循环结构
2、用来解决问题的,与有限多个步骤组成的具体过程称为()。
答:
算法
3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b)a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。
答:
4,11,10
4、在程序编译阶段的错误主要分为两类()和()。
答:
警告信息,致命错误
5、计算机中的数据可以分为()和()两大类。
答:
数值型、字符型
6、字符型数据有两种编码方法:
()和()
答:
有美国国家标准局制定的ASCII码、IBM公司提出的EBCDIC码
7、通过C++语言中的()机制,可以从现存类中构建其子类。
答:
继承(或派生)
8、封装要求一个对象应具备明确的功能,并具有()以便和其它对象相互作用。
答:
接口〈或界面、或公有成员〉
9、软件工程中认为影响一个程序质量的主要因素包括()、()、()、()和()等方面。
而面向对象的程序设计特别强调软件质量的两个方面()和()。
答:
正确性,健壮性,可扩展性,可重用性,有效性,语法与语义的可靠性,结构方面的可扩展性与可重用性
10、15/3=(),16/3=(),15%3=(),16%3=()
答:
5、5、0、1
11、0XB4<<2及10110100向左连移两次,结果为(),即0XD0,0XB4>>2即10110100向右连移动两次,逻辑右移的结果为(),即0X2D
答:
11010000、00101101
12、一种语言主要由()和()两部分组成。
答:
语法、语义
13、为了让编译程序了解数据所属的类型,同常程序设计语言都尊循“()”的原则。
答:
先申明,后使用
14、C++语言中的数据可分为()和()两大类。
答:
常量、变量
三、判断题
1、结构化程序设计方法的主要技术是自顶向下、逐步求精,采用单入口/单出口的控制结构。
()
答:
对
2、程序中以“//”开头直至该行行尾的内容成为注释,用于说明或者解释程序的功能。
()
答:
对
3、组成C++程序的最小单位是单词,C++程序有5种单词,保留字,标志符、常量、运算符和分界符。
()
答:
对
4、C++中,对基本数据类型的常量与变量进行加工的过程成为运算,表示各种不同运算的符号成为运算符,参与运算的数据成为操作数。
()
答:
对
5、表达式a?
b=0:
b=1,的求值次序是(a?
(b=0):
b)=1)()
答:
对
四、简答题
1、面向对象的程序设计有那些基本特征?
答:
在面向对象程序中,将现实世界的实体抽象成为对象,不同对象之间的相互作用和相互通信构成了完整的客观世界。
它的基本特征包括:
(1)数据的封装,数据封装将一类数据和与这类数据有关的操作集合封装在一起,形成一个能动的实体成为对象。
用户不必知道对象行为的实现细节,只需根据对象提供的外部特性接口访问对象,这反映了数据抽象数据类型的思想。
(2)继承,类支持层次的模型结构,低层次的类(子类)可以从他的高层次类(基类、父类)中继承所有的数据或操作,并扩充自己的特殊数据和操作。
继承可以使不同的对象的共同性质只需定义一次,用户可以充分利用已有的类,符合软件重用的目标。
(3)多态性,用户在使用函数或对象编程时,关心的是该函数或对象的功能和使用界面,并不需要了解该函数或对象的使用与哪一种实现方法匹配,在面向对象程序设计中,程序员可为同一函数或对象提供多种不同的实现,以适合不同的场合。
2、什么是内联函数?
使用内联函数有什么好缺点?
答:
(1)内联函数:
在编译时将所调用的函数代码直接嵌入到调用函数的调用处,而不是将程序流程转出去,这种嵌入到调用函数中的函数就称为内联函数。
(2)优点:
避免小规模函数调用的开销(参数传递、上下文切换、空间开销),提高程序的执行效率;(3)缺点:
如果内联函数的开销不是整个程序执行时间的主要部分,它的优点就不明显;内联函数加大了可执行程序,可能导致额外的内存交换而实际降低了执行速度。
3、什么是程序断言?
在程序中使用断言主要有什么作用?
答:
(1)程序断言:
为在程序中反映程序编译运行的正确性与需求说明的一致性,而在程序中加入描述程序需求说明的表达式称为程序断言。
(2)作用:
保证程序的正确性与健壮性;断言可用于形成程序的文档;支持程序的动态调试;构成异常处理的基础。
4、简述实体、对象和类的概念以及他们之间的关系。
答:
(1)概念:
实体,现实世界中的物理实体;对象:
具有类类型的变量称为对象,也就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
类:
对一组具有相同属性、表现相同行为的对象的描述。
(2)关系:
实体与对象,是现实与计算机的逻辑映射;对象与类,类是具有一定共性的对象的抽象,类的某一个实例就是对象。
5、什么是变量的作用域和生存期?
什么是局部变量和全局变量?
答:
(1)作用域:
在变量被创建之后,变量的名字能被引用的地方。
(2)生存期:
在程序的执行过程中变量实际占用内存或寄存器的时间。
变量的生存期是由声明变量时选择的存储类别决定的。
(3)局部变量:
在函数内(块作用域中)声明的变量。
只有在定义他们的函数(块语句中)才可见并允许修改,如果不使用特殊的访问方式,任何其他函数都不能访问或修改变量。
(4)全局变量:
在文件作用域中声明的变量。
在函数定义外声明,从不属于任何函数,从被定义开始,在整个文件范围内有效,可以被不同的函数使用。
五、应用题
1、讲用户输入的24小时制时间转换为12小时制时间,写出其算法
解答:
#include
Voidmian()
{
Inthour;
Charnoo=`A`;
Cout<<”enterthehourplease:
”;
Cin>>hour;
If(hour>12){
Hour=hour-12;
Noon=`P`;
}
Cout<<”thehouris“<}
2、设a=1,b=0,c=1,试计算下列逻辑表达式的值。
(8分)
(1)!
a&&!
b
答:
0
(2)a&&b||c
答:
1
3、给出数学、英语、语文这样的菜单供用户选择,依据用户选择的序号显示其结果,写出其算法
解答:
#include
Voidmian()
{
Cout<<”1.数学\n”;
Cout<<”1.英语\n”;
Cout<<”1.语文\n”;
Cout<<”enteryourchoice(1-3):
”;
Cin>>choice;
Switch(choise){
Case1
cout<<”youchoiceis数学.\n”;
Break;
Case2
cout<<”youchoiceis英语.\n”;
Break;
Case3
cout<<”youchoiceis语文.\n”;
Break;
Default:
cout<<”youdidnotmakechoice.\n”;
Break;
}
4、指出下列程序的输出结果(8分)
#include
voidmain()
{
floata=2.5;
intb=7;
cout<<”a*bis:
”<cout<<”(int)a*bis:
”<<(int)a*b<<”\n”;
cout<<”a*(float)bis:
”<}
答:
a*bis:
17.5
(int)a*bis:
14
a*(float)bis:
17.5
5、给出下程序的输出结果(9分)
#include
intglobal_value=5;
voiddisplay(void)
{
intlocal_value=5;
staticintstatic_value=5;
cout<<”Theglobalvalueis:
”<cout<<”Thelocalvalueis:
”<cout<<”Thestaticvalueis:
”<global_value=global_value+2;
local_value=local_value+2;
static_value=static_value+2;
return;
}
intmain()
{
while(global_value<8)display();
return0;
}
答:
Theglobalvalueis:
5
Thelocalvalueis:
5
Thestaticvalueis:
5
Theglobalvalueis:
7
Thelocalvalueis:
5
Thestaticvalueis:
5
Theglobalvalueis:
9
Thelocalvalueis:
5
Thestaticvalueis:
5
6、求1到100之间的数字平方相加之和的原始算法。
解答:
#include
Voidmian()
{
Constintmin=1;
Constintmax=100;
Intsum;
Intcnt;
Sum=0;
For(cnt=min:
cnt<=max;cnt=cnt+1)sum=sum+cnt*cnt;
Cout<<“thesunmmingresultis”<>”\n”;
}
7、编写一个程序,判断用户输入的年份是否为闰年。
(提示:
闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)(10分)
答:
(答案不唯一,主要是if的判断条件和输入语句对即可)
#include
voidmain()
{
intyear;
cout<<”Pleaseputintoayear:
”;
cin>>year;
if(year%400==0||(year%4==0&&year%100!
=0))
cout<<”Theyear”<else
cout<<”Theyear”<}
8、输入三个数,求三数中最小的数,写出其算法
解答:
#include
Voidmian()
{
FloatI,j,k;
Floatmin;
Cout<<”enter3floatnumberplease:
”;
Cin>>i>>j>>k;
Min=I;
If(jIf(kCout<<”minimumis”<}
9、给定正整数n,求平方不超过n的最大整数,写出其算法
解答:
#include
Voidmian()
{
Intn;
Intmax;
Cout<<“enteranumber:
”
Cin>>n;
If(n<=0)cout<<“inputerror!
\n”;
Else
{
Max=1;
While(max*max<=n)max=max+1;
Cout<<“themaximuintergeris:
”<}
}
10、用100元钱,买100只鸡,其中母鸡每只5元,公鸡每只3元,而1元钱可以买3只小鸡,文可以买多少只母鸡、多少只公鸡、多少只小鸡?
试写出其算法。
解答:
#include
Voidmian()
{
Inthen,cock,chicken;
For(hen=0;hen<=20;hen++)
For(cock=0;cock<=33;cock++)
{
Chicken=100-hen-cock;
If((chicken%3==0)&&
((5*hen+3*cock+chicken/3)==100)
Cout<<”hen=”<“then=”<“tchicken=”<}
}