C/C++面试
gnuser
up,永不止步
展开
-
面试题一: char * 和 char[]的比较
某题: char str1[] = "abc";char str2[] = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc";const char* str6 = "abc";cout << boolalpha << (原创 2009-08-20 21:36:00 · 1738 阅读 · 1 评论 -
int 转换为 char*
char* int2char(int p){ int length=1; int temp = p; bool flag = true; if(p < 0) { flag = false; p = -p; } while((temp /= 10) != 0) { length++;原创 2009-08-26 00:56:00 · 945 阅读 · 0 评论 -
自己写memcpy
char *mymemcopy(char *dest, const char*src, size_t count){ assert(src != NULL && dest != NULL && count >= 0); if(src >= dest) while(count--) { *dest++ = *src++; }原创 2009-08-23 02:13:00 · 699 阅读 · 0 评论 -
三元表达式的使用
5. 以下代码有什么问题?[C++易]cout 答:三元表达式“?:”问号后面的两个操作数必须为同一类型。原创 2009-08-22 18:28:00 · 746 阅读 · 0 评论 -
float 数据的存储方式
3. 以下两条输出语句分别输出什么?[C++难]float a = 1.0f;cout cout cout float b = 0.0f;cout cout cout 答:分别输出false和true。注意转换的应用。(int)a实际上是以浮点数a为参数构造了一个整型数,该整数的值是1,(int&)a则是告诉编译器将a当作整数看(并没有做任何实质上的转换)。因为1以整数形式存放和以浮点形原创 2009-08-22 17:45:00 · 627 阅读 · 0 评论 -
强制转换
class A{public: void print1(){ printf("1/n"); } virtual void print2(){ printf("2/n"); }};class B : public A{public: void print1(){转载 2009-08-23 15:41:00 · 533 阅读 · 0 评论 -
位域的使用
1.下面的程序在INTEL机子上运行 struct B { union { struct { unsigned int i:2; unsigned原创 2009-08-23 13:23:00 · 430 阅读 · 0 评论 -
sizeof使用
void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母{ for( size_t i=0; i if( a str[i] -= (a-A );}char str[] = "aBcDe";cout UpperCase( str );cout 答:函数内的sizeof有问题。根据语法,原创 2009-08-23 02:24:00 · 408 阅读 · 0 评论 -
vector删除数据
6. 以下代码有什么问题?[STL易]typedef vector IntArray;IntArray array;array.push_back( 1 );array.push_back( 2 );array.push_back( 2 );array.push_back( 3 );// 删除array数组中所有的2for( IntArray::iterator i原创 2009-08-22 18:41:00 · 2832 阅读 · 3 评论 -
好笑,写一个病毒
写一个病毒 这是答案,我只能淡淡的笑,这是什么卵.搞死别人就是病毒了?while (1){int *p = new int[10000000];}原创 2009-08-23 16:01:00 · 2346 阅读 · 3 评论 -
类默认的成员函数
10. C++中的空类,默认产生哪些类成员函数?[C++易]答:class Empty{public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty&原创 2009-08-23 01:07:00 · 430 阅读 · 0 评论 -
在构造函数中调用构造函数
struct CLS{ int m_i; CLS( int i ) : m_i(i) {} CLS() { CLS(123); }};CLS obj;cout 输出不是123,在默认构造函数内部再调用带参的构造函数属用户行为而非编译器行为,亦即仅执行函数调用,而不会执行其后的初始化表达式。只有在生成对象时,初始化表达式才会随相应的构造函数原创 2009-08-22 20:46:00 · 731 阅读 · 0 评论 -
数组是否能在运行期定义大小
8. 以下代码能够编译通过吗,为什么?[C++易]unsigned int const size1 = 2;char str1[ size1 ];unsigned int temp = 0;cin >> temp;unsigned int const size2 = temp;char str2[ size2 ]; 答:在vc2008下编译,str2定义出错,size2非编译器期间常量,而原创 2009-08-22 19:23:00 · 600 阅读 · 2 评论 -
构造函数的简单使用
4. 以下代码有什么问题?[C++易]struct Test{ Test( int ) {} Test() {} void fun() {}};void main( void ){ Test a(1); a.fun(); Test b(); b.fun();}答:变量b定义出错。按默认构造函数定义对象,不需要加括号。原创 2009-08-22 18:27:00 · 411 阅读 · 0 评论 -
vector的简单应用
2. 以下反向遍历array数组的方法有什么错误?[STL易]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 }答:首先数组定义有误,应加上类原创 2009-08-20 23:57:00 · 671 阅读 · 0 评论 -
c版快速排序 + 随机产生一组测试数据
int count = 0;void swap(int& a, int& b){ int c = a; a = b; b = c; //count++; cout " << b << endl;}void quickSort(int array[], int left, int right){ if (left >= right) { //co原创 2009-08-26 00:57:00 · 1326 阅读 · 0 评论