电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

2024年c++程序员招聘笔试大全详解VIP免费

2024年c++程序员招聘笔试大全详解_第1页
2024年c++程序员招聘笔试大全详解_第2页
2024年c++程序员招聘笔试大全详解_第3页
c/c++笔试题及分析目大全单向链表的反转是一种常常被问到的一种面试题,也是一种非常基础的问题。例如一种链表是这样的:1->2->3->4->5通过反转后成为5->4->3->2->1。最轻易想到的措施遍历一遍链表,运用一种辅助指针,存储遍历过程中目前指针指向的下一种元素,然后将目前节点元素的指针反转后,运用已经存储的指针往背面继续遍历。源代码如下:1.structlinka{2.intdata;3.linka*next;4.};5.voidreverse(linka*&head){6.if(headnull)7.return;8.linka*pre,*cur,*ne;9.pre=head;10.cur=head->next;11.while(cur)12.{13.ne=cur->next;14.cur->next=pre;15.pre=cur;16.cur=ne;17.}18.head->next=null;19.head=pre;20.}尚有一种运用递归的措施。这种措施的基本思想是在反转目前节点之前先调用递归函数反转后续节点。源代码如下。不过这个措施有一种缺陷,就是在反转后的最终一种结点会形成一种环,因此必须将函数的返回的节点的next域置为null。由于要变化head指针,因此我用了引用。算法的源代码如下:1.linka*reverse(linka*p,linka*&head)2.{3.if(pnull||p->nextnull)4.{5.head=p;6.returnp;7.}8.else9.{10.linka*tmp=reverse(p->next,head);11.tmp->next=p;12.returnp;13.}14.}②已知string类定义如下:classstring{public:string(constchar*str=null);//通用构造函数string(conststring&another);//拷贝构造函数~string();//析构函数string&operater=(conststring&rhs);//赋值函数private:char*m_data;//用于保留字符串};尝试写出类的组员函数实现。答案:string::string(constchar*str){if(strnull)//strlen在参数为null时会抛异常才会有这步判断{m_data=newchar[1];m_data[0]={content};}else{m_data=newchar[strlen(str)+1];strcpy(m_data,str);}}string::string(conststring&another){m_data=newchar[strlen(another.m_data)+1];strcpy(m_data,other.m_data);}string&string::operator=(conststring&rhs){if(this&rhs)return*this;delete[]m_data;//删除本来的数据,新开一块内存m_data=newchar[strlen(rhs.m_data)+1];strcpy(m_data,rhs.m_data);return*this;}string::~string(){delete[]m_data;}③网上流传的c++笔试题汇总1.求下面函数的返回值(微软)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=9999。答案:8思绪:将x转化为2进制,看具有的1的个数。2.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目的变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相似。申明一种引用的时候,牢记要对其进行初始化。引用申明完毕后,相称于目的变量名有两个名称,即该目的原名称和引用名,不能再把该引用名作为其他变量名的别名。申明一种引用,不是新定义了一种变量,它只表达该引用名是目的变量名的一种别名,它自身不是一种数据类型,因此引用自身不占存储单元,系统也不给引用分派存储单元。不能建立数组的引用。3.将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是同样的。这时,被调函数的形参就成为本来主调函数中的实参变量或对象的一种别名来使用,因此在被调函数中对形参变量的操作就是对其对应的目的对象(在主调函数中)的操作。(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分派存储单元,形参变量是实参变量的副本;假如传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。(3)使用指针作为函数的参数虽然也能到达与使用引用的效果,不过,在被调函数中同样要给形参分派存储单元,且需要反复使用"*指针变量名"的形式进行运算,这很轻易产生错误且程序的阅读性较差;另首先,在主调函数的调用点处,必须用变量的地址作为实参。而引用更轻易使用,更清晰。4.在什么时候需要使用“常引用”?假如既要运用引用提高程序的效率,又要保护传递给函数的数据不在函数中被变化,就应使用常引用。...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

静心书店+ 关注
实名认证
内容提供者

专注于各类考试试卷和真题。

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部