本文由ps564767260贡献
以下三条输出语句分别输出什么?[C 易] 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; // 输出什么? 2. 非 C++内建型别 A 和 B,在哪几种情况下 B 能隐式转化为 A?[C++中等] 答: 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&; ); // 赋值操作,虽不是正宗的隐式类型转换,但也可以勉强算一个 3. 以下代码中的两个 sizeof 用法有问题吗?[C 易] void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{ for( size_t i=0; i<strlen(str);i++) if( 'a'<=str[i] &;&; str[i]<='z' ) str[i] -= ('a'-'A' ); } char str[] = "aBcDe"; cout << "str 字符长度为: " << sizeof(str)/sizeof(str[0]) << endl; UpperCase( str ); cout << str << endl; 4. 以下代码有什么问题?[C 难] void char2Hex( char c ) // 将字符以 16 进制表示{ char ch = c/0x10 + '0'; if( ch > '9' ) ch += ('A'-'9'-1); char cl = c%0x10 + '0'; if( cl > '9' ) cl += ('A'-'9'-1); cout << ch << cl << ' '; } char str[] = "I love 中国"; for( size_t i=0; i char2Hex( str[i] ); cout << endl; 5. 以下代码有什么问题?[C++易]
struct Test { Test( int ) {} Test() {} void fun() {} }; void main( void ) { Test a(1); (); Test b(); (); } 6. 以下代码有什么问题?[C++易] cout << (true?1:"1"
华为软件研发面试题 来自淘豆网www.taodocs.com转载请标明出处.