软件工程师笔试题B

校园招聘笔试题(软件B )

学 校: 专 业: 姓 名: 学 历: 四级成绩: 最终得分:

注意:满分100分,答题时间45分钟

一、填空题(共30分)

1、通常,在什么情况下适合采用inline 定义内联函数?2、含有纯虚函数的类称为3、C++函数中参数的传递方式有、、三种方式。

4、程序的局部变量存在于

5、C++里声明某一函数为C 程序中的库函数,则需要在该函数前加。

6、如果编译器在编译和连接程序时,已经确定了调用函数的地址,这种做法通常称为联编。

7、C++预定义的标准输入流对象是,标准输出流对象是。

8、#ifndef #define #endif的主要作用是(2分)

9、假设定义类型如下:

union A{int x; double y; char z;};

struct B{int x; char y; char* z;};

在Win32平台下,sizeof(A)= , sizeof(B)=

10、下面程序输出分别是4分)

#define PRINTX printf("%d ", x)

int main()

{

}

11、假定CLS_PtzControl是一个类,那么执行语句CLS_PtzControl x[5], *y[3];时程序会自动调用该类int x=2,y,z; x*=3+2;PRINTX; x*=y=z=4;PRINTX; x=y==z;PRINTX; x==(y=z);PRINTX; return 0;

的无参构造函数 次。(2分)

12、对于数组int x[10],其元素x[4]的字节地址为。(2分)

13、执行如下程序后的输出结果是:2分)

#include

class test{

static int count;

public:

test(){count++;}

~test(){count--;}

static int getCount(){return count;}

};

int test::count=0;

int main()

{

test * p=new test;

test * q=new test;

delete p;

cout

return 0;

}

14、以下程序的正确执行结果为:2分)

#include

#int f(int);

void main()

{

int a=2,i;

for(i=0;i

{

cout

}

cout

}

int f(int a)

{

int b=0;

static int c=3;

b++;

c++;

return (a+b+c);

}

15、下面程序的输出结果是2分)

#include

int fun(char *s)

{

char *p=s;

while(*p!='\0')

{

p++;

}

return (p-s);

}

void main()

{

count

}

二、选择题(每题2分,共20分),请将答案写在【 】内。

【 】1、C++中,符号“&”不可以表示的是:( )

A .取变量运算 B .按位与运算 C .引用运算符 D .取地址运算

【 】2、有关函数重载的正确说法是:( )

A .函数名不同,但形式参数的个数和类型相同

B .函数名相同,但形式参数的个数不同或参数的类型不同

C .函数名相同,形式参数的个数和类型也相同

D .函数名相同,函数的返回值不同,而与函数的形式参数和类型无关

【 】3、对于std::vector vec; const std::vector::iterator iter = vec.begin() 下列说法正确的是( )

A .*iter = 10 和 ++iter均可通过编译

B .*iter = 10可通过编译,++iter不可通过编译

C .*iter = 10不可通过编译,++iter可通过编译

D .*iter = 10 和 ++iter均不可通过编译

【 】4、一个指向整型数组的指针的定义为:( )

A .int(*ptr)[] B .int *ptr[] C .int*(ptr[]) D .int prt[]

【 】5、假定要对类AB 定义加号操作符重载成员函数,实现两个AB 类对象的加法,并返回相加结果,则该成员函数的声明语句为:( )

A . AB operator+(AB & a , AB & b) B .AB operator+(AB & a)

C .operator+(AB a) D .AB & operator+( )

【 】6、如果需要定义一个只允许本源文件中能够被访问使用的全局变量,那么该变量使用的类型是( )

A .extern B .register C .auto

A .封装 B .继承 C .抽象 D .static D .重载 【 】7、C++中的this 指针是其实现( )的一种机制。

【 】8、对于类CLS_Matrix,语句void (CLS_Matrix::*pControl)(int _iCmd);表明( )

A .pControl 是一个指向类成员函数的指针 B .pControl 是类CLS_Matrix的一个成员

C .pControl 是类CLS_Matrix的一个对象 D .pControl 是一个指向类对象的指针

【 】9、设置虚基类的目的是( )

A .简化程序 B .消除二义性 C .提高运行效率 D .减少目标代码

【 】10、有如下程序:执行后的输出结果应该是( )

