牛客网-做题笔记

========网易有道2017内推选择题==================
1.XML数据结构有且只有一个根节点,可以嵌套
2.XML解析分为三种:SAX解析、PULL解析和DOM解析
3.求循环队列元素个数:(rear-front+Max)%Max
非循环队列,元素个数为:rear-front+1
4.程序员小李通过管道统计prog.c函数中for语句通过的次数,指令为:grep “for” proc.c | wc -l ,其中
grep(Global Regular Expression Print), 使用正则表达式搜索文本 , 并把匹配的行打印出来。wc(word count), 统计指定文件中的字节数 , 字数 , 行数 , 并将统计结果显示输出 。管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入 standard input.
5.请将下列构造函数补充完整,使得程序的运行结果是5

#include<iostream>
using namespace std;
class Sample{
    public:
        Sample(int x){
            ________
        }
        ~Sample(){
            if(p) delete p;
        }
        int show(){
            return *p;
        }
    private:
        int*p;
};
int main(){
    Sample S(5);
    cout<<S.show()<<endl;
    return 0;
}

x是方法参数,则x的值和它所在的内存位置,都会在方法结束后失效,所以, 指针p不应该指向x的内存地址,而应该指向自己申请的一个地址空间,于是D错;而至于B和C,为何选B,由于 ‘p’和‘*p’,一个表示p指向的地址,一个则表示p指向的地址位置的值,所以,p = new int(x); 大致做了两件事:① 让p指向一个不会由于方法结束而失效的地址 ②将x值传给这个地址空间处, 所以最终,*p 也就是 p指向位置的值,就是x值。最终,选B。

=========七牛云2017秋招开发工程师笔试试卷============
1.假定一枚硬币抛出落地后,正面及反面出现的概率分别为1/2,那么抛10次和抛100次硬币(分别称为P10和P100)相比,以下正确的说法是:P100正面次数的方差小于P10出现正面次数的方差
根据中央极限定理,n越大方差越小 。
2.快速排序在排序的序列无序时,时间复杂度为O(nlogn),在对已有序的序列进行排序时时间复杂度为O(N^2),所以快速排序在被排序的数据完全无序时最易发挥其长处。
快速排序不是稳定的排序算法
堆排序的时间复杂度在任何情况都是O(nlogn)
快速排序的空间复杂度为O(logn),堆排序为O(1)
3.一般情况下,文件名和inode号码是”一一对应”关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为”硬链接”(hard link)。 除了硬链接以外,还有一种特殊情况。文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的”软链接”(soft link)或者”符号链接(symbolic link)。 这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:”No such file or directory”。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode”链接数”不会因此发生变化。
4. ICMP协议是网际控制报文协议,是IP层的附属协议,介于IP层和TCP层之间的协议,一般认为属于IP层协议。IP协议用它来 与其他主机或路由器交换错误报文和其他的一些网络情况。在ICMP包重携带了控制信息和故障恢复信 息。主要用于路由器主机向其他路由器或者主机发送出错报文的控制信息
5.假定Qiniuome是一个类,执行下面这些语句之后,内存里创建了几个Qiniuome对象。

Qiniuome a();
Qiniuome b(2);
Qiniuome c[3];
Qiniuome &ra = b;
Qiniuome *pA = c;
Qiniuome *p = new Qiniuome(4);

Qiniuome a();是函数声明.
Qiniuome b(2)和 Qiniuome c[3]创建总共4个;
Qiniuome &ra = b和 Qiniuome *pA = c是指针和引用,不会创建对象
Qiniuome *p = new Qiniuome (4);会创建一个
6.由4个“1”和4个“0”组成的8位二进制补码,能表示的最小整数是()
最小的一定是负数因此最高位放1,负数后面的是补码,原码为补码取反+1,因此将剩下的三个1放在最低位取反+1后得到的数最大,因此补码为10000111,最小整数为-121 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值