百度2011笔试题

2011年校园招聘笔试题(一)
(测试题目答题时间90分钟,请独立完成)
第一部分 基础知识
一、        逻辑题
1、不可能所有的错误都能避免。以下哪项断定的含义,与上述断定最为接近? (  C  )
A所有的错误必然都不能避免。                B所有的错误可能都不能避免。
C有的错误可能不能避免。                        D有的错误必然不能避免。
2、有ABCD四个有实力的排球队进行循环赛(每个队与其他队各比赛一场,比赛没有平局),比赛结果,B队输掉一场,C队比B队少赢一场,而B队又比D队少赢一场。
关于A队的名次,下列哪一项为真?(  D  )
A第一名。                B第二名。                C第三名。                D第四名。
3、有人养了一些兔子。别人问他有多少只雌兔?多少只雄兔?他答,在他所养的兔子中,每一只雄兔的雌性同伴比它的雄性同伴少一只;而一只雌兔的雄性同伴比它的雌性同伴的两倍少两只。
根据上述回答,可以判断它养了多少只雌兔?多少只雄兔?( A   )
A  8只雄兔,6只雌兔。                B  10只雄兔,8只雌兔。
C  12只雄兔,10只雌兔。        D  14只雄兔,8只雌兔。
4、20世纪60年代初以来,新加坡的人均预期寿命不断上升,到21世纪已超过日本,成为世界之最。与此同时,和一切发达国家一样,由于饮食中的高脂肪含量,新加坡人的心血管疾病的发病率也逐年上升。
从上述判定,最可能推出以下哪项结论?( C   )
A新加坡人的心血管疾病的发病率虽逐年上升,但这种疾病不是造成目前新加坡人死亡的主要杀手。               
B目前新加坡对于心血管疾病的治疗水平是全世界最高的。
C 20世纪60年代造成新加坡人死亡的那些主要疾病,到21世纪,如果在该国的发病率没有实质性的降低,那么对这些疾病的医治水平一定有实质性的提高。                       
D目前新加坡人心血管疾病的发病率低于日本。
5、甲省的省报发行量是乙省的省报发行量的10倍,可见,甲省的群众比乙省的群众更关心时事新闻。
以下哪项属实,最能削弱上述论证:(D    )
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不能被安排在下面哪一天?( D   )               
(A)星期一          (B)星期二            (C)星期三           (D)星期五
7、若I被安排在H之后的一天,则下面哪一项列出了H可以参赛的所有时间?( C   )               
(A)星期一,星期二                (B)星期一,星期三  
(C)星期一,星期四               (D)星期一,星期三,星期四
8、若K被安排在星期三,则下面哪一项可能正确?( B   )
(A)I被安排在星期五        (B)N被安排在星期二  
(C)N被安排在H的前一天    (D)N被安排在I的前一天
9、若K被安排在星期五,则下面哪一项一定正确?(  C  )
(A)H被安排在星期二                 (B)H被安排在星期三
(C)I被安排在星期一                 (D)I被安排在星期三
10、若I被安排在星期三,则下面哪一项一定正确?(  C  )                     
(A)H被安排在N的前面                 (B)H被安排在K的前面
(C)K被安排在H的前面                 (D)N被安排在K的前面

