logo资料库

vivo2018秋招软件开发笔试题.docx

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
FCB FIFO FDT PCB 操作系统在控制和管理进程过程中,涉及到( d )这一重要数据结构,这是进程存在的唯一 标志。 a. b. c. d. 编程找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad" 参考答案: #include #include #include char* longest(char *a,char *b) { int alen = strlen(a); int blen = strlen(b); int i,j,index,max=0,num=0; int start; char *str; for(i = 0; i < alen; i++) { for(j = 0; j < blen; j++) { //这里的 start1、start2 是比较关键的 int start1=i; int start2=j; while((start1 <= alen-1) && (start2 <= blen-1) && (a[start1++] == b[start2++])) num++; if(num > max)//如果 num 是当前最大匹配的个数,则赋给 max,并且在 start 记下 str1 最长匹配开始的位置 { max=num; start=i; } num=0;//如果 num 不是当前最大的,则赋为 0 值继续循环 } } str=(char *)malloc(max + 1); strncpy(str,a + start,max);//从字符串 a 的 start 位置开始,拷贝 max 个字符到 str 中,这就 是我们找出的最大子串 str[max] = '/0'; return str; } int main() {
char a[]=""abcdabcdcbadffdaccccafg""; char b[]=""gfaccccadffdabcdcbadcba""; char *str; str = longest(a,b); printf(""%s/n"",str); free(str); system(""pause""); return 0; } 1 , 2 , 3 , 4 , 5 , 6 2 , 1 , 3 , 4 , 5 , 6 3 , 4 , 2 , 1 , 5 , 6 4 , 3 , 2 , 1 , 5 , 6 RO 段 RW 段 ZI 段 RW 和 ZI 段 设栈最大长度为 3 ,入栈序列为 1,2,3,4,5, 6,则不可能的出栈序列是(d) a. b. c. d. 不同进程加载同一个动态库时,不能共享的部分是(d) a. b. c. d. 已知函数 fun 的原型为 int fun(int,int,int);下列重载函数原型中错误的是(d) a. b. c. d. "请问如何定义 C++类,阻止 C++类对象的相互赋值(obj2=obj1)? 造编译错误 class A{ }" 参考答案: char fun(int,int); double fun(int,int,double); int fun(int,char*); float fun (int,int,int); 提示:利用重载制 只要重载=的定义在 private 或 protected 下面即可,重载原型的 const 修饰及函数体内容 无所谓 class A{ protected: A& operator = (const A&){}; } 或者 class A{ private: A& operator = (const A&){}; } 在定点二进制运算器中,减法运算一般通过( d )来实现 a. 原码运算的二进制减法器 b. 补码运算的二进制减法器 c. 补码运算的十进制加法器 d. 补码运算的二进制加法器
有关线程的哪些叙述是对的(bd) a. 一旦一个线程被创建,它就立即开始运行。 b. 一个线程可能因为不同的原因停止并进入就绪状态。 c. 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。 d. 使用 start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。 以下三条输出语句分别输出什么? (d) int main (void) { char str1[] = “abc”; char str2[] = “abc”; const char str3[] = “abc”; const char str4[] = “abc”; const char* str5 = “abc”; const char* str6 = “abc”; cout << (str1 == str2) << endl; cout << (str3 == str4) << endl; cout << (str5 == str6) << endl; return 0; } false,true,true; false,true,false; true,false,false; false,false,true; a. b. c. d. 下面程序运行的结果是?(b) public static void main(String args[]) { Thread t = new Thread() { Void run() { public pong(); } }; t.run(); System.out.print("ping"); } static void pong() { } System.out.print("pong"); pingpong pongping pingpong 和 pongping 都有可能 a. b. c. d. 都不输出
1 3 4 8 知道数组有序且由小到大排列,采用顺序查找方式从数组 int[] a = {22, 33, 44, 55, 66, 77, 88, 99};寻找 50,需要循环的次数为(c) a. b. c. d. 请问 linux 系统发送信号的系统调用是(b) a. Open b. c. d. JAVA 中,final 修饰的类、成员函数、变量分别有什么特点? 参考答案: Kill Send socket 类被声明为 final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不 能既被声明为 abstract 的,又被声明为 final 的。 将变量声明为 final,可以保证它们在使用中不被改变。被声明为 final 的变量必须在 new 一 个对象时初始化(即只能在声明变量或构造器或代码块内初始化),而在以后的引用中只能 读取,不可修改。 将方法声明为 final,则方法只能使用,而不能在子类重写。 "下面这段代码的输出是多少?(b) #include int main() { int a,b,c,d; a=9; b=a++; c=++a; d=10*a++; printf(""a,b,c,d:%d,%d,%d,%d"",a,b,c,d); return 0; }" 参考答案: 12,9,11,110 同一个进程的不同线程,哪个是不能共享的?(c) a. 全局变量 b. 栈 c. 堆 d. 文件句柄 在一盘纸牌游戏中,某个人的手中有这样的一副牌: (1)正好有十三张牌。 (2)每种花色至少有一张。 (3)每种花色的张数不同。
(4)红心和方块总共五张。 (5)红心和黑桃总共六张。 (6)属于"王牌"花色的有两张。 红心、黑桃、方块和梅花这四种花色,哪一种是"王牌"花色?写出具体推理过程。 参考答案: 黑桃是王牌花色 根据(1),(2),(3),此人手中四种花色的分布是以下三种可能情况之一: (a)1237 (b)1246 (c)1345 根据(6),情况(c)被排除,因为其中所有花色都不是两张牌。 根据(5),情况(a)被排除,因为其中任何两种花色的张数之和都不是六。 因此,(b)是实际的 花色分布情况。 根据(5),其中要么有两张红心和四张黑桃,要么有四张红心和两张黑桃。 根据(4),其中要么有一张红心和四张方块,要么有四张红心和一张方块。 综合(4)和(5),其中一定有四张红心;从而一定有两张黑桃。因此,黑桃是王牌花色。 概括起来,此人手中有四张红心、两张黑桃、一张方块和六张梅花。 已定义以下函数: int fun(int *p){ return *p; } 该函数的返回值是(a) a. 不确定的值 b. 形参 p 中存放的值 c. 形参 p 所指存储单元中的值 d. 形参 p 的地址值 以下程序的输出结果是 void main() { int i=O11,j=11,k=0x11; printf("%d,%d,%d\n",i,j,k); } 9,11,17 9,11,11 a. b. c. 、11,11,11 d. sprintf、strcpy、strncpy 及 memcpy 函数,请问这些函数功能有什么区别?从安全角度考 虑一般应该用哪个函数复制字符串? 参考答案: 11,11,17 sprintf 为格式化字符串函数 strcpy 为字符串复制函数 strncpy 也是字符串复制函数,但是可以指定最大复制长度 memcpy 为内存复制函数 从安全角度应该选 strncpy,不易出现越界异常 有三位男生张强、赵林、王刚和三位女生李华、秦珊、刘玉暑假外出旅游,可能去上海、杭 州、青岛和大连。条件是:①每人只能去一个地方;②凡是男生去的地方就必须有女生去; ③凡是有女生去的地方就必须有男生去;④李华去上海或者杭州,赵林去大连。如果上述断
定都为真,则去杭州的人中不可能同时包含( c )。 a. 张强和王刚 b. 王刚和刘玉 c. 秦珊和刘玉 d. 张强和秦珊 阅读以下 JAVA 程序段,执行结果正确的是( b )。 public class Test { } public static void main (String[] args) { Byte var1 = 126; Byte var2 = 127; Byte var3 = var1 + var2; //第 7 行 } a. 编译成功并且变量 var3 的值为 253 b. 第 7 行有错误导致编译不成功 c. 第 7 行有“溢出”导致执行失败 d. 编译成功并且变量 var3 的值为 1 java 中 Thread.sleep()和 Object.wait() 有什么区别? 参考答案: sleep 是使线程休眠一段时间。在 sleep 休眠时间到期后,线程不一定立即恢复执行,除 非系统没有其它更高优先级的任务正在执行 wait 是线程间实现同步的一种机制。调用 wait 的线程会主动进入等待状态,直到被其它线 程唤醒或者等待超时
分享到:
收藏