虫子郭郭
一. 简答题:1.软件工程的定义 P4答:软件工程师一门工程学科,涉及软件生成的各个方面,从最初的系统描述一直到使用后的系统维护,都属于其学科范畴。2.软件工程所面临的主要问题 P3表格答:多样性的挑战:必须开发出新技术,制作可靠的软件,从而足以灵活应对这种多样性。 交付上的挑战:在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。 信任的挑战:研究能说明软件可信的技术。3.社会技术系统定义及主要特征 P12-13答:定义:一个包含有人、软件和硬件在内的系统。特征:它们都有其整体特性他们通常是不确定的系统支持机构目标的程度和范围不仅仅依赖于系统本身4.瀑布模型的概念及其包含阶段 P39-40答:概念:这个模型采用一些基本的过程活动,即描述、开发、有效性验证和进化,并且使 用单独的过程阶段(如需求描述、软件设计、实现和测试等阶段)表现这些活动 包含阶段:需求分析和定义、系统和软件设计、实现和单元测试、集成和系统测试、运行和维护5.增量式开发的概念 P43答:增量式开发是一种集中了这些模型的优点的体重综合方法。每一步增量实现了一个或多个最终用户功能。每一步增量包含所有早期的已开发的功能集加上一些新的功能;系统在逐步累积的增量中增长。就是一步一步渐增式的开发。6.软件工程的四个基本过程活动 P38答:软件描述、软件设计和实现、软件有效性验证、软件进化7.介绍软件工程的功能需求,非功能需求和领域需求 P73答:功能需求:包括对系统应该提供的服务、如何对输入作出反应以及系统在特定条件下的行为的描述。在某些情况下,功能需求可能还需明确声明系统不应该做什么。 非功能需求:对系统提供的服务或功能给出的约束。包括时间约束、开发过程的约束、标准等。非功能需求常用于整个系统。通常不用在单个系统或服务中。 领域需求:这是来自系统的应用领域的需求,反应了该领域的特点。他们也可能是功能需求或非公能需求。8.客户机/服务器模型及优缺点 P152-153答: 客户机/服务器体系结构的模型是一个分布式系统模型,系统由一组服务及相关的服务器组成,客户机访问并使用这些服务。优点:它是一个分布式体系结构。由许多分布式处理器构成网络系统可提供更有效的使用。添加一台服务器或更新服务器很容易而且是透明的,不会影响系统的其他部分。缺点:在系统中集成一台服务器需要改变现存的客户机和服务器以便获得性能提升。要为每个服务器建立专门的数据模型以便优化其性能。9.分层模型及优缺点 P153-154答: 把系统组织成一系列的层次,每一层提供一组服务。每一层定义一个抽象机,每个抽象机是由其下层的源机的代码构成的。优点:支持系统的增量式开发。抽象机转换到其他机器上实现比较容易。缺点:顶层上的用户服务可能会需要穿过其相邻层来获取由更低层所提供的服务。性能也是一个问题。10.数据处理系统及特点 P181答:系统是以数据为中心的,它们的数据库要比系统本身大很多个数量级。特点:是批处理系统,数据的输入和输出时成批地从文件或数据库中取出,也是成批地存入文件或数据库中的,而不是对用户终端进行输入和输出。11.编译器一般体系结构中包含的组件 P188-189答:词法分析器、符号表、语法分析器、语法树、语义分析器、代码生成器。12.面向对象设计中,并发对象的实现方式和工作方式 P194-195答:实现方式与工作方式:服务器 对象被实现为一个并行进程,它的方法对应为定义的对象操作。在收到外部时间后方法被启动,方法的执行与其他对象上的方法是并行的。当对象完成了自身的操作时,对象中止,等待进一步的服务请求。主动对象 对象状态的改变可以来自对象内部操作的执行。代表对象的进程不停地执行这些操作,从不挂起。13.用户界面设计过程中的核心活动 P230答:用户分析:理解用户所做的任务、工作环境、使用的其他系统、如何在工作中与他人交互等。系统原型开发:开发原型系统并展示给用户看,让他们指导界面的进化。界面评估:一个更正式的评估活动,在评估中收集有关用户对界面的真实体验信息。14.极限编程适合敏捷方法原则 P244答:(1)增量式开发时通过系统的小的频繁发布的版本来支持的,其间所采用的需求描述方法是基于客户情节或脚本的,这样的客户情节或脚本可以成为过程规划的根据。(2)客户的参与是通过全时雇佣到开发团队的方式。客户代表参与开发并负责定义系统的接受测试。(3)人是通过结对编程、集体对系统代码所有权、可以忍受的开发过程而无需超频的工作小时来运作的。(4)变更是通过经常性的系统版本、测试优先的开发以及连续的集成来支持的。通过持续的再分解来改善代码质量并使用不预期系统将来的变更的简单设计,来支持简洁性的维护。15.极限编程测试的关键特性 P246答: XP当中的测试的关键特性:(1)测试优先的开发。(2)来自脚本的增量式测试开发。(3)用户参与到测试开发和有效性验证中。(4)自动测试系统的使用。16.软件原型在软件开发过程中的使用方式答:(1)在需求工程过程中,原型可以帮助导出系统需求并验证系统需求的有效性。 (2)在系统设计阶段,原型可以用来探索特殊的软件解决方案和支持用户界面设计。 (3)在测试阶段,原型可以用来对准备移交给客户的系统运行背对背的测试。17.在规划软件复用时需要考虑的相关约束答:软件开发进度表 所预计的软件生命期 开发团队的背景,技术和经验软件的危险程度和它的非功能性需求应用领域 系统运行平台18.在集成商业限制系统中面临的问题答:对功能和性能缺乏控制 商业现成系统间的互操作问题 无法控制系统的进化 COTS产品厂商的支持19.组件与对象之间有什么区别答:组件是可部署的实体组件不定义类型组件实现是不透明的组件是独立于语言的 组件是标准化的20.基于组件的软件开发过程与传统的软件开发过程有什么不同答:(1)最初对用户需求的开发只需要是概要性的而不用十分详细,且鼓励信息持有者在定 义他们的需求时尽可能地灵活。 (2)在过程的早期阶段根据可利用的组件来细化和修改需求。 (3)在系统体系结构设计完成后,会有一个进一步的组件搜索及设计精炼的活动。 (4)开发就是将已发现的组件集成在一起的组成过程。21.列举软件维护费用高的原因答:团队稳定性,合同责任 人员技术水平 程序年龄和结构22.对软件可维护性评估有用的过程度量包括哪些答:纠正性维护请求的数目影响分析所需的平均时间实现一个变更请求的平均时间突出的变更请求的数目23.系统再工程过程中的行为有哪些答:源代码转换 反向工程 程序结构改善 程序模块化 数据再工程
天秤座朱丽
C语言笔试题(1) 第1题:完成文件的拷贝,srcFileName为源文件名,dstFileName 为目标文件名。 int copy_file(const char *srcFileName, const char *dstFileName); 第2题:设有文件, 请写出程序在文件的开头插入 字符串 “ file start: ”; 第3题: 已知 union un { short s; char a[3]; }; 求sizeof(union un)? 第4题: 请描述以下代码中的p, char(*(*p())[])(int, void (*)()) 第5题: 已知 union un { short s; char a[3]; }; 求sizeof(union un)? C语言笔试题(2) 第1题:已知 char a[] = “abc\0efg”, 求sizeof(a) 和 strlen(a); 第2题:1, 写程序完成M进制转N进制,M、N为1~10之间。 mton(const char* mNum, int m, char *nNum, int n); 第3题:完成16进制字符串相加,返回相加后的16进制字符串。 char* sum_str16(const char* str1, const char* str2); 第4题:完成strlen函数,要求除参数外,不能使用变量和库函数。 第5题:用链表完成结点的添加、删除操作。 typedef struct student { int studentNum, struct student *next; }STU; C语言笔试题(3) 第1题:两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串 第2题:printf (“%d%d\n”,++n, power(2,n)); 其中power(2,n)为实现一定功能的函数 如 2^n 。请问这种表示方法有什么潜在的问题? 第3题:printf (s); 请问这样的语句有没有问题?(s为一指向有效字符串的指针) 第4题:两段代码共存于一个文件,编译时有选择的编译其中的一部分,请问如何实现? 第5题:数据结构指针传给函数,函数能访问数据单元,但不能修改实际的内容,如何实现? C语言笔试题(4) 第1题:两个字符串,s,t;把t字符串插入到s字符串中,s字符串有足够的空间存放t字符串 第2题:char *a = “hello”; char *b = “hello”; if(a= =b) printf(“YES”); else printf(“NO”); 第3题:简述stack frame 的含义 第4题:printf (“%d%d\n”,++n, power(2,n)); 其中power(2,n)为实现一定功能的函数 如 2^n 。请问这种表示方法有什么潜在的问题? 第5题:printf (s); 请问这样的语句有没有问题?(s为一指向有效字符串的指针) C语言笔试题(5) 第1题:在头文件中定义静态变量,可能产生什么问题? 第2题:malloc()与 calloc()的区别? 第3题:寄存器变量可不可以访问其地址?可否是全局变量?在什么场合使用寄存器变量? 第4题:“\n” ‘\n’ 的区别? 第5题:#include “” int main() { int a; int *p; p = &a; *p = 0×500; a = (int )(*(&p)); a = (int )(&(*p)); if(a == (int)p) printf(“equal !\n”); else printf(“not equal !\n”); } 请问本程序的输出显示是什么?
黄金哇塞赛
说明: 1. 本试题分可选题和必选题两部分。必选题需要根据题目要求回答。 2. 本试题考试时间为 小时。 3. 本试题完成后,请标明你的姓名以及联系方式(包括:Email、联系电话)。 注意事项: 1、在规定时间内自行选题(在可选题部分中),选题数目不能少于2个,难度不限,编程语言不限(除非题目中有特别说明)。 2、尽可能用代码段或函数完成,或自然语言来描述解题方法。 3、评分标准跟所选题目的数量和完成度无关,请尽可能展示自己的编程能力、思路、经验和风格。 可选题部分: (1) 请使用目录树遍历的方法统计出指定逻辑驱动器的目录总数及文件总数,并显示硬盘空间浪费的百分比 > 类别:系统类 > 难度:中级 (2) 列出局域网中的所有工作组和计算机名,并可显示每一个计算机的共享目录 > 类别:系统类 > 难度:高级 (3) 写一个类似OICQ点对点消息发送软件,仅实现发送和接收的功能即可 > 类别:网络编程类 > 难度:高级 (4) 为DataGrid(WinForm)增加ComboBox样式的数据列 > 类别:数据库编程类 > 难度:中级 (5) 一维数组iArray[10],类型为int。请使用选择排序算法对其排序,并输出结果。 > 类别:数据算法 > 难度:初级 (6) 请新建一个类(名称为ClassA),该类必须含有三个属性:姓名(字符串),性别(布尔值),年龄(数值)。 用该类建立一个链表,该链表有以下算法:创建、添加、插入、删除和查找,算法内不用 考虑内存的分配与释放 > 类别:数据结构 > 难度:中级 Public Class ClassA{ Public string name; Public boolean sex; Public int age; } (7) 在上题的基础上,实现以下两个功能: a. 保存该链表为二进制文件(存放在本题目路径之下) b. 读取生成的二进制文件到链表中。 > 类别:数据结构 > 难度:中级 (8) 你所知道有哪些操作平台,谈谈你对他们的见解 > 类别:其它类 > 难度:无 (9) 你所知道有哪些编程语言,谈谈你对他们的看法,你使用过哪些语言,熟练程度 如何,编写过什么样的程序 > 类别:其它类 > 难度:无 (10) 请用VBScript或JavaScript语言中任何一种,与CSS结合,编写出移动Layer的例子,具体效果与Windows窗体类似。 > 类别:Web > 难度:中级 必选题部分(必须用VS2003开发): (1) C#回答题:请描述抽象类、接口、结构三者的区别: 抽象类当中的属性和方法不能被其子类重写,接口只定义其中的属性和方法,其方法的实现部分必须在其继承的子类中实现,结构和类比较类似,也有其属性和方法,但不能被继承和实例化. (2) C#编程题:在WinForm 中实现类似于Windows 资源管理器的功能,左边有目录树,点击目录树,在右边显示该目录下的所有文件。查看方式分:大图标、小图标、列表、详细资料等。 (3) 写一个简单的存储过程或触发器,要求能正确运行(数据库采用Oracle,自建测试表) Create table test (id int primary key, Name varchar2(10) not null, Address varchar2(50), Tel varchar2(18) ); Create or replace procedure InsertTest as Declare IDN ; Declare VName ; Declare VAddress ; Declare VTel ; Begin Select nvl(decode(max(id),0,1,max(id)),1) + 1 into IDN End When 4 更多相关文章推荐参考: 安捷伦笔试真题 中兴数据库笔试真题 工商银行历年考试真题
优质工程师考试问答知识库