在C++笔试中常见的题目解析
来源:互联网 发布:阿里云域名解析后 编辑:程序博客网 时间:2024/06/01 09:04
我看了一些资料,找到一些在笔试中常用到的题目的解析,自己从中挑了一些作为练习,拿出来供大家参考!
直接以代码的形式给出了部分题目的解析代码!与君共勉之!
//在C++笔试中常见的题目解析#include <iostream>#include <algorithm>#include <time.h>using namespace std;//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;};//2.自定义实现String类的功能#include <string>#include <string.h>using namespace std;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;};//3.请编写自己的strcpy()char* MyStrcpy(char* strDest,const char* 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; //8.打印出本文件是有那个编译器编译的 #ifdef __cplusplus cout << "c++" << endl; #else cout << "C" << endl; #endif // __cplusplus return 0;}
2 0
- 在C++笔试中常见的题目解析
- c语言中关于static的用法,笔试中常见的题目
- c语言常见笔试题目
- C语言笔试面试常见编程题目(更新中)
- java常见笔试,面试题目深度解析
- Java常见笔试面试题目解析(十):Java中检查的异常与未检查的异常
- Java笔试、面试中常见的题目记录
- C/C++笔试面试常见题目2
- Java常见笔试面试题目解析(三):Java中异常执行流程
- 常见的java笔试面试题目大全
- 常见笔试面试题目与解析(1)
- 【C语言【面试题】【笔试题】题目:在字符串中找出第一个只出现一次的字符。
- 常见笔试/面试题目
- java常见笔试题目
- java常见笔试题目
- C++笔试常见题目
- Java常见笔试题目
- C++笔试常见题目
- POJ 1979-Red and Black
- 无法解析或打开软件包的列表或是状态文件 解决方案
- 杭电2391
- msg.substring()
- 【jQuery】简单的网页文本格式编辑器ckeditor
- 在C++笔试中常见的题目解析
- 基于IBM Tivoli TSM系统构建某局备份系统实施方案
- Eclipse调试多线程程序时无法到达断点
- DFS + 剪枝 —— POJ 1011
- 【三层】ADO.Net 知识小结
- ORACLE ERPR12.1(AIX6)APP-FND-01516应用产品用户名、口令或数据库无效。
- Android Handler Looper MessageQueue原理分析
- android网络框架学习之路开题篇
- 不容错过!开发者必备的十二大Android开发资源