1 / 6
文档名称:

经典c 面试题三.doc

格式:doc   大小:89KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

经典c 面试题三.doc

上传人:蓝天 2021/9/10 文件大小:89 KB

下载得到文件列表

经典c 面试题三.doc

相关文档

文档介绍

文档介绍:结构与联合有和区别?
结构和联合都是由多个不同的数据类型成员组成,但在任何同一时刻,联合中只存放了一个被选中的成 员(所有成员共用一块地址空间),而结构的所有成员都存在(不同成员的存放地址不同)。
对于联合的不同成员赋值,将会对其它成员重写,原来成员的值就不存在了,而对于结构的不同成员赋 值是互不影响的。
下面关于“联合”的题目的输出?
a)
#include
union
(
inti;
char x[2];
}a;
void main()
(
[0] = 10;
[1] = 1;
printf("%d",);
}
答案:266(低位低地址,高位高地址,内存占用情况是OX010A)
b)
main()
(
union(
inti;
struct(
char first;
char second;
}half;
Jnumber;
=0x4241;
printf("%c%c\n", , );
=,a';
number. =,b';
printf("%x\n", number.!);
getch();
)
答案:AB (0x41对应A\是低位;0x42对应B,是高位)
6261 ( 和 共用一块地址空间)
已知 strcpy 的函数原型:char *strcpy(char *strDest, const char *strSrc)其中 strDest 是目的字符串, strSrc是源字符串。不调用C++/C的字符串库函数,请编写函数strcpy。
答案:
char *strcpy(char *strDest, const char *strSrc)
(
if ( strDest == NULL || strSrc == NULL)
return NULL;
if ( strDest == strSrc)
return strDest;
char *tempptr = strDest;
while( (*strDest++ = *strSrc++) != '\0')
return tempptr;
}
已知String类定义如下:
class String
(
public:
String(const char *str = NULL); // 通用构造函数
String(const String &another); // 拷贝构造函数
~ String(); //析构函数
String & ope rater =(const String &rhs); // 赋值函数
private:
char *m_data; //用于保存字符串
);
尝试写出类的成员函数实现。
答案:
String::String(const char *str)
(
if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断
(
m_data = new char[1];
m_data[0] = 10';
)