面试题目,看你能够做对几个!解决办法
面试题目,看你能够做对几个!
1.定义一个结构:
第一个数据项的取值范围为0~127;
第二个数据项占用1 bit 的长度;其取值范围为0/1;
第三个数据项占用1 bit 的长度;其取值为1;
第四个数据项占用1 bit 的长度;其取值为0;
第五个数据项占用1 bit 的长度;暂时保留使用;
2.找出下面程序的错误:
const int MAX = 500;
unsigned char Array[MAX];
for (int i=0; i <MAX; i++)
{
Array[i] = i;
printf( "%d ", Array[i]);
}
3.使str的内容颠倒输出;
char str[]= "I love China! ";
char *p1 = Array;
int length = sizeof(str);
char *p2 =_____(1)____;
while (p1 <p2)
{
_____(2)____
_____(3)____
_____(4)____
_____(5)____
}
printf( "Str=%s ",str);
4.输出结果:
void main()
{
int array[]={1,2,3,4,5};
int *ptr = array;
ptr++;
printf( "%d,%d ",*(ptr-1),*(array+1));
}
5.定义一个整形指针a,使数据0x1FFF存放的内存地址为0x55000;
6.编写一个函数,不利用第三个数据交换两个数据的值;
7.使整形变量的第4位为1,其余位不变;清除第四位,其余位不变;
------解决方案--------------------
2 Array[i] = i; 溢出了
printf( "%d ", Array[i]);
%d输出的是四字节整数, Array[i] 只有一个字节, 访问越界同时输出结果不正确
------解决方案--------------------
第一个有意思,不知道是不是这样的要求:
struct TestStruct
{
public:
TestStruct()
{
c=1;
d=0;
}
public:
unsigned int a:7;
int b:1;
protected:
int c:1;
int d:1;
public:
int e:1;
};
------解决方案--------------------
6.
void swap(int &a,int & b)
{
a=a < < sizeof(int) + b;
b=(a & (1 < <sizeof(int)))> > sizeof(int);
a=a & ((1 < <sizeof(int)) - 1);
}
------解决方案--------------------
4.
Little_endian:2^9 2^25
Big_endian:2^24 2^8
------解决方案--------------------
class theRe{
BYTE firstNum;
bool seNum;
static const bool thrNum=1 ;
static const bool foNum =0;
byte fi;
} ;
1.定义一个结构:
第一个数据项的取值范围为0~127;
第二个数据项占用1 bit 的长度;其取值范围为0/1;
第三个数据项占用1 bit 的长度;其取值为1;
第四个数据项占用1 bit 的长度;其取值为0;
第五个数据项占用1 bit 的长度;暂时保留使用;
2.找出下面程序的错误:
const int MAX = 500;
unsigned char Array[MAX];
for (int i=0; i <MAX; i++)
{
Array[i] = i;
printf( "%d ", Array[i]);
}
3.使str的内容颠倒输出;
char str[]= "I love China! ";
char *p1 = Array;
int length = sizeof(str);
char *p2 =_____(1)____;
while (p1 <p2)
{
_____(2)____
_____(3)____
_____(4)____
_____(5)____
}
printf( "Str=%s ",str);
4.输出结果:
void main()
{
int array[]={1,2,3,4,5};
int *ptr = array;
ptr++;
printf( "%d,%d ",*(ptr-1),*(array+1));
}
5.定义一个整形指针a,使数据0x1FFF存放的内存地址为0x55000;
6.编写一个函数,不利用第三个数据交换两个数据的值;
7.使整形变量的第4位为1,其余位不变;清除第四位,其余位不变;
------解决方案--------------------
2 Array[i] = i; 溢出了
printf( "%d ", Array[i]);
%d输出的是四字节整数, Array[i] 只有一个字节, 访问越界同时输出结果不正确
------解决方案--------------------
第一个有意思,不知道是不是这样的要求:
struct TestStruct
{
public:
TestStruct()
{
c=1;
d=0;
}
public:
unsigned int a:7;
int b:1;
protected:
int c:1;
int d:1;
public:
int e:1;
};
------解决方案--------------------
6.
void swap(int &a,int & b)
{
a=a < < sizeof(int) + b;
b=(a & (1 < <sizeof(int)))> > sizeof(int);
a=a & ((1 < <sizeof(int)) - 1);
}
------解决方案--------------------
4.
Little_endian:2^9 2^25
Big_endian:2^24 2^8
------解决方案--------------------
class theRe{
BYTE firstNum;
bool seNum;
static const bool thrNum=1 ;
static const bool foNum =0;
byte fi;
} ;