一:
已知类String的原型为:
class String
{
};
请编写String的上述4个函数。
答案:
版本1
// String 的析构函数
String::~String(void) // 3 分
{
// 由于m_data 是内部数据类型,也可以写成delete m_data;
}
String::String(const char *str)
{
{
else
}
// 拷贝构造函数
String::String(const String &other)
{
}
// 赋值函数
String & String:operate =(const String &other)
{
// (1) 检查自赋值
if(this == &other)
return *this;
// (2) 释放原有的内存资源
delete [] m_data;
// (3)分配新的内存资源,并复制内容
m_data = new char[length+1]; // 若能加NULL 判断则更好
// (4)返回本对象的引用
}
版本2
String::String (const char *str)
{
}
}
版本3
String::String (const char *str)
{
}
~String::String(void)
{
}
二:改错题,只能在原来的基础上增加代码,不能删除代码
#include
#include
void foo(int age,char *b)
{
}
int main()
{
}
答案
版本1
#include
#include
void foo(int age,char **b)
{
}
int main()
{
}
版本2
#include
#include
void foo(int age,char *&b)
{
}
int main()
{
}
三:有程序片断如下
int main()
{
}
请问该程序用的是进程方式还是线程方式,并说明进程与线程的区别:
请问该程序输出什么结果?
四、constant pointer points for String
五、下面等价的是:
A int i=0
六、排序二叉树插入一个节点或双向链表的实现
四~六为IBM面试题。
七、指针++的含义和用法
八、stack 和heap的分配,rt-os的特点、同步的方式
九、怎样避免内存泄漏的问题
十、编程实现十进制数转化为十六进制输出,不准用任何已经定义的库函数,比方说String,Math。int toHex(int
)
十一、编程实现大于100的两个数值相乘的结果输出,同样不准使用任何已定义函数,Math,string,convert等。比方说12345*32534677
输入为两个string
输出为一个长型的
十二、int delete(node * head)
{
head=head->link;
return
}
指出程序的错误,并且写出正确的程序
十三、写一个程序可以算出字节在计算机中的存储是由大到小还是有小到大。
十四、一段程序,写出输出结果
大概是
class
A
{