涨知识III - 百度2016校园招聘——移动软件研发工程师

1.列关于线程调度的叙述中,错误的是()。

正确答案 :BE

A调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会
B调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会
C当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行
D一个线程由于某些原因进入阻塞状态,会放弃CPU
E具有相同优先级的多个线程的调度一定是分时的
F分时调度模型是让所有线程轮流获得CPU使用权
解析:sleep()方法会给其他线程运行的机会,而不管其他线程的优先级,因此会给较低优先级的线程运行的机会;yeild()方法只会给优先
  级相同的或者比自己高的线程运行的机会.
 

2.以下描述正确的是( )

正确答案 :A

A命令 mknod pipe0 p创建管道,就是创建了一个名为pipe0,类型为p的文件
B根文件系统和子文件系统的文件系统格式必须是相同的
C目录若无写权限,则目录下所有文件禁止写
Dpipe创建的管道的缺点是只限于同祖先进程间通信
解析:创建 FIFO(已命名的管道) 
    mknod Name { p }  mknod 命令的第二种形式中,使用了 p 标志来创建 FIFO(已命名的管道)
 

3.关于mysql_fetch_object说法中,正确的是(      )

正确答案 :D

Amysql_fetch_object和mysql_fetch_array一样,没什么区别
Bmysql_fetch_object返回值是个对象,所以在速度上比mysql_fetch_array要慢
Cmysql_fetch_object返回值是个数组,所以在速度上和mysql_fetch_array及mysql_fetch_row差不多
Dmysql_tetch_object返回值是个对象,在速度上和mysql_fetch_array及mysql_fetch_row差不多
注释:mysql_fetch_object() 与 mysql_fetch_array() 类似,只有一点区别 - 返回的是对象而不是数组。间接地,也意味着只能通过字段名来访问数组,而不是偏移量。PHP MySQL 函数
定义和用法
mysql_fetch_object() 函数从结果集(记录集)中取得一行作为对象。
若成功的话,本函数从 mysql_query() 获得一行,并返回一个对象。如果失败或没有更多的行,则返回 false。
语法

4.小明设计了如下的学籍管理系统:

已知关系:学籍(学号,学生姓名) PK=学号

成绩(科目号,成绩,学号) PK=科目代码,FK=学号

已有表记录如下,请给出能够插入的成绩记录

涨知识III - 百度2016校园招聘——移动软件研发工程师

正确答案 :BD

A(1,99,2)
B(5,68,1)
C(3,70,3)
D(7,45,null)
 
5.Which of the following statement(s) equal(s) value 1 in C programming language?

正确答案 :BCD

Athe return value of main function if program ends normally
Breturn (7&1)
Cchar *str="microsoft"; return str=="microsoft"
Dreturn "microsoft"=="microsoft"
ENone of the above
 
6.关系模式R(a,b,c,d)中关系代数表达式σ3<‘4’(R)等价于SQL语句(      )

正确答案 :C

Aselect * from R where d<3
Bselect * from R where
Cselect c from R where c<4
Dselect c,d from R having d<2解析:关系模式属于概率论范畴。σ代表选择操作。 σ3代表选择属性列中的第三列,value < 4的那些行。 这里‘4’代表value。不加‘’代表第四列。
 
7.下面对category描述不正确的是()
正确答案 :B
 
Acategory可以添加新的方法
Bcategory可以删除修改之前的方法
C将类的实现分散到多个不同文件或多个不同框架中
D创建对私有方法的前向引用
 
8.In C++, which of the following keyword(s) can be used on both a variable and a function?

正确答案 :ACE

Astatic
Bvirtual
Cextern
Dinline
Econst
解析:
全局: 
const,只读的全局变量,其值不可修改. 
static,规定此全局变量只在当前模块(文件)中可见. 
static const,既是只读的,又是只在当前模块中可见的. 
文件: 
文件指针可当作一个变量来看,与上面所说类似. 
函数: 
const,返回只读变量的函数. 
static,规定此函数只在当前模块可见. 
类: 
const,一般不修饰类,(在VC6.0中试了一下,修饰类没啥作用) 
static,C++中似乎没有静态类这个说法,一般还是拿类当特殊的变量来看.C#中有静态类的详细说明,且用法与普通类大不相同
 
9.以下哪些不是链表的特征?

正确答案 :ACD

A数据在内存中一定是连续的
B插入或删除时,无需移动其他元素
C可以随机访问表内的元素
D需要事先估计存储空间
 
10.强制卸载已安装软件需要的参数(      )

正确答案 :D

Arpm -o --nodeps
Brpm -I --oldpack
Crpm -u --nodeps
Drpm -e --nodeps
解析:-e, --erase                       erase (uninstall) package
 
 
11.关于BroadcastReceiver的说法不正确的是

正确答案 :B

A是用来接收广播Intent的
B一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收
C对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者
D接收者声明的优先级别在< intent-filter >的android:priority属性中声明,数值越大优先级别越高
解析:Android中BroadcastReceiver 广播 ! 当然大家都能接受到
 

12.IPv6地址占____个字节

正确答案 :D

A4
B6
C8
D16
 
解析:IPv6的地址长度为128b,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法。
 
 
13.基于哈希的索引和基于树的索引有什么区别?

正确答案 :ABCD

Ahash索引仅满足“=”、“IN”和“<=>”查询,不能使用范围查询
Bhash索引无法被用来进行数据的排序操作
C对于组合索引,Hash 索引在计算 Hash 值的时候是组合索引键合并后再一起计算 Hash 值,而不是单独计算 Hash 值,所以通过组合索引的前面一个或几个索引键进行查询的时候,Hash 索引也无法被利用
DHash 索引遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高
 