#include

class BASE{

public:

~BASE(){cout

};

class DERIVED: public BASE{

public:

~DERIVED(){cout

};

void main(){DERIVED x;}

A .BASE B .DERIVED C .BASEDERIVED D .DERIVEDBASE

三、纠错题(8分)

1、下面的函数实现代码是否有问题?请指出。(4分)

char *GetMemory(void)

答题处: {

char p[] = "hello world";

return p;

}

void Test(void)

{

char *str = NULL;

str = GetMemory();

printf(str);

}

2、以下的程序运行后会产生什么问题?(4分)

#define SIZE 255

int main() 答题处:

{

unsigned char Array[SIZE], i;

for (i=0;i

{

Array[i]=i;

}

return 0;

}

四、简答题(共42分)

1、C 中的结构体与C++中的类主要区别是什么?(5分)

2、以下为Windows NT下的32位C++程序,请计算sizeof 的值(5分)

char str[] = "Hello" ;

char *p = str ;

int n = 10;

请计算

sizeof (str ) =void Func ( char str[100])

{

请计算

sizeof( str ) =

}

void *p = malloc( 100 );

请计算

3、类成员函数的重载、覆盖和隐藏区别? (8分)

4、写出如下程序的运行结果。(12分)

class A{

public:

virtual void Output() { printf(" This is A’s Output\n" );}

void Display() { printf(" A::Display\n" ); Output(); }

};

class B:public A{

public:

virtual void Output() { printf(" This is B’s Output\n" ); }

}; 答题处: int main()

{ ① B b1; ② b1.Display();

((A *)(&b1))->Display(); ③ ((A)b1).Display(); ④ return 0;

⑤ }

5、用单链表表示集合,设计算法求两个集合的并集。(12分)

typedef struct SNode

{

int data;

SNode * next;

} SNode;

void diffence(SNode *A,SNode *B,SNode *&C)

{

SNode *pa=A,*pb=B,*pc,*s,*r;

C=(SNode*)malloc(sizeof(SNode));

r=C;

while(pa!=NULL)

{

s=(SNode*)malloc(sizeof(SNode));

s->next=NULL;

r->next=s;

pa = pa->next;

}

while(pb!=NULL)

{

pc=C->next;

{

pc=pc->next;

}

if(pc==NULL)

{

s=(SNode*)malloc(sizeof(SNode));

s->next=NULL;

r=s;

}

pb=pb->next;

}

pc = C;

C = C->next;

free(pc);

}

① ② ③ ④ ⑤ ⑥

校园招聘笔试题(软件B )

学 校: 专 业: 姓 名: 学 历: 四级成绩: 最终得分:

注意:满分100分,答题时间45分钟

一、填空题(共30分)

1、通常,在什么情况下适合采用inline 定义内联函数?2、含有纯虚函数的类称为3、C++函数中参数的传递方式有、、三种方式。

4、程序的局部变量存在于

5、C++里声明某一函数为C 程序中的库函数,则需要在该函数前加。

6、如果编译器在编译和连接程序时,已经确定了调用函数的地址,这种做法通常称为联编。

7、C++预定义的标准输入流对象是,标准输出流对象是。

8、#ifndef #define #endif的主要作用是(2分)

9、假设定义类型如下:

union A{int x; double y; char z;};

struct B{int x; char y; char* z;};

在Win32平台下,sizeof(A)= , sizeof(B)=

10、下面程序输出分别是4分)

#define PRINTX printf("%d ", x)

int main()

{

}

11、假定CLS_PtzControl是一个类,那么执行语句CLS_PtzControl x[5], *y[3];时程序会自动调用该类int x=2,y,z; x*=3+2;PRINTX; x*=y=z=4;PRINTX; x=y==z;PRINTX; x==(y=z);PRINTX; return 0;

的无参构造函数 次。(2分)

12、对于数组int x[10],其元素x[4]的字节地址为。(2分)

13、执行如下程序后的输出结果是:2分)

#include

class test{

static int count;

public:

test(){count++;}

~test(){count--;}

static int getCount(){return count;}

};

int test::count=0;

int main()

{

test * p=new test;

test * q=new test;

delete p;

cout

return 0;

}

14、以下程序的正确执行结果为:2分)

#include

