嵌入式Linux笔试题.docVIP

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux笔试题.doc

1. 以下三条输出语句分别输出什么? char str1[] = abc; char str2[] = abc; const char str3[] = abc; const char str4[] = abc; const char* str5 = abc; const char* str6 = abc; cout boolalpha ( str1==str2 ) endl; // 输出什么? cout boolalpha ( str3==str4 ) endl; // 输出什么? cout boolalpha ( str5==str6 ) endl; // 输出什么? 答:分别输出false,false,true。str1和str2都是字符数组,每个都有其自己的存储区,它们的值则是各存储区首地址,不等;str3和str4同上,只是按const语义,它们所指向的数据区不能修改。str5和str6并非数组而是字符指针,并不分配存储区,其后的“abc”以常量形式存于静态数据区,而它们自己仅是指向该区首地址的指针,相等。 3. 非C++内建型别 A 和 B,在哪几种情况下B能隐式转化为A? 答: a. class B : public A { ……} // B公有继承自A,可以是间接继承的 b. class B { operator A( ); } // B实现了隐式转化为A的转化 c. class A { A( const B ); } // A实现了non-explicit的参数为B(可以有其他带默认值的参数)构造函数 d. A operator= ( const A ); // 赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一个 4. 以下代码有什么问题? struct Test { Test( int ) {} Test() {} void fun() {} }; void main( void ) { Test a(1); a.fun(); Test b(); b.fun(); } 答:变量b定义出错。按默认构造函数定义对象,不需要加括号。 5. 以下代码有什么问题? cout (true?1:1) endl; 答:三元表达式“?:”问号后面的两个操作数必须为同一类型。 6. 以下代码能够编译通过吗,为什么? unsigned int const size1 = 2; char str1[ size1 ]; unsigned int temp = 0; cin temp; unsigned int const size2 = temp; char str2[ size2 ]; 答:str2定义出错,size2非编译器期间常量,而数组定义要求长度必须为编译期常量。 During my test in linux environment. The above code could be compiled successfully. But if we initialize the defined arrary like this “char str2[ size2 ] = {0};”, there would be a compile error informing that “variable-sized object `str2 may not be initialized”. 7. 以下反向遍历array数组的方法有什么错误? vector array; array.push_back( 1 ); array.push_back( 2 ); array.push_back( 3 ); for( vector::size_type i=array.size()-1; i=0; --i ) // 反向遍历array数组 { cout array endl; } 答:首先数组定义有误,应加上类型参数:vectorint array。其次vector::size_type被定义为unsigned int,即无符号数,这样做为循环变量的i为0时再减1就会变成最大的整数,导致循环失去控制。 8. 以下代码中的输出语句输出0吗,为什么? struct CLS { int m_i; CLS( int i ) : m_i(i) {} CLS() { CLS(0); } }; CLS obj; cout obj.m_i endl; 答:不能。在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。只有在生成对象时,初始化表达式才会随相应的构造函数一起调用。 9. C++中的空类,默认产生哪些类成员函数? 答: class Empty { pub

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档