14.下列的模板说明中,正确的有( )

正确答案 :AC

Atemplate  < typename T1, typename T2 >
Btemplate  < class T1, T2 > 
Ctemplate  < class T1, class T2 > 
Dtemplate  < typename T1; typename T2 > 
 
15.Which Synchronization mechanism(s) is/are used to avoid race conditions among processes/threads in operating systems?

正确答案 :AC

您的答案 :AC

AMutex
BMailbox
CSemaphore
DLocal procedure call
 
解析: Mutex互斥锁  Semaphore信号量 : 可以想象成停车场看门的老大爷,维护一个整形,用来表示资源状况。

16.下面哪些机制可以用于进程间通信?

正确答案 :ABE

您的答案 :ABE

ASocket
BNamed pipe
CNamed event
DCritical Section
EShared memory
FVirtual memory
 
 
17.下列选项哪些是正确的

正确答案 :AD

A对于unordered_map和map这两个容器,迭代器的有效性皆不受删除操作影响
B对于unordered_map和map这两个容器,迭代器的有效性皆不受插入操作影响
C为了保证代码的异常安全性,应该避免在构造函数中抛异常
D为了保证代码的异常安全性,应该避免在析构函数中抛异常
解析: STL map中有Erase()用来删除元素,删除后迭代器移动到删除元素的下一个,故不受影响。
 
 
18.关于多线程和多进程编程,下面描述正确的是():

正确答案 :ACD

您的答案 :ACD

A多进程里,子进程可获得父进程的所有堆和栈的数据;而线程会与同进程的其他线程共享数据,拥有自己的栈空间
B线程因为有自己的独立栈空间且共享数据,所有执行的开销相对较大,同时不利于资源管理和保护
C线程的通信速度更快,切换更快,因为他们在同一地址空间内
D线程使用公共变量/内存时需要使用同步机制,因为他们在同一地址空间内
E因多线程里,每个子进程有自己的地址空间,因此相互之间通信时,线程不如进程灵活和方便
 
19.选项中哪些是SQL的DML语句?

正确答案 :BD + A !

Aselect
Binsert
Calter
Ddelete
Ecreate
解析:
DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言
1.CREATE - to create objects in the database 创建
2.ALTER - alters the structure of the database 修改
3.DROP - delete objects from the database 删除
4.TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed
DML is Data Manipulation Language statements. Some examples:数据操作语言,SQL中处理数据等操作统称为数据操纵语言
1.SELECT - retrieve data from the a database 查询
2.INSERT - insert data into a table 添加
3.UPDATE - updates existing data within a table 更新
4.DELETE - deletes all records from a table, the space for the records remain 删除
5.CALL - call a PL/SQL or Java subprogram
6.EXPLAIN PLAN - explain access path to data 
Oracle RDBMS执行每一条SQL语句,都必须经过Oracle优化器的评估。所以,了解优化器是如何选择(搜索)路径以及索引是如何被使用的,对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为Access Path)。从而使我们选择最优的查询方式达到最大的优化效果。
7.LOCK TABLE - control concurrency 锁,用于控制并发
DCL is Data Control Language statements. Some examples:数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等
COMMIT - save work done 提交
SAVEPOINT - identify a point in a transaction to which you can later roll back 保存点
ROLLBACK - restore database to original since the last COMMIT 回滚
SET TRANSACTION - Change transaction options like what rollback segment to use 设置当前事务的特性,它对后面的事务没有影响.

20.NSRunLoop的以下描述错误的是()

正确答案 :C

ARunloop并不是由系统自动控制的
B有3类对象可以被run loop监控:sources,timers,observers
C线程是默认启动run loop的
DNSTimer可手动添加到新建的NSRunLoop中
 
解析:线程和 RunLoop 之间是一一对应的,其关系是保存在一个全局的 Dictionary 里。线程刚创建时并没有 RunLoop,如果你不主动获取,那它一直都不会有。RunLoop 的创建是发生在第一次获取时,RunLoop 的销毁是发生在线程结束时。你只能在一个线程的内部获取其 RunLoop(主线程除外)
 
 
21.Which statement(s) is(are) correct about thread and process?Select all that apply.

正确答案 :BD

AThreads share the same address space of the parent process;Processes share the same address space of the parent process.
BChanges to the main thread(cancellation,priority change,etc.) may affect the behavior of the other threads of the process;
CChanges to the parent process does not affect child processes.  Multiple threads mar cause deadlock,while multiple processes won
DThreads can directly communicate with other threads of its process;Processes must use inter-process communication to communicate with sibling processes.
ENone of the above.
 
解析:A:线程与父进程共享相同的地址空间 ; 进程与父进程共享相同的地址空间。
fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,也就是说,两者的虚拟空间不同,但其对应的物理空间是同一个。当父子进程中有更改相应段的行为发生时,再为子进程相应的段分配物理空间,如果不是因为exec,内核会给子进程的数据段、堆栈段分配相应的物理空间(至此两者有各自的进程空间,互不影响),而代码段继续共享父进程的物理空间(两者的代码完全相同)。而如果是因为exec,由于两者执行的代码不同,子进程的代码段也会分配单独的物理空间。
 
完。。。。。
上一篇:76. Minimum Window Substring *HARD*


下一篇:9月5日 华为2014校园招聘的机试题目_C语言版答案