二、基础技术知识
1. 在SQL语言中,子查询是( D   ) 。
A. 返回单表中数据子集的查询语言  B. 选取多表中字段子集的查询语句
C. 选取单表中字段子集的查询语句  D. 嵌入到另一个查询语句之中的查询语句
2. SQL是一种(C)语言。
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)。
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中,则可用(B)。
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) 。
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) 。
A. SELECT                 B. INSERT                C. UPDATE                 D. DELETE
7. 在视图上不能完成的操作是(C) 。
A. 更新视图         B. 查询                  C. 在视图上定义新的表         D. 在视图上定义新的视图
8.下面关于XML的描述错误的是()。
A XML提供一种描述结构化数据的方法;
B XML 是一种简单、与平台无关并被广泛采用的标准;
C XML文档可承载各种信息;
D XML是可扩展的标志语言
9. “软件危机”是指(C)
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. 测试的关键问题是(D)
A. 如何组织对软件的评审                 B. 如何验证程序的正确性
C. 如何采用综合策略                                 D. 如何选择测试用例
17. 结构化维护与非结构化维护的主要区别在于()
A. 软件是否结构化                                 B. 软件配置是否完整
C. 程序的完整性                                 D. 文档的完整性
18. 软件维护困难的主要原因是()
A. 费用低                                                 B. 人员少
C. 开发方法的缺陷                                 D. 得不到用户支持
19. 可维护性的特性中,相互矛盾的是()
A. 可理解性与可测试性                         B. 效率与可修改性
C. 可修改性和可理解性                         D. 可理解性与可读性
20. 快速原型是利用原型辅助软件开发的一种新思想,是在研究(A )的方法和技术中产生的。
A. 需求阶段         B. 设计阶段                C. 测试阶段         D. 软件开发的各个阶段
21. 下列有关软件工程的标准,属于行业标准的是(C)
A. GB                 B. DIN                 C. ISO                 D. IEEE
22. 下列文档与维护人员有关的有(D)
A. 软件需求说明书         B. 项目开发计划                C. 概要设计说明书         D. 用户操作手册
23. ()是为了确保每个开发过程的质量,防止把软件差错传递到下一个过程而进行的工作。
A. 质量检测         B. 软件容错         C. 软件维护         D. 系统容错
24. 表示对象相互行为的模型是(C)模型。
A. 动态模型         B. 功能模型                C. 对象模型         D. 静态模型
25. 下列中不具备线程管理的操作系统是(C)
A. Windows NT         B. Linux                 C. Dos                         D. UNIX
26. 产生系统死锁的原因是由于(C)
A. 进程释放资源                                         B. 一个进程进入死循环
C. 多个进程竞争,资源出现循环等待         D. 多个进程竞争共享型设备
27. 处理器执行的指令被分为两类,其中一类被称为特权指令,它只允许(C)使用。
A. 操作员                 B. 联机用户         C. 操作系统         D. 目标程序
28.在Internet上浏览时,浏览器和WWW服务器之间传输网页使用的协议是 (D)
A. IP                         B. Telnet                 C. FTP                         D. HTTP
29.Internet 协议IPv6 将从原来的32位地址扩展到了( )位 (B)
A. 64                          B. 128              C. 512                  D. 256
30. 文件传输协议是( )上的协议 (C)
A. 网络层                 B. 运输层                 C. 应用层                 D. 物理层

第二部分 JAVA类题目
一、选择题
1.Java是从(B)语言改进重新设计。
A.Ada                 B.C++                 C.Pasacal                 D.BASIC
2.下列语句哪一个正确(B)
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) {}
}
错。abstract method必须以分号结尾,且不带花括号。
 2、        JAVA代码查错
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量
(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。
 3、        JAVA代码查错
abstract class Something {
private abstract String doSomething ();
}
错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstract method封锁起来呢? (同理,abstract method前不能加final)。

4、JAVA代码查错
public class Something {
public int addOne(final int x) {
return ++x;
}
}
错。int x被修饰成final,意味着x不能在addOne method中被修改。
 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);
                        }
}

false,true

