华为公司软件笔试试卷.doc
《华为公司软件笔试试卷.doc》由会员分享,可在线阅读,更多相关《华为公司软件笔试试卷.doc(23页珍藏版)》请在三一办公上搜索。
1、华为公司软件笔试试卷(C/C+)一、填空题1-1、衡量一个算法好坏的度量主要有:时间复杂度、空间复杂度。1-2、头文件中#ifndef/#define/#endif的作用是:防止头文件被重复引用(宏保护作用)1-3、在如下的二叉数树中:请写出前序遍历为:ABDCEGFHI(也称前序周游)扩展知识:前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则: (1)访问根结点 (2)前序遍历左子树 (3)前序遍历右子树 注意的是:遍历左右子树时仍然采用前序遍历方法。 如上图所示二叉树前序遍历,也叫先根遍
2、历,遍历的顺序是:根,左子树,右子树遍历结果:ABDECF中序遍历,也叫中根遍历,顺序是: 左子树,根,右子树 遍历结果:DBEAFC后序遍历,也叫后根遍历,遍历顺序,左子树,右子树,根遍历结果:DEBFCA1-4、以下为32位操作系统下的C 程序,请计算sizeof的值a)char str=”hello”;char *p = str;int n = 10;请计算:sizeof str =6sizeof p = 4sizeof n = 4b)void Func char str100 sizeof str =4c)void *p = malloc 100sizeof p=4二、选择题2-1、在
3、一种语言中,运算符是从右向左结合的(例如:a+b+c=a+(b+c));下面表达式“7-(16/(3+10*2)-4”的结果是:(C)A -1 B 1 C 3 D 7 E 9 2-2、某些操作系统把一条命令的执行结果输出给下一条命令,作为它的输入, 并加以处理,这种机制称为A,使命令执行的结果不在屏幕上显示, 而引入另外一个文件,这种机制称为B。使命令所需要的处理信息不从键盘接收,而取自另一个文件,这种机制称为C。操作系统不从键盘逐条接收命令,而调用一个正文文件,执行其中保存的一系列命令,这种方式属于D方式,编写这样的文件应符合E 的语法规则。EA:1)链接 2)管道(线) 3)输入重新定向
4、4)输出重新定向B:1)清屏 2) 屏蔽显示 3)输入重新定向 4)管道(线)C:1)输入重新定向 2)读保护 3)管道(线) 4)批处理D:1)系统生成 2) 初始装入 3)批处理 4)管道(线)E:1)会话语言 2)交互语言 3)机器语言 4)命令语言2-3、线程和进程最主要的区别在于:(D)A:进程是UNIX下的概念,线程是Windows下的概念B:进程的效率比线程低C:在进程中可以创造线程,但线程中不能生成进程D:进程由自己独立的运行空间,线程的运行空间是共享的。知识扩展:线程是比进程更小的处理模块。进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的
5、并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区
6、别。 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.2-4、对栈S进行下列操作:push(1),push(2),pop(),pop()。则此时栈顶元素是:(D)A: 1 B: 2 C: 0 D:不确定扩展知识:堆栈的
7、操作规则是先进后出,即FIFO。堆栈有两种基本操作,对应有两条基本指令:进栈指令PUSH和出栈指令POP。进栈指令先使堆栈指针SP减2,然后把一个字操作数存入堆栈顶部。堆栈操作的对象只能是字操作数,进栈时,低字节存放于低地址,高字节存放在高地址,SP相应向低地址移动两个字节单元。出栈指令把栈顶的一个字传送至指定的目的操作数,然后堆栈指针SP加2。目的操作数应为字操作数,字从栈顶弹出时,低地址字节送低字节,高地址字节送高字节。2-5、若有函数max(a,b),并且函数指针变量p已指向函数,当调用该函数时正确的调用方法是(函数调用):(C)A: (*p)max(a,b) B:*pmax(a,b)
8、C:(*p)(a,b) D:*p(a,b)2-6、程序的局部变量存在于 C 中,全局变量存在于 B 中,动态申请数据存在于 C 中。A 代码段 B 数据段 C堆栈 D 堆空间 D 程序 扩展知识:代码应该都在程序段中即CS,而变量就要分情况了,如果是全局变量和静态变量就存在数据段即DS,如是局部变量或者临时变量(比如子函数的返回值,或者地址都需要编译器自动生成传递的变量)的话就在堆栈段即SS,这些变量会随着程序的结束而被销毁也就是结束生命期。2-7、以下措施是为了保证数据库的安全才采用,请问哪一种有可能引起死锁。(C)A 安全控制,包括用户鉴定和存取控制B 完整性控制C 并发控制C 数据库恢复
9、扩展知识:oracle数据库的安全性、完整性、并发控制和恢复了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据保护功能。数据保护也为数据控制,主要包括数据库的安全性、完整性、并发控制和恢复。一、安全控制:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。在一般的计算机系统中,安全措施是一级一级设置的。在DB存储这一级可采用密码技术,当物理存储设备失窃后,它起到保密作用。在数据库系统这一级中提供两种控制:用户标识和鉴定,数据存取控制。在ORACLE多用户数据库系统
10、中,安全机制作下列工作:l 防止非授权的数据库存取;防止非授权的对模式对象的存取;l 控制磁盘使用;l 控制系统资源使用;l 审计用户动作。数据库安全可分为二类:系统安全性和数据安全性。系统安全性是指在系统级控制数据库的存取和使用的机制,包含:l 有效的用户名/口令的组合;l 一个用户是否授权可连接数据库;l 用户对象可用的磁盘空间的数量;l 用户的资源限制;l 数据库审计是否是有效的;l 用户可执行哪些系统操作。数据安全性是指在对象级控制数据库的存取和使用的机制,包含:哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型。在ORACLE服务器上提供了一种任意存取控制,是一种基于特权限制
11、信息存取的方法。用户要存取一对象必须有相应的特权授给该用户。已授权的用户可任意地可将它授权给其它用户,由于这个原因,这种安全性类型叫做任意型。ORACLE利用下列机制管理数据库安全性:l 数据库用户和模式;l 特权;l 角色;l 存储设置和空间份额;l 资源限制;l 审计。(1)数据库的存取控制ORACLE保护信息的方法采用任意存取控制来控制全部用户对命名对象的存取。用户对对象的存取受特权控制。一种特权是存取一命名对象的许可,为一种规定格式。ORACLE使用多种不同的机制管理数据库安全性,其中有两种机制:模式和用户。模式为模式对象的集合,模式对象如表、视图、过程和包等。第一数据库有一组模式。每
12、一ORACLE数据库有一组合法的用户,可存取一数据库,可运行一数据库应用和使用该用户各连接到定义该用户的数据库。当建立一数据库用户时,对该用户建立一个相应的模式,模式名与用户名相同。一旦用户连接一数据库,该用户就可存取相应模式中的全部对象,一个用户仅与同名的模式相联系,所以用户和模式是类似的。用户的存取权利受用户安全域的设置所控制,在建立一个数据库的新用户或更改一已有用户时,安全管理员对用户安全域有下列决策:l 是由数据库系统还是由操作系统维护用户授权信息。l 设置用户的缺省表空间和临时表空间。l 列出用户可存的表空间和在表空间中可使用空间份额。l 设置用户资源限制的环境文件,该限制规定了用户
13、可用的系统资源的总量。l 规定用户具有的特权和角色,可存取相应的对象。每一个用户有一个安全域,它是一组特性,可决定下列内容:用户可用的特权和角色;用户可用的表空间的份额;用户的系统资源限制。1) 用户鉴别:为了防止非授权的数据库用户的使用,ORACLE提供二种确认方法操作系统确认和相应的ORACLE数据库确认。如果操作系统允许,ORACLE可使用操作系统所维护的信息来鉴定用户。由操作系统鉴定用户的优点是:l 用户可更方便地连接到ORACLE,不需要指定用户名和口令。l 对用户授权的控制集中在操作系统,ORACLE不需要存储和管理用户口令。然而用户名在数据库中仍然要维护。l 在数据库中的用户名项
14、和操作系统审计跟踪相对应。ORACLE数据库方式的用户确认:ORACLE利用存储在数据库中的信息可鉴定试图接到数据库的一用户,这种鉴别方法仅当操作系统不能用于数据库用户鉴别时才使用。当用户使用一ORACLE数据库时执行用户鉴别。每个用户在建立时有一个口令,用户口令在建立对数据库连接时使用,以防止对数据库非授权的使用。用户的口令以密码的格式存储在数据库数据字典中,用户可随时修改其口令。2) 用户的表空间设置和定额关于表空间的使用有几种设置选择:用户的缺省表空间;用户的临时表空间;数据库表空间的空间使用定额。3) 用户资源限制和环境文件用户可用的各种系统资源总量的限制是用户安全域的部分。利用显式地
15、设置资源限制;安全管理员可防止用户无控制地消耗宝贵的系统资源。资源限制是由环境文件管理。一个环境文件是命名的一组赋给用户的资源限制。另外ORACLE为安全管理员在数据库级提供使能或使不能实施环境文件资源限制的选择。ORACLE可限制几种类型的系统资源的使用,每种资源可在会话级、调用级或两者上控制。在会话级:每一次用户连接到一数据库,建立一会话。每一个会话在执行SQL语句的计算机上耗费CPU时间和内存量进行限制。对ORACLE的几种资源限制可在会话级上设置。如果会话级资源限制被超过,当前语句被中止(回滚),并返回指明会话限制已达到的信息。此时,当前事务中所有之前执行的语句不受影响,此时仅可作CO
16、MMIT、ROLLBACK或删除对数据库的连接等操作,进行其它操作都将出错。在调用级:在SQL语句执行时,处理该语句有好几步,为了防止过多地调用系统,ORACLE在调用级可设置几种资源限制。如果调用级的资源限制被超过,语句处理被停止,该语句被回滚,并返回一错误。然而当前事务的已执行所用语句不受影响,用户会话继续连接。有下列资源限制:l 为了防止无控制地使用CPU时间,ORACLE可限制每次ORACLE调用的CPU时间和在一次会话期间ORACLE调用所使用的CPU的时间,以0.01秒为单位。l 为了防止过多的I/O,ORACLE可限制每次调用和每次会话的逻辑数据块读的数目。l ORACLE在会话
17、级还提供其它几种资源限制。每个用户的并行会话数的限制;会话空闲时间的限制,如果一次会话的ORACLE调用之间时间达到该空闲时间,当前事务被回滚,会话被中止,会话资源返回给系统;每次会话可消逝时间的限制,如果一次会话期间超过可消逝时间的限制,当前事务被回滚,会话被删除,该会话的资源被释放;每次会话的专用SGA空间量的限制。用户环境文件:用户环境文件是指定资源限制的命名集,可赋给ORACLE数据库的有效的用户。利用用户环境文件可容易地管理资源限制。要使用用户环境文件,首先应将数据库中的用户分类,决定在数据库中全部用户类型需要多少种用户环境文件。在建立环境文件之前,要决定每一种资源限制的值。例如一类
18、用户通常不执行大量逻辑数据块读,那就可将LOGICAL-READS-PER-SESSION和LOGICAL-READS-PER-CALL设置相应的值。在许多情况中决定一用户的环境文件的合适资源限制的最好的方法是收集每种资源使用的历史信息。(2) 特权和角色1) 特权:特权是执行一种特殊类型的SQL语句或存取另一用户的对象的权力。有两类特权:系统特权和对象特权。系统特权:是执行一处特殊动作或者在对象类型上执行一种特殊动作的权利。ORACLE有60多种不同系统特权,每一种系统允许用户执行一种特殊的数据库操作或一类数据库操作.系统特权可授权给用户或角色,一般,系统特权全管理人员和应用开发人员,终端用
19、户不需要这些相关功能.授权给一用户的系统特权并具有该 系统特权授权给其他用户或角色.反之,可从那些被授权的用户或角色回收系统特权.对象特权:在指定的表、视图、序列、过程、函数或包上执行特殊动作的权利。对于不同类型的对象,有不同类型的对象特权。对于有些模式对象,如聚集、索引、触发器、数据库链没有相关的对象特权,它们由系统特权控制。对于包含在某用户名的模式中的对象,该用户对这些对象自动地具有全部对象特权,即模式的持有者对模式中的对象具有全部对象特权。这些对象的持有者可将这些对象上的任何对象特权可授权给其他用户。如果被授者包含有GRANT OPTION 授权,那么该被授者也可将其权利再授权给其他用户
20、。2) 角色:为相关特权的命名组,可授权给用户和角色。ORACEL利用角色更容易地进行特权管理。有下列优点:l 减少特权管理,不要显式地将同一特权组授权给几个用户,只需将这特权组授给角色,然后将角色授权给每一用户。l 动态特权管理,如果一组特权需要改变,只需修改角色的特权,所有授给该角色的全部用户的安全域将自动地反映对角色所作的修改。l 特权的选择可用性,授权给用户的角色可选择地使其使能(可用)或使不能(不可用)。l 应用可知性,当一用户经一用户名执行应用时,该数据库应用可查询字典,将自动地选择使角色使能或不能。专门的应用安全性,角色使用可由口令保护,应用可提供正确的口令使用权角色使能,达到专
21、用的应用安全性。因用户不知其口令,不能使角色使能。一般,建立角色服务于两个目的:为数据库应用管理特权和为用户组管理特权。相应的角色称为应用角色和用户角色。应用角色是授予的运行一数据库应用所需的全部特权。一个应用角色可授给其它角色或指定用户。一个应用可有几种不同角色,具有不同特权组的每一个角色在使用应用时可进行不同的数据存取。用户角色是为具有公开特权需求的一组数据库用户而建立的。用户特权管理是受应用角色或特权授权给用户角色所控制,然后将用户角色授权给相应的用户。数据库角色包含下列功能: l 一个角色可授予系统特权或对象特权。l 一个角色可授权给其它角色,但不能循环授权。l 任何角色可授权给任何数
22、据库用户。l 授权给一用户的每一角色可以是使能的或者使不能的。一个用户的安全域仅包含当前对该用户使能的全部角色的特权。l 一个间接授权角色(授权给另一角色的角色)对一用户可显式地使其能或使不能。在一个数据库中,每一个角色名必须唯一。角色名与用户不同,角色不包含在任何模式中,所以建立一角色的用户被删除时不影响该角色。ORACLE为了提供与以前版本的兼容性,预定义下列角色:CONNENT、RESOURCE、DBA、EXP-FULL-DATABASE和IMP-FULL-DATABASE。(3)审计审计是对选定的用户动作的监控和记录,通常用于:l 审查可疑的活动。例如:数据被非授权用户所删除,此时安全
23、管理员可决定对该 数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。l 监视和收集关于指定数据库活动的数据。例如:DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计数据。ORACLE支持三种审计类型:l 语句审计,对某种类型的SQL语句审计,不指定结构或对象。l 特权审计,对执行相应动作的系统特权的使用审计。l 对象审计,对一特殊模式对象上的指定语句的审计。ORACLE所允许的审计选择限于下列方面:l 审计语句的成功执行、不成功执行,或者其两者。l 对每一用户会话审计语句执行一次或者对语句每次执行审计一次。l 对全部用户或指定用户的活动的审计。当数据库的审计是使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华为 公司 软件 笔试 试卷
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4123227.html