我是靠谱客的博主 轻松自行车,最近开发中收集的这篇文章主要介绍腾讯2013年实习生笔试题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

1、32 位机上根据下面的代码,问哪些说法是正确的?
    signed char a = 0xe0;
    unsigned int b = a;
    unsigned char c = a;
    A. a>0 && c>0 为真         B. a == c 为真         C. b 的十六进制表示是:0xffffffe0         D. 上面都不对
解析:A错,B错,C对,D错
    扩展的原则是:
    1. 有符号的数据类型,在向高精度扩展时,总是带符号扩展
    2. 无符号的数据类型,在向高精度扩展时,总是无符号扩展
    A是错的,因为a是负数,c是正数,即使跟0比较要转换为int,也是一正一负;
    B是错的,a和c 的二进制表示是一样的,都是0xe0。但是比较的时候,都转化为int,所以,a还是作为一个负数存在,c(224)作为一个正数存在,于是就不相等了;
    C是正确的,看上面的扩展原则,a作为有符号数,向高精度扩展时,总是带符号扩展;
    《整形比较小于int的会扩宽的int再比较, 而有符号数扩宽填充符号位, 无符号数填充0, 导致扩宽后两个整形的二进制不再相等,》
 
2、下面哪些选项能编译通过?
  int i;
  char a[10;
  string f();
  string g(string &str);
    A. if(!!i){f();}          B. g(f());          C. a=a+1;          D. g("abc");
解析:A正确,B(待定),C错误,D错误
    A正确         B不确定
    C错误,是因为a是一个地址常量,不能被赋值;
    D错误,是因为”abc”的类型为const char *呢,是常量指针
 
3、int a[10]; 问下面哪些不可以表示 a[1] 的地址?
    A. a+sizeof(int)         B. &a[0]+1         C. (int*)&a+1         D. (int*)((char*)&a+sizeof(int))
解析:A错误  
    a+1就是a[1]的地址,a就是int *,指针+1表示偏移一个元素。
 
4、问下面的数据都存放在哪些存储区?
    int main()
    {
        char *p = "hello,world";
        return 0;
    }
    A. ... B. ... C. 栈和常量区 D. 栈和堆
解析:C
    因为*p分配在栈区,”hello, world”是常量,常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量。不允许修改。
    补充:
    字符串常量, 按保存区域的不同分为以下几种:
    一种是保存在栈区 , char name5[20] = "fengkewei";  或 char name1[] = "fengkewei";
    一种保存在文字常量区, 即 char *name = "fengkewei";
    一种保存在全局区(静态区)
    最后一种保存在堆区,即用malloc, alloc, realloc  分配内存分配的区域,可有程序员自身分配和释放。
 
5、假设在一个 32 位 little endian 的机器上运行下面的程序,结果是多少?
    
解析:
    
    
    
 
 
6、下面哪些函数调用必须进入内核才能完成?
    A. fopen      B. exit      C. memcpy      D. Strlen
解析:A(不确定) B正确
 
7、内存管理中的 LRU 方法是用来管理神马的?
    A. 虚拟内存的分配     B. 虚拟内存的释放     C. 物理内存的分配     D. 物理内存的释放
解析:A
    内存管理的一种算法,对于在内存中但最近又不用的数据块(内存块)叫做LRU,Oracle会根据那些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
    什么是LRU算法? LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。
  
8、关于DMA 的说法,哪些是错误的?
    A. DMA,Direct Memory Acess 直接存储器访问,使得不同的速度的硬件设备可以直接通信,不通过 CPU 干预;
    B. DMA 访问的时候需要从 CPU 那里夺得总线控制权,然后...
    C. DMA 速度快;
    D. DMA 不需要中断控制,CPU 管理不要它;
解析:D
 
9、死锁发生的必要条件?
    A. 互斥条件         B. 请求和保持         C. 不可剥夺         D. 循环等待
解析:ABCD
    所谓死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用这些进程都将永远不可能向前推进。
    死锁的原因主要是:
    (1) 因为系统资源不足。
    (2) 进程运行推进的顺序不合适。
    (3) 资源分配不当等。
    如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
    产生死锁的四个必要条件:
    (1) 互斥条件:一个资源每次只能被一个进程使用。
    (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
    (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
    (4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立。

10、有两个线程,最初 n=0,一个线程执行 n++; n++; 另一个执行 n+=2; 问,最后可能的 n 值?
    A. 1          B. 2          C. 3          D. 4
解析:BCD
  D 顺序执行以下,就可以。B 的话,让后面一个执行到+2,但不要写结果,然后前一个执行完,然后写结果,为 2。C 3 的话,也好分析。A 不可能!肿么可能呢?肿么可能结果只为 1 呢?两个线程都会 +2,+1 何从谈起?先 +1,然后让后面的加法错了,然后结果写进去?前一个 ++n 都没执行的话,后一个又肿么会执行呢?总之不可能是 1 !
 
11、下面哪些说法正确?
    A. 数组和链表都可以随机访问
    B. 数组的插入和删除可以 O(1)
    C. 哈希表么法范围检查
    D. ...
解析:C
 
12、基于比较的排序的时间复杂度下限是多少?
    A. O(n)          B. O(n^2)          C. O(nlogn)          D. ...
解析:C  
 
13、下面图的拓扑排序可能是?
解析:看下拓扑排序
 
14、求 n 个数中的最大值和最小值,最少的比较次数是?
    A. 4n/3          B. 2n-2          C. n-1          D. 3n/2
解析:D   这个学过
 
15、一棵二叉树的先序遍历是 f b a c d e g h,中序遍历是 a b d c e f g h,问后序遍历是神马?

16、网卡、交换机、路由器和 UDP 分别工作网络的哪些层?
解析:
    网卡——物理层? 
集线器——物理层
    中继器——物理层 交换机——链路层   
    
路由器——网络层    UDP——传输层  
    网桥——链路层
 
17、子网掩码 255..255.255.224 可以将网络 x.x.x.x 分成多少个子网?
解析:
 
18、TCP协议栈的定时器有哪些?
解析:
    在内核中tcp协议栈有6种类型的定时器: 
    1 重传定时器。 2 delayed ack定时器       3 零窗口探测定时器 
    上面三种定时器都是作为tcp状态机的一部分来实现的。 
    4 keep-alive 定时器——主要是管理established状态的连接。 
    5 time_wait定时器——主要是用来客户端关闭时的time_wait状态用到。 
    6 syn-ack定时器(主要是用在listening socket) ——管理新的连接请求时所用到。 
 
19、高内聚和低耦合,下面哪个耦合度最高?
    A. 通过函数参数传递...
    B. 一个函数修改另外一个函数中的数据;
    C. 通过全局变量...
    D. 通过指示器...
解析:
  内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。
  所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
  耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。) 
  对于低耦合,粗浅的理解是:
  一个完整的系统,模块与模块之间,尽可能的使其独立存在。
  也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
  模块与模块之间的接口,尽量的少而简单。
  如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。

20、关于访问,下面哪些是后台绝对不会执行的?
    A. 本地查查 DNS,是否有 sinaapp.com 的 ip;
    B. 通过 cn. 查找 ip;
    C. 通过 com. 查找 ip;
    D. 浏览器发送 http get 请求;
    D. 服务器回送 xxx.jpg;
解析:
    这个题目不知道问的什么意思。
 
22、在32位大端模式处理器上变量b= ?
  unsigned int a= 0x1234;
  unsigned char b=*(unsigned char *)&a;
解析:
    

23、一个有 800 个结点的完全二叉树,问有多少个叶子结点?
解析:
    一个有 800 个结点的完全二叉树,问有多少个叶子结点?
解析:假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2。
 
24、下面 get 是求一个二维数组元素的函数,请补全。( 1 个空)
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define M 3
  4. #define N 4
  5. int get(int *a, int i, int j)
  6. {
  7.     int v;
  8.     if(a == NULL || i<0 || i>=M || j<0 || j>=N) exit(1); //
  9.     v = *(a+i*N+j); // 杩欓噷鏈変竴涓?┖
  10.     return v;
  11. }
  12. int main()
  13. {
  14.     int a[M[N = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  15.     int v;
  16.     v = get(a, 2, 1);
  17.     printf("a[2][1] == %dn", v );
  18.     return 0;
  19. }
    补全插入排序
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int insert_sort(int *p, int count)
  4. {
  5.     int i, j, tmp;
  6.     if(p == NULL || count < 0) return 0; //
  7.     for(i=1; i<count; i++){
  8.         tmp = p[i;
  9.         j = i-1;
  10.         while(j>=0 && p[j>tmp){ // 此处判断条件一个空
  11.             p[j+1 = p[j;
  12.             --j;
  13.         }
  14.         p[j+1 = tmp; // 此处一个空
  15.     }
  16.     return 1;
  17. }
  18. int main()
  19. {
  20.     int i, a[10 = {3, 2, 1, 7, 8, 10, 4, 5, 6, 9};
  21.     insert_sort(a, 10);
  22.     for(i=0; i<10; i++)
  23.         printf("%d ", a[i);
  24.     printf("n");
  25.     return 0;
  26. }

26、 使用 FIFO 管理页面请求,如果分配的物理块 M = 3 或是 4,请求顺序如下:4 3 2 4 4 3 5 4 5 3 1 5 1 5 1 5 4,问两种情况下页面失效的次数各是多少?( 2 个空)
解析:
 
27、一个网络图,问 Q 路由器到某个网络要进行跳转的下一个 ip 是多少?(有 1 个空)
28、软件可靠性评估的两个指标:可靠性和安全性?

转载于:https://www.cnblogs.com/iloveyouforever/p/3430071.html

最后

以上就是轻松自行车为你收集整理的腾讯2013年实习生笔试题的全部内容,希望文章能够帮你解决腾讯2013年实习生笔试题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部