软件开发笔试题合集.docx
- 文档编号:9872369
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:19
- 大小:29.17KB
软件开发笔试题合集.docx
《软件开发笔试题合集.docx》由会员分享,可在线阅读,更多相关《软件开发笔试题合集.docx(19页珍藏版)》请在冰豆网上搜索。
软件开发笔试题合集
.net软件开发笔试题
选择题
1:
WhichofthefollowingoperationscanyouNOTperformonanADO.NETDataSet?
A.ADataSetcanbesynchronisedwithaRecordSet.
B.ADataSetcanbesynchronisedwiththedatabase.
C.ADataSetcanbeconvertedtoXML.
D.YoucaninfertheschemafromaDataSet
2:
如果设treeView1=newTreeView(),TreeNodenode=newTreeNode("根结点"),则treeView1.Nodes.Add(node)返回的是一个()类型的值。
A.TreeNode
B.int
C.string
D.TreeView
3:
publicstaticvoidMain(string[]args)
{
inti=2000;
objecto=i;
i=2001;
intj=(int)o;
Console.WriteLine("i={0},o={1},j={2}",i,o,j);
}
A.i=2001,o=2000,j=2000
B.i=2001,o=2001,,j=2001
C.i=2000,o=2001,,j=2000
D.i=2001,o=2000,j=2001
4:
假定a和b为int型变量,则执行下述语句组后,b的值为
a=1;
b=10;
do
{
b-=a;
a++;
}while(b--<0);
A.9
B.-2
C.-1
D.8
5:
声明一个委托publicdelegateintmyCallBack(intx);则用该委托产生的回调方法的原型应该是
A.voidmyCallBack(intx)
B.intreceive(intnum)
C.stringreceive(intx)
D.不确定的
6:
在C#中利用Socket进行网络通信编程的一般步骤是:
建立Socket侦听、()、利用Socket接收和发送数据。
A.建立Socket连接
B.获得端口号
C.获得IP地址
D.获得主机名
7:
设有变量说明语句inta=1,b=0;
则执行以下程序段的输出结果为()。
switch(a)
{
case1:
switch(b)
{
case0:
printf("**0**");break;
case1:
printf("**1**");break;
}
case2:
printf("**2**");break;
}
printf("");
A.**0**
B.**0****2**
C.**0****1****2**
D.有语法错误
8:
以下的C程序代码片段运行后C和d的值分别是多少
Inta=1,b=2;
Intc,d;
c=(a&b)&&a;
d=(a&&b)&a;
A.0,0
B.0,1
C.1,0
D.1,1
9:
InObjectOrientedProgramming,howwouldyoudescribeencapsulation?
A.Theconversionofonetypeofobjecttoanother.
B.Theruntimeresolutionofmethodcalls.
C.Theexpositionofdata.
D.Theseparationofinterfaceandimplementation.
10:
如下程序的运行结果是:
publicabstractclassA
{
publicA()
{
Console.WriteLine(''A'');
}
publicvirtualvoidFun()
{
Console.WriteLine("A.Fun()");
}
}
publicclassB:
A
{
publicB()
{
Console.WriteLine(''B'');
}
publicnewvoidFun()
{
Console.WriteLine("B.Fun()");
}
publicstaticvoidMain()
{
Aa=newB();
a.Fun();
}
}
A.ABA.Fun()
B.ABB.Fun()
C.BAA.Fun()
D.BAB.Fun()
11:
WhichofthesestringdefinitionswillpreventescapingonbackslashesinC#?
A.strings=#”nTeststring”;
B.strings=“’nTeststring”;
C.strings=@”nTeststring”;
D.strings=“nTeststring”;
12:
关于ASP.NET中的代码隐藏文件的描述正确的是:
A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。
编程逻辑唯一与用户界面不同的文件中。
该文件称作为“代码隐藏”文件,如果用C#创建,该文件
B.项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件
C.项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件
D.以上都不正确
13:
classClass1
{
publicstaticintCount=0;
staticClass1()
{
Count++;
}
publicClass1()
{
Count++;
}
}
Class1o1=newClass1();
Class1o2=newClass1();
请问,Class1.Count的值是多少?
A.1
B.2
C.3
D.4
14:
以下描述错误的是:
A.在C++中支持抽象类而在C#中不支持抽象类。
B.C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
C.在C#中可使用new修饰符显式隐藏从基类继承的成员。
D.在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
简答题
15:
.NET里的哪一项技术能够实现out-of-proc通讯?
16:
什么是ViewState?
它是否被编码过?
是否被加密过?
谁会使用ViewState?
17:
下面的代码有什么问题?
char*_strdup(constchar*strSource)
{
staticcharstr[MAX_STR_LEN];
strcpy(str,strSource);
returnstr;
}
18:
解释virtual、sealed、override和abstract的区别
19:
设有一个顺序表A,包含n个元素,要求写出一个将该表逆置的算法,并只允许在原表的存储空间少再加一个附加的工作单元。
20:
公元4046年,人类科学高度发达,绝大部分人都已经移居至浩瀚的宇宙,在上千颗可居住的星球上留下了人类的印记。
然而,此时人类却分裂成了两个联盟:
正义联盟和邪恶联盟。
两个联盟之间仇恨难解,时有战争。
现在,邪恶联盟通过不正当贸易积聚了大量宇宙财富。
因此,正义联盟计划要破坏邪恶联盟的非法贸易网络,从而影响邪恶联盟的经济状况,为下一次战争作好准备。
邪恶联盟由数百颗星球组成,贸易通过星球间的运输航道来完成。
一条运输航道是双向的且仅连接两个星球,但两个星球之间可以有多条航道,也可能没有。
两个星球之间只要有运输航道直接或间接的相连就可以进行贸易。
正义联盟计划破坏邪恶联盟中的一些运输航道,使得邪恶联盟的星球分成两部分,任一部分的星球都不能与另一部分的星球进行贸易。
但是为了节省破坏行动所需的开支,正义联盟希望破坏尽量少的运输航道来达成目标。
请问正义联盟最少需要破坏多少条运输航道呢?
21:
设计一函数,求整数区间[a,b]和[c,d]的交集。
22:
在一个正整数序列中求和最大的非相邻子序列(序列任两元素在原序列里都不相邻)
23:
书写用户控件TestCtl,要求有属性A和事件voidB()
24:
用100元钱买100支笔,其中钢笔3元/支,圆珠笔2元/支,铅笔0.5元/支,问钢笔、圆珠笔和铅笔可以各买多少支?
25:
求出10到100之间的素数(只能被1和自身整除的数)并以每行一个素数的格式顺序写入文件su.dat。
1、试分析下面的SQL语句的优劣,并用另外的方法实现。
(1)Select*fromempewheree.Noin(selecta.Nofromampa)
Select*fromempeewhereNOTEXISTS(Selecta.Nofromampawheree.NO=a.No)
(2)select*fromempe,anpawheree.No=a.No
2、用Decoole重写下面的socl语句
SELECTCOUNT(*),SUM(SAL)FROMEMPWHEREDEPT_NO=0020ANDENAMELIKE ‘SMITH%’;
selectcount(*),sum(sal)fromempwheredept_no=0030andenamelike ‘smith%’;
selectcount(decode(dept_no,0020,’x',null))d0020_count,
count(decode(dept_no,0030,’x',null))d0030_count,
sum(decode(dept_no,0020,sal,0))d0020_sal,
sum(decode(dept_no,0030,sal,0))d0030_sal
fromempwhereenamelike‘smith%’;
3、下面哪几种SQL不好。
2,4,5
(1)update语句
(2)in语句(3)子查询(4)多查等值查询(5)笛卡尔乘积
4、请造出下列哪3种命名正确A,B,D
A、ASDB、$abcC、constD、_asdE、3_asd
5、texareajava
(1)写出文件名
(2)补充代码
6、型转换
example:
publicStringgetValue(Objecta,Objectb){}
当下列方法调用时将出现何种异常,如何修正
Stringc=newString(“aaa”);
intd=123;
my.getValue(c,d);
(1)Integerd=newInteger(123);
(2)My.getValue(c,(String)d);
7、在JSP上显示Araylist中的元素
序号
姓名
8、解释
beam:
远程接口的具体实现
Home:
管理和创建远程对象
Romate:
提供给用户的远程接口
9、解释Javabean与EJB的区别
10、SeSS’onbean与Entitybean区别
11、解释Commend、DAO模式,试举例说明。
Command定义
不少Command模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一个命令时,然后会执行一些动作,将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command模式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直接指向打开文档的代码,使用Command模式,就是在这两者之间增加一个中间者,将这种直接关系拗断,同时两者之间都隔离,基本没有关系了.
显然这样做的好处是符合封装的特性,降低耦合度,Command是将对行为进行封装的典型模式,Factory是将创建进行封装的模式,
从Command模式,我也发现设计模式一个”通病”:
好象喜欢将简单的问题复杂化,
喜欢在不同类中增加第三者,当然这样做有利于代码的健壮性可维护性还有复用性.
如何使用
具体的Command模式代码各式各样,因为如何封装命令,不同系统,有不同的做法.下面事例是将命令封装在一个Collection的List中,任何对象一旦加入List中,实际上装入了一个封闭的黑盒中,对象的特性消失了,只有取出时,才有可能模糊的分辨出:
典型的Command模式需要有一个接口.接口中有一个统一的方法,这就是”将命令/请求封装为对象”:
程序代码:
publicinterfaceCommand{ publicabstractvoidexecute();}
//具体不同命令/请求代码是实现接口Command,下面有三个具体命令
程序代码:
publicclassEngineerimplementsCommand{
publicvoidexecute(){ //doEngineer’scommand }
}
publicclassProgrammerimplementsCommand{
publicvoidexecute(){ //doprogrammer’scommand }
}
publicclassPoliticianimplementsCommand{
publicvoidexecute(){ //doPolitician’scommand }
}
按照通常做法,我们就可以直接调用这三个Command,但是使用Command模式,我们要将他们封装起来,扔到黑盒子List里去:
程序代码:
publicclassproducer{
publicstaticListproduceRequests(){
Listqueue=newArrayList();
queue.add(newDomesticEngineer());
queue.add(newPolitician());
queue.add(newProgrammer());
returnqueue; }
}
这三个命令进入List中后,已经失去了其外表特征,以后再取出,也可能无法分辨出谁是Engineer
谁是Programmer了,看下面如何调用Command模式:
程序代码:
publicclassTestCommand{
publicstaticvoidmain(String[]args){
Listqueue=Producer.produceRequests();
for(Iteratorit=queue.iterator();it.hasNext();)
//取出List中东东,其他特征都不能确定,只能保证一个特征是100%正确,//他们至少是接口Command的”儿子”.所以强制转换类型为接口
Command((Command)it.next()).execute();
}
}
DAO:
由此可见,调用者基本只和接口打交道,不合具体实现交互,这也体现了一个原则,面向接口编程,这样,以后增加第四个具体命令时,就不必修改调用者TestCommand中的代码了.
12、谈一下对“保障软件质量”的理解。
有效的软件质量管理
一、引言
随着社会信息化水平的不断提高,信息行业急速膨胀,信息企业快速成长,随之带来的信息市场竞争激烈,企业为了求生存,满足客户要求则成为各行各业的首要责任。
依赖于质量、成本和进度的客户满意度,质量则是重点支撑之一,这样要求我们对质量管理需要加强认识。
我们都知道pmbok把项目管理划分为9个知识领域,即范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理。
质量管理作为9大知识领域之一,可见其重要性。
质量管理包括:
质量计划编制、质量保证和质量控制三个过程域。
质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。
质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。
质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。
二质量管理责任分配
我们公司在开发项目上按照规范化软件的生产方式进行生产,在生产流程上采用ISO9000的标准进行。
每个项目除配备了项目开发所需角色外,还专门配备了配置管理小组、测试小组和质量保证小组确保质量管理的实施,下面针对这三种角色进行说明:
1、配置管理小组职责
配置管理小组是保证项目开发完毕的同时,内部文档和外部文档都同时完成。
内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提,从另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的前提。
如上所述,配置管理小组还是保证质量保证小组得以发挥作用的基础。
配置管理小组的主要职责包括:
完善各个部门发送需要存档和进行版本控制的代码、文档(包括外来文件)和阶段性成果;对代码、文档等进行单向出入的控制;对所有存档的文档进行版本控制;提供文档规范,并传达到开发组中。
2、测试小组职责
测试小组作为质量控制的主要手段,负责软件的测试设计和执行工作。
如同软件开发一样,测试在执行之前,同样需要进行测试计划和测试策略的设计,通常情况下测试可以分为如下几种类型,如:
正确性测试、功能性测试、性能测试、安全测试和系统测试等。
而这些测试均需要在测试计划和测试策略中进行描述用以指导测试小组成员进行测试用例编写和测试执行。
程序员在交给测试人员之前是进行过一定的单元测试,确保程序编译、运行正确。
测试人员根据详细设计的文档对软件要实现的功能进行一一测试,保证软件的执行正确的实现设计要求,在此也只证明了软件正确的反映了设计思想,但是否真正反映了用户的需求仍需要进一步的功能性测试。
测试人员只有根据软件需求规格说明书所提及的功能进行检测,才能确保项目组开发的软件产品满足用户需求。
在正确性测试完成之后,需要测试的是软件的性能,软件的性能在本项目中占有重要的地位,性能要求有可能改变软件的设计,为避免造成软件的后期返工,测试在性能上需要较大的侧重。
如果有必要的话,测试小组还需要做安全测试,以确保系统使用安全可靠。
3、质量保证小组职责
质量保证小组作为质量保证的实施小组,主要职责是保证软件透明开发的主要环节。
在项目开发的过程中几乎所有的部门都与质量保证小组有关。
质量保证小组对项目经理提供项目进度与项目真正开发时的差异报告,提出差异原因和改进方法。
在项目进度被延滞或质量保证小组认为某阶段开发质量有问题时,提请项目经理、项目负责人等必要的相关人员举行质量会议。
解决当前存在的和潜在的问题。
质量保证是建立在文档的复审基础之上,因而文档版本的控制,特别是软件配置管理,直接影响软件质量保证的影响力和力度。
质量保证小组的检测范围包括:
系统分析人员是否正确的反映了用户的需求;软件执行体是否正确的实现了分析人员的设计思想;测试人员是否进行了较为彻底的和全面的测试;配置管理员是否对文档的规范化进行的比较彻底,版本控制是否有效。
三质量管理实施
有了良好的资源配备,又如何在项目全生命周期内实施质量保证,让我们从以下几个方面来看质量保证的实施过程:
1、项目进度的质量保证
项目进度是项目进行是否顺利的最直观表现。
显然在项目开始之前,项目开发计划是必须的。
如果项目开发计划的制定的是完全合理的,那项目进度也就真正表达了项目与最终的交付使用之间的距离,然而要制定完全合理的项目开发计划几乎不太可能。
可见要保证项目进度,首先要保证项目开发计划尽可能合理。
项目计划的合理程度与项目计划制定者从事类似规模和类似业务的项目的经验有直接关系,通过经验往往能够预见潜在的阻碍,这样要求项目计划制定者需要集众人之力来完善计划。
当项目计划制定初期,由质量保证小组组织召开的项目计划评审会,邀请公司技术专家、用户以及项目组小组成员一起讨论项目计划的可行性,会议通常采用头脑风暴法,各抒己见,会后由指定的记录员形成质量记录,发送给相关人员,对其计划中不合理的地方进行修改完善,并由质量保证人员对其结果跟踪,以确保项目计划完整性、可行性,完善后的计划交由配置管理人员进行版本控制。
然而在计划实施过程中,计划不是“固定化”。
常有人道,“计划赶不上变化”,但“要跟上变化”。
项目计划以里程碑为界限,将整个开发周期划分为若干阶段。
根据里程碑的完成情况,适当的调整每一个较小的阶段的任务量和完成的任务时间,这种方式非常有利于整个项目计划的动态调整。
也利于项目质量保证的实施。
实际运作中,当质保小组发现计划实施的差异后,报告项目经理,由项目经理组织负责对计划进行周期性维护,对于已经变动的计划由质保小组协助配置管理小组完成版本控制。
本公司已经开发湖南移动的集中客服系统,开发中的子项目多达六个,历时十个月,目前多数项目已经开发完毕,系统正在试运行阶段,项目金额数千万元。
在这样的项目中,从管理者到开发人员到测试人员都积累了较为丰富的经验,特别是项目开发计划的制定,和项目进度的控制。
2、项目开发各阶段的质量保证
a、需求分析
需求分析是开发人员对系统需要做什么和如何做的定义过程。
从系统分析的经验来看,这个过程往往是个循序渐进的过程,一次性对系统形成完整的认识是困难的。
只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。
从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 笔试 题合集