C++的一些笔试面试题总结
2014-02-24 16:09
429 查看
1.实现String函数的构造函数,拷贝构造函数,析构函数,赋值运算符重载
2.已知链表结点的结构和头结点head
#include <IOSTREAM> #include <STRING> using namespace std; class String { public: //通用构造函数 String(const char * data); //拷贝构造函数 String(const String & str); //析构函数 ~String(); //赋值运算符重载 String & operator = (const String & str); private: char * m_data; }; //通用构造函数 String::String(const char * data) { if (data == NULL) { this->m_data = new char[1]; this->m_data[0] = '\0'; } else { this->m_data = new char[strlen(data) + 1]; strcpy(this->m_data,data); } } //拷贝构造函数 String::String(const String & str) { this->m_data = new char[strlen(str.m_data) + 1]; strcpy(this->m_data,str.m_data); } //赋值运算符重载 String & String::operator = (const String & str) { if (this == &str) { return *this; } delete[] this->m_data; this->m_data = new char[strlen(str.m_data) + 1]; strcpy(this->m_data,str.m_data); return *this; } //析构函数 String::~String() { delete[] this->m_data; } void main() { String str1("aaa"); String str2(str1); String str3("bbb"); String str4("ccc"); str3 = str4; }
2.已知链表结点的结构和头结点head
struct Node { int data; Node *next; };写出链表逆序:
#include <IOSTREAM> using namespace std; typedef struct Node { int data; Node *next; }Node,*List; //链表逆序 Node * ReverseList(Node *head) { if (head == NULL || head->next == NULL) { return head; } Node *p1 = NULL; Node *p2 = head->next; Node *p3 = p2->next; while (p3 != NULL) { p1 = p3->next; p3->next = p2; p2 = p3; p3 = p1; } head->next->next = NULL; head->next = p2; return head; } //输出链表 void PrintList(List head) { Node *p = head->next; while (p != NULL) { printf("%d",p->data); p = p->next; } printf("\n"); } void main() { //链表头结点 Node *head; head = (Node *)malloc(sizeof(Node)); head->data = -1; head->next = NULL; //链表添加五个数据 Node *p = head; Node *q; for (int i = 0;i < 5;i++) { //创建一个结点 q = (Node *)malloc(sizeof(Node)); q->data = i; q->next = NULL; // p->next = q; p = q; } //输出原链表 PrintList(head); //输出倒序后的链表 head = ReverseList(head); PrintList(head); }
相关文章推荐
- 《Linux C编程实战》中一些基础C语言知识 && 一些笔试面试题总结
- 总结手游客户端笔试面试题(Cocos2dx客户端、C/C++、lua、数据结构算法等)
- c++基础面试题总结
- 一些操作系统笔试、面试题
- 关于C语言与C++的一些小知识总结
- C++ 希尔排序算法的实现与改进(含笔试面试题)
- C/C++ 的一些乱七八糟的总结(一)
- C++笔试题总结(一)
- 针对最近笔试的一些排序算法总结(未完待续)
- c++面试题总结(4)
- C++笔试经典题目总结
- 关于Java基础的一些笔试题总结
- 面试题总结——位的一些东西
- C++ STL list对对象变量操作的一些总结
- 对C和C++区别的一些零散总结
- C++笔试面试总结
- C/C++常见笔试面试题-02(网络篇)
- C++的一些小总结 类 静态成员变量/函数 this指针
- C/C++常见笔试面试题-03(高质量编程)
- 一些公司的2016年校招C/C++开发岗笔试题目(三)