下载此文档

软件工程师试题答案(V3.0).docx


文档分类:通信/电子 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
软件工程师试题及答案( )
将产生溢出
一、选择题(每题 2 分)
1、 若某计算机采用 8 位整数补码表示数据,则运算
-127+1 B.-127-1 +1 -1
答:C
2、 编写汇编语言时,下r b[]="ABCDEF";
mai n()
{
char *bp;
for (bp=b;*bp;bp+=2)
prin tf("%s",bp);
prin tf("\n");
}
答: ABCDEFCDEFEF
2、写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
答:#define MIN(A,B) ((A) <= (B) (A) : (B))
这个测试是为下面的目的而设的:
.标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入 (inline) 操作符变
为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说, 为了能达到要求的性能,嵌入代码经常是必须的方法。
.三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能 产生比if-
then-else更优化的代码,了解这个用法是很重要的。
•懂得在宏中小心地把参数用括号括起来 3、下面的代码输出是什么,为什么?
void foo(void)
{
un sig ned int a = 6;
int b = -20;
(a+b > 6) puts("> 6") : puts(" <= 6");
}
答:这个问题测试你是否懂得 C语言中的整数自动转换原则,我发现有些开发
者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是“ >6”。
原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为 无符号类型。因此-20变成了一个非常大
的正整数,所以该表达式计算出的结果大于 6。这一点对于应当频繁用到无符号 数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了 得不到这份工作的边缘。
4、
下面的结构是合法的吗,如果是,运算结束后,a,b,c的值分别是多少,为什
么 int a c =
1 = 5, b = a+++b;
7, c;
答:上面的例子是完全合乎语 法的。问题是编译器如何处理它?水平不高的编 译作者实际上会争论这个问题,根据最处 理原则,编译器应当能处理尽可能所 有合法的用法。因此,上面的代码被处理成:
c = a++ + b;
因此,这段代码持行后a = 6, b = 7, c = 12
、程序题:(每题10分)
两个int型的数相除,请写程序计算他们相除后四舍五入的结果,注意不能使 用浮点运算。
答:
#i nclude "" int main()
{
int iDivide nd, iDivisor;
sca nf("%d %d", & iDivide nd, & iDivisor);
int iTemp;
iTemp = ( iDivide nd << 1 ) / ( iDivisor );
int iAnw;
if((iDividend >= 0 && iDivisor > 0) || (iDividend < 0 && iDivisor <

软件工程师试题答案(V3.0) 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人majx0413
  • 文件大小72 KB
  • 时间2022-06-30
最近更新