您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程师试题答案(V3.0)
软件工程师试题及答案(V3.0)一、选择题(每题2分)1、若某计算机采用8位整数补码表示数据,则运算____将产生溢出。A.-127+1B.-127-1C.127+1D.127-1答:C2、编写汇编语言时,下列寄存器中程序员可访问的是______。A.程序计数器(PC)B.指令寄存器(IR)C.存储器数据寄存器(MDR)D.存储器地址寄存器(MAR)答:A3、设floata=2,b=4,c=3;,以下C语言表达式与代数式(a+b)+c计算结果不一致的是__。A.(a+b)*c/2B.(1/2)*(a+b)*cB.(1/2)*(a+b)*cB.(1/2)*(a+b)*c答案:B,因为a,b,c三个变量都是浮点数,所以在B答案中其结果是0,因为在计算1/2是就是0,如果改成1/2.0就正确了。4、为了向二进制文件尾部增加数据,打开文件的方式应采用_____。A.″ab″B.″rb+″C.″wb″D.″wb+″答案:D5、下述程序执行后的输出结果是____。#includemain(){intx='f';printf(%c\n,'a'+(x-'a'+1));}A.gB.hC.iD.j答案:A6、决定C++语言中函数的返回值类型的是____。A.return语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型答:D7、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的____。A.私有成员B.公有成员C.保护成员D.保护成员或私有成员答:A。在派生类中基类的保护或者基类公有都可以直接访问,基类的私有成员只能是基类的成员函数来访问。所以选择A项8、下列程序段运行后,x的值是____。a=1;b=2;x=0;if(!(--a))x--;if(!b)x=7;else++x;A.0B.3C.6D.7答:A9、若变量已正确定义,表达式(j=3,j++)的值是_____。A.3B.4C.5D.0答:A10、设struct{shorta;charb;floatc;}cs;则sizeof(cs)的值是____。A.4B.5C.6D.7答:D。字节对齐的话应该是811、下图是一个软件项目的活动图,其中顶点表示项目里程碑,边表示包含的活动,边上的权重表示活动的持续时间,则里程碑在关键路径上。A.1B.2C.3D.4答:B。关键路径是:(0)→(2)→(5)→(7)→(8)→(9)12、十进制102转换为二进制是______。A.1100111B.1100110C.1100001D.101111答:B。65212222102,102=110011013、单元测试一般以白盒为主,测试的依据是_____。A.模块功能规格说明B.系统模块结构图C.系统需求规格说明D.ABC都可以答:A。14、在SQL语言的Select语句中,用于对结果元组进行排序的是哪一个子句?____。A.GROUPBYB.HAVINGC.ORDERBYD.WHERE答:A。15、关系模型的数据操纵即是建立在关系上的数据操纵,一般有______四种操作;(多选)A.增加;B.删除;C修改.;D.查询;E.存储;F.定时触发答:ABCD.常用的关系操作包括查询操作和插入、删除、修改操作两大部分16、下面所示逻辑流,最少需要____个测试用例可将语句覆盖。A.1B.2C.3D.5答:A。17、执行语句“k=71;”后,变量k的当前值是____。A.15B.31C.3D.1答:C。18、定义函数时,缺省函数的类型声明,则函数类型取缺省类型___。A.voidB.charC.floatD.int答:D。19、C语言中,下列运算符优先级最高的是____。A.!B.%C.D.==答:A。20、表达式strcmp(“3.14”,“3.278”)的值是一个_____。A.非零整数B.浮点数C.0D.字符答:A。二、问答题:(每题5分)1、执行下述程序的输出结果是______。#includecharb[]=ABCDEF;main(){char*bp;for(bp=b;*bp;bp+=2)printf(%s,bp);printf(\n);}答:ABCDEFCDEFEF2、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。答:#defineMIN(A,B)((A)=(B)(A):(B))这个测试是为下面的目的而设的:1).标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。2).三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。3).懂得在宏中小心地把参数用括号括起来3、下面的代码输出是什么,为什么?voidfoo(void){unsignedinta=6;intb=-20;(a+b6)puts(6):puts(=6);}答:这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是“6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。4、下面的结构是合法的吗,如果是,运算结束后,a,b,c的值分别是多少,为什么inta=5,b=7,c;c=a+++b;答:上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:c=a+++b;因此,这段代码持行后a=6,b=7,c=12。三、程序题:(每题10分)1.两个int型的数相除,请写程序计算他们相除后四舍五入的结果,注意不能使用浮点运算。答:#includestdio.hintmain(){intiDividend,iDivisor;scanf(%d%d,&iDividend,&iDivisor);intiTemp;iTemp=(iDividend1)/(iDivisor);intiAnw;if((iDividend=0&&iDivisor0)||(iDividend0&&iDivisor0))iAnw=(iTemp&1)?((iTemp1)+1):(iTemp1);elseiAnw=-((iTemp&1)?((-iTemp1)+1):(-iTemp1));printf(anw:%d,iAnw);return1;}2.培养池现有一个刚分裂的细胞,这种细胞在分裂的两小时后,每小时都分裂出一个新细胞,新分裂的细胞也按如此规律分裂。如果细胞都不死去,请问到第12小时时,培养池共有细胞多少个?请用迭代法写程序求出结果。答案:迭代的公式为:Un=U(n-1)+U(n-2)程序为:#includestdio.hintmain(){intsum=0;intun_0=1;intun_1=1;for(inti=3;i=12;i++){sum=un_1+un_0;un_0=un_1;un_1=sum;}printf(ans:%d,sum);return1;}3.根据以下提供的信息编写一段程序:假设有一种控制系统要解析某种工业设备当前的状态信息,解析状态信息的函数头如下:voida(unsignedchar*message){……….}参数message用来接收外部传入的状态信息。外部状态信息的结构如下:Message:TYPEDATAMessage字段定义:字段字段长度内容1TYPE1消息的类型2DATA依实际长度而定数据Message消息结构中的DATA字段的结构如下:DATA类型DATA内容(视具体DATA类型而定)DATA字段定义:字段字段长度内容1DATA类型1DATA的类型2DATA内容依实际长度而定数据设备现已接收了一条系统消息,请在a函数中写一段代码,要求对Message消息做如下判断:如果收到的Message消息的TYPE值为0x01时,表示收到的这条消息是INIT,继续判断,如果不为INIT,返回-1;如果收到的INIT的DATA类型值为0x01时,则表示INIT成功;如果收到的INIT的DATA类型值为0x02时,表示INIT失败。如果INIT成功则调用b(void)函数,如果INIT失败,则调用c(void)函数。答:voida(unsignedchar*message){unsignedchar*pMessage=message;unsignedcharMessageType;unsignedcharadd;MessageType=*pMessage;pMessage++;add=*pMessage;pMessage++;switch(MessageType){case0x01:switch(add){case0x01:b();break;case0x02:c();return;}break;default:break;}}四、翻译题:(10分)LikestudentsfromotherAsiancountriesandregions,mostChinesestudentswhocometopursuefurthereducationintheUnitedStatesworkontheirstudiesmostdiligentlyandassiduously.Evenonweekends,theywouldfrequentlyspendoneday,oreventwodays,toworkovertimeintheirlaboratories.Therefore,comparedwiththeirAmericancounterparts,theyaremoreacademicallyfruitful.MysupervisorisofAsianoriginwhoisaddictedtoalcoholsandcigarettes,withasharptemper.Nevertheless,hehighlyappreciatestheindustryandthesolidfoundationalknowledgeofAsianstudentsandhasaparticularlykeeninsightintothepsychologyofAsianstudents.Hence,ofallthestudentsrecruitedbyhislaboratory,exceptforoneGerman,therestfivewereallfromAsia.答:来美国求学的中国学生与其他亚裔学生一样,大多非常刻苦勤奋,周末也往往会抽出一天甚至两天的时间去实验室加班,因而比起美国学生来,成果出得较多。我的导师是亚裔人,嗜烟好酒,脾气暴躁。但他十分欣赏亚裔学生勤奋与扎实的基础知识,也特别了解亚裔学生的心理。因此,在他实验室所招的学生中,除有一名来自德国外,其余5位均是亚裔学生
本文标题:软件工程师试题答案(V3.0)
链接地址:https://www.777doc.com/doc-6408667 .html