vivo提前批笔试题整理 寻找数组中不存在的元素 题目描述 A、B两个数组,要求输出A中存在而B中不存在的元素。 例如 代码实现 #include <iostream> #include <vector> #include <algorithm> using namespace std; void solution1(vector<int> a,vector<int> b) { int asize = a.size(); int bsize = b.siz…
vivo提前批笔试题整理 寻找数组中不存在的元素 题目描述 A、B两个数组,要求输出A中存在而B中不存在的元素。 例如 代码实现 #include <iostream> #include <vector> #include <algorithm> using namespace std; void solution1(vector<int> a,vector<int> b) { int asize = a.size(); int bsize = b.siz…
以下描述正确的是 A. 虚函数是可以内联的,可以减少函数调用的开销,提高效率 B. 类里面可以同时存在函数名和参数都一样的虚函数和静态函数 C. 父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类对象指针会调用父类的析构函数 以下描述正确的是: A. while循环语句的循环体至少执行1次; B. do-while循环可以写成while循环的格式; C. continue语句可以出现在各种循环体中; D. break语句不可以出现在循环体中。 解析: 对于A选项来说,如果while后面的条件从第一次…
vivo2018秋招软件开发笔试题 选择题 线程共享部分包括:进程代码段、进程共有资源(全局变量)、进程打开的文件描述符、消息队列、信号的处理器、进程当前目录、进程用户ID、进程组ID;线程独占资源:线程ID、寄存器组的值、栈、错误返回码、线程的信号屏蔽码、线程的优先级。 循环队列长度=(rear-front+Quesize)%Quesize 动态分配内存返回空指针,说明分配内存未成功,有三种可能: (1)分配的空间太小 (2)分配的空间被当作内存碎片处理 (3)val取值过大,即分配空间过大会导致内存溢出 定义C…
Linux第八天:共享存储映射、匿名映射 知识点 共享内存 mmap函数:参数、返回值。 借助共享内存访问磁盘文件:使用mmap将文件映射到内存,就可以使用指针来对文件进行操作。 父子进程(血缘关系进程)使用mmap通信 匿名映射区 共享存储映射 文件进程间通信 使用文件也可以完成IPC,理论依据是,fork后,父子进程共享文件描述符。也就共享打开的文件。 我们来看下面这段代码,这是一个父子进程共享打开的文件描述符(是结构体,不是那个数字),使用文件完成进程间通信。子进程向文件里面写入文件,父进程从文件里面读出信息…
day7练习3:统计当前系统中进程由用户运行的进程并输出到文件中 题目描述 统计当前系统中进程由用户运行的进程并输出到文件中。 题目解析 统计当前系统中进程由用户运行的进程并输出到屏幕上的命令为: ps -u xiaoao | wc -l 而在这里我们使用的代码有pipe()、fork()和dup2()等。 代码实现 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/wait.h…
day7练习2 问题描述 使用管道实现兄弟进程间通信。 兄:ls 弟: wc -l 父:等待回收子进程。 题目解析 与练习2题目类似,不再提供解析。 代码实现 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/wait.h> int main() { pid_t pid; int i; int n=2; int fd[2]; int ret = pipe(fd); if(r…
day7练习1 题目说明 使用管道实现父子进程间通信,完成:ls | wc –l。假定父进程实现ls,子进程实现wc 题目解析 题目还是为了巩固我们对于pipe()以及fork()的使用,以及如何使用dup2()函数。 这里面我就重点说一下pipe()和dup2()函数吧。 其实正如学习笔记里面的那个例子,我们首先要新建一个int型的有两个元素的数组,这个数组作为pipe()的传出参数,担任着记录输入和输出的地址的重任。由于我们要求父进程担任传出端,子进程担任传入端,所以一定要记得分别关闭fd[0]和fd[1](前…