#int f(int);

void main()

{

int a=2,i;

for(i=0;i

{

cout

}

cout

}

int f(int a)

{

int b=0;

static int c=3;

b++;

c++;

return (a+b+c);

}

15、下面程序的输出结果是2分)

#include

int fun(char *s)

{

char *p=s;

while(*p!='\0')

{

p++;

}

return (p-s);

}

void main()

{

count

}

二、选择题(每题2分,共20分),请将答案写在【 】内。

【 】1、C++中,符号“&”不可以表示的是:( )

A .取变量运算 B .按位与运算 C .引用运算符 D .取地址运算

【 】2、有关函数重载的正确说法是:( )

A .函数名不同,但形式参数的个数和类型相同

B .函数名相同,但形式参数的个数不同或参数的类型不同

C .函数名相同,形式参数的个数和类型也相同

D .函数名相同,函数的返回值不同,而与函数的形式参数和类型无关

【 】3、对于std::vector vec; const std::vector::iterator iter = vec.begin() 下列说法正确的是( )

A .*iter = 10 和 ++iter均可通过编译

B .*iter = 10可通过编译,++iter不可通过编译

C .*iter = 10不可通过编译,++iter可通过编译

D .*iter = 10 和 ++iter均不可通过编译

【 】4、一个指向整型数组的指针的定义为:( )

A .int(*ptr)[] B .int *ptr[] C .int*(ptr[]) D .int prt[]

【 】5、假定要对类AB 定义加号操作符重载成员函数,实现两个AB 类对象的加法,并返回相加结果,则该成员函数的声明语句为:( )

A . AB operator+(AB & a , AB & b) B .AB operator+(AB & a)

C .operator+(AB a) D .AB & operator+( )

【 】6、如果需要定义一个只允许本源文件中能够被访问使用的全局变量,那么该变量使用的类型是( )

A .extern B .register C .auto

A .封装 B .继承 C .抽象 D .static D .重载 【 】7、C++中的this 指针是其实现( )的一种机制。

【 】8、对于类CLS_Matrix,语句void (CLS_Matrix::*pControl)(int _iCmd);表明( )

A .pControl 是一个指向类成员函数的指针 B .pControl 是类CLS_Matrix的一个成员

C .pControl 是类CLS_Matrix的一个对象 D .pControl 是一个指向类对象的指针

【 】9、设置虚基类的目的是( )

A .简化程序 B .消除二义性 C .提高运行效率 D .减少目标代码

【 】10、有如下程序:执行后的输出结果应该是( )

#include

