2022年面试题嵌入式软件开发 .pdf
学而不思则惘,思而不学则殆1. 什么是预编译,何时需要预编译:答案:、总是使用不经常改动的大型代码体。(好工程的回答,不是么:)) 、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。2. char * const p char const * p const char *p 上述三个有什么区别?答案:char * const p; /常量指针, const 修饰的是指针p,故 p 的值不可以修改char const * p;/const 修饰的是 *p,为指向常量的指针,指向的常量值不可以改const char *p ; /和 char const *p 3. 数组变量和指针的区别?cppview plaincopy1.#include 2.usingnamespace std; 3.4.int main(int argc, charconst *argv) 5. 6.char str1 = abc; 7.char str2 = abc; 8.constchar str3 = abc; 9.constchar str4 = abc; 10.constchar *str5 = abc; 11.constchar *str6 = abc; 12.char *str7 = abc ; 13.char *str8 = abc ; 14.15. cout ( str1 = str2 ) endl; 16. cout ( str3 = str4 ) endl; 17. cout ( str5 = str6 ) endl; 18. cout ( str7 = str8 ) endl; 19.20.return 0; 21. 结果是: 0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 4 页学而不思则惘,思而不学则殆4. 以下代码中的两个sizeof 用法有问题吗?答案是有问题的,只要长度超过指针的长度就不可以了cppview plaincopy1.#include 2.usingnamespace std; 3.4.void UpperCase( char str ) / 将 str 中的小写字母转换成大写字母5. 6.for ( size_t i=0; i sizeof(str)/sizeof(str0); +i ) 7.if ( a =stri & stri =z ) 8. stri -= (a- A ); 9. 10.11.int main(int argc, charconst *argv) 12. 13.char str = aBcDeeeee; 14. cout str字符长度为 : sizeof(str)/sizeof(str0) endl; 15. UpperCase( str ); 16. cout str (Y)?(Y):(X) /结尾没有 ;10. 嵌入式系统中经常要用到无限循环,你怎么用C 编写死循环。答案: while(1) 或者 for(;)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 4 页