4399网页游戏面试C++测试题Word格式.docx

上传人:b****5 文档编号:8329586 上传时间:2023-05-11 格式:DOCX 页数:14 大小:19.21KB
下载 相关 举报
4399网页游戏面试C++测试题Word格式.docx_第1页
第1页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第2页
第2页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第3页
第3页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第4页
第4页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第5页
第5页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第6页
第6页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第7页
第7页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第8页
第8页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第9页
第9页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第10页
第10页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第11页
第11页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第12页
第12页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第13页
第13页 / 共14页
4399网页游戏面试C++测试题Word格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

4399网页游戏面试C++测试题Word格式.docx

《4399网页游戏面试C++测试题Word格式.docx》由会员分享,可在线阅读,更多相关《4399网页游戏面试C++测试题Word格式.docx(14页珍藏版)》请在冰点文库上搜索。

4399网页游戏面试C++测试题Word格式.docx

在第7行生成编译期错误 

e) 

在第1行生成编译期错误 

2. 

下面程序的执行结果是?

b

char 

*gxxx()

static 

xxx[1024];

return 

xxx;

main()

*g="

string"

strcpy(gxxx(),g);

gxxx();

strcpy(g,"

oldstring"

);

The 

string 

is 

:

%s"

gxxx());

Oldstring

产生执行期错误

产生编译期语法错误

以上都不对

3. 

以下程序的执行结果是?

myalloc(char 

*x, 

n)

x= 

(char 

*)malloc(n*sizeof(char));

memset(x,\0,n*sizeof(char));

myalloc(g,20);

Oldstring"

g);

String

执行期错误

编译期语法错误

4.以下代码的执行结果是?

p[]="

int 

x=0;

if(p=="

{

printf("

Pass 

1"

if(p[sizeof(p)-2]=='

g'

printf("

2"

else

Fail 

}

else

1, 

2

编译器语法错 

5. 

对于下面的代码,哪个说法是对的?

const 

*p;

以及 

p;

两个字符串内容都不可修改 

第一个:

不可修改字符串内容,第二个,不可假改指针内容

两个指针都不可修改 

不可修改指针,第二个,不可修改字符串内容

以上说法都不对

6. 

以下代码的输出是?

c

c=-64;

i=-32;

unsigned 

=-16;

if(c>

i)

pass1,"

if(c<

u)

pass2"

Fail2"

Fail1);

if(i<

Pass1,Pass2

Pass1,Fail2

Fail1,Pass2

Fail1,Fail2

7. 

以下代码的输出是 

i=0;

for(i=0;

i<

20;

i++)

switch(i)

{

case 

0:

i+=5;

1:

i+=2;

5:

default:

i+=4;

break;

}

%d,"

i);

0,5,9,13,17

5,9,13,17

12,17,22

16,21

语法错误 

8. 

下面哪个说法是对的?

class 

A

virtual 

func1();

void 

func2();

Class 

B:

public 

func1()

cout 

<

"

fun1 

in 

B"

endl;

func2()

fun2 

A中的func1和B中的func2都是虚函数. 

A中的func1和B中的func2都不是虚函数. 

A中的func2是虚函数.,B中的func1不是虚函数. 

A中的func2不是虚函数,B中的func1是虚函数. 

9. 

cout是I/O流库预定义的什么?

a)类

b)对象

c)包含文件

d)常量 

10. 

在32位系统下,已知int 

a,*pa=&

a;

输出指针pa十进制的地址值的方法是?

a)cout<

pa;

b)cout<

*pa;

c)cout<

&

d)cout<

unsigned 

long(&

pa);

11. 

32位系统下,有一个类A定义如下:

Int 

M1;

Float 

M2;

Virtual 

F1( 

Void 

F2( 

Static 

F3( 

};

定义一个A的实例a,请问a在常规的编译实现下,所占的内存空间有多大b

a)8

b)12

c)16

d)20

e)24

f) 

以上答案都不对

12. 

定义一个A的实例a,请问a在常规的编译实现下,所占的内存空间有多大

Float 

M3;

Int 

M4;

Enum 

M5

E1 

1;

E2 

2;

定义一个A的实例a,请问a在常规的编译实现下,所占的内存空间有多大 

d

a)8 

12 

c)16 

d)20 

e)24 

以上答案都不对 

13. 

已知类型定义如下:

x;

~A(){}

y;

以下表达式的输出为:

A* 

pa 

A;

//假定pa赋值后的地址为0x111111;

B* 

pb 

dynamic_cast<

B*>

( 

请问以上代码执行后,pb的值是:

a)0 

b)与pa相同,即为0x111111 

c)抛出异常

d)在pa地址上,进行类型换算偏移后的地址 

e)以上结果都不对 

14. 

B&

>

(* 

请问以上代码执行后, 

b的地址是:

c)抛出异常 

e)以上结果都不对

15. 

关于this指针的说法错误的是 

