嵌入式软件程师综合测试试题答案.doc

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式软件程师综合测试试题答案

综合复习试题 第一部分:C语言 一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。 提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 ) 以此类推。 请写出 BOOL flag 与“零值”比较的 if 语句: if ( flag ) if ( !flag ) 请写出 float x 与“零值”比较的 if 语句: 标准答案示例: const float EPSINON = 0.00001; if ((x = - EPSINON) (x = EPSINON) 不可将浮点变量用“==”或“!=”与数字 比较,应该设法转化成“=”或“=”此 类形式。 请写出 char *p 与“零值”比较的 if 语句: 标准答案: if (p == NULL) if (p != NULL) 二、以下为Windows NT下的32位C++程序,请计算sizeof的值 char str[] = “Hello” ; char *p = str ; int n = 10; 请计算 sizeof (str ) = 6 sizeof ( p ) = 4 sizeof ( n ) = 4 void Func ( char str[100]) { 请计算 sizeof( str ) = 4 } void *p = malloc( 100 ); 请计算 sizeof ( p ) = 4 三、简答题 1、头文件中的 ifndef/define/endif 干什么用? 答:防止该头文件被重复引用。 2、#include filename.h 和 #include “filename.h” 有什么区别? 答:对于#include filename.h ,编译器从标准库路径开始搜索 filename.h 对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h 3、const 有什么用途?(请至少说明两种) 答: (1)可以定义 const 常量 (2)const 可以修饰函数的参数、返回值,甚至函数的定义体。被 const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。 4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明? 答:C++语言支持函数重载,C 语言不支持函数重载。函数被 C++编译后在库中的名字 与 C 语言的不同。假设某个函数的原型为: void foo(int x, int y); 该函数被 C 编译器编译后在库中的名字为_foo,而 C++编译器则会产生像 _foo_int_int 之类的名字。 C++提供了 C 连接交换指定符号 extern“C”来解决名字匹配问题。 5、请简述以下两个for循环的优缺点 // 第一个 for (i=0; iN; i++) { if (condition) DoSomething(); else DoOtherthing(); } // 第二个 if (condition) { for (i=0; iN; i++) DoSomething(); } else { for (i=0; iN; i++) DoOtherthing(); } 优点:程序简洁 缺点:多执行了 N-1 次逻辑判断,并且 打断了循环“流水线”作业,使得编译 器不能对循环进行优化处理,降低了效 率。 优点:循环的效率高 缺点:程序不简洁 有关内存的思考题 void GetMemory(char *p) { p = (char *)malloc(100); } void Test(void) { char *str = NULL; GetMemory(str); strcpy(str, hello world); printf(str); } 请问运行Test函数会有什么样的结果? 答:程序崩溃。 因为 GetMemory 并不能传递动态内存, Test 函数中的 str 一直都是 NULL。 strcpy(str, hello world);将使程序崩 溃。 char *GetMemory(void) { char p[] = hello world; return p; } voi

文档评论(0)

ybcm963 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档