class BASE{

public:

~BASE(){cout

};

class DERIVED: public BASE{

public:

~DERIVED(){cout

};

void main(){DERIVED x;}

A .BASE B .DERIVED C .BASEDERIVED D .DERIVEDBASE

三、纠错题(8分)

1、下面的函数实现代码是否有问题?请指出。(4分)

char *GetMemory(void)

答题处: {

char p[] = "hello world";

return p;

}

void Test(void)

{

char *str = NULL;

str = GetMemory();

printf(str);

}

2、以下的程序运行后会产生什么问题?(4分)

#define SIZE 255

int main() 答题处:

{

unsigned char Array[SIZE], i;

for (i=0;i

{

Array[i]=i;

}

return 0;

}

四、简答题(共42分)

1、C 中的结构体与C++中的类主要区别是什么?(5分)

2、以下为Windows NT下的32位C++程序,请计算sizeof 的值(5分)

char str[] = "Hello" ;

char *p = str ;

int n = 10;

请计算

sizeof (str ) =void Func ( char str[100])

{

请计算

sizeof( str ) =

}

void *p = malloc( 100 );

请计算

3、类成员函数的重载、覆盖和隐藏区别? (8分)

4、写出如下程序的运行结果。(12分)

class A{

public:

virtual void Output() { printf(" This is A’s Output\n" );}

void Display() { printf(" A::Display\n" ); Output(); }

};

class B:public A{

public:

virtual void Output() { printf(" This is B’s Output\n" ); }

}; 答题处: int main()

{ ① B b1; ② b1.Display();

((A *)(&b1))->Display(); ③ ((A)b1).Display(); ④ return 0;

⑤ }

5、用单链表表示集合,设计算法求两个集合的并集。(12分)

typedef struct SNode

{

int data;

SNode * next;

} SNode;

void diffence(SNode *A,SNode *B,SNode *&C)

{

SNode *pa=A,*pb=B,*pc,*s,*r;

C=(SNode*)malloc(sizeof(SNode));

r=C;

while(pa!=NULL)

{

s=(SNode*)malloc(sizeof(SNode));

s->next=NULL;

r->next=s;

pa = pa->next;

}

while(pb!=NULL)

{

pc=C->next;

{

pc=pc->next;

}

if(pc==NULL)

{

s=(SNode*)malloc(sizeof(SNode));

s->next=NULL;

r=s;

}

pb=pb->next;

}

pc = C;

C = C->next;

free(pc);

}

① ② ③ ④ ⑤ ⑥


相关文章

  • 网络安全服务上岗证考试题及答案
  • 网络安全服务上岗证 答题人:****** 考试总分:100.0 考试得分:100.0 1. 判断题 网络安全行为红线是有条件的强制要求,在与业务有冲突时,以满足业务需要为先. 对 考生答案:错 回答正确 错 试题分数:(2.0) 当前得分: ...查看


  • 知识产权和标准化的题目
  • 第5章 知识产权与标准化 从历年的考试试题来看,本章的考点在综合知识考试中的平均分数为3.93分,约为总分的5.24%.主要分数集中在知识产权.标准化常识和软件工程国家标准这3个知识点上. 5.1 考点提炼 信息化政策法规和标准规范用于规范 ...查看


  • 2013年全国造价师考试[建设工程技术与计量(土建)]真题
  • 2013年全国造价师考试<建设工程技术与计量(土建)>真题 第 1 题 (单项选择题)(每题 1.00 分) 题目分类:取自模拟测试模块中的试题 > 单项选择题 > 按工业建筑用途分类,机械制造厂的热处理车间厂房属于 ...查看


  • 软考 软件工程师--下午试题
  • 软件工程师--下午试题 2012年上半年全国计算机技术与软件专业技术资格(水平)考试将于2012年5月26日开考.下面我对2006年5月至2011年11月[6年,12次]的软件设计师级别下午试题进行一个简单的汇总统计,希望对准备参加软考的朋 ...查看


  • 系统分析师考试历年真题二(下午试题)
  • 系统分析师考试历年真题二(下午试题) 系统分析师考试是软考中一项高级资格考试科目,考试一共分为三门:基础知识.案例分析及论文.下面是小编整理的系统分析师历年考试下午真题,供大家学习参考. 试题四 阅读以下关于信息系统网络分析与改造方面的叙述 ...查看


  • 联想测试工程师笔试题
  • 一.填空题:(每一空格2分,共60分) 1. 软件实施活动的输出工件有软件测试计划.软件测试设计文档.软件测试用例.测试报告. 2. 代码评审主要做工作. 1.保证代码和详细设计的一致.详细设计文档每一项都用代码实现,没有遗漏和增加 2.保 ...查看


  • 马鞍山电大软件工程历届试题
  • 试卷代号:2073 中央广播电视大学2008-2009学年度第二学期"开放专科"期末考试 软件工程 试题 2009年7月 一.填空题(在表格内填写正确的答案,每空2分,共20分) 请根据表格左边的分类名称,给右边的分类内 ...查看


  • 软件工程导论试题1
  • 3 1. 软件生命期各阶段的任务是什么? 答:软件生命期分为7个阶段: 1.问题定义:要解决的问题是什么 2.可行性研究:确定问题是否值得解,技术可行性.经济可行性.操作可行性 3.需求分析:系统必须做什么 4.总体设计:系统如何实现,包括 ...查看


  • 测试工程师的笔试题
  • 测试工程师 一.基础选择题 1.对于软件测试描述正确的是(目的是尽可能多的发现程序的错误)(2) 2.软件测试的对象包括(源程序.目标程序.数据及相关文档)(2) 3.描述正确的是(软件是程序数据与相关文档的集合)(2) 4.数据独立性是数 ...查看


  • 2012年1月自考软件开发发工具试题真题及答案
  • 全国2012年1月高等教育自学考试 软件开发发工具试题 课程代码:03173 一.单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内.错选.多选或未选均无 ...查看


热门内容