嵌入式平台实习生笔试题目V2.0_ 答案.doc

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

学校: 日期: 姓名: C1. 以下为WinNT下的32位C++程序,请计算sizeof的值。(5分) 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 C2. 头文件中经常看到类似于下面的定义,请问这些预处理指令的作用是?(4分) #ifndef __LCD_DRIVER_H__ #define __LCD_DRIVER_H__ // write your header here #endif 答: 防止重复定义 C3. 已知strcpy函数的函数原型是:char *strcpy(char *strDest, const char *strSrc)。其中,strDest是目的字符串,strSrc是源字符串。(15分) (1)不调用C++/C的字符串库函数,请编写函数strcpy 答: char *strcpy(char *strDest, const char *strSrc) { char *s = strDest; if((strDest == NULL) || (strSrc == NULL)) return NULL; while((*strDest++ = *strSrc++) != ‘\0’); return s; } (2)strcpy能把strSrc的内容复制到strDest,为什么还要char *类型的返回值? 答: 为了实现链式表达式,如:int length = strlen( strcpy( strDest, “hello world”) ); C4. 请简述下面两个for循环的优缺点(8分) 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次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对程序进行优化,降低了效率 优点:循环的效率高 缺点: 程序不简洁 C5. 下面程序中有一处语法错误和一处逻辑错误,请分别指出(直接在程序中标出)。(8分) // 程序功能:搜索字符串中的非数字字符,并将非数字字符打印出来 #include stdio.h #define SIZE 10; // 语法错误,多一个分号 bool IsNumber(char ch) { return( (ch = 9) (ch = 0) ); } int main(void) { char c[SIZE] = 12345y789; int i; bool Result; for(i = 0; i SIZE; i++) Result = IsNumber(c[i]); if(Result == false) printf(%c is not a number string\n, c[i]); // 逻辑错误,for循环需要大括号 return 0; } C6. 简述在C++程序中调用被C编译器编译后的函数,为什么要加extern “C”声明?(5分) 答: 主要为了解决C++中函数重载这个特性。详细如下: 函数经过编译系统的翻译成汇编,函数名对应着汇编标号。因为C编译函数名与得到的汇编代号基本一样,如:fun()=_fun, main=_main。但是C++中函数名与得到的汇编代号有比较大的差别。如:由于函数重载,函数名一样,但汇编代号绝对不能一样。为了区分,编译器会把函数名和参数类型合在一起

文档评论(0)

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

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

1亿VIP精品文档

相关文档