在C++笔试中常见的题目解析

我看了一些资料,找到一些在笔试中常用到的题目的解析,自己从中挑了一些作为练习,拿出来供大家参考! 直接以代码的形式给出了部分题目的解析代码!与君共勉之!

;//1.链表反转class ReverseLink{public:ReverseLink(){head=NULL;}~ReverseLink(){while(head){LinkNode* tmp=head->next;delete head;head=tmp;}}public:void createLink(){head=new LinkNode();LinkNode* pH=head;srand((unsigned int)time(NULL));for(int i=0;i<10;i++){LinkNode* pTmp=new LinkNode();pTmp->next=NULL;pTmp->data=rand();pH->next=pTmp;pH=pTmp;}pH->next=NULL;}void OutPut(){LinkNode* pH=head->next;while(pH!=NULL){cout << pH->data << ” “;pH=pH->next;}cout << endl;}void MyReverse(){if(head==NULL || head->next==NULL)return ;LinkNode *next,*cur;cur=head->next;head->next=NULL;while(cur){next=cur->next;cur->next=head->next;head->next=cur;cur=next;}}private:typedef struct _Link{int data;struct _Link* next;}LinkNode;LinkNode* head;};;class MyString{public:MyString(){ m_data=NULL; }MyString(const char*str=NULL){if(str==NULL){m_data=new char[1];m_data[0]=’\0′;}else{if(m_data)delete []m_data;m_data=new char[strlen(str)+1];strcpy(m_data,str);}}MyString(const MyString&another){if(another.m_data!=NULL){if(m_data!=NULL)delete []m_data;m_data=new char[strlen(another.m_data)+1];strcpy(m_data,another.m_data);}}~MyString(){if(m_data!=NULL)delete []m_data;}public:MyString& operator=(const MyString&rhs){if(this==&rhs)return *this;if(m_data!=NULL)delete []m_data;m_data=new char[strlen(rhs.m_data)+1];strcpy(m_data,rhs.m_data);return *this;}private:char* m_data;};* strSrc){if(strDest == NULL || strSrc == NULL)return NULL;if(strDest == strSrc)return strDest;char* tmp=strDest;while((*strDest++=*strSrc++) != ‘\0’)return tmp;return NULL;}/*4.C++是不是类型安全的? C++不是类型安全的,两个不同类型的指针之间可以进行强制转换*//*5.描述内存分配的方式以及他们的区别?(1).从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2).在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。(3).从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也最多。*//*6.说说const与#define相比的区别于联系? const常量是有数据类型的,而宏变量是没有数据类型的; 编译器可以对const进行类型检查,而对后者仅仅是进行字符串的替换,可能会产生不可以预料的错误 有些集成化的调试工具可以对const常量进行调试 ,而对于#define类的宏常量不能进行替换。*/int main(){ReverseLink rLink;rLink.createLink();rLink.OutPut();rLink.MyReverse();rLink.OutPut();//7.打印出文件目录已经成本语句所在的行号cout << __FILE__ << endl;cout << __LINE__ << endl;<< “c++” << endl;#elsecout << “C” << endl;;}

若不给自己设限,则人生中就没有限制你发挥的藩篱。

在C++笔试中常见的题目解析

相关文章:

你感兴趣的文章:

标签云: