百度2011校园招聘笔试题(一)
2011年校园招聘笔试题(一)
(测试题目答题时间90分钟,请独立完成)
第一部分 基础知识
一、 逻辑题
1、不可能所有的错误都能避免。以下哪项断定的含义,与上述断定最为接近? ( )
A所有的错误必然都不能避免。 B所有的错误可能都不能避免。
C有的错误可能不能避免。 D有的错误必然不能避免。
2、有ABCD四个有实力的排球队进行循环赛(每个队与其他队各比赛一场,比赛没有平局),比赛结果,B队输掉一场,C队比B队少赢一场,而B队又比D队少赢一场。
关于A队的名次,下列哪一项为真?( )
A第一名。 B第二名。 C第三名。 D第四名。
3、有人养了一些兔子。别人问他有多少只雌兔?多少只雄兔?他答,在他所养的兔子中,每一只雄兔的雌性同伴比它的雄性同伴少一只;而一只雌兔的雄性同伴比它的雌性同伴的两倍少两只。
根据上述回答,可以判断它养了多少只雌兔?多少只雄兔?( )
A 8只雄兔,6只雌兔。 B 10只雄兔,8只雌兔。
C 12只雄兔,10只雌兔。 D 14只雄兔,8只雌兔。
4、20世纪60年代初以来,新加坡的人均预期寿命不断上升,到21世纪已超过日本,成为世界之最。与此同时,和一切发达国家一样,由于饮食中的高脂肪含量,新加坡人的心血管疾病的发病率也逐年上升。
从上述判定,最可能推出以下哪项结论?( )
A新加坡人的心血管疾病的发病率虽逐年上升,但这种疾病不是造成目前新加坡人死亡的主要杀手。
B目前新加坡对于心血管疾病的治疗水平是全世界最高的。
C 20世纪60年代造成新加坡人死亡的那些主要疾病,到21世纪,如果在该国的发病率没有实质性的降低,那么对这些疾病的医治水平一定有实质性的提高。
D目前新加坡人心血管疾病的发病率低于日本。
5、甲省的省报发行量是乙省的省报发行量的10倍,可见,甲省的群众比乙省的群众更关心时事新闻。
以下哪项属实,最能削弱上述论证:( )
A甲省的人口是乙省人口的5倍。
B甲省的面积是乙省面积的10倍。
C甲省的省报在全国发行。
D甲省的省报主要在乙省销售。
6-10、分析推理:
以下五题基于以下题干:
电视台安排5个人——H,I,K,N和V参加一电视节目的比赛,比赛从星期一开始一直到星期五结束,每天一个人参赛。参赛者的计划安排必须遵从以下条件:
(1)N不能被安排在星期一;
(2)若H被安排在星期一,则N被安排在星期五;
(3)若N被安排在星期二,则I被安排在星期一;
(4)K被安排在V之后的一天。
6、V不能被安排在下面哪一天?( )
(A)星期一 (B)星期二 (C)星期三 (D)星期五
7、若I被安排在H之后的一天,则下面哪一项列出了H可以参赛的所有时间?( )
(A)星期一,星期二 (B)星期一,星期三
(C)星期一,星期四 (D)星期一,星期三,星期四
8、若K被安排在星期三,则下面哪一项可能正确?( )
(A)I被安排在星期五 (B)N被安排在星期二
(C)N被安排在H的前一天 (D)N被安排在I的前一天
9、若K被安排在星期五,则下面哪一项一定正确?( )
(A)H被安排在星期二 (B)H被安排在星期三
(C)I被安排在星期一 (D)I被安排在星期三
10、若I被安排在星期三,则下面哪一项一定正确?( )
(A)H被安排在N的前面 (B)H被安排在K的前面
(C)K被安排在H的前面 (D)N被安排在K的前面
二、基础技术知识
1. 在SQL语言中,子查询是( ) 。
A. 返回单表中数据子集的查询语言 B. 选取多表中字段子集的查询语句
C. 选取单表中字段子集的查询语句 D. 嵌入到另一个查询语句之中的查询语句
2. SQL是一种()语言。
A. 高级算法 B. 人工智能 C. 关系数据库 D. 函数型
3. 在关系数据库有表 S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄, C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是()。
A. S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’
B. S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’
C. SAGE in>=20 and CNAME in ‘ACCESS’
D. SAGE>=20 and CNAME=’ ACCESS’
4. 设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要把“张二的化学成绩80分”插入S中,则可用()。
A. ADD B. INSERT
INTO S INTO S
VALUES(’张二’,’化学’,’80’) VALUES(’张二’,’化学’,’80’) C. ADD D. INSERT
INTO S INTO S
VALUES(’张二’,’化学’,80) VALUES(’张二’,’化学’,80)
5. 设关系数据库中一个表S的结构为:S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要更正王二的化学成绩为85分,则可用() 。
A. UPDATE S B. UPDATE S
SET grade=85 SET grade=’85’
WHERE SN=’王二’ AND CN=’化学’ WHERE SN=’王二’ AND CN=’化学’
C. UPDATE grade=85 D. UPDATE grade=’85’
WHERE SN=’王二’ AND CN=’化学’ WHERE SN=’王二’ AND CN=’化学’
6. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是() 。
A. SELECT B. INSERT C. UPDATE D. DELETE
7. 在视图上不能完成的操作是() 。
A. 更新视图 B. 查询 C. 在视图上定义新的表 D. 在视图上定义新的视图
8.下面关于XML的描述错误的是()。
A XML提供一种描述结构化数据的方法;
B XML 是一种简单、与平台无关并被广泛采用的标准;
C XML文档可承载各种信息;
D XML是可扩展的标志语言
9. “软件危机”是指()
A. 计算机病毒的出现 B. 利用计算机进行经济犯罪活动
C. 软件开发和维护中出现的一系列问题 D. 人们过分迷恋计算机系统
10. DFD中的每个加工至少需要()
A. 一个输入流 B. 一个输出流 C. 一个输入或输出流 D. 一个输入流和一个输出流
11. 为了提高模块的独立性,模块之间最好是()
A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合
12. 下面关于PDL语言不正确的说法是()
A. PDL是描述处理过程怎么做 B. PDL是只描述加工做什么
C. PDL也称为伪码 D. PDL的外层语法应符合一般程序设计语言常用的语法规则
13. 详细设计与概要设计衔接的图形工具是()
A. DFD图 B. 程序图 C. PAD图 D. SC图
14. 下列关于功能性注释不正确的说法是()
A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B. 注释用来说明程序段,需要在每一行都要加注释
C. 可使用空行或缩进,以便很容易区分注释和程序
D. 修改程序也应修改注释
15. 下列关于效率的说法不正确的是()
A. 效率是一个性能要求,其目标应该在需求分析时给出
B. 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C. 效率主要指处理机时间和存储器容量两个方面
D. 程序的效率与程序的简单性无关
16. 测试的关键问题是()
A. 如何组织对软件的评审 B. 如何验证程序的正确性
C. 如何采用综合策略 D. 如何选择测试用例
17. 结构化维护与非结构化维护的主要区别在于()
A. 软件是否结构化 B. 软件配置是否完整
C. 程序的完整性 D. 文档的完整性
18. 软件维护困难的主要原因是()
A. 费用低 B. 人员少
C. 开发方法的缺陷 D. 得不到用户支持
19. 可维护性的特性中,相互矛盾的是()
A. 可理解性与可测试性 B. 效率与可修改性
C. 可修改性和可理解性 D. 可理解性与可读性
20. 快速原型是利用原型辅助软件开发的一种新思想,是在研究( )的方法和技术中产生的。
A. 需求阶段 B. 设计阶段 C. 测试阶段 D. 软件开发的各个阶段
21. 下列有关软件工程的标准,属于行业标准的是()
A. GB B. DIN C. ISO D. IEEE
22. 下列文档与维护人员有关的有()
A. 软件需求说明书 B. 项目开发计划 C. 概要设计说明书 D. 用户操作手册
23. ()是为了确保每个开发过程的质量,防止把软件差错传递到下一个过程而进行的工作。
A. 质量检测 B. 软件容错 C. 软件维护 D. 系统容错
24. 表示对象相互行为的模型是()模型。
A. 动态模型 B. 功能模型 C. 对象模型 D. 静态模型
25. 下列中不具备线程管理的操作系统是()
A. Windows NT B. Linux C. Dos D. UNIX
26. 产生系统死锁的原因是由于()
A. 进程释放资源 B. 一个进程进入死循环
C. 多个进程竞争,资源出现循环等待 D. 多个进程竞争共享型设备
27. 处理器执行的指令被分为两类,其中一类被称为特权指令,它只允许()使用。
A. 操作员 B. 联机用户 C. 操作系统 D. 目标程序
28.在Internet上浏览时,浏览器和WWW服务器之间传输网页使用的协议是 ()
A. IP B. Telnet C. FTP D. HTTP
29.Internet 协议IPv6 将从原来的32位地址扩展到了( )位 ()
A. 64 B. 128 C. 512 D. 256
30. 文件传输协议是( )上的协议 ()
A. 网络层 B. 运输层 C. 应用层 D. 物理层
第二部分 JAVA类题目
一、选择题
1.Java是从()语言改进重新设计。
A.Ada B.C++ C.Pasacal D.BASIC
2.下列语句哪一个正确()
A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code
C. Java程序经编译后会产生DLL D.以上都不正确
3.下列说法正确的有()
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D.一个class只能定义一个constructor
4.提供Java存取数据库能力的包是()
A.java.sql B.java.awt C.java.lang D.java.swing
5.下列运算符合法的是()
A.&& B.<> C.if D.:=
6.执行如下程序代码后,C的值是()
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
A.0 B.1 C.-1 D.死循环
7.下列哪一种叙述是正确的()
A. abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
8.下列语句正确的是()
A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰
C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象
9.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法
10. 下列哪个选项是合法的标识符?()
A.123 B._name C.class D.1first
11. 下列哪个选项是Java调试器,如果编译器返回程序代码的错误,可以用它对程序进行调试? ()
A.java.exe B.javadoc.exe C.jdb.exe D.javaprof.exe
12. 下列的哪个选项可以正确用以表示八进制值8? ()
A.0x8 B.0x10 C.08 D.010
13. 下列的哪个赋值语句是不正确的? ()
A.float f = 11.1 B.double d = 5.3E12
C.float d = 3.14f D.double f=11.1E10f
14. 下列的哪个赋值语句是正确的? ( )
A.char a=12 B.int a=12.0 C.int a=12.0f D.int a=(int)12.0
15. 下列哪个选项是正确计算42度(角度)的余弦值?()
A.double d=Math.cos(42)
B.double d=Math.cosine(42)
C.double d=Math.cos(Math.toRadians(42))
D.double d=Math.cos(Math.toDegrees(42))
16. 下列InputStream类中哪个方法可以用于关闭流? ()
A.skip() B.close() C.mark() D.reset()
17. 下列方法中哪个是执行线程的方法? ()
A.run() B.start() C.sleep() D.suspend()
18. 下列关于Frame类的说法不正确的是 ?()
A.Frame是Window类的直接子类 B.Frame对象显示的效果是一个窗口
C.Frame被默认初始化为可见 D.Frame的默认布局管理器为BorderLayout
19. 下列Java常见事件类中哪个是鼠标事件类?()
A.InputEvent B.KeyEvent C.MouseEvent D.WindowEvent
20. 在Applet的关键方法中,哪个方法是关闭浏览器以释放Applet占用的所有资源?()
A.init() B.start() C.paint() D.destroy()
21. 下列哪个是面向大型企业级用容器管理专用构件的应用平台?()
A.J2EE B.J2ME C.J2SE D.J2DE
22.下列关于继承的哪项叙述是正确的?
A.在java中允许多重继承
B.在java中一个类只能实现一个接口
C.在java中一个类不能同时继承一个类和实现一个接口
D.java的单一继承使代码更可靠
23. 下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?
A.private B.无修饰符 C.public D.protected
24.下列说法正确的有()
A.环境变量可在编译source code时指定
B.在编译程序时,所能指定的环境变量不包括class path
C. javac一次可同时编译数个Java源文件
D. javac.exe能指定编译结果要置于哪个目录(directory)
25.下列说法错误的有()
A.数组是一种对象 B.数组属于一种原生类
C. int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变
26.不能用来修饰interface的有()
A.private B.public C.protected D.static
27.下列正确的有()
A. call by value不会改变实际参数的数值
B. call by reference能改变实际参数的参考地址
C. call by reference不能改变实际参数的参考地址
D. call by reference能改变实际参数的内容
28.下列说法错误的有()
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
29.下列说法错误的有()
A. Java面向对象语言容许单独的过程与函数存在
B. Java面向对象语言容许单独的方法存在
C. Java语言中的方法属于类中的成员(member)
D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同
30.下列说法错误的有()
A.能被java.exe成功运行的java class文件必须有main()方法
B. J2SDK就是Java API
C. Appletviewer.exe可利用jar选项运行.jar文件
D.能被Appletviewer成功运行的java class文件必须有main()方法
二、填空题
1. 如果要把一个对象声明为多线程,则该对象必须是________类型。
2. java中提供了两种用于多态的机制 _________,__________。
3. java中用_________关键字指明继承关系.用______关键字指明对接口的实现。
4. this代表了_______的引用,super表示的是当前对象的___________对象。
5. 在运行时,由java解释器自动引入,而不用import语句引入的包是__________。
6.一般有两种用于创建线程对象的方法,一是_____,二是________。
7. 一般用__________________创建InputStream对象,表示从标准输入中获取数据,用________________创建OutputStream对象,表示输出到标准输出设备中。
8. 关键字_______表明一个对象或变量在初始化后不能被修改。
9. 面向对象程序的主要特征:继承,_______________,______________。
10. 一个完整的URL地址由_________,_________,端口和文件四部分组成。
三、阅读题:写出程序结果或挑出程序的错误
1、 JAVA代码查错
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
2、 JAVA代码查错
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
3、 JAVA代码查错
abstract class Something {
private abstract String doSomething ();
}
4、JAVA代码查错
public class Something {
public int addOne(final int x) {
return ++x;
}
}
5、以下程序段的输出结果为:
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1==n2);
System.out.print(“,”);
System.out.println(n1!=n2);
}
}
四、附加题:
写一个Singleton。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
第三部分 C++类题目
一、 选择题
1.下列关于对象初始化的叙述中,正确的是
A 定义对象的时候不能对对象进行初始化
B 定义对象之后可以显式地调用构造函数进行初始化
C 定义对象时将自动调用构造函数进行初始化
D 在一个类中必须显式地定义构造函数实现初始化
2.下列关于基类和派生类关系的叙述中,正确的是
A 每个类最多只能有一个直接基类
B 派生类中的成员可以访问基类中的任何成员
C 基类的构造函数必须在派生类的构造函数体中调用
D 派生类除了继承基类的成员,还可以定义新的成员
3.下列关于赋值运算符“=”重载的叙述中,正确的是
A 赋值运算符只能作为类的成员函数重载
B 默认的赋值运算符实现了“深层复制”功能
C 重载的赋值运算符函数有两个本类对象作为形参
D 如果己经定义了复制(拷贝 构造函数,就不能重载赋值运算符
4.下列选项中,正确的C++标识符是
A 6_group B group~6 C age+3 D _group_6
5. 下列循环语句中有语法错误的是
A int i; for( i=1; i<10;i++)cout<<‘*‘;
B int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*‘;
C int i=0;for(;i<10;i++)cout<<‘ *‘;
D for(1)cout<<‘*‘;
6. 下列定义语句中,错误的是
A int px*; B char*acp[10]; C char(*pac)[10]; D int(*p)();
7. 若MyClass为一个类,执行“MyClass a[4],*p[5];”语句时会自动调用该类构造函数的次数是
A 2 B 5 C 4 D 9
8. 有如下程序:
#include<iostream>
#include<cmath>
using std::cout;
class Point{
public:
friend double distance(const Point &p); //p距原点的距离
Point(int xx=0,int yy=0):x (xx),Y(YY){}//①
private:
Int x,Y;
};
double distance(const Point &p) { //②
return sqrt(p.x*p.x+p.Y*p.Y);
}
int main(){
Point p1(3,4);
cout<<distance(p1); //③
return 0;
}
下列叙述中正确的是
A 程序编译正确 B 程序编译时语句①出错
C 程序编译时语句②出错 D 程序编译时语句③出错
9. 下列哪两个是等同的
int b;
const int *a = &b; const * int a = &b;
const int* const a = &b; int const* const a = &b;
A B C ` D
10. 有如下语句序列:
char str[10];cin>>str;
当从键盘输入”I love this game”时,str中的字符串是
A "I love this game" B "I love thi" C "I love" D "I"
11. 有函数模板声明和一些变量定义如下:
template <class Tl,class T2,class T3>T1 sum(T2,T3);
double dl,d2;
则下列调用中,错误的是
A sum<double,double,double>(dl,d2); B sum<double;double>(d1,d2);
C sum<double>(d1,d2); D sum(d1,d2);
12. 以下程序段完全正确的是
A int *p; scanf("%d",&p); B int *p; scanf(“%d”,p);
C int k, *p=&k; scanf("%d",p); D int k, *p:; *p= &k; scanf(“%d”,p);
13. 有定义语句:int *p[4];以下选项中与此语句等价的是
A int p[4]; B int **p; C int *(p「4」); D int (*p)「4」;
14. 若要重载+、=、<<、=和[]运算符,则必须作为类成员重载的运算符是
A +和= B =和<< C ==和<< D =和[]
15. 下列说法正确的是( )
A 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C 类的内联函数必须在类体内定义
D 类的内联函数必须在类体外通过加关键字inline定义
16. 下面对于友元函数描述正确的是( )
A 友元函数的实现必须在类的内部定义
B 友元函数是类的成员函数
C 友元函数破坏了类的封装性和隐藏性
D 友元函数不能访问类的私有成员
17. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )
A 派生类的对象可以赋给基类的对象
B 派生类的对象可以初始化基类的引用
C 派生类的对象可以直接访问基类中的成员
D 派生类的对象的地址可以赋给指向基类的指针
18. 下列关于多态性的描述,错误的是( )
A C++语言的多态性分为编译时的多态性和运行时的多态性
B 编译时的多态性可通过函数重载实现
C 运行时的多态性可通过模板和虚函数实现
D 实现运行时多态性的机制称为动态绑定
19. 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( )
A 一元运算符 B 二元运算符 C 选项A 和选项B 都可能 D 重载错误
20. 在下列关于C++函数的叙述中,正确的是( )
A 每个函数至少要有一个参数 B 每个函数都必须返回一个值
C 函数在被调用之前必须先声明 D 函数不能自己调用自己
21. 如果进栈序列为el,e2,e3,e4,则可能的出栈序列是 ( )
A e3,el,e4,e2 B e2,e4,e3,el C e3,e4,e1,e2 D 任意顺序
22. 下面关于模板的描述,错误的是 ( )
A 函数模板和类模板的参数可以是任意的数据类型
B 类模板不能直接使用,必须先实例化为相应的模板类.然后定义了模板类的对象
C 函数模板不能直接使用,需要实例化为模板函数后才能使用
D 类模板的成员函数都是模板函数
23. 下面对静态数据成员的描述中,正确的是( )
A 静态数据成员可以在类体内进行初始化
B 静态数据成员不可以被类的对象调用
C 静态数据成员不能受private控制符的作用
D 静态数据成员可以直接用类名调用
24. 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )
A 公有类型 B 私有类型 C 保护类型 D 友元类型
25.抽象基类是指( )
A 嵌套类 B 派生类 C 含有纯虚函数 D 多继承类
26.如果已定义了一个C++类CMyList并有以下语句:
CMyList list(3);
以下说法正确的是()。
A 该语句会创建一个CMyList类的一个对象;
B 该语句会创建一个CMyList类的3个对象;
C 必须为类CMyList定义一个构造函数;
D 必须为类CMyList定义一个析构函数;
E 必须定义函数CMyList list(int);
27. 以下说法正确的是( )。
A内联(inline)函数改善了函数调用的执行效率。
B类A的友元(friend)函数可以访问类A的私有成员。
C类A的友元(friend)类B可以访问类A的私有成员。
D类A的静态数据成员为类A的所有对象所共享。
E类A的静态成员函数没有传递this 指针作为参数。
28.类B从类A派生,则类B可以访问类A中的( )成员。
A public成员 B private成员 C protected成员 D数据成员 E函数成员
29. 面向对象的程序设计语言具有()等共同特性。
A封装性 B多态性 C简单性 D复杂性 E继承性
30. 现有一个程序如下:
#i nclude
class A
{ public:
void f(){ cout<< “A::f()”;}
};
class B
{ public:
void f(){ cout<< “B:f()”;}
void g(){ cout<< “B:g()”;}
};
class C : public A, public B
{ public:
void g(){ cout<<”C::g()”;}
void h()
{ cout<<”C::h()”;
f(); //语句1
}
};
void main()
{ C obj;
obj.f(); //语句2
obj.A::f(); //语句3
obj.B::f(); //语句4
obj.g(); //语句5
}
则编译时会产生错误的语句有()
A语句1 B语句2 C语句3 D语句4 E语句5
二、 填空题
1. int func(x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
假定x = 9999。 函数的运行结果为_____
2. 一个栈的初始状态为空。首先将元素5,4,3,2,1 依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为_______________。
3. 一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有个_____结点。
4. 一个双目运算符作为类的成员函数重载时,重载函数的参数表中有_ _个参数。
5. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i的值为_ _。
6. switch()中不允许的数据类型是____。
7. 某32位系统下, C++程序void *p = malloc( 100 ); sizeof (p) = ____。
8. int a = 4;(++a) += a;执行后a的值为___。
9. 派生类中的成员函数可以直接访问基类中的公有成员和____成员。
10. C++语言的参数传递机制包括传值和________两种。
三、 阅读题
1.写出函数Test的运行结果
void Test(void){
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL){
strcpy(str, “world”);
printf(str);
}
}
2.写出程序的运行结果
#include<iostream>
using namespace std;
class Base{
Int x;
Public:
Base(int b):x(b){}
virtual void display(){cout<<x;}
};
class Derived:public Base{
Int y;
public:
Derived(int d):Base(d),y(d){}
void display(){cout<<y;}
};
int main(){
Base b(1);Derived d(2);
Base*p=&d;
b .display();d.display();p一>display();
return 0;
}
3.下面的函数实现在一个固定的数上加上一个数,有什么错误,改正
int add_n(int n)
{
static int i=100;
i+=n;
return i;
}
4.i最后等于多少?
int i = 1;
int j = i++;
if((i>j++) && (i++ == j)) i+=j;
5.#include…
const int SIZE=10;
class stack
{ char stck[SIZE];
int top;
public:
void init();
void push(char ch);
char pop();
};
void stack::init()
{ top=0; }
void stack:push(char ch)
{ if(top==SIZE)
{ cout<<”Stack is full.\n”;
return ; }
stck[top++]=ch;
}
char stack:pop()
{ if(top==0)
{ cout<<”Stack is empty.\n”;
return 0;}
return stck[--top];
}
void main()
{ stack s1, s2;
s1.init();
s2.init();
s1.push(‘a’);
s1.push(‘b’);
s1.push(‘c’);
s2.push(‘x’);
s2.push(‘y’);
s2.push(‘z’);
for(int i=0; i<3; i++)
cout<<”Pop s1:”<< s1.pop();
for(i=0; i<3; i++)
cout<<”Pop s2:”<< s2.pop();
}
四、附加题:
写一个Singleton。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
2011年校园招聘笔试题(一)
(测试题目答题时间90分钟,请独立完成)
第一部分 基础知识
一、 逻辑题
1、不可能所有的错误都能避免。以下哪项断定的含义,与上述断定最为接近? ( )
A所有的错误必然都不能避免。 B所有的错误可能都不能避免。
C有的错误可能不能避免。 D有的错误必然不能避免。
2、有ABCD四个有实力的排球队进行循环赛(每个队与其他队各比赛一场,比赛没有平局),比赛结果,B队输掉一场,C队比B队少赢一场,而B队又比D队少赢一场。
关于A队的名次,下列哪一项为真?( )
A第一名。 B第二名。 C第三名。 D第四名。
3、有人养了一些兔子。别人问他有多少只雌兔?多少只雄兔?他答,在他所养的兔子中,每一只雄兔的雌性同伴比它的雄性同伴少一只;而一只雌兔的雄性同伴比它的雌性同伴的两倍少两只。
根据上述回答,可以判断它养了多少只雌兔?多少只雄兔?( )
A 8只雄兔,6只雌兔。 B 10只雄兔,8只雌兔。
C 12只雄兔,10只雌兔。 D 14只雄兔,8只雌兔。
4、20世纪60年代初以来,新加坡的人均预期寿命不断上升,到21世纪已超过日本,成为世界之最。与此同时,和一切发达国家一样,由于饮食中的高脂肪含量,新加坡人的心血管疾病的发病率也逐年上升。
从上述判定,最可能推出以下哪项结论?( )
A新加坡人的心血管疾病的发病率虽逐年上升,但这种疾病不是造成目前新加坡人死亡的主要杀手。
B目前新加坡对于心血管疾病的治疗水平是全世界最高的。
C 20世纪60年代造成新加坡人死亡的那些主要疾病,到21世纪,如果在该国的发病率没有实质性的降低,那么对这些疾病的医治水平一定有实质性的提高。
D目前新加坡人心血管疾病的发病率低于日本。
5、甲省的省报发行量是乙省的省报发行量的10倍,可见,甲省的群众比乙省的群众更关心时事新闻。
以下哪项属实,最能削弱上述论证:( )
A甲省的人口是乙省人口的5倍。
B甲省的面积是乙省面积的10倍。
C甲省的省报在全国发行。
D甲省的省报主要在乙省销售。
6-10、分析推理:
以下五题基于以下题干:
电视台安排5个人——H,I,K,N和V参加一电视节目的比赛,比赛从星期一开始一直到星期五结束,每天一个人参赛。参赛者的计划安排必须遵从以下条件:
(1)N不能被安排在星期一;
(2)若H被安排在星期一,则N被安排在星期五;
(3)若N被安排在星期二,则I被安排在星期一;
(4)K被安排在V之后的一天。
6、V不能被安排在下面哪一天?( )
(A)星期一 (B)星期二 (C)星期三 (D)星期五
7、若I被安排在H之后的一天,则下面哪一项列出了H可以参赛的所有时间?( )
(A)星期一,星期二 (B)星期一,星期三
(C)星期一,星期四 (D)星期一,星期三,星期四
8、若K被安排在星期三,则下面哪一项可能正确?( )
(A)I被安排在星期五 (B)N被安排在星期二
(C)N被安排在H的前一天 (D)N被安排在I的前一天
9、若K被安排在星期五,则下面哪一项一定正确?( )
(A)H被安排在星期二 (B)H被安排在星期三
(C)I被安排在星期一 (D)I被安排在星期三
10、若I被安排在星期三,则下面哪一项一定正确?( )
(A)H被安排在N的前面 (B)H被安排在K的前面
(C)K被安排在H的前面 (D)N被安排在K的前面
二、基础技术知识
1. 在SQL语言中,子查询是( ) 。
A. 返回单表中数据子集的查询语言 B. 选取多表中字段子集的查询语句
C. 选取单表中字段子集的查询语句 D. 嵌入到另一个查询语句之中的查询语句
2. SQL是一种()语言。
A. 高级算法 B. 人工智能 C. 关系数据库 D. 函数型
3. 在关系数据库有表 S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄, C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是()。
A. S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’
B. S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’
C. SAGE in>=20 and CNAME in ‘ACCESS’
D. SAGE>=20 and CNAME=’ ACCESS’
4. 设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要把“张二的化学成绩80分”插入S中,则可用()。
A. ADD B. INSERT
INTO S INTO S
VALUES(’张二’,’化学’,’80’) VALUES(’张二’,’化学’,’80’) C. ADD D. INSERT
INTO S INTO S
VALUES(’张二’,’化学’,80) VALUES(’张二’,’化学’,80)
5. 设关系数据库中一个表S的结构为:S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。若要更正王二的化学成绩为85分,则可用() 。
A. UPDATE S B. UPDATE S
SET grade=85 SET grade=’85’
WHERE SN=’王二’ AND CN=’化学’ WHERE SN=’王二’ AND CN=’化学’
C. UPDATE grade=85 D. UPDATE grade=’85’
WHERE SN=’王二’ AND CN=’化学’ WHERE SN=’王二’ AND CN=’化学’
6. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是() 。
A. SELECT B. INSERT C. UPDATE D. DELETE
7. 在视图上不能完成的操作是() 。
A. 更新视图 B. 查询 C. 在视图上定义新的表 D. 在视图上定义新的视图
8.下面关于XML的描述错误的是()。
A XML提供一种描述结构化数据的方法;
B XML 是一种简单、与平台无关并被广泛采用的标准;
C XML文档可承载各种信息;
D XML是可扩展的标志语言
9. “软件危机”是指()
A. 计算机病毒的出现 B. 利用计算机进行经济犯罪活动
C. 软件开发和维护中出现的一系列问题 D. 人们过分迷恋计算机系统
10. DFD中的每个加工至少需要()
A. 一个输入流 B. 一个输出流 C. 一个输入或输出流 D. 一个输入流和一个输出流
11. 为了提高模块的独立性,模块之间最好是()
A. 控制耦合 B. 公共耦合 C. 内容耦合 D. 数据耦合
12. 下面关于PDL语言不正确的说法是()
A. PDL是描述处理过程怎么做 B. PDL是只描述加工做什么
C. PDL也称为伪码 D. PDL的外层语法应符合一般程序设计语言常用的语法规则
13. 详细设计与概要设计衔接的图形工具是()
A. DFD图 B. 程序图 C. PAD图 D. SC图
14. 下列关于功能性注释不正确的说法是()
A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态
B. 注释用来说明程序段,需要在每一行都要加注释
C. 可使用空行或缩进,以便很容易区分注释和程序
D. 修改程序也应修改注释
15. 下列关于效率的说法不正确的是()
A. 效率是一个性能要求,其目标应该在需求分析时给出
B. 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法
C. 效率主要指处理机时间和存储器容量两个方面
D. 程序的效率与程序的简单性无关
16. 测试的关键问题是()
A. 如何组织对软件的评审 B. 如何验证程序的正确性
C. 如何采用综合策略 D. 如何选择测试用例
17. 结构化维护与非结构化维护的主要区别在于()
A. 软件是否结构化 B. 软件配置是否完整
C. 程序的完整性 D. 文档的完整性
18. 软件维护困难的主要原因是()
A. 费用低 B. 人员少
C. 开发方法的缺陷 D. 得不到用户支持
19. 可维护性的特性中,相互矛盾的是()
A. 可理解性与可测试性 B. 效率与可修改性
C. 可修改性和可理解性 D. 可理解性与可读性
20. 快速原型是利用原型辅助软件开发的一种新思想,是在研究( )的方法和技术中产生的。
A. 需求阶段 B. 设计阶段 C. 测试阶段 D. 软件开发的各个阶段
21. 下列有关软件工程的标准,属于行业标准的是()
A. GB B. DIN C. ISO D. IEEE
22. 下列文档与维护人员有关的有()
A. 软件需求说明书 B. 项目开发计划 C. 概要设计说明书 D. 用户操作手册
23. ()是为了确保每个开发过程的质量,防止把软件差错传递到下一个过程而进行的工作。
A. 质量检测 B. 软件容错 C. 软件维护 D. 系统容错
24. 表示对象相互行为的模型是()模型。
A. 动态模型 B. 功能模型 C. 对象模型 D. 静态模型
25. 下列中不具备线程管理的操作系统是()
A. Windows NT B. Linux C. Dos D. UNIX
26. 产生系统死锁的原因是由于()
A. 进程释放资源 B. 一个进程进入死循环
C. 多个进程竞争,资源出现循环等待 D. 多个进程竞争共享型设备
27. 处理器执行的指令被分为两类,其中一类被称为特权指令,它只允许()使用。
A. 操作员 B. 联机用户 C. 操作系统 D. 目标程序
28.在Internet上浏览时,浏览器和WWW服务器之间传输网页使用的协议是 ()
A. IP B. Telnet C. FTP D. HTTP
29.Internet 协议IPv6 将从原来的32位地址扩展到了( )位 ()
A. 64 B. 128 C. 512 D. 256
30. 文件传输协议是( )上的协议 ()
A. 网络层 B. 运输层 C. 应用层 D. 物理层
第二部分 JAVA类题目
一、选择题
1.Java是从()语言改进重新设计。
A.Ada B.C++ C.Pasacal D.BASIC
2.下列语句哪一个正确()
A. Java程序经编译后会产生machine code B. Java程序经编译后会产生byte code
C. Java程序经编译后会产生DLL D.以上都不正确
3.下列说法正确的有()
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D.一个class只能定义一个constructor
4.提供Java存取数据库能力的包是()
A.java.sql B.java.awt C.java.lang D.java.swing
5.下列运算符合法的是()
A.&& B.<> C.if D.:=
6.执行如下程序代码后,C的值是()
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
A.0 B.1 C.-1 D.死循环
7.下列哪一种叙述是正确的()
A. abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{ }包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
8.下列语句正确的是()
A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰
C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象
9.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法
10. 下列哪个选项是合法的标识符?()
A.123 B._name C.class D.1first
11. 下列哪个选项是Java调试器,如果编译器返回程序代码的错误,可以用它对程序进行调试? ()
A.java.exe B.javadoc.exe C.jdb.exe D.javaprof.exe
12. 下列的哪个选项可以正确用以表示八进制值8? ()
A.0x8 B.0x10 C.08 D.010
13. 下列的哪个赋值语句是不正确的? ()
A.float f = 11.1 B.double d = 5.3E12
C.float d = 3.14f D.double f=11.1E10f
14. 下列的哪个赋值语句是正确的? ( )
A.char a=12 B.int a=12.0 C.int a=12.0f D.int a=(int)12.0
15. 下列哪个选项是正确计算42度(角度)的余弦值?()
A.double d=Math.cos(42)
B.double d=Math.cosine(42)
C.double d=Math.cos(Math.toRadians(42))
D.double d=Math.cos(Math.toDegrees(42))
16. 下列InputStream类中哪个方法可以用于关闭流? ()
A.skip() B.close() C.mark() D.reset()
17. 下列方法中哪个是执行线程的方法? ()
A.run() B.start() C.sleep() D.suspend()
18. 下列关于Frame类的说法不正确的是 ?()
A.Frame是Window类的直接子类 B.Frame对象显示的效果是一个窗口
C.Frame被默认初始化为可见 D.Frame的默认布局管理器为BorderLayout
19. 下列Java常见事件类中哪个是鼠标事件类?()
A.InputEvent B.KeyEvent C.MouseEvent D.WindowEvent
20. 在Applet的关键方法中,哪个方法是关闭浏览器以释放Applet占用的所有资源?()
A.init() B.start() C.paint() D.destroy()
21. 下列哪个是面向大型企业级用容器管理专用构件的应用平台?()
A.J2EE B.J2ME C.J2SE D.J2DE
22.下列关于继承的哪项叙述是正确的?
A.在java中允许多重继承
B.在java中一个类只能实现一个接口
C.在java中一个类不能同时继承一个类和实现一个接口
D.java的单一继承使代码更可靠
23. 下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?
A.private B.无修饰符 C.public D.protected
24.下列说法正确的有()
A.环境变量可在编译source code时指定
B.在编译程序时,所能指定的环境变量不包括class path
C. javac一次可同时编译数个Java源文件
D. javac.exe能指定编译结果要置于哪个目录(directory)
25.下列说法错误的有()
A.数组是一种对象 B.数组属于一种原生类
C. int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变
26.不能用来修饰interface的有()
A.private B.public C.protected D.static
27.下列正确的有()
A. call by value不会改变实际参数的数值
B. call by reference能改变实际参数的参考地址
C. call by reference不能改变实际参数的参考地址
D. call by reference能改变实际参数的内容
28.下列说法错误的有()
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
29.下列说法错误的有()
A. Java面向对象语言容许单独的过程与函数存在
B. Java面向对象语言容许单独的方法存在
C. Java语言中的方法属于类中的成员(member)
D. Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同
30.下列说法错误的有()
A.能被java.exe成功运行的java class文件必须有main()方法
B. J2SDK就是Java API
C. Appletviewer.exe可利用jar选项运行.jar文件
D.能被Appletviewer成功运行的java class文件必须有main()方法
二、填空题
1. 如果要把一个对象声明为多线程,则该对象必须是________类型。
2. java中提供了两种用于多态的机制 _________,__________。
3. java中用_________关键字指明继承关系.用______关键字指明对接口的实现。
4. this代表了_______的引用,super表示的是当前对象的___________对象。
5. 在运行时,由java解释器自动引入,而不用import语句引入的包是__________。
6.一般有两种用于创建线程对象的方法,一是_____,二是________。
7. 一般用__________________创建InputStream对象,表示从标准输入中获取数据,用________________创建OutputStream对象,表示输出到标准输出设备中。
8. 关键字_______表明一个对象或变量在初始化后不能被修改。
9. 面向对象程序的主要特征:继承,_______________,______________。
10. 一个完整的URL地址由_________,_________,端口和文件四部分组成。
三、阅读题:写出程序结果或挑出程序的错误
1、 JAVA代码查错
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
2、 JAVA代码查错
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
3、 JAVA代码查错
abstract class Something {
private abstract String doSomething ();
}
4、JAVA代码查错
public class Something {
public int addOne(final int x) {
return ++x;
}
}
5、以下程序段的输出结果为:
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1==n2);
System.out.print(“,”);
System.out.println(n1!=n2);
}
}
四、附加题:
写一个Singleton。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
第三部分 C++类题目
一、 选择题
1.下列关于对象初始化的叙述中,正确的是
A 定义对象的时候不能对对象进行初始化
B 定义对象之后可以显式地调用构造函数进行初始化
C 定义对象时将自动调用构造函数进行初始化
D 在一个类中必须显式地定义构造函数实现初始化
2.下列关于基类和派生类关系的叙述中,正确的是
A 每个类最多只能有一个直接基类
B 派生类中的成员可以访问基类中的任何成员
C 基类的构造函数必须在派生类的构造函数体中调用
D 派生类除了继承基类的成员,还可以定义新的成员
3.下列关于赋值运算符“=”重载的叙述中,正确的是
A 赋值运算符只能作为类的成员函数重载
B 默认的赋值运算符实现了“深层复制”功能
C 重载的赋值运算符函数有两个本类对象作为形参
D 如果己经定义了复制(拷贝 构造函数,就不能重载赋值运算符
4.下列选项中,正确的C++标识符是
A 6_group B group~6 C age+3 D _group_6
5. 下列循环语句中有语法错误的是
A int i; for( i=1; i<10;i++)cout<<‘*‘;
B int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*‘;
C int i=0;for(;i<10;i++)cout<<‘ *‘;
D for(1)cout<<‘*‘;
6. 下列定义语句中,错误的是
A int px*; B char*acp[10]; C char(*pac)[10]; D int(*p)();
7. 若MyClass为一个类,执行“MyClass a[4],*p[5];”语句时会自动调用该类构造函数的次数是
A 2 B 5 C 4 D 9
8. 有如下程序:
#include<iostream>
#include<cmath>
using std::cout;
class Point{
public:
friend double distance(const Point &p); //p距原点的距离
Point(int xx=0,int yy=0):x (xx),Y(YY){}//①
private:
Int x,Y;
};
double distance(const Point &p) { //②
return sqrt(p.x*p.x+p.Y*p.Y);
}
int main(){
Point p1(3,4);
cout<<distance(p1); //③
return 0;
}
下列叙述中正确的是
A 程序编译正确 B 程序编译时语句①出错
C 程序编译时语句②出错 D 程序编译时语句③出错
9. 下列哪两个是等同的
int b;
const int *a = &b; const * int a = &b;
const int* const a = &b; int const* const a = &b;
A B C ` D
10. 有如下语句序列:
char str[10];cin>>str;
当从键盘输入”I love this game”时,str中的字符串是
A "I love this game" B "I love thi" C "I love" D "I"
11. 有函数模板声明和一些变量定义如下:
template <class Tl,class T2,class T3>T1 sum(T2,T3);
double dl,d2;
则下列调用中,错误的是
A sum<double,double,double>(dl,d2); B sum<double;double>(d1,d2);
C sum<double>(d1,d2); D sum(d1,d2);
12. 以下程序段完全正确的是
A int *p; scanf("%d",&p); B int *p; scanf(“%d”,p);
C int k, *p=&k; scanf("%d",p); D int k, *p:; *p= &k; scanf(“%d”,p);
13. 有定义语句:int *p[4];以下选项中与此语句等价的是
A int p[4]; B int **p; C int *(p「4」); D int (*p)「4」;
14. 若要重载+、=、<<、=和[]运算符,则必须作为类成员重载的运算符是
A +和= B =和<< C ==和<< D =和[]
15. 下列说法正确的是( )
A 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C 类的内联函数必须在类体内定义
D 类的内联函数必须在类体外通过加关键字inline定义
16. 下面对于友元函数描述正确的是( )
A 友元函数的实现必须在类的内部定义
B 友元函数是类的成员函数
C 友元函数破坏了类的封装性和隐藏性
D 友元函数不能访问类的私有成员
17. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )
A 派生类的对象可以赋给基类的对象
B 派生类的对象可以初始化基类的引用
C 派生类的对象可以直接访问基类中的成员
D 派生类的对象的地址可以赋给指向基类的指针
18. 下列关于多态性的描述,错误的是( )
A C++语言的多态性分为编译时的多态性和运行时的多态性
B 编译时的多态性可通过函数重载实现
C 运行时的多态性可通过模板和虚函数实现
D 实现运行时多态性的机制称为动态绑定
19. 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是( )
A 一元运算符 B 二元运算符 C 选项A 和选项B 都可能 D 重载错误
20. 在下列关于C++函数的叙述中,正确的是( )
A 每个函数至少要有一个参数 B 每个函数都必须返回一个值
C 函数在被调用之前必须先声明 D 函数不能自己调用自己
21. 如果进栈序列为el,e2,e3,e4,则可能的出栈序列是 ( )
A e3,el,e4,e2 B e2,e4,e3,el C e3,e4,e1,e2 D 任意顺序
22. 下面关于模板的描述,错误的是 ( )
A 函数模板和类模板的参数可以是任意的数据类型
B 类模板不能直接使用,必须先实例化为相应的模板类.然后定义了模板类的对象
C 函数模板不能直接使用,需要实例化为模板函数后才能使用
D 类模板的成员函数都是模板函数
23. 下面对静态数据成员的描述中,正确的是( )
A 静态数据成员可以在类体内进行初始化
B 静态数据成员不可以被类的对象调用
C 静态数据成员不能受private控制符的作用
D 静态数据成员可以直接用类名调用
24. 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )
A 公有类型 B 私有类型 C 保护类型 D 友元类型
25.抽象基类是指( )
A 嵌套类 B 派生类 C 含有纯虚函数 D 多继承类
26.如果已定义了一个C++类CMyList并有以下语句:
CMyList list(3);
以下说法正确的是()。
A 该语句会创建一个CMyList类的一个对象;
B 该语句会创建一个CMyList类的3个对象;
C 必须为类CMyList定义一个构造函数;
D 必须为类CMyList定义一个析构函数;
E 必须定义函数CMyList list(int);
27. 以下说法正确的是( )。
A内联(inline)函数改善了函数调用的执行效率。
B类A的友元(friend)函数可以访问类A的私有成员。
C类A的友元(friend)类B可以访问类A的私有成员。
D类A的静态数据成员为类A的所有对象所共享。
E类A的静态成员函数没有传递this 指针作为参数。
28.类B从类A派生,则类B可以访问类A中的( )成员。
A public成员 B private成员 C protected成员 D数据成员 E函数成员
29. 面向对象的程序设计语言具有()等共同特性。
A封装性 B多态性 C简单性 D复杂性 E继承性
30. 现有一个程序如下:
#i nclude
class A
{ public:
void f(){ cout<< “A::f()”;}
};
class B
{ public:
void f(){ cout<< “B:f()”;}
void g(){ cout<< “B:g()”;}
};
class C : public A, public B
{ public:
void g(){ cout<<”C::g()”;}
void h()
{ cout<<”C::h()”;
f(); //语句1
}
};
void main()
{ C obj;
obj.f(); //语句2
obj.A::f(); //语句3
obj.B::f(); //语句4
obj.g(); //语句5
}
则编译时会产生错误的语句有()
A语句1 B语句2 C语句3 D语句4 E语句5
二、 填空题
1. int func(x)
{
int countx = 0;
while(x)
{
countx ++;
x = x&(x-1);
}
return countx;
}
假定x = 9999。 函数的运行结果为_____
2. 一个栈的初始状态为空。首先将元素5,4,3,2,1 依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为_______________。
3. 一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有个_____结点。
4. 一个双目运算符作为类的成员函数重载时,重载函数的参数表中有_ _个参数。
5. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i的值为_ _。
6. switch()中不允许的数据类型是____。
7. 某32位系统下, C++程序void *p = malloc( 100 ); sizeof (p) = ____。
8. int a = 4;(++a) += a;执行后a的值为___。
9. 派生类中的成员函数可以直接访问基类中的公有成员和____成员。
10. C++语言的参数传递机制包括传值和________两种。
三、 阅读题
1.写出函数Test的运行结果
void Test(void){
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL){
strcpy(str, “world”);
printf(str);
}
}
2.写出程序的运行结果
#include<iostream>
using namespace std;
class Base{
Int x;
Public:
Base(int b):x(b){}
virtual void display(){cout<<x;}
};
class Derived:public Base{
Int y;
public:
Derived(int d):Base(d),y(d){}
void display(){cout<<y;}
};
int main(){
Base b(1);Derived d(2);
Base*p=&d;
b .display();d.display();p一>display();
return 0;
}
3.下面的函数实现在一个固定的数上加上一个数,有什么错误,改正
int add_n(int n)
{
static int i=100;
i+=n;
return i;
}
4.i最后等于多少?
int i = 1;
int j = i++;
if((i>j++) && (i++ == j)) i+=j;
5.#include…
const int SIZE=10;
class stack
{ char stck[SIZE];
int top;
public:
void init();
void push(char ch);
char pop();
};
void stack::init()
{ top=0; }
void stack:push(char ch)
{ if(top==SIZE)
{ cout<<”Stack is full.\n”;
return ; }
stck[top++]=ch;
}
char stack:pop()
{ if(top==0)
{ cout<<”Stack is empty.\n”;
return 0;}
return stck[--top];
}
void main()
{ stack s1, s2;
s1.init();
s2.init();
s1.push(‘a’);
s1.push(‘b’);
s1.push(‘c’);
s2.push(‘x’);
s2.push(‘y’);
s2.push(‘z’);
for(int i=0; i<3; i++)
cout<<”Pop s1:”<< s1.pop();
for(i=0; i<3; i++)
cout<<”Pop s2:”<< s2.pop();
}
四、附加题:
写一个Singleton。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。