Below is usual way we find one element in an array const int *find1(const int* array, int n, int x) {
const int* p = array;
for(int i = 0; i < n; i++) {
if(*p == x) {
return p; } ++p; }
return 0; }
In this case we have to bear the knowledge of value type \"int\even the existence of an array. Would you re-write it using template to eliminate all these dependencies?
template const T *find1(const T* array, int n, T x) { const T* p = array; for(int i = 0; i < n; i++) { if(*p == x) { return p; } ++p; } return 0; } NO2 Give an example of implementing a Stack in the template way(only template class declaration without detail definition and realization) template public: Stack(int = 10) ; ~Stack() { delete [] stackPtr ; } int push(const T&); int pop(T&) ; int isEmpty()const { return top == -1 ; } int isFull() const { return top == size - 1 ; } private: int size ; // number of elements on Stack. int top ; T* stackPtr ; } ; NO3 Implement the simplest singleton pattern(initialize if necessary). class Singleton { public: static Singleton* Instance(); protected: Singleton(); private: static Singleton* _instance; } // Implementation Singleton* Singleton::_instance = 0; Singleton* Singleton::Instance() { if (_instance == 0) { _instance = new Singleton; } return _instance; } NO4 1.Jeff and Diamond like playing game of coins, One day they designed a new set of rules: 1)Totally 10 coins 2)One can take away 1,2or 4 coins at one time by turns 3)Who takes the last loses. Given these rules Whether the winning status is pre-determined or not 1:从后面开始考虑,最后肯定要留1个才能保证自己赢 2:所以要设法让对方留下2,3,5个 3:也就是要自己取后留下1,4,6,7,8,9 4:如果自己取后留下6,对方取2个,与(3)矛盾,所以排除6 5:如果自己取后留下8,对方取4个,与(3)一样情况,所以也排除8 6:同样,9也不行,如果我抽后剩下9,对方抽2个,就反过来成对方抽剩成7个了,也与3)矛盾,所以也排除 7:所以很显然,我只能抽剩1,4,7 8:因为只能抽后剩1,4,7才能赢,我先抽得话不可能达到这几个数,很显然,只能让对 方先抽,也即是先抽的人输 2011.04.23腾讯技术运营部分笔试题目 zz 1、find -newer file1 ! file2 命令的意思是? 8、cat -n file1file2 命令的意思是? 9、vi编辑器中,删除一行的命令是? 10、chmod ug=rwx,o=x file命令功能相同的是:chmod 764 file、chmod 771 file、chmod 671 file、chmod 774 file 11、cp拷贝命令的-f参数含义为? 20、tar命令用于解压的参数是? 二、填空题 1、linux命令增加一条192.168.0.024的静态路由 5、linux下交换分区的格式 6、linux下查看当前网络连接的命令 8、linux下侦测主机到目的主机之前所经过的路由的命令 腾讯测试类实习笔试题及分析 18、在开发一个系统时,如果用户对系统的目标不很清楚,难以定义需求,这时最好使用(A )。 A.原型法 B.瀑布模型 C.V-模型 D.螺旋模型 19、软件开发中的瀑布模型典型的刻画了软件存在周期的阶段划分,与其最相适应的软件开发方法是(B)。 A.构件化方法 B.结构化方法 C.面向对象方法 D.快速原型法 20、软件设计的主要任务是设计软件的结构、过程和模块,其中软件结构设计的主要任务是要确定( C )。 A.模块间的操作细节 B.模块间的相似性 C.模块间的组成关系 D.模块的具体功能 21、在面向数据流的设计方法中,一般把数据流图中的数据划分为(C)两种。 A.数据流和事务流 B.变换流和数据流 C.变换流和事务流 D.控制流和事务流 22、造成软件危机的主要原因是(D): ①用户使用不当 ②硬件不可靠 ③对软件的错误认识 ④缺乏好的开发方法和手段 ⑤软件本身特点 ⑥开发效率低 A.(①②③) B.(②③④) C.(③⑤⑥) D.(④⑤⑥) 23、下列要素中,不属于DFD的是(D)。当使用DFD对一个工资系统进行建模时,(A)可以被确定为外部实体。 (1)A.加工 B.数据流 C.数据存储 D.联系 (2)A.接收工资单的银行 B.工资系统源代码程序 C.工资单 D.工资数据库的维护 24、软件开发模型用于指导软件开发。其中演化模型用于在快速开发一个(C)的基础上逐渐演化成最终的软件。螺旋模型综合了(A)的优点,并增加了(D)。 (1)A.模块 B.运行平台 C.原型 D.主程序 (2)A.瀑布模型和演化模型 B.瀑布模型和喷泉模型 C.演化模型和喷泉模型 D.原型和喷泉模型 (3)A.质量评价 B.进度控制 C.版本控制 D.风险分析 25、在选择开发方法时,有些情况不适合使用原型法,以下选项中不能使用快速原型法的情况是(D): A.系统的使用范围变化很大 B.系统的设计方案难以确定 C.用户的需求模糊不清 D.用户数据资源缺乏组织和管理 26、原型化方法是一类动态定义需求的方法,(A)不是原型化方法所具胡的特征。与结构化方法相比,原型化方法更需要(B)。衡量原型开发人员能力的重要标准是(D)。 (1)A.提供严格定义的文档 B.加快需求的确定 C.简化的项目管理 D.加强用户参与和决策 (2)A.熟练的开发人员 B.完整的生命周期 C.较长的开发时间 D.明确的需求定义 (3)A.丰富的编程技巧 B.灵活使用开发工具 C.很强的协调组织能力 D.快速获取需求 27、软件开中的瀑布模型典型地刻画了软件生存周期的阶段划分,与其最相适应的软件开发方法是(B)。 A.构件化方法 B.结构化方法 C.面向对象方法 D.快速原型方法 28、采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。以下关于产生这些文档的描述中,正确的是(D)。 A.外部设计评审报告在概要设计阶段产生 B.集成测评计划在程序设计阶段产生 C.系统计划和需求说明在详细设计阶段产生 D.在进行编码的同时,独立的设计单元测试计划 29、软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了(C)。 A.版本管理 B.可行性分析 C.风险分析 D.系统集成 30、概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是(D)。 A.把软件划分成模块 B.确定模块之间的调用关系 C.确定各个模块的功能 D.设计每个模块的伪代码 31、可移植性指软件从一个运行环境下转移到另一环境下的难易程序。为提高软件的可移植性应注意(D)。 A.使用方便性 B.简洁性 C.可靠性 D.设备不依赖性 32、美国卡内基-梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是(D)。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 33、软件能力成熟度模型CMM描述和分析了软件过程能力的发展与改进的程度,确立了一个软件过程成熟程度的分级标准。在初始级,软件过程定义几乎处于无章法可循的状态,软件产品的成功往往依赖于个人的努力和机遇。 在(A),已建立了基本的项目管理过程,可对成本、进度和功能特性进行跟踪。在(B),用于软件管理与工程两方面的软件过均已文档化,标准化,并形成了整个软件组织的标准软件过程。在已管理级,对软件过程和产品质量有详细的度量标准。 在(C),通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续志对过程改进。 (1)A.可重复级 B.管理级 C.功能级 D.成本级 (2)A.标准级 B.已定义级 C.可重复级 D.优化级 (3)A.分析级 B.过程级 C.优化级 D.管理级 34、软件设计包括四个既独立又相互联系的活动,分别为(C)、(D)、数据设计和过程设计。 (1)A.用户手册设计 B.语言设计 C.体系结构设计 D.文档设计 (2)A.文档设计 B.程序设计 C.实用性设计 D.接口设计 35、软件的互操作性是指(C)。 A.软件的可移植性 B.人机界面的可交互性 C.连接一个系统和另一个系统所需的工作量 D.多用户之间的可交互性 36、用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为(D)工具。 A.CAD B.CAI C.CAM D.CASE 37、请说出7类信息系统.1.事务处理系统.2.管管理理信息系统.3.决策支持系统.4.主管信息系统.5.专家系统.6.通信和协作系统.7.办公自动化系统. 38、区分电子商务(e-commerce)和电子业务(e-business)电子商务是指通过使用因特网购买和销售商品及服务.电子业务是指使用因特网进行日常的商务活动. 39、什么是数据需求 数据需求是用户数据以实体,属性,关系和规则形式的表述. 40、什么是过程需求 过程需求是用于某个业务过程及其信息及其信息系统的处理需求的用户理解. 41、什么是系统开发过程 系统开发过程是一组活动,方法,最佳实践,交付成果和自动化工具,系统开发的关联人员用它们来开发和维护信息系统及软件. 42、系统开发的10个基本原理是什么 1.让系统用户参与. 2.使用一套问题解决步骤. 3.确立开发阶段和开发活动. 4.在开发过程中记录文档. 5.建立标准. 6.管理过程和项目. 7.将信息系统作为重要的投资看待. 8.不必害怕取消和返工. 9.分而治之. 10.设计系统时应考虑到增长和变化. 43、确定并简要描述大部分现代系统开发方法学公认的8个基本阶段 (P80)1.范围定义阶段.2.问题分析阶段.3.需求分析阶段.4.逻辑设计阶段.5.决策分析阶段.6.物理设计和集成阶段.7.构造和测试阶段.8.安装和发布阶段. 44、区分逻辑设计和物理设计 逻辑设计是将用户需求翻译成系统模型,该模型仅仅描述了业务需求,而没有描述这些需求的任何可能的技术设计或实现.物理设计是将业务用户需求转换成系统模型,描述用户的业务需求的技术实现.(常见的同义词包括:技术设计或实现模型.反义词是逻辑设计.) 45、什么是敏捷方法 敏捷方法集成各种系统分析和方法,根据要解决的问题和要开发的系统应用合适的方法. 46、列出3种模型驱动开发技术 1.过程建模.2.数据建模.3.对象建模.(P95) 47、列出系统开发的3类自动化工具。1.计算机辅助系统工程.2.应用开发环境.3.项目和过程生理器. 48、在关于用例(use case)的描述中,错误的是(D)。 A.用例将系统的功能范围分解成许多小的系统功能陈述 B.一个用例代表了系统的一个单一的目标 C.用例是一个行为上相关的步骤序列 D.用例描述了系统与用户的交互 49、在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提 取成独立的用例,这种用例称为(B)。在UML的用例图上,将用例之间的这种关系标记为(C)。 (1)A.扩展用例 B.抽象用例 C.公共用例 D.参与用例 (2)A.association B.extends C.uses D.inheritance 50、在一个采用(A)数据库体系结构的网络数据库应用系统中,计算机C上运行着DBMS软件和应用程序,并存有所有用户数据,其余各节点作为终端通过通信线路向计算机C发出数据库应用请求。 A.集中式 B.主从式 C.客户机/服务器 D.分布式 51、在业务领域分析过程中,通过建立实体关系图,把与业务相关的数据模型化;通过建立(B)来表示业务活动的分解过程;两个业务过程之间的相互依赖关系应记录在过程依赖图中;通过建立(C)来详细说明整个业务过程的逻辑。 (1)A.数据流图(DFD) B.过程层次图(PHD) C.过程活动图(PAD) D.过程关系图(PRD) (2)A.数据流图(DFD) B.过程层次图(PHD) C.过程活动图(PAD) D.甘特图(Ganntte) 52、在将E-R模型向关系模型转换的过程中,若将三个实体之间的多对多联系m:n:p转换为关系模式,则该关系模式的关键字为(C)。 A.任意两个实体的关键字的组合 B.任意一个实体的关键字 C.各实体的关键字的组合 D.某实体的其它属性 53、在以下选项中,主要联系高层管理人员的信息系统是(C) A.MIS(管理信息系统) B.DSS(决策支持系统) C.EDPS(电子数据处理系统) D.TPS(事务处理系统) 54、内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求(B)。 A.高内聚,高耦合 B.高内聚,低耦合 C.低内聚,高耦合 D.低内聚,低耦合 55、在下面的用例图(use-case Diagram)中,X1、X2和X3表示(B),已知UC3是抽象用例,那么X1可通过(B)用例与系统进行交互。并且,用例(B)是UC4的可选部分,用例(D)是UC4的必须部分。 非腾讯题目: 软件测试笔试题 笔试题汇总 2009-10-18 22:41:44 阅读107 评论0 字号:大中小 订阅 一、判断题 1.软件测试的目的是尽可能多的找出软件的缺陷。(Y) 2.Beta 测试是验收测试的一种。(Y) 3.验收测试是由最终用户来实施的。(N) 4.项目立项前测试人员不需要提交任何工件。(Y) 5.单元测试能发现约80%的软件缺陷。(Y) 6.代码评审是检查源代码是否达到模块设计的要求。(N) 7.自底向上集成需要测试员编写驱动程序。(Y) 8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N) 9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N) 10.代码评审员一般由测试员担任。(N) 11.我们可以人为的使得软件不存在配置问题。(N) 12.集成测试计划在需求分析阶段末提交。(N) 二、选择 1.软件验收测试的合格通过准则是:(ABCD) A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 B. 所有测试项没有残余一级、二级和三级错误。 C. 立项审批表、需求分析文档、设计文档和编码实现一致。 D. 验收测试工件齐全。 2.软件测试计划评审会需要哪些人员参加?(ABCD) A.项目经理 B.SQA 负责人 C.配置负责人 D.测试组 3.下列关于alpha 测试的描述中正确的是:( A.alpha 测试需要用户代表参加 B.alpha 测试不需要用户代表参加 C.alpha 测试是系统测试的一种 D.alpha 测试是验收测试的一种 4.测试设计员的职责有:(BC) A.制定测试计划 B.设计测试用例 C.设计测试过程、脚本 D.评估测试活动 5.软件实施活动的进入准则是:(ABC) A.需求工件已经被基线化 B.详细设计工件已经被基线化 C.构架工件已经被基线化 D.项目阶段成果已经被基线化 三、填空 AD) 1.软件验收测试包括:正式验收测试,alpha测试,beta测试。 2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦) 3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划。 4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。 5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为: (1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。 (2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。 (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 (4)把因果图转换成判定表。 (5)把判定表的每一列拿出来作为依据,设计测试用例。 四、简答(资料是搜集整理的,感谢前辈的解题)无 1.区别阶段评审的与同行评审 同行评审目的:发现小规模工作产品的错误,只要是找错误; 阶段评审目的:评审模块 阶段作品的正确性 可行性 及完整性 同行评审人数:3-7人 人员必须经过同行评审会议的培训,由SQA指导 阶段评审人数:5人左右 评审人必须是专家 具有系统评审资格 同行评审内容:内容小 一般文档 < 40页, 代码 < 500行 阶段评审内容: 内容多,主要看重点 同行评审时间:一小部分工作产品完成 阶段评审时间: 通常是设置在关键路径的时间点上! 2.什么是软件测试 为了发现程序中的错误而执行程序的过程 3简述集成测试的过程 系统集成测试主要包括以下过程: 1. 构建的确认过程。 2. 补丁的确认过程。 3. 系统集成测试测试组提交过程。 4. 测试用例设计过程。 5. 测试代码编写过程。 6. Bug的报告过程。 7. 每周/每两周的构建过程。 8. 点对点的测试过程。 9. 组内培训过程。 4 怎么做好文档测试 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142 检查文档的编写是否满足文档编写的目的 内容是否齐全,正确 内容是否完善 标记是否正确 5 白盒测试有几种方法 总体上分为静态方法和动态方法两大类。 静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义 动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 6系统测试计划是否需要同行审批,为什么 需要,系统测试计划属于项目阶段性关键文档,因此需要评审。 7Alpha测试与beta的区别 Alpha测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。 Beta测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。 8比较负载测试,容量测试和强度测试的区别 负载测试:在一定的工作负荷下,系统的负荷及响应时间。 强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。 容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。 腾讯2010实习生招聘笔试题(全套):http://bbs.aftjob.com/thread-606605-1-1.html 2011年名企薪酬信息专版:http://bbs.aftjob.com/forum-37-1.html 腾讯求职俱乐部:http://bbs.aftjob.com/group-47-1.html 因篇幅问题不能全部显示,请点此查看更多更全内容