收藏 分销(赏)

软件工程师试题答案V30.doc

上传人:快乐****生活 文档编号:3653484 上传时间:2024-07-12 格式:DOC 页数:8 大小:112.50KB 下载积分:6 金币
下载 相关 举报
软件工程师试题答案V30.doc_第1页
第1页 / 共8页
软件工程师试题答案V30.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
软件工程师试题及答案(V3.0) 一、选择题(每题2分) 1、 若某计算机采用8位整数补码表示数据,则运算____将产生溢出。 A.-127+1 B.-127-1 C.127+1 D.127-1 答:C 2、 编写汇编语言时,下列寄存器中程序员可访问的是______。 A.程序计数器(PC) B.指令寄存器(IR) C.存储器数据寄存器(MDR) D.存储器地址寄存器(MAR) 答:A 3、 设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)+c计算结果不一致的是__。 A.(a+b)*c/2 B.(1/2)*(a+b)*c B.(1/2)*(a+b)*c B.(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+″ 答案:D 5、下述程序执行后的输出结果是____。 #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } A.g B.h C.i D.j 答案:A 6、决定C++语言中函数的返回值类型的是____。 A. return语句中的表达式类型 B. 调用该函数时系统随机产生的类型 C. 调用该函数时的主调用函数类型 D. 在定义该函数时所指定的数据类型 答:D 7、在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中 的____。 A. 私有成员 B. 公有成员 C. 保护成员 D. 保护成员或私有成员 答:A。在派生类中基类的保护或者基类公有都可以直接访问,基类的私有成员只能是基类 的成员函数来访问。所以选择A项 8、下列程序段运行后,x的值是____。 a=1;b=2;x=0; if(!( -- a)) x -- ; if(!b) x=7; else ++x; A.0 B.3 C.6 D.7 答:A 9、若变量已正确定义,表达式( j=3 , j++ )的值是_____。 A.3 B.4 C.5 D.0 答:A 10、设 struct { short a; char b; float c; }cs; 则sizeof(cs)的值是____。 A.4 B.5 C.6 D.7 答:D 。字节对齐的话应该是8 11、下图是一个软件项目的活动图,其中顶点表示项目里程碑,边表示包含的活动,边上的权重表示活动的持续时间,则里程碑 在关键路径上。 A.1  B.2   C.3   D.4 答:B。关键路径是:(0)→(2)→(5)→(7)→(8)→(9) 12、十进制102转换为二进制是______。 A.1100111  B.1100110  C.1100001 D.101111 答:B。,102=1100110 13、单元测试一般以白盒为主,测试的依据是_____。 A.模块功能规格说明 B.系统模块结构图 C.系统需求规格说明 D.ABC都可以 答:A。 14、在SQL语言的Select语句中,用于对结果元组进行排序的是哪一个子句?____。 A.GROUP BY B.HAVING C.ORDER BY D.WHERE 答:A。 15、关系模型的数据操纵即是建立在关系上的数据操纵,一般有______四种操作;(多选) A.增加; B.删除; C修改.; D.查询; E.存储; F.定时触发 答:ABCD. 常用的关系操作包括查询操作和插入、删除、修改操作两大部分 16、下面所示逻辑流,最少需要____个测试用例可将语句覆盖。 A.1 B.2 C.3 D.5 答:A。 17、执行语句“ k=7>>1; ”后,变量 k 的当前值是____。 A.15 B.31 C.3 D.1 答:C。 18、定义函数时,缺省函数的类型声明,则函数类型取缺省类型___。 A.void B.char C.float D.int 答:D。 19、C语言中,下列运算符优先级最高的是____。 A.! B.% C.>> D.= = 答:A。 20、表达式 strcmp( “ 3.14 ”,“ 3.278 ” ) 的值是一个_____。 A.非零整数 B.浮点数 C.0 D.字符 答:A。 二、问答题:(每题5分) 1、执行下述程序的输出结果是______。 #include char b[]="ABCDEF"; main() { char *bp; for (bp=b;*bp;bp+=2) printf("%s",bp); printf("\n"); } 答:ABCDEFCDEFEF 2、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。 答:#define MIN(A,B) ((A) <= (B) (A) : (B)) 这个测试是为下面的目的而设的: 1). 标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符变 为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2). 三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if- then-else更优化的代码,了解这个用法是很重要的。 3). 懂得在宏中小心地把参数用括号括起来 3、下面的代码输出是什么,为什么? void foo(void) { unsigned int a = 6; int b = -20; (a+b > 6) puts("> 6") : puts(" <= 6"); } 答:这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是“>6”。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大 的正整数,所以该表达式计算出的结果大于6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。 4、下面的结构是合法的吗,如果是,运算结束后,a,b,c的值分别是多少,为什么 int a = 5, b = 7, c; c = a+++b; 答:上面的例子是完全合乎语 法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处 理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成: c = a++ + b; 因此, 这段代码持行后a = 6, b = 7, c = 12。 三、程序题:(每题10分) 1. 两个int型的数相除,请写程序计算他们相除后四舍五入的结果,注意不能使用浮点运算。 答: #include "stdio.h" int main() { int iDividend, iDivisor; scanf("%d %d", &iDividend, &iDivisor); int iTemp; iTemp = ( iDividend << 1 ) / ( iDivisor ); int iAnw; if((iDividend >= 0 && iDivisor > 0) || (iDividend < 0 && iDivisor < 0)) iAnw = (iTemp & 1) ? ((iTemp >> 1) + 1) : (iTemp >> 1); else iAnw = -((iTemp & 1) ? ((-iTemp >> 1) + 1) : (-iTemp >> 1)); printf("anw:%d", iAnw); return 1; } 2. 培养池现有一个刚分裂的细胞,这种细胞在分裂的两小时后,每小时都分裂出一个新细胞,新分裂的细胞也按如此规律分裂。如果细胞都不死去,请问到第12小时时,培养池共有细胞多少个?请用迭代法写程序求出结果。 答案: 迭代的公式为: Un = U(n-1) + U(n-2) 程序为: #include "stdio.h" int main() { int sum = 0; int un_0 = 1; int un_1 = 1; for(int i = 3; i <= 12; i++) { sum = un_1+ un_0; un_0 = un_1; un_1 = sum; } printf("ans: %d", sum); return 1; } 3.根据以下提供的信息编写一段程序: 假设有一种控制系统要解析某种工业设备当前的状态信息,解析状态信息的函数头如下: void a(unsigned char *message) { ………. } 参数message用来接收外部传入的状态信息。外部状态信息的结构如下: Message: TYPE DATA Message字段定义: 字段 字段长度 内容 1 TYPE 1 消息的类型 2 DATA 依实际长度而定 数据 Message消息结构中的DATA字段的结构如下: DATA类型 DATA内容(视具体DATA类型而定) DATA字段定义: 字段 字段长度 内容 1 DATA类型 1 DATA的类型 2 DATA内容 依实际长度而定 数据 设备现已接收了一条系统消息,请在a函数中写一段代码,要求对Message消息做如下判断: 如果收到的Message消息的TYPE值为0x01时,表示收到的这条消息是INIT,继续判断,如果不为INIT,返回-1;如果收到的INIT的DATA类型值为0x01时,则表示INIT成功;如果收到的INIT的DATA类型值为0x02时,表示INIT失败。如果INIT成功则调用b(void)函数,如果INIT失败,则调用c(void)函数。 答:void a(unsigned char *message) { unsigned char *pMessage=message; unsigned char MessageType; unsigned char add; MessageType = *pMessage; pMessage++; add = *pMessage; pMessage++; switch(MessageType) { case 0x01 : switch(add) { case 0x01 : b(); break; case 0x02 : c(); return; } break; default : break; } } 四、翻译题:(10分) Like students from other Asian countries and regions, most Chinese students who come to pursue further education in the United States work on their studies most diligently and assiduously. Even on weekends, they would frequently spend one day, or even two days, to work overtime in their laboratories. Therefore, compared with their American counterparts, they are more academically fruitful. My supervisor is of Asian origin who is addicted to alcohols and cigarettes, with a sharp temper. Nevertheless, he highly appreciates the industry and the solid foundational knowledge of Asian students and has a particularly keen insight into the psychology of Asian students. Hence, of all the students recruited by his laboratory, except for one German, the rest five were all from Asia. 答:来美国求学的中国学生与其他亚裔学生一样,大多非常刻苦勤奋,周末也往往会抽出一天甚至两天的时间去实验室加班,因而比起美国学生来,成果出得较多。   我的导师是亚裔人,嗜烟好酒,脾气暴躁。但他十分欣赏亚裔学生勤奋与扎实的基础知识,也特别了解亚裔学生的心理。因此,在他实验室所招的学生中,除有一名来自德国外,其余5位均是亚裔学生
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服