东软2012校园招聘笔试试题(B)
扫描二维码
随时随地手机看文章
一 选择题
1(数据结构)执行以下程序的时间复杂度为___
char *p = "NEUSOFT";
for (int i=0;i<strlen(p) ;i++){
printlf("%cn",p[i]);
}
其中函数strlen(str)返回字符串str的长度。
A 0(1) B 0( n) C 0(n*n) D 0(n!)
2 (数据结构)利用大小为n的数组顺序存储一个堆栈是否为空,那么进栈操作应该执行____来修改 top 指针
A top=0 B top=n C top++ D top--
3 (数据结构)完全的十叉树的定义是,若设十叉树的高度为h 除第h层外,其它的层(1~h-1)的结点数都达到最大个数,第h层所有的节点都连续集中在最左边,一颗
具有2012个结点的完全的十叉树的高度为___
A 5 B 6 C 7 D8
4(数据结构)在无向图中,所有顶点的度数之和等于所有边数的__倍
A 0.5 B 1 C 2D 3
5(数据结构)从具有n个结点的二叉树搜索树中删除一个元素时,在最坏情况下的时间复杂度为____
A 0(1) B 0( n) C 0(n*n) D 0(log2n)
6 (数据结构) 在100个不同的数据元素进行直接插入排序 最多需要进行____次比较
A 9700 B 9900 C 4850 D 4950
7(软件工程)具有风险分析的软件生存周期模型是____
A 螺旋模式 B 增量模式 C 喷泉模式 D 瀑布模式
8 (操作系统)在UNIX系统中 目录结构采用_____
A 单级目录结构 B 带链接树形目录结构 C 二级目录结构 D 单纯树形目录结构
9(操作系统)某进程在运行过程中需要等待从磁盘上读入数据,此时该进程的状态将____
A 从就绪变为运行 B从运行变为阻塞 C 从运行变为就绪 D 从阻塞变为就绪
10(C语言)一下叙述中错误的是————
A 变量的作用域取决于变量的定义语句出现的位置
B 局部变量的作用域是在定义它的函数体内
C 同一程序中 全局变量的作用域一定比局部变量的作用域大
D 全局变量的作用域是从定义位置开始至源文件结束
11(C语言)定义一个结构体变量时,系统分配给他的内存单元是_____
A 全部成员所需的内存量的最大值
B固定的容量
C全部成员所需的内存量之和
D 结构体中的第一个成员所需的容量
12(C++)关于类模板 ,描述错误的是_____
A 一个普通基类不能派生出类模板
B 类模板从普通派生类,也可以从类模板派生
C 根据建立对象是的实际数据类型,编译器把类模板实例化为模板
D 函数的类模板参数须通过构造函数实例化
13(C++)下面函数原型声明中,_______声明了crossover为虚函数
A virtual void crossover()=0;
B void crossover()=0;
C virtual void crossover();
D virtual void crossover(){};
14(Java)要从文件“file.dat” 文件中读出第十个字节到变量C中,下列哪个方法合适?
A FileInputStream in = new FileInputStream("file.day"); in.skip(10);int c=in.read();
B FileInputStream in = new FileInputStream("file.day"); in.skip(9);int c=in.read();
C FileInputStream in = new FileInputStream("file.day");int c=in.read();
D FileInputStream in = new FileInputStream("file.day"); in.skip(10);int c=in.readByte();
15(Java)指出下列程序运行的结果
public class Example{
String str = new String ("good");
char[] cha={'a','b','c'};
public static void main(String args[]){
Example ex= new Example();
ex.change(ex.str,ex.ch);
system.out.printle(ex.str+" and");
System.out.println(ex.ch);
}
public void change(String str,Char ch[]){
syr="test ok";
ch[0]='g';
}
}
A. good and abc
B test ok and abc
C good and gbc
D test ok and gbc
二 填空题
1 使用二分查找法在sorted_list中搜索element。
int binary_serach(int sorted_list[],int low ,int high ,int element){
while(low<=high){
int middle=①______
if(element>sorted_list[middle])
low=middle+1;
else if(element < sorted_list[middle])
②__________;
else
return middle;
}
return -1;
}
2 使用指针的形式编写函数 strncat,已知strncat的函数声明如下;
char * strncat(char *dst,const char *src,int n)
该函数的功能是把src所指的字符串的前n个字符添加到dest 的结尾处(覆盖dest结尾处的‘ ’)并添加‘ ’
char * strncat(char *dst,const char *src,int n)
{
if(n!=0){
char * d=dst;
const char * s=src;
whle(*d!=' '){
③____________;
}
do{
if((*d= *s++)==' ')
④____________;
d++;
}
while(--n!=0){
⑤____________;
}
}
return dst;
}
3 已知二叉树的结构定义如下
struct node
{
struct node *left ;
int data;
struct node * right;
}
请完成二叉树的前序遍历函数:
void preorder (struct node *p)
{
if(⑥__________)
{
printf("Data :%d",p->data);
⑦__________;
⑧__________;
}
else
return ;
}
4 斐波那契数列(Fiboncacci Sequence) 指的是这样的一个数列:0,1,1,2,3,5,8,13,21.................在数学上斐波那契数列以如下递归方法定义: F(0)=0
F(1)=1 F(n)=F(n-1)+F(n-2) 请完成打印前100位斐波那契数列的程序
#include
int main()
{
long fib[100]={0,1};
pintf("F(0)=%dn",fib[0]);
pintf("F(1)=%dn",fib[1]);
int i;
for(i=2;⑨_________;i++){
10____________;
printf("F(%d)=%dn",i,fib[i]);
}
getch();
return 0;
}
三 简答题
1 良好的程序书写规范要求在程序头上包含哪些内容?
2 请书面 static 变量和函数的优势
3 请说明类定义中friend关键字的作用
4 什么是STL?列举几个STL中常用的组件
四 编程题
1(C++) 请实现一个雷Triangle 表示三角形,它有两个公有成员,一个底长 * width 另一个是高度 * height 再实现Triangle 的构造与析构函数,其中构造函数有两个参数
分别是三角形的底长和高度值,构造函数的功能是为了三角形的两个成员分配内存并赋初值;析构函数的功能是释放两个成员所占用的内存,最后请实现计算机三角形面积的函数area() 注意: 所有的数值使用整形表示
2 已知一个雇员类(Employee)和其派生类小时工(HourlyWorker)的定义如下
class Employee {
publci :
Employee(const char * ,chonst char *);// constructor
void print() const;
~Employee();
private:
char * firstName;
char * lastName;
};
Employee 中print 方法的定义如下:
void Employee::print() const
{cout << firstName <<''<<lastName;}
class HourlyWorker : public Employee{
public :
HourlyWorker( const char *,const char * ,double,double);
double getPay() const;
void print() const;
private:
double wage;
double hours;
};
要求:
1 实现Employment类的构造方法Employment(const char *, const char *);
2 调用父类的构造方法完成 Hourlyworker 类的构造方法 HourlyWorker( const char *,const char *,double ,double);
3 实现 HourlyWorker 类中的print()方法,要求打印出该小时工的姓名全名和收入情况
3 (Java)随机生成十个整数(1~100),求出生成数列中最大值和最小值 运行效果如下所示:
随机生成的数列是:
25 254 12 22 55 9833 15 78
此数列的最大值是:98
此数列的最小值是:2
(要求: 使用java语言;不允许使用Arrays类的sort 方法)
4(Java) 编写一个异常类MyExecption 再编写一个类Student 该类有一个产生异常的方法 public void speak (int m)
throws MyExecption 要求参数m的值大于1000 时 方法抛出一个MyExecption 对象 最后 编写主类,在主类的main 方法中使用
Student 创建一个对象,让该对象调用speak方法(m 参数设为1500)