四、附加题:
写一个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只有一个实例存在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、选择题(每题1分,共30分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( )。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A) 0 B) 1 C) 2 D) 3 2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是( )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后,ch1 的值是( )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) ‘A' B) ‘B' C) ‘C' D) B 8.下列语句序列执行后,i 的值是( )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,i 的值是( )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( )。 A) x > y || x > z B) x != y C) z > ( y + x ) D) x < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( )。 int i=16; do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2 13.以下由 for 语句构成的循环执行的次数是( )。 for ( int i = 0; true ; i++) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是( )。 A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值, 正确的switch语句是( )。 A) switch (x + y) B) switch ( ch + 1 ) { ...... } { ...... } C) switch ch D) switch ( a + b ); { ...... } { ...... } 16. 下列最终属性 i 的定义中,正确的是( )。 A) static final int i=100; B) final int i=1.2; C) final i='w'; D) final char i; 17. 下列类定义中,不正确的是( )。 A) class x { .... } B) class x extends y { .... } C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 18. 设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是( )。 A) static x x1; B) public x x1=new x(int 123); C) y x1; D) x x1=x( ); 19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是( )。 A) x( int m){ ... } B) void x( int m){ ... } C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... } 20. 下列方法定义中,正确的是( )。 A) int x( ){ char ch='a'; return (int)ch; } B) void x( ){ ...return true; } C) int x( ){ ...return true; } D) int x( int a, b){ return a+b; } 21. 用于定义类成员的访问控制权的一组关键字是( )。 A) class, float, double, public B) float, boolean, int, long C) char, extends, float, double D) public, private, protected 22. 不能构成循环的语句是( )。 A) for 语句 B) while 语句 C) switch 语句 D) do__while 语句 23. 下列程序段执行后 b3 的结果是( )。 boolean b1=true, b2, b3; b3= b1 ? b1 : b2; A) 0 B) 1 C) true D) false 24. 下面数据结构中,属于非线性的是( )。 A) 线性表 B) 树 C) 队列 D) 堆栈 25. 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( )。 A) j=i; B) j=(long)i; C) i=(int)j; D) i=j; 26. 现有一整型数组a[4],它的所有数组元素是( )。 A) a0, a1, a2, a3 B) a[0], a[1], a[2], a[3] C) a[1], a[2], a[2], a[4] D) a[0], a[1], a[2], a[3], a[4] 27. 定义 Java Applet程序时,必须有的 import语句是( )。 A) import java.applet.Applet; B) import java.io.*; C) import java.awt.event; D) import java.lang.*; 28.现有两个类A、B,以下描述中表示B继承自A的是( )。 A) class A extends B B) class B implements A C) class A implements B D) class B extends A 29. 下列算法中,不能用来排序的算法是( )。 A) 冒泡法 B) 插入排序 C) 选择排序 D) 对分法 30. 堆栈操作的原则是( )。 A) 先进先出 B) 后进先出 C) 只能进 D) 只能出 二、填空题(每空1分,共15分) 请将正确答案填写在答题纸相应位置上,答在试卷上不得分。 1. 构造函数______有返回值。 2. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 __________两种具体类型。 3. 创建类对象的运算符是___________。 4. 当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是_____________ 。 5. 在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__________。 6. 定义类就是定义一种抽象的____________,它是所有具有一定共性的对象的抽象描述。 7. 在Java语言中,使用_____、______等技术,实现软件重用。 8. Java的复合数据类型有 : 类、数组和_______等。 9. 表达式3/6 * 5的计算结果是________ 。 10.定义初值为10的10次方的长整型变量 lvar 的语句是:__________________________。 11. 顺序结构、分支结构(或称选择结构)、____________是结构化程序设计的三种基本流程控制结构。 12. 以下方法 m 的功能是求两参数之积的整数部分。 int m ( float x, float y ) { __________________; } 13. Java 源程序文件编译后产生的文件称为________文件,其扩展名为 ___________ 。 三、判断题( 每小题1分,共15分 ) 下列各题中,你认为正确的就在其题干后的括号内打"√",错误的打"×"。 1.Javac++都是面向对象的程序设计语言。( ) 2.字符串 "\'a\'" 的长度是5。( ) 3. 同一个类中定义多个参数列表不同的同名方法,叫做方法的重载。( ) 4. 一个类的定义包括定义类头和定义类体两个部分。( ) 5.一个程序里可以有多个父类,也可以有多个主类。( ) 6. 一个子类可以重新定义从父类那里继承来的同名方法,而且允许它们有不同的返回值。( ) 7.抽象方法只能存在于抽象类中。( ) 8. 在父类中声明为 final 的方法,也可以在其子类中被重新定义(覆盖)。( ) 9. 接口中所有方法均为抽象方法。( ) 10. False 是合法的 Java 标识符。( ) 11. 子类的类成员变量不能与其父类的类成员变量同名。( ) 12. static 变量不能是 private 变量。( ) 13. 保留字 this 代表当前对象。( ) 14. 类的构造函数名必须和类名相同。( ) 15. 子类的对象能直接向其父类对象赋值。( ) 四、程序填空( 每空2分,共20分 ) 阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。 1.下面是一个类的定义: public class ____________ { int x, y; Myclass ( int i, _______) // 构造函数 { x=i; y=j; } } 2.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 public void paint(Graphics ____ ) { int i=689; a.drawString ( ________+ i ,20,60); } 3.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*; public class MyClass { public static void main(String args[ ]) { if( args.length !=___) for(int i=0; i < args.length; i++) System.out.println(___________); else System.out.println("没有命令行参数"); } } 4.下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名: import java awt.*; import java applet.*; public class myprogram extends Applet//定义小程序的主类 { A a; B b; public ________ init( ) { a=new A( ); b=_____ B( ); } } 5.下面程序的功能是输出数组各元素的和。 import java.awt.Graphics; import java.applet.Applet; public class SumArray extends Applet { float[] a; a= new _______[6]; float sum=0.0f; public void init( ) { for ( int j = 0; j < a.length; j++ ) a[j] = j+1; for ( int i = 0 ; i < a.length; i++ ) sum+= a[i]; } public void paint( Graphics g ) { g.drawString( "Total of array elements: " + ________ , 25, 25 ); } } 五、简答题( 每1问2分,共20分 ) 阅读程序(或程序片段)并回答问题 。 1. import java.awt.*; import java.applet.*; public class Test51` extends Applet { float[ ] x = {1.2, 3.4, 5.6, 7.8}; public void paint(Graphics g) { int s=0; for( int i = 0; i < x.length; i++ ) s += (int)x[i]; g.drawString(" " + s, 30, 60); } } 问题: 1)程序的输出结果是什么? 2)方法paint()中的循环体 s += (int)x[i]; 能写为 s +=x[i]; 吗? 为什么? 2. public class Test52 { String str1="Hello, Java world! \t"; String str2="Hello, students! "; public static void main(String args[]) { System.out.print(str1); System.out.println(str2); } } 问题:1)这是哪种形式的 Java 程序 ? 2)程序的输出是什么?输出的结果在 Applet 窗口中吗? 3. 设ch1, ch2是 char 型变量: if ( ch1 == ‘a' ) { if ( ch2 == ‘b' ) System.out.print(" ch1=\'a\' , ch2=\'b\' "); } else System.out.print(" ch1!=\'a\' "); System.out.println(" end "); 问题: 1)若执行前 ch1 的值为 ‘a', ch2 的值为 'c' 该程序段输出是什么? 2)若执行前 ch1 的值为 'w', ch2 的值为 'b' 该程序段输出是什么? 3)若执行前 ch1 的值为 'a', ch2 的值为 'b' 该程序段输出是什么? 4.有如下源程序: import java.awt.*; import java.applet.*; public class Test54 extends Applet { B b; public void init( ) { b=new B( 'f', 87.6f, 69.1f); } public void paint(Graphics g) { g.drawString("序号 "+"性别 "+"成绩1 " +"成绩2 ",20,50); b.Print(g); } } class A { static int n=100; char ch; A( ) { n++; } A( char c){ this( ); ch=c; } void Print(Graphics g) { g.drawString(" "+n+" "+ch,20,70); } } class B extends A { float s1, s2; B(float r1,float r2){ s1=r1; s2=r2; } B( char c, float r1, float r2) { super(c); s1=r1; s2=r2; } void Print(Graphics g) { super.Print(g); g.drawString(" "+s1+" "+s2,40,70); } } 问题: 该程序的输出是什么? 5.已知菲波那契数列的数学表达式为: fibonacci(n)=n, n=0,1; fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2; 设 m 是 long 型变量,下面是用递归算法求菲波那契数列的方法: long fibonacci(long n) { if(n==0||n==1) return n; else return (fibonacci(n-1)+fibonacci(n-2)); } 问题: 当语句 m=fibonacci(3); 执行时,方法 fibonacci( )被调用了几次? 6. 下面是一个排序的程序: import java.io.*; public class Test56_Sort { public static void main(String args[ ]) { int[] a={42,99,5,63,95,36,2,69,200,96}; System.out.println("排序前的数据序列:"); ShowArray(a); Sort(a); System.out.println("排序后的数据序列:"); ShowArray(a); } public static void Sort(int[] x) { int w; for(int i=1; i<x.length; i++) { for(int j=0; j<x.length-1; j++) if(x[j]>x[j+1]) { w=x[j]; x[j]=x[j+1]; x[j+1]=w; } /* if(i==1||i==2) ShowArray(x); if(i==2) break; */ } } public static void ShowArray(int b[]) { for(int i=0; i<b.length; i++) System.out.print(" "+b[i]); System.out.println(" "); } } 问题: 如果将方法Sort( )中的一对注释符(/* */)去掉,程序输出的结果是什么?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值