第一题:
/*
typedef struct _mf
{
int a ;
int b ;
char c ;
int d ;
}mf ;
 
在vc下默认设置时输出多少?
int main(int argc, char* argv[])
{
do 
{
cout << &(((mf*)0)->d)<<endl ;
} while(0);
return 0;
}
*/第二题
/*
class  CA
{
int a ;
~CA(){}
};class CB
{
int b ;
virtual ~CB(){}
};int main()
{ cout << sizeof(CA)-sizeof(CB) ? 1 : 0 <<endl ;
}*/
/*第三题
把Fun转为非递归
void Fun(int *n , int nn)
{ if(nn==0)
return ;
for(int i = 0 ; i<nn-1 ; ++i)
{
if(n[i]>n[i+1])
{//一下几行代码具体的记不起了
n[i] += n[i+1] ;
n[i+1] = n[i] - n[i+1] ;
n[i]   -= n[i+1] ; 
}
} Fun(n+1 , nn-1) ;
}一下是我的答案,不过他要求高效率,不知道还什么高效方法?
void Fun2(int *n , int nn)
{
for(int i=0 ; i<nn-1 ; ++i)
for(int j=i ; j<nn-1 ; ++j)
if(n[j]>n[j+1])
{
n[j] += n[j+1] ;
n[j+1] = n[j] - n[j+1] ;
n[j]   -= n[j+1] ; 
}
}*/第四题:
在c下实现两个数的交换,模拟c++的模板功能
一下是我的答案,不过他要求高效率,不知道还什么高效方法?
void Ex(void *a , void *b , int type_len)
{
char *pa = (char*)a ;
char *pb = (char*)b ;
for(int i=0 ; i<type_len ; ++i)
{
*(pa+i) += *(pb+i) ;
*(pb+i) = *(pa+i) - *(pb+i) ;
*(pa+i) = *(pa+i) - *(pb+i) ;
}
}int main()
{
int a = 1 ; 
int b = 2 ;
Ex((void*)&a , (void*)&b , sizeof(a)) ;
cout <<a<<" "<<b <<endl ;
}
*/
第五题:
输出一个整数的2的指数和表达式
一下是我的答案,不过他要求高效率,不知道还什么高效方法?
/*
void OutPutEx(int num)
{
int count ;
int result ;
while(num>0)
{
count = 0  ;
result = 1 ;
while(result<=num)
{
result *= 2 ;
++count ;
}
if(result>num)
{
result /= 2 ;
--count ;
}
num -= result ;
if(num!=0)
cout<<2<<"^"<<count<<"+" ;
else
cout<<2<<"^"<<count<<endl ; }
}int main()
{
int a = 13 ;
OutPutEx(a) ;
return 1 ;
}
*/