腾讯研发工程师A笔试卷

来源:互联网 发布:怀孕37周b超标准数据 编辑:程序博客网 时间:2024/05/26 09:56
1 下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是
插入排序
堆排序
冒泡排序
快速排序

2 以下关于Cache 的叙述中,正确的是()
CPU 中的Cache容量应大于CPU 之外的Cache 容量
Cache的设计思想是在合理成本下提高命中率
Cache 的设计目标是容量尽可能与主存容量相等
在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素

3 数据存储在磁盘上的排列方式会影响I/O服务的性能,一个圆环的磁道上有 10 个物理块,10 个数据记录R1------R10 存放在这个磁道上,记录的安排顺序 如下表所示: 假设磁盘的旋转速度为20ms/周,磁盘当前处在R1 的开头处,若系统顺序扫描 后将数据放入单缓冲区内,处理数据的时间为4ms(然后再读取下个记录), 则处理这10 个记录的最长时间为()
180ms
200ms
204ms
220ms

4 随着IP 网络的发展,为了节省可分配的注册IP 地址,有一些地址被拿出来用于私有IP 地址,以下不属于私有IP 地址范围的是
10.6.207.84
172.23.30.28
172.32.50.80
192.168.1.100

5 下列关于一个类的静态成员的描述中,不正确的是
该类的对象共享其静态成员变量的值
静态成员变量可被该类的所有方法访问
该类的静态方法只能访问该类的静态成员变量
该类的静态数据成员变量的值不可修改

6 表达式“X=A+B*(C--D)/E”的后缀表示形式可以为
XAB+CDE/-*=
XA+BC-DE/*=
XABCD-*E/+=
XABCDE+*/=

7 ()设计模式将抽象部分与它的实现部分相分离。
Singleton(单例)
Bridge(桥接)
Composite(组合)
Facade(外观)

8 C++将父类的析构函数定义为虚函数,下列正确的是哪个?
释放父类指针时能正确释放子类对象
释放子类指针时能正确释放父类对象
这样做是错误的
以上全错

9 下列哪一个不属于关系数据库的特点?
数据冗余度小
数据独立性高
数据共享性好
多用户访问

10 以下操作中,数组比线性表速度更快的是____
原地逆序
头部插入
返回中间节点
返回头部节点
选择随机节点

11下面程序的输出结果为多少?
void Func(char str_arg[100]){    printf("%d\n", sizeof(str_arg));}int main(void){    char str[] = "Hello";    printf("%d\n", sizeof(str));    printf("%d\n", strlen(str));    char *p = str;    printf("%d\n", sizeof(p));    Func(str);}
6 5 4 4

12
下面程序的输出结果为多少?
void Func(char str_arg[2]){ int m = sizeof(str_arg); //指针的大小为4 int n = strlen(str_arg); //对数组求长度,str_arg 后面的那个2没有任何意义,数组已经退化为指针了 printf("%d\n",m); printf("%d\n",n);}int main(void){ char str[]="Hello"; Func(str);}
 4 5

13 typedef char *String_t; 和#define String_d char * 这两句在使用上有什么区别?

typedef char *String_t 定义了一个新的类型别名,有类型检查。而#define String_d char * 只是做了
个简单的替换,无类型检查,前者在编译的时候处理,后者在预编译的时候处理。
同时定义多个变量的时候有区别,主要区别在于这种使用方式String_t a,b; String_d c,d; a,b ,c 都是
char*类型,而d 为char 类型
由于typedef 还要做类型检查。。#define 没有。。所以typedef 比#define 安全。。


14 到商店里买 200 的商品返还 100 优惠券(可以在本商店代替现金)。请问实际上折扣是多少?

66.7% 100/300


15 已知rand7()可以产生1~7的7个数(均匀概率),利用rand7() 产 生 rand10() 1~10(均匀概率)。

intrand10()
{
    intn=49;
    while(n>40){
        n=7*(rand7()-1)+rand7();
    }
    returnn%10+1;
}


16 对一个正整数作如下操作:如果是偶数则除以 2,如果是奇数则加 1,如此进行直到 1 时操作停止,求经过 9 次操作变为 1 的数有多少个?

#include <stdio.h>int count=0;void deal(int n,int cnt){    if(cnt==9){        count++;        //printf("%d\n",n);        return;    }    if(n%2)        deal(2*n,cnt+1);    else{        deal(2*n,cnt+1);        if(n>2)            deal(n-1,cnt+1);    }       }int main(void){    deal(1,0);    printf("%d\n",count);}

17 给定一个字符串,求出其最长的重复子串。

18 给定能随机生成整数 1 到 5 的函数,写出能随机生成整数 1 到 7 的函数。

intrand7()
{
    intn=25;
    while(n>21){
        n=5*(rand5()-1)+rand5();
    }
    return(n%7)+1;
}

0 0
原创粉丝点击