您的位置:首页 > 其它

腾讯2016校园招聘 研发工程师在线模拟

2017-03-25 20:23 211 查看
1

二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为( )。

正确答案 :A

您的答案 :B

AOxf8b821c4
BOxf8b821a6
COxf8b82198
DOxf8b821c0

假设每行有n个元素:
[9][9] - [4][4] = 21c-140=5n+5
[7][7] - [4][4]=x- 140 =3n+3
[7][7] = 140+3/5*( 21c-140 )= 1c4

2

32位系统中,定义**a[3][4],则变量占用内存空间为( )。

正确答案 :B

您的答案 :D

A4
B48
C192
D12

在32为系统下,指针大小4B,所以结果为4*3*4=48

3

关于操作系统heap与stack说法中,正确的是()。

正确答案 :BC

您的答案 :BC

A stack由编译器自动分配和释放,存放函数的参数值,局部变量,全局变量的值
B heap一般由程序员分配和释放,若程序员不释放,可能会造成操作系统的内存泄露
C stack由系统自动分配,无需程序员干涉,heap需要手动申请
D heap与stack都会在初始大小空间用满时,系统自动增加其大小

4

对于定义"int *p",下列哪些说明可能是正确的?( )

正确答案 :ABD

您的答案 :ABD

A p是一个指向int型值的指针
B p是一个指向一维数组的指针
C p是一个指向二维数组的指针
D p是一个动态数组

5

一个系统,提供多个http协议的接口,返回的结果Y有json格式和jsonp格式。Json的格式为{"code":100,"msg":"aaa"},为了保证该协议变更之后更好的应用到多个接口,为了保证修改协议不影响到原先逻辑的代码,以下哪些设计模式是需要的?协议的变更指的是日后可能返回xml格式,或者是根据需求统一对返回的消息进行过滤。( )

正确答案 :ABD

您的答案 :ABD

AAadapter
Bfactory method
Cproxy
Ddecorator
Ecomposite

1.adapter:新增功能但不能修改原来代码,原来代码实现思路——标准接口Target定义interface, ConcreteTarget就是当前解析json的类(实现 Target接口 ); 新增功能这样实现—— Adaptee是新增功能的所属类,Adapter实现 Target接口并集成 Adaptee,这样的 Adapter就有了新的功能了,因此需要适配器模式。调用实例如下:
public static void main(String[] args) {
// 使用普通功能类
Target concreteTarget = new ConcreteTarget();
concreteTarget.request();
// 使用特殊功能类,即适配类
Target adapter = new Adapter();
adapter.request();
}
2. 工厂模式: 为多个http协议的接口,在客户端代码中,告诉要请求的接口名称,会调用不同的类来处理,显然是工厂方法
4. 装饰者模式,是用来动态添加功能的,就是过滤 消息,比如非法字符&&&之类的,消息过长之类;
为了保证该协议变更之后更好的应用到多个接口 适配器模式;
为了保证修改协议不影响到原先逻辑的代码 协议的变更指的是日后可能返回xml格式 工厂模式;
或者是根据需求统一对返回的消息进行过滤 装饰模式;

6

下列哪些http方法对于服务端和用户端一定是安全的?()

正确答案 :D

您的答案 :C

AGET
BHEAD
CTRACE
DOPTIONS
EPOST

HEAD,GET,OPTIONS和TRACE视为安全的方法,因为它们只是从服务器获得资源而不对服务器做任何修改。而POST,PUT,DELETE和PATCH则影响服务器上的资源。
GET方法存在安全问题,GET提交数据时,用户名和密码出现在URL上
TRACE: 请求服务器回送收到的请求信息,主要用于测试或诊断。所以是安全的。

7

下面程序运行的结果是(  )。


#include<stdio.h>
int inc(int a)
{
return (++a);
}
int multi(int *a,int *b,int *c)
{
return (*c=*a* *b);
}
typedef int (FUNC1)(int in);
typedef int (FUNC2)(int*,int*,int*);
void show(FUNC2 fun,int arg1,int *arg2)
{
FUNC1 p=&inc;
int temp=p(arg1);
fun(&temp,&arg1,arg2);
printf("%d\\n",*arg2);
}
int main()
{
int a;
show(multi,10,&a);
return 0;
}


View Code

正确答案 :B

您的答案 :B

A100
B110
C120
D0

typedef int(FUNC1)(int in); 是函数指针定义
show(multi,10,&a); FUNC2类型函数指针fun 指向函数multi的首地址
FUNC1 p=&inc; FUNC1类型 函数指针p 指向函数inc的首地址
int temp=p(arg1); 此时调用函数inc,参数为10,将arg1=10自增,返回值为11
fun(&temp,&arg1,arg2); 调用函数multi,参数为(11,10,arg2) arg2为指针变量负责带回返回,*arg2=temp*arg1=11*10=110
printf("%d\n",*arg2); 输出 110

10

22个顶点的连通图中边的条数至少为()

正确答案 :C

您的答案 :C

A18
B20
C21
D23

n个顶点的连通图至少有n-1条边(树);
n个顶点的简单图(完全图)至少有n*(n-1)/2条边。

11

下面函数的时间复杂度是

long foo(long x){

if(x<2) return 1;

return x*x*foo(x-1);

}

正确答案 :A

您的答案 :A

AO(N)
BO(N^2)
CO(N^3)
Do(N!)

这里要从foo(1)一直计算到foo(n),因此时间复杂度为O(N)。

12

线性表的长度为10,在最坏情况下,冒泡排序需要比较次数为( )。

正确答案 :D

您的答案 :D

A40
B42
C44
D45
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