腾讯2016校园招聘 研发工程师在线模拟 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> void add(int *p) { (*p)++; printf("%d",*p); if (*p>5) { return; } add(p); } int main() { int i=0; add(&i); return 0; } View Code 正确答案 :B 您的答案 :A A12345 B123456 C111111 D未知 当*p = 5时,会再调用add(p),然后先输出*p = 6,然后进行判断,直接跳出程序。所以,输出123456 。 8 有36辆自动赛车和6条跑道,没有计时器的前提下,最少用几次比赛可以筛选出最快的三辆赛车? 正确答案 :B 您的答案 :B A7 B8 C9 D10 9 写出下列代码的输出内容() #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自增,返回值为11fun(&temp,&arg1,arg2); 调用函数multi,参数为(11,10,arg2) arg2为指针变量负责带回返回,*arg2=temp*arg1=11*10=110printf("%d ",*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