版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、现在的公司招聘,都要笔试面试.如果你不是那种编程功底非常深厚的人,又不好好准备一番,在笔试面试中往往会处于被动局面.虽然有些笔试题是故意为难我们,有点钻牛角尖.但是很多笔试题面试题确实能够很好地看出我们的基础.在这里,我就略去那些钻牛角尖的题.从csdn论坛我近半年的收集中选出10道有代表性的题目,难度基本上是逐渐加大.对数组,指针,数据结构,算法,字符串,文件操作等问题都有覆盖.主要以c语言的实现为主,也有C+的题.大家可以先做做这10道题,测试一下自己的水平.1. 下面这段代码的输出是多少(在32位机上).char*p;char*q20;char*m2020;int(*n)10;struc
2、tMyStructchardda;doubledda1;inttype;;MyStructk;printf("%d%d%d%d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k);2.(1)chara223=1,6,3,5,4,15,3,5,33,23,12,7;for(inti=0;i<12;i+)printf("%d",);在空格处填上合适的语句,顺序打印出a中的数字(2) char*p,a168;p=a是否会导致程序在以后出现问题?为什么?3. 用递归方式,非递归方式写函数将一个字符串反转.函
3、数原型如下:char*reverse(char*str);4.strcpy函数和memcpyg数有什么区别?它们各自使用时应该注意什么问题?5. 写一个函数将一个链表逆序.一个单链表,不知道长度,写一个函数快速找到中间节点的位置.写一个函数找出一个单向链表的倒数第n个节点的指针.(把能想到的最好算法写出).6. 用递归算法判断数组aN是否为一个递增数组。7.有一个文件(名为a.txt)如下,每行有4项,第一项是他们的名次,写一个c程序,将五个人的名字打印出来.并按名次排序后将5行数据仍然保存到a.txt中.使文件按名次排列每行.2,07010188,0711,李镇豪,1,07010154,04
4、21,陈亦良,3,07010194,0312,凌瑞松,4,07010209,0351,罗安祥,5,07010237,0961,黄世传,8. 写一个函数,判断一个unsignedchar字符有几位是1.写一个函数判断计算机的字节存储顺序是升序(little-endian)还是降序(big-endian).9. 微软的笔试题.ImplementastringclassinC+withbasicfunctionalitylikecomparison,concatenation,inputandoutput.Pleasealsoprovidesometestcasesandusingscenarios
5、(samplecodeofusingthisclass).PleasedonotuseMFC,STLandotherlibrariesinyourimplementation.10. 有个数组a100存放了100个数,这100个数取自1-99,且只有两个相同的数,剩下的98个数不同,写一个搜索算法找出相同的那个数的值.(注意空间效率时间效率尽可能要低).这十道题还是能够看出自己的水平如何的.如果你能不假思索地做出这10道题,估计去国外大公司是没有问题了,呵呵.答案我在整理中,以后陆续发布下面有些题也不错,可以参考.1 .下面的代码输出是什么,为什么?voidfoo(void)unsignedi
6、nta=6;intb=-20;(a+b>6)?puts(">6"):puts("<=6");/puts为打印函数输出>6就是考察隐式转换int型变量转化成unsignedint,b成了正数2. b)运行下面的函数会有什么结果?为什么?voidfoo(void)charstring10,str110;inti;for(i=0;i<10;i+)str1i='a'strcpy(string,str1);printf("%s",string);首先搞清strcpy函数的实现方法,char*strc
7、py(char*strDest,constchar*strSrc)if(strDest=NULL)|(strSrc=NULL)throw"Invalidargument(s)"char*strDestCopy=strDest;while(*strDest+=*strSrc+)!='0');returnstrDestCopy;str1末尾没有'0结束标志,所以strcpy不知道拷贝到何时结束printf函数,对于输出char*类型,顺序打印字符串中的字符直到遇到空字符(,0,)或已打印了由精度指定的字符数为止下面是微软的两道笔试题3. Implemen
8、tastringclassinC+withbasicfunctionalitylikecomparison,concatenation,inputandoutput.Pleasealsoprovidesometestcasesandusingscenarios(samplecodeofusingthisclass).PleasedonotuseMFC,STLandotherlibrariesinyourimplementation.我的实现方案如下,这道题真地对c+的主要特性都进行了较好地考察.String.h:#ifndefSTRING_H#defineSTRING_H#include<
9、;iostream>usingnamespacestd;classStringpublic:String();String(intn,charc);String(constchar*source);String(constString&s);/String&operator=(char*s);String&operator=(constString&s);String();char&operator(inti)returnai;constchar&operator(inti)constreturnai;/对常量的索引.String&
10、operator+=(constString&s);intlength();friendistream&operator>>(istream&is,String&s);/搞清为什么将>>设置为友元函数的原因./friendbooloperator<(constString&left,constString&right);friendbooloperator>(constString&left,constString&right);/下面三个运算符都没必要设成友元函数,这里是为了简单.friend
11、booloperator=(constString&left,constString&right);friendbooloperator!=(constString&left,constString&right);private:char*a;intsize;#endifString.cpp:#include"String.h"#include<cstring>#include<cstdlib>String:String()a=newchar1;a0='0'size=0;String:String(in
12、tn,charc)a=newcharn+1;memset(a,c,n);an='0'size=n;String:String(constchar*source)if(source=NULL)a=newchar1;a0='0'size=0;elsesize=strlen(source);a=newcharsize+1;strcpy(a,source);String:String(constString&s)size=strlen(s.a);/可以访问私有变量a=newcharsize+1;/if(a=NULL)strcpy(a,s.a);String&am
13、p;String:operator=(constString&s)if(this=&s)return*this;elsedeletea;size=strlen(s.a);a=newcharsize+1;strcpy(a,s.a);return*this;String:String()deletea;/String&String:operator+=(constString&s)intj=strlen(a);intsize=j+strlen(s.a);char*tmp=newcharsize+1;strcpy(tmp,a);strcpy(tmp+j,s.a);de
14、letea;a=tmp;return*this;intString:length()returnstrlen(a);main.cpp:#include<iostream>#include"String.h"usingnamespacestd;booloperator=(constString&left,constString&right)inta=strcmp(left.a,right.a);if(a=0)returntrue;elsereturnfalse;booloperator!=(constString&left,constStr
15、ing&right)return!(left=right);ostream&operator<<(ostream&os,String&s)intlength=s.length();for(inti=0;i<length;i+)/os<<s.ai;这么不行,私有变量.os<<si;returnos;Stringoperator+(constString&a,constString&b)Stringtemp;temp=a;temp+=b;returntemp;booloperator<(constStr
16、ing&left,constString&right)intj=0;while(leftj!='0')&&(rightj!='0')if(leftj<rightj)returntrue;elseif(leftj=rightj)j+;continue;elsereturnfalse;if(leftj='0')&&(rightj!='0')returntrue;elsereturnfalse;booloperator>(constString&left,constSt
17、ring&right)inta=strcmp(left.a,right.a);if(a>0)returntrue;elsereturnfalse;istream&operator>>(istream&is,String&s)deletes.a;s.a=newchar20;intm=20;charc;inti=0;while(is.get(c)&&isspace(c);if(is)dos.ai=c;i+;/*if(i>=20)cout<<"Inputtoomuchcharacters!"<
18、;<endl;exit(-1);*/if(i=m-1)s.ai='0'char*b=newcharm;strcpy(b,s.a);m=m*2;s.a=newcharm;strcpy(s.a,b);deleteb;while(is.get(c)&&!isspace(c);/如果读到空白,将其放回.if(is)is.unget();)s.size=i;s.ai='0'returnis;)intmain()Stringa="abcd"Stringb="www"/Stringc(6,b);这么写不对Strin
19、gc(6,'l');Stringd;Stringe=a;/abcdStringf;cin>>f;/需要输入Stringg;g=a+b;abcdwwwif(a<b)cout<<"a<b"<<endl;elsecout<<"a>=b"<<endl;if(e=a)cout<<"e=a"<<endl;elsecout<<"e!=a"<<endl;b+=a;cout<<a&
20、lt;<endl;cout<<b<<endl;cout<<c<<endl;cout<<d<<endl;cout<<e<<endl;cout<<f<<endl;cout<<g<<endl;cout<<g0<<endl;return0;4. Implementasingle-directionlinkedlistsortingalgorithm.Pleasefirstdefinethedatastructureoflinked
21、listandthenimplementthesortingalgorithm.edabccadece才开始做5. 编写一个函数,返回两个字符串的最大公串!例如,“adbccadebbca”和“返回“ccade”<<联想笔试题>>1设计函数intatoi(char*s)。intatoi(constchar*nptr);函数说明atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('0')才结束转换,并将结果返回。返回值返回转换后的整型数。#include<stdio.h>#
22、include<ctype.h>intmyAtoi(constchar*s)intresult=0;intflag=1;inti=0;while(isspace(si)i+;if(si='-')flag=-1;i+;if(si='+')i+;while(si!='0')if(si>'9')|(si<'0')break;intj=si-'0'result=10*result+j;i+;result=result*flag;returnresult;intmain()char*a
23、="-1234def"char*b="+1234"inti=myAtoi(a);intj=myAtoi(b);printf("%dn",i);printf("%d",j);return0;2inti=(j=4,k=8,l=16,m=32);printf(“%d”,i);输出是多少?3解释局部变量、全局变量和静态变量的含义。4解释堆和栈的区别。5论述含参数的宏与函数的优缺点。<<普天C+建试题>>1 .实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。2 写一个函数,将其中的
24、t都转换成4个空格。3 .Windows程序的入口是哪里?写出Windows消息机制的流程。4如何定义和实现一个类的成员函数为回调函数?5. C+里面是不是所有的动作都是main()引起的?如果不是,请举例。6. C+里面如彳5声明constvoidf(void)函数为C程序中的库函数?7下列哪两个是等同的intb;Aconstint*a=&b;Bconst*inta=&b;Cconstint*consta=&b;Dintconst*consta=&b;8内联函数在编译时是否做参数类型检查?voidg(base&b)b.play;voidmain()so
25、ns;g(s);return;<<华为笔试题>>笔试内容包括:1。技术试题:系统windows/linux,网络基础,通信基础,数据库2。能力试题:根据两故事发表看法3。英语作文筛选后进入面试。共有四轮面试:问题一:两笔记本电脑连起来后拼不通,你觉得可能有哪些问题?问题二:我们在南京,和深圳的网络是通的,但和北京的网络不通,你以怎样的顺序检查问题?问题三:解释什么叫“透明”?什么叫“网格”?问题四:交换和路由的区别?vlan的特点?问题五:画一个积分电路和一个微分电路。问题六:知道现在的路由器是第几代了吗?问题一:两笔记本电脑连起来后拼不通,你觉得可能有哪些问题?答:首
26、选想到是软件问题,软件问题首选查找是否安装有防火墙程序,如否则查看驱动程序有无问题,然后如果是WINDOWS系统,再查看TCP/IP协议IP地址是否在一个子网,如果以上都无问题,则查看硬件,顺序是网卡网线。问题二:我们在南京,和深圳的网络是通的,但和北京的网络不通,你以怎样的顺序检查问题?答:首选要知道三方的网络拓朴结构与设计规划,然后确定北京地区网络内部是否畅通,网络是否是新建立了,如果不是新建的网,首先要知道以前是否通,如通,则此次不通是在做过什么操作后不通的,确定后首先排除线路故障,然后再看双方连接的路由设置。问题三:解释什么叫“透明”?什么叫“网格”?答:透明对用户来说是感觉不到的,也
27、就是说不论对网络加了什么设备或软件,用户都感觉不到,这样的好处是简化了用户的操作复杂性。网络的概念,是说通过无线或有线将多种服务综合连接到一起,让用户彼此之间可以交换信息。问题四:交换和路由的区别?vlan的特点?答:交换和路由最大的区别在于交换是通过ASIC专用硬件处理数据,路由是通过CPU用软件的形式处理数据。VLAN的特点为将一个物理网络从逻辑上划分出了多个广播域1 请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。2 .请你详细地解释一下IP协议的定义,在哪个层上面?主要有什么作用?TCP与UDP呢?3请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?4 .
28、请问C+勺类和C里面的struct有什么区别?5请讲一讲析构函数和虚函数的用法和作用。6 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?全局变量是在所有函数之外声明的变量,局部变量则是在函数体内声明的变量。全局变量放在内存的全程数据区,局部变量在栈上申请。全局数据区分为两部分全局数据区和静态数据区,静态数据区专门存放static变量。static的全局变量只在该文件范围内可见,不能用extern声明为外部变量。编译器会自动初始化全局变量。全局变量的内存分配是静态的,位于PE文件在数据区,在main()前由GC+运行期函数初始化,如果没有初值,会被初始化为0。局部变量
29、的内存分配是动态的,位于线程堆栈中。如果没有初始化的,初值视当前内存内的值而定。局部变量是在栈中,外部变量是放在数据段,手动分配malloc的才是放在堆中。7 8086是多少位的系统?在数据总线上是怎么实现的?8086是Intel的16位微处理器,有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据,内部数据总线都是按16位设计的,单外部数据总线只有8条。1请你分别画出OSI的七层网络结构图和TCP/IP的五层结构图。答:OSI七层网络结构图应用层表示层会话层传输层网络层数据链路层物理层TCP/IP的五层结构图应用层运输层网络层数据链路层物理层2.请你详细地解释一下IP协议的定
30、义,在哪个层上面?主要有什么作用?TCP与UDP呢?答:IP是InternetProtocol的简称,是网络层的主要协议,作用是提供不可靠、无连接的数据报彳专送。TCP是TransmitControlProtocol(传输控制协议)的缩写,在运输层,TCP提供一种面向连接的,可靠的字节流服务;UDP是UserDatagramProtocol(用户数据报协议)的缩写,在运输层,UD艰供不可靠的传输数据服务3请问交换机和路由器各自的实现原理是什么?分别在哪个层次上面实现的?答:交换机属于OSI第二层即数据链路层设备。它根据MAC地址寻址,通过站表选择路由,站表的建立和维护由交换机自动进行。路由器属
31、于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生。交换机最大的好处是快速,路由器最大的好处是控制能力强。4 .请问C+勺类和C里面的struct有什么区别?答:struct的成员的默认访问说明符为Public,而class的成员的默认访问说明符为Private。其他没有区别5请讲一讲析构函数和虚函数的用法和作用。答:析构函数是在对象生存期结束时自动调用的函数,用来释放在构造函数分配的内存。虚函数是指被关键字virtual说明的函数,彳用是使用C+语言的多态特性6 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?答:一些变量在整个程序中都是可见
32、的,它们称为全局变量。一些变量只能在一个函数中可知,称为局部变量。这就是他们的区别。在任何函数外面定义的变量就是全局变量,在函数内部定义的变量是局部变量,这是它们在程序中的实现过程。操作系统和编译器是根据程序运行的内存区域知道他们的,程序的全局数据放在所分配内存的全局数据区,程序的局部数据放在栈区。7 8086是多少位的系统?在数据总线上是怎么实现的?答:8086的机器字长是16位,8086使用40个引脚的16个做地址/数据复用引腿来传输数据,一次读写过程由一个基本总线周期完成,它由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。在T1期间8086发出访问目的地的地址信号和
33、地址锁存选通信号ALE;T2期间发出读写命令信号RDWRM其它相关信号;T3期间完成数据的访问;T4结束该总线周期。可见,地址与数据信号不会同时出现在一个时钟(CLK)周期,二者可以分时复用同一组引线。a4:C+中的类具有成员保护功能,并且具有继承,多态这类oo特点,而c里的struct没有a5:析构函数一般在对象撤消前做收尾工作,比如回收内存等工作,虚拟函数的功能是使子类可以用同名的函数对父类函数进行重载,并且在调用时自动调用子类重载函数,如果是纯虚函数,则纯粹是为了在子类重载时有个统一的命名而已。(说得不是很确切,自己随便找本c+的书都有说明)a6:全局变量的生命周期是整个程序运行的时间,
34、而局部变量的生命周期则是局部函数或过程调用的时间段。其实现是由编译器在编译时采用不同内存分配方法。全局变量在main函数调用后,就开始分配,如果是静态变量则是在main函数前就已经初始化了。而局部变量则是在用户栈中动态分配的(还是建议看编译原理中的活动记录这一块)a8:8086系统是16位系统,其数据总线是20位,实现过程,微机原理上有,我也差不多忘了,呵呵<<Sony笔试题>>1 完成下列程序* .*.* .*.*.* .*.*.*.* * * * *#include<stdio.h>#defineN8intmain()inti;intj;intk;ret
35、urn0;2完成程序,实现对数组的降序排序#include<stdio.h>voidsort();intmain()intarray=45,56,76,234,1,34,23,2,3;/数字任/意给出sort();return0;voidsort()|3.费波那其数列,1,1,2,3,5编写程序求第十项。可以用递归,也可以用其他方法,但要说明你选择的理由。#include<stdio.h>intPheponatch(int);intmain()printf("The10this%d",Pheponatch(10);return0;intPhepona
36、tch(intN)4下列程序运行时会崩溃,请找出错误并改正,并且说明原因。#include<stdio.h>#include<malloc.h>typedefstructTNode*left;TNode*right;intvalue;TNode;TNode*root=NULL;voidappend(intN);intmain()append(63);append(45);append(32);append(77);append(96);append(21);append(17);/Again,数字任意给出voidappend(intN)TNode*NewNode=(TNode*)malloc(sizeof(TNode);NewNode->value=N;if(root=NULL)root=NewNode;return;elseTNode*temp;temp=root;while(N>=temp.value&&temp.left!=NULL)|(N<temp.value&&temp.right!=NULL)while(N>=temp.value&&temp.left!=NU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年年度护士工作总结(2篇)
- 高中物理2027届高三教案-电磁感应新情境与多磁场区域探究
- 2026年哈尔滨投资集团有限责任公司人员招聘考试参考题库及详细答案解析
- 2025四川省安全生产月知识培训考试试题及答案
- 八年级物理教学设计:速度的测量实验探究与作业精讲
- 2026年中国商用飞机有限责任公司人员招聘笔试备考题库及详细答案解析
- 2026年大化集团有限责任公司人员招聘考试备考试题及详细答案解析
- 小学五年级班队课教学设计:居家习惯养成与成长致敬主题班会
- 2026初级会计考试试题及答案
- 2026国家电网-电气专业(官方)-多选题参考试题库历年考点答案详解
- 紫外可见分光光度法-完整版课件
- 配送生鲜公司管理制度
- 定密责任人培训
- 取水工程或者设施验收报告
- 统编版语文五年级下册第一单元任务群整体公开课一等奖创新教学设计
- 《神州租车简介》课件
- 儿童绘本故事《蚂蚁搬家》
- 军体拳第一套全套图文教程
- DB50-T 1672-2024 动物诊疗机构实验室建设与管理指南
- 氧气充装事故应急处理操作规程符合TSG07-2019《许可规则》
- 甄嬛传电子版剧本第01-10集
评论
0/150
提交评论