this指针不需要显示说明

虚函数拥有this指针

成员函数拥有this指针

静态成员函数拥有this指针

16. 

下面对构造函数的不正确描述是 

系统可以提供默认的构造函数

构造函数可以有参数,所以可以有返回值

构造函数可以重载

构造函数可以设置默认参数

17.下列对模板的声明,正确的是 

template 

T>

T1,T2>

T1,class 

T2>

T1;

18. 

什么函数只能访问静态成员变量。

静态函数

虚函数

构造函数

析构函数

19 

假定类定义如下:

~A(void){}

B

~B( 

void){}

~C( 

){}

现有C的实例c,则当C被销毁时,调用的析构函数的顺序为 

~C(), 

~A(), 

~B();

~A(),~C(),~B() 

~B(),~A(),~C() 

~C(),~B(),~A() 

~A,~B(),~C() 

~B(),~C(),~A() 

20假定类定义如下:

A(void){}

B( 

void){} 

C( 

){} 

现有C的实例c,则当C被创建时,调用的建构函数的顺序为 

C(),A(),B();

A(),C(),B() 

B(),A(),C() 

C(),B(),A() 

A, 

B(),C() 

B(),C(),A()

二.问答题 

1.以下程序的输出是

#include<

iostream.h>

#define 

MAX(a,b) 

?

main 

()

10, 

3, 

MAX(m, 

k) 

10;

cout 

100 

2.以下程序的输出是:

iostream>

using 

namespace 

std;

a{ 

public:

test(){ 

main(void)

sizeof(a);

sizeof(b);

什么函数不能声明为虚函数?

静态成员函数不能是虚函数 

构造函数不能是虚函数 

4. 

简述c++0x标准比较重要的新特性有哪些

新特性之一:

Lambda表达式.

很多编程编程语言都支持匿名函数(anonymousfunction)。

所谓匿名函数,就是这个函数只有函数体,而没有函数名。

Lambda表达式就是实现匿名函数的一种编程技巧,它为编写匿名函数提供了简明的函数式的句法。

同样是VisualStudio中的开发语言,VisualBasic和VisualC#早就实现了对Lambda表达式的支持,终于VisualC++这次也不甘落后,在VisualStudio2010中添加了对Lambda表达式的支持。

新特性之二:

静态断言static_assert

在新的C++标准C++0x中,加入了对静态断言的支持,引入了新的关键字static_assert来表示静态断言。

使用静态断言,我们可以在程序的编译时期检测一些条件是否成立,这个特性在调试模板函数的模板参数时特别有用。

在编译的时候,模板函数实例化,这时我们就可以使用静态断言去测试模板函数的参数是否按照我们的设计拥有合适的值。

此外,静态断言还带来很多其他的优势。

例如静态断言在编译时进行处理,不会产生任何运行时刻空间和时间上的开销,这就使得它比assert宏具有更好的效率。

另外比较重要的一个特性是如果断言失败,它会产生有意义且充分的诊断信息,帮助程序员快速解决问题。

新特性之三:

auto关键字

在C++0x中,auto关键字的意义发生了改变。

从VisualC++2010开始,auto关键字将用于指引编译器根据变量的初始值来决定变量的数据类型。

换句话说,我们可以把auto当成一种新的数据类型,它可以“从初始化器(initialize)中推导出所代表的变量的真正类型”。

这种对auto关键字的使用方式可以大大消除当前替代方式所导致的冗长和易出错的代码。

新特性之四:

右值引用

作为最重要的一项语言特性,右值引用(rvaluereferences)被引入到C++0x中。

我们可以通过操作符“&

”来声明一个右值引用,原先在C++中使用“&

”操作符声明的引用现在被称为左值引用。

左值引用和右值引用的表现行为基本一致,它们唯一的差别就是右值引用可以绑定到一个临时对象(右值)上,而左值引用不可以。

分别写出BOOL,int,float,指针类型的变量a 

与“零”的比较语句。

Bool 

if( 

a==false 

a==0 

) 

简述单件,对象工厂,观察者模式的常见用途。

客户端--------------服务器

一个父类写了一个virtual 

函数,如果子类覆盖它的函数不加virtual 

是否能实现多态?

能 

只要基类在定义成员函数时已经声明了virtue关键字,在派生类实现的时候覆盖该函数时,virtue关键字可加可不加,不影响多态的实现。

符号常量;

(1)const 

*p 

(2)char 

(3)char 

说明上面三种描述的区别

p指针指向的值必须是字符型 

p指针指向的值不能变 

p指针地址不能变 

写出运行结果:

{// 

test2 

union 

struct 

unsigned 

s1:

s2:

3;

s3:

}x;

c;

}v;

v.c 

100;

%d"

 

v.x.s3);

简述Critical 

Section和Mutex的不同点

Mutex 

是内核对象 

Critical 

Section本身不是内核对象

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2