作者:空谷幽兰 文章来源:网络
本文原地址:https://teniu.cc/ku/wk6/3528765a9709b444549e62cdf5147c1d.shtml
软件工程师笔试试题
(请按照题目的序号在另一张纸上做答,并写好名字和联系方式)
1、请比较#include
2、关键字static的作用是什么?
3、请用代码简单描述一下你最熟悉的排序算法?
4、写一个函数将字符串转换为整数,例如“-1234567”转换成-1234567。
5、有如下程序:
void GetMemory(char **p,int num)
{
*p=(char *)malloc(num);
}
void main()
{
char *str=NULL;
GetMemory(&str, 100);
strcpy(str, “hello”);
printf(str);
}
试问程序运行的结果是什么?这段程序是否有问题,如果有,请解释原因?
6、请用代码简单描述面向对象的多态原理?
7、请简述进程和线程的差别?
8、请简述NAND FLASH和NOR FLASH的区别?
9、有一个有序单向链表,每个链表节点数据域存储是字符串,此单向链表按节点中数据域字符串的大小,从小到大排序,请用代码详细描述将一个字符串插入此单向链表的过程,且保存链表有序?
10、请描述你对TD-SCDMA的理解?
一、单向选择题(四选
一、每小题3分,共18分)
1、软件的发展经历了()个发展阶段。
A.一
B.二
C.三
D.四
2、需求分析的任务不包括()。
A.问题分析
B.系统设计
C.需求描述
D.需求评审。
3、一个软件的宽度是指其控制的()。
A.模块数
B.层数
C.跨度
D.厚度
4、当模块中包含复杂的条件组合,只有()能够清晰地表达出各种动作之间的对应关系。
A.判定表和判定树
B.盒图
C.流程图
D.关系图
5、以下不属于逻辑覆盖的是()。
A.语句覆盖
B.判定覆盖
C.条件覆盖
D.基本路径
6、为适应软件运行环境的变化而修改软件的活动称为()。
A.纠错性维护
B.适应性维护
C.改善性维护
D.预防性维护
二、填空题(每空2分,共18分)
1.软件可靠性是指在给定的时间间隔内,程序成功运行的()。2.高级语言:独立于机器,面向过程或面向()
3.软件项目管理的范围主要集中于3个P上,即:People人员、Proble
m问题和()。
4.人机界面的风格第一代界面是命令和()方式。
5.由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的()。
6.在公式V(G)= E – N + 2中:E为程序图G中边的总数; N 为程
序图中结点的总数。V(G)又称为图G的环形()。
7.任何一个基于计算机系统都可以用输入-处理-输出()图来描述,它
将该系统转换成一个信息变换模型。
8.为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要
求用户(),例如,提问“你确实要删除„?”。
9.文档是一种数据媒体和其上所记录的(数据)。
三、判断题(每小题2分,共24分,错误打X、正确打√)
1.用户对软件需求的描述不精确,往往是产生软件危机的原因之一。()2.目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术
(PERT)和关键路径法(CPM)。()
3.一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建
立良好的人际关系,善于听取别人的意见。()
4.目前的绝大多数软件都不适合于快速原型技术。()
5.面向数据的设计方法的适用场合是具有明显的层次信息结构的应用如:企
事业的信息管理系统;系统软件(如操作系统)等。()
6.缺乏处理大型软件项目的经验。是产生软件危机的唯一原因。()7.通常紧致性好的语言一致性就好。()
8.测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。()9.数据输入的一般准则中包括保证信息显示方式与数据输入方式的协调一
致;允许用户定做输入格式等内容。()
10.软件也会磨损和老化。()
11.完善性维护是提高或完善软件的性能。()
12.McCabe建议模块规模应满足:V(G)≤20。()
四、简答题(每小题4分,共20分)
1、程序设计语言的三种类型和特点是什么?
2、软件危机
3、软件项目的质量管理
4、好的编程风格应遵循哪四条规则?
5、软件测试中按照错误的性质和范围进行分类可分为:“功能错误”及其它哪些错误?
五、综合题(每小题10分,共20分)
1、选择语言时要考虑的因素有:项目的应用领域、项目中算法、计算的复杂性和其余哪些内容?
2、已知一个软件项目的记录,开发人员M=3人,其代码行数=12.1KLOC,工作
量E=24PM,成本S=168000美元,错误数N=29,文档页数Pd=365页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。
姓名:联系电话:电子邮件:学历:专业:毕业时间:
Java软件工程师试题(A卷)
(满分100分,作答时间为120分钟)
一、单选题(每题3分,共45分)
1.以下哪个修饰符可用于定义成员常量?B
A.start B.final C.abstract D.No modifier can be used
2.定义一个Java文件名字为:Sub.java,其代码为:
class Super {
public int i=0;
public Super(){
}
public static void main(){
}
} System.out.println((new Super()).i);i = 1;
这段程序的运行结果是: B
A.Compile will fail
C.Compile success and print 0
3.给出如下代码:
class Test {
private int m;
public static void fun(){
// some code......}
} B.Compile success and print 1D.Compile success and print nothing
如何使成员变量m被函数fun()直接访问?D
A.将private int m改为protected int m
c.将private int m改为int m
4.下面代码段中,执行之后i和j的值是什么? C
int i = 1;
int j;
j = i++;
A.1,1B.1,2C.2,15.已知如下代码:A
boolean m;
if(m == false)
System.out.println(“false”);
else
B.将private int m改为public int m D.将private int m改为static int mD.2,2
System.out.println(“true”);
执行结果是什么?
A.Compile will fail
C.true
B.false D.An error will occur when running
6.下面哪个语句是创建数组的错误语句?C
A.float f[][] = new float [6][6];
C.float f[][] = new float [][6];
E.float [][]f = new float [6][];
B.float []f[] = new float [6][6];D.float [][]f = new float [6][6];
7.给出如下代码:C
String a = new String(“巨匠IT”);
String b = new String(“巨匠IT”);
请问上面的语句在内存中分配了多少个内存区?
A.1B.2C.3D.48.给出如下代码:D
Set set = new HashSet();
set.add(“gjun”);
set.add(“pcschoolchina”);
set.add(“gjun”);
set.add(“it”);
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
上面的代码最有可能的输出结果是:
A.gjun pcschoolchina gjun it
C.it gjun pcschoolchina gjun
9.请看下面的代码段:
String a = “gjun”;
String b = new String(“gjun”);
String c = new String(“gjun”);
if(a==b){
System.out.println(“true”);
}else{B.gjun pcschoolchina it gjun D.it gjun pcschoolchina
System.out.println(“false”);
}
if(a.equals(b)){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
if(c==b){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
输出的结果为:C
A.false truetrue B.truefalse true C.false truefalse D.false false true
10.以下哪个方法用于定义线程的执行体?C
A.start()B.init()C.run()
D.main()E.synchronized()
11.给出url地址为“index?page=3&category=tech”,下面哪个描述是正确的:
A.通过request.getAttribute(“page”)可以获取page的值
B.通过request.getParameter(“page”)可以获取page的值
C.通过request.getAttribute(“page&category”)可以获取page和category的值
D.通过request.getParameter(“page&category”)可以获取page和category的值
12.有一个登录的表单,其属性有name=“loginForm”, action=“loginServlet”, method=“post”,下面哪个描述是正确的:
A.在loginServlet中使用doPost的方法来处理表单的请求
B.在loginServlet中使用doGet的方法来返回表单的处理结果
C.在loginServlet中,先调用doPost的方法,然后再调用service的方法来处理表单的请求
D.在loginServlet中,先调用doGet的方法,然后再调用service的方法来处理表单的请求
13.如果需要从一个Servlet中传递参数username到结果的页面,下面哪种方式是可行的:
A.request.setParameter(“username”, username);
B.request.setAttribute(“username”, username);
C.response.setParameter(“username”, username);
D.request.setAttribute(“username”, username);
14.下列哪个描述是正确的:
A.EJB3.0包含Session Bean, Entity Bean和JMS
B.在系统中,我们会使用Entity Bean来保存数据和处理业务流程
C.Session Bean分为有状态和无状态两中,其中有状态的性能更高
D.远程调用EJB组件,可以通过lookup的方式去查找JNDI名称,获取代理接口来调用
15.关于JUnit的描述,哪个是正确的:
A.JUnit其实是一个main函数
B.JUnit可以应用于系统的整体测试
C.如果要测试一个方法的话可以,使用assertEquals来判定结果的正确性
D.JUnit中可以的使用@Test来修饰方法,该方法可以带参数
二、多选题(每题3分,共45分)
16.如下哪些字符串是Java中的标识符?AE
A.fieldnameB.superC.3number
17.如下哪些是Java中有效的关键字?ACDE
A.constB.NULLC.false
D.#numberE.$numberD.thisE.native
18.在switch语句中,以下哪些参数类型是合法的?ABCD
A.intB.ByteC.charD.byte
19.下面哪个赋值语句是合法的?BCD
A.float a = 2.0B.double b = 2.0
E.String C.int c = 2D.long d = 2
20.已知如下的命令执行java MyTest a b c,请问哪个语句是正确的?CD
A.args[0] = “MyTest a b c”;B.args[0] = “MyTest”;
C.args[0] = “a”;D.args[1] = “b”;
21.下面代码执行后的输出是什么?ADC
for(int i=0;i<3;i++){
} for(int j=0;j<2;j++){} if(j==1)continue;System.out.println(j+“and”+i);
A.0 and 0
F.1 and 2
b.0 and 1G.2 and 0C.0 and 2H.2 and 1D.1 and 0I.2 and 2 E.1 and 1
22.Java中如下哪个修饰符是正确的?ABE
A.privateB.publicC.default
23.已知如下类的说明:
public class Test {
} private float f = 1.0f;int m = 12;static int n = 1;public static void main(String arg[]){} Test t = new Test();D.friendE.protected
如下哪个代码可以加入到下划线中?AD
A.t.f = 0;B.this.n = 1;
24.已知如下类定义:
class Base {
}
public class Child extends Base { public Base(){} public Base(int m){} protected void fun(int n){}C.Test.m = 2;D.Test.n = 3;
// member methods
}
如下哪句可以正确地加入子类中?CD
A.private void fun(int n){}
C.protected void fun(int n){}
B.void fun(int n){} D.public void fun(int n){}
25.下面哪个方法可用于定义新线程类?AD
A.implement the Runnable interface B.add a run()method in the class
C.create an instance of ThreadD.extend the Thread class
26.下面哪个对象是JSP中内置对象?
A.contextB.request
C.exceptionD.application
27.现在有一个登录页面login.jsp,提交到/LoginServlet来处理,下面哪些描述是正确的。
A.通过request.getParameter(“username”)获取到login.jsp中的用户名值
B.通过request.getAttribute(“username”)获取到login.jsp中的用户名值
C.可以在LoginSerlvet中的doPost方法中处理请求
D.可以在LoginSerlvet中的service方法中处理请求
28.在LoginServlet处理完成后,跳转到要去到index.jsp页面,下面那些描述是正确的。
A.response.sendRedirect(“index.jsp”);
B.response.forward(“index.jsp”);
C.request.getRequestDispatcher(“index.jsp”).forward(request, response);
D.request.sendRedirect(“index.jsp”);
29.在Struts2.0中,Action接口默认的result值有:
A.SUCCESSB.FAILUREC.LOGIND.ERROR
E.OUTPUT
30.在Hibernate3.0中,假设现在有个Student的对象,下面那些HQL的写法是正确的:
A.select * from StudentB.from Student
C.select s from Student sD.select s from Student s where id>10
三、填空题(每题5分,共10分)
31.补充完整Test类的定义,使其能计算下面的数列值:
F(1)= 1(n=1)
F(2)= 2(n=2)
F(n)= F(n-1)*n(n>3)
如: 当n=5时,f(5)=f(4)*5,f(4)=f(3)*4,f(3)=f(2)*3,f(2)=f(1)*1,f(1)=1
结果f(5)= 1*1*3*4*5 = 60
public class Test {
public static int calculate(int n){if(①)return 1;return②;} public static void main(String[] args){System.out.println(calculate(3));
}
}
32.请看TestAnimal类的代码:
public class TestAnimal{
public static void main(String args[]){Animal a1 = new Dog();Animal a2 = new Cat();①②
Dog b1 =③
Cat b2 =④
⑤
}⑥}
interface Animal {
}
class Dog implements Animal{
}
class Cat implements Animal{
} public void run(){} public void catchMouse(){} System.out.println(“catching mouse”);System.out.println(“A cat is running now”);public void run(){} public void watch(){} System.out.println(“watching house”);System.out.println(“A dog is running now”);public void run();
请补充完整上面的代码,使其运行的时候得到如下结果:
A dog is running now
A cat is running now
watching house
catching mouse
1.结构化分析方法以数据流图、()和加工说明等描述工具,即用直观的图和简洁语言来描述软件系统模型。
A.DFD图B.PAD图C.IPO图D.数据字典
2.结构化分析(SA)是软件开发需求分析阶段所使用的方法,()不是SA所使用的工具。
A.DFD图B.PAD图C.结构化英语D.判定表
3.Jackson设计方法是由英国的M.Jackson所提出的。它是一种面向()的软件设计方法。
A.对象B.数据流C.数据结构D.控制结构
4.软件开发的结构化生命周期法(SA)的基本假定是认为软件需求能做到(A),它与早期的软件开发方式相比较,其最重要的指导原则应该是(B),它常用的描述软件功能需求的工具是(C)。软件开发的原型化方法是一种与结构化方法具有不同策略的方法。其最有效的应用领域应该是(D),在一般软件需求分析中,这两种方法相互的关系是(E)。
可供选择的答案
A.①严格定义②初步定义
③早期冻结④动态改变
B.①自顶向下设计②分阶段开发
③逐步求精④用户需求至上
C.①业务流程图、处理说明②软件流程图、模块说明
③数据流程图、数据字典④系统流程图、程序编码
D.①科学计算②工程设计
③管理信息④过程控制
E.①相互替代②从属关系
③相互排斥④相互补充
5.软件设计中,Jackson方法是一种面向数据结构的设计方法,它将数据结构表示为三种基本结构,分别为()
A.分支结构、选择结构和控制结构
B.顺序结构、选择结构和循环结构
C.顺序结构、分支结构和嵌套结构
D.顺序结构、选择结构和重复结构
6.软件工程方法是在实践中不断发展着的方法,而早期的软件工程方法是指()
A.原型化方法B.结构化方法
C.面向对象方法D.功能分解法
7.软件工程的结构化生命周期方法(SA)是将软件开发的全过程化分为互相独立而又互相依存的阶段,软件的逻辑模型是形成于(A)。作为软件开发结构化方法的工具数据流图描述数据在软件流动和被处理变换的过程,它是以图示的方法来表示(B),它的正确性是保证软件逻辑模型正确性的基础,(C)项内容与它的正确性相关性最弱。数据字典最基本的功能的是(D)。而软件的结构化设计(SD)方法中,一般分为总体设计和详细设计两阶段,其中总体设计主要是建立(E)。可供选择的答案
A.①开发阶段②计划阶段
③分析阶段④设计阶段
B.①软件模型②软件功能
③软件结构④软件加工
C.①数据守恒②均匀分解
③文件操作④图形层次
D.①数据库设计②数据通讯
③数据定义④数据维护
E.①软件结构②软件流程
③软件模型④软件模块
8.结构化生命周期方法具有各种特征,下列各种叙述中,哪一个不是结构化方法的特征?()
A.严格定义需求B.划分开发阶段
C.提供运行模型D.制定规范文档
9.在结构化方法中,软件功能分解应属于软件开发中的(A)阶段,它最后提供的文档是软件的(B)。数据流程图(DFD)是用于描述结构化方法中(C)阶段的工具。数据字典(DD)是定义(D)系统描述工具中的数据的工具。判定树和判定表是用于描述结构化分析方法中(E)环节的工具。
可供选择的答案
A.①详细设计②需求分析
③总体设计④编程调试
B.①功能说明书②加工说明书
③可行性分析报告④结构说明书
C.①可行性分析②需求分析
③详细设计④程序编码
D.①数据流程图②系统流程图
③程序流程图④软件结构图
E.①功能说明②数据加工
③流程描述④结构说明
10.结构化程序流程图中一般包括三种基本结构,下述结构中哪一种不属于其基本结构?()
A.顺序结构B.条件结构
D.选择结构D.嵌套结构
11.软件工程方法中普遍应用的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征?()
A.严格定义需求B.划分开发阶段
C.规范文档格式D.分析控制流程
12.数据流图是用于表示软件模型的一种图示方法,在下列可采用的绘制方法中,哪些是常采用的?()
a、自顶向下
b、自底向上
c、分层绘制
d、初步求精
A.全是B.a,c和d
C.b,c和dD.a和c
13.结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的()
A.控制流B.数据流C.程序流D.指令流
14.数据流图是用于软件需求分析的工具,下列元素哪些是其基本元素()a.数据流
b.加工
c.数据存储
d.外部实体
A.a,b和cB.a和c
C.全部D.a,c和d
15.软件需求分析一般应确定的是用户对软件的()
A.功能需求B.非功能需求
C.性能需求D.功能需求和非功能需求
16.数据字典是对数据定义信息的集合,它所定义的对象都包含于()
A.数据流图B.程序框图
C.软件结构D.方框图
17.软件开发的原型化方法是一种动态定义软件需求的方法,下述条件哪个(些)条件是实施原型化方法所必备的?()
a、成熟的原型化人员
b、快速的成型工具
c、需求了解的准确性
A.a和bB.b和c
C.全部D.c
18.软件需求分析和设计过程中,其分析与设计对象可归结成两个主要的对象,即数据和程序,按一般实施原则,对二者的处理应该是()
A.先数据后程序B.先程序后数据
C.与顺序无关D.可同时进行
19.加工是对数据流图中不能再分解的基本加工的精确说明,下述哪个是加工的最核心成分?()
A.加工顺序B.加工逻辑
C.执行频率D.激发条件
20.软件工程的结构化生命周期方法,通常将软件生命周期划分为计划、开发和运行三个时期,下述哪些工作应属于软件开发期的内容?()
a.需求分析
b.可行性研究
c.总体设计
A.只有aB.a和b
C.全部D.a和c
21.软件开发的结构化方法中,常应用数据字典技术,其中数据加工是其组成内容之一,下述哪个(些)方法是常采用编写加工说明的方法?()
a.结构化语言
b.判定树
c.判定表
A.只有aB.只有b
C.b和cD.全部
22.系统/软件开发的原型化方法是一种有效的开发方法,下述基本环节中哪一个是原型形成以后才应实施的内容?()
A.识别基本需求B.开发工作模型
C.修正和改进模型D.进行细部说明
23.对软件的过分分解,必然导致()
A.模块的独立性变差B.接口的复杂程度增加
C.软件开发的总工作量增加D.A.、B.、C.都对
软件测试工程师笔试题一及答案
一、基础理论
1、软件测试的结束标准是什么?
2、一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。
3、什么是缺陷报告?
4、缺陷报告的作用
5、缺陷报告的要点
6、软件测试缺陷报告的“5C”原则
7、缺陷的二八定理
8、软件测试的流程
9、测试计划的目的是什么?测试计划的内容都包括什么?其中哪些是最重要的?
10、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
11、Alpha 测试与beta 测试的区别
答案:
一、基础理论
1、测试计划中所有规定的测试内容和回归测试都已经运行完成或根据上级主管对测试结果的意见,就可以结束本次测试
2、计划阶段、设计阶段、白盒单元、白盒集成、黑盒单元、黑盒集成、系统测试、回归测试、验收测试
一套完整的测试应该由五个阶段组成:
1)测试计划首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准。以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
2)测试设计将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例(测试用例选择的好坏将直接影响测试结果的有效性)。
3)测试开发建立可重复使用的自动测试过程。
4)测试执行执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理,测试执行一般由单元测试、组合测试、集成测试、系统联调及回归测试等步骤组成,测试人员应本着科学负责的态度,一步一个脚印地进行测试。
5)测试评估结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。
3、缺陷报告是描述软件缺陷现象和重现步骤地集合。软件缺陷报告Software Bug Report(SBR)或软件问题报告Software Problem Report(SPR)
4、缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值
缺陷报告可以把软件存在的缺陷准确的描述出来,便于开发人员修正
缺陷报告可以反映项目/产品当前的质量状态,便于项目整体进度和质量控制
软件测试缺陷报告是软件测试的输出成果之一,可以衡量测试人员的工作能力
5、标题(Title)
简洁、准确、完整、反映缺陷本质、方便查询
前缀 + 标题正文,标题正文采用结果和动作,或者现象和位置的方式表达
步骤(Steps)
可复现、完整、简洁、准确
按数字编号
实际结果(Actual results)
准确、详细描述软件的现象和特征
期望结果(Expected results)
准确、丰富、有理有据
平台(Platforms)
准确
截图(Screenshots)
准确反映缺陷特征
注释(Notes)
关于缺陷的辅助说明
6、内容准确(Correct):
每个组成部分的描述准确,不会引起误解
步骤简洁(Concise):
只包含必不可少的信息,不包括任何多余的内容
内容清晰(Clear):
每个组成部分的描述清晰,易于理解
结构完整(Complete):
包含复现该缺陷的完整步骤和其他本质信息
风格一致(Consistent):
按照一致的格式书写全部缺陷报告
7、在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找出其余缺陷中的80%,最后的4%的缺陷可能只有在用户大范围、长时间使用后才会暴露出来。
8、制订测试计划、设计测试用例、实施测试、提交缺陷报告、测试总结。
9、测试计划的目的:编写软件测试计划的目的是指导测试组成员进行工作和让测试组以外的项目成员了解测试工作的。
测试计划的内容:测试目的和测试项目简介、测试参考文档和测试提交文档、术语和定义、测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准、暂
停和重新启动测试的标准、风险和问题等。
最重要的:测试策略、确定测试内容、资源、测试进度、测试员的职责与任务分配、项目通过或失败的标准
10、黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:在单元测试的基础上,对单元模块之间的连接和组装w进行测试。
系统测试:在所有都考虑的情况下,对系统进行测试。
验收测试:第三方进行的确认软件满足需求的测试。
千万量级范文免费下载,请收藏特牛范文网! - www.teniu.cc