校招C++笔试题 下面是小编整理的校招C++笔试题(共含11篇),欢迎大家阅读借鉴,并有积极分享。同时,但愿您也能像本文投稿人“御行达摩”一样,积极向本站投稿分享好文章。
篇1:雅虎校招笔试题 如下笔试题目是雅虎校招的笔试真题,分享给大家练习! Question 1. (单选) 在计算机网络中,表征数据传输可靠性的指标是 1. 传输率 2. 误码率 3. 信息容量 4. 频带利用率 Question 2. (单选) 以下关于链式存储结构的叙述中哪一条是不正确的? 1. 结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构 2. 逻辑上相邻的结点物理上不必邻接 3. 可以通过计算直接确定第i个结点的存储地址 4. 插入、删除运算操作方便,不必移动结点 Question 3. (单选) 以下哪一个不是栈的基本运算 1. 删除栈顶素 2. 删除栈底素 3. 判断栈是否为空 4. 将栈置为空栈 Question 4. (单选) 以下关于广义表的叙述中,正确的是 1. 广义表是0个或多个单素或子表组成的有限序列 2. 广义表至少有一个素是子表 3. 广义表不可以是自身的子表 4. 广义表不能为空表 Question 5. (单选) 如果一棵二叉树结点的前序序列是A、B、C,后序序列是C、B、A,则该二叉树结点的对称序序列 1. 必为A、B、C 2. 必为A、C、B 3. 必为B、C、A 4. 不能确定 Question 6. (单选) 在虚拟页式存储管理方案中,下面哪一部分完成将页面调入内存的工作? 1. 缺页中断处理 2. 页面淘汰过程 3. 工作集模型应用 4. 紧缩技术利用 Question 7. (单选) 在DOS系统中,用于记录和管理磁盘数据区使用情况的数据结构 1. 位图表 2. 空闲块表 3. 文件分配表 4. 文件控制块 Question 8. (单选) 设有关系R(S,D,M),其函数依赖集F={S→D,D→M}。则关系R至多满足 1. 1NF 2. 2NF 3. 3NF 4. BCNF Question 9. (单选) 在数据库逻辑设计中,当将E-R图转换为关系模式时,下面的做法哪一个是不正确的? 1. 一个实体类型转换为一个关系模式 2. 一个联系类型转换为一个关系模式 3. 由实体类型转换成的关系模式的主键是该实体类型的主键 4. 由联系类型转换成的关系模式的属性是与该联系类型相关的诸实体类型的属性的全体 Question 10. (单选) 计算机网络按照所覆盖的地理范围分类,可以分广域网、局域网与 1. TCP/IP网 2. ATM网 3. ISDN 4. 城域网 Question 11. (单选) 计算机网络拓扑结构主要取决于它的 1. 资源子网 2. FDDI网 3. 通信子网 4. 路由器 Question 12. (单选) 网络协议的三个要素是语法、语义与 1. 工作原理 2. 时序 3. 进程 4. 服务原语 Question 13. (单选) TCP/IP参考模型中,电子邮件协议SMTP依赖于传输层的 1. UDP协议 2. IP协议 3. TCP协议 4. 802.2协议 Question 14. (单选) IEEE802.2协议中10BASE-T标准规定在使用5类双绞线时,从网卡到集线器的最大距离为 1. 100m 2. 185m 3. 300m 4. 500m Question 15. (单选) 100Mbps Fast Ethernet与10Mbps Ethernet 工作原理的相同之处主要在 1. 介质访问控制方法 2. 物理层协议 3. 网络层 4. 发送时钟周期 Question 16. (单选) 在Client/Server计算模式中,中间件middleware的作用是隔离应用与 1. 结构化查询语言SQL 2. 应用进程 3. 网络 4. IP地址 Question 17. (单选) 当用户向ISP申请Internet帐户时,用户的E-mail帐户应包括 1. IP地址 2. WWW地址 3. 用户密码(Password) 4. 用户名(User Name)与用户密码(Password) 篇2:羊城晚报校招笔试题 1、报社招聘记者。约了些同学面试,好多人从楼下打电话来说保安不让进,希望下去接一下。考官说不,如果这都对付不了的话,还是别做记者了。最后,大部分同学都进来了。进来的最后成了狗仔队;讲理进来的成了评论员;软磨硬泡进来的去跑官会了;撒泼打滚的后来都提拔成了主编;硬打进来的,顶了保安。请问你欣赏哪一种?为什么?如果你是应聘者你会用什么方法进门? 2、新闻采访中的“多源求证”指的是什么?请你虚拟一个新闻事件,并根据“多源求证”做出采访安排。 3、你的专业是否与报考的职位相关?你是否做好了应聘该职位的知识、心理、实务准备?请说说你的心路历程。对你选择这份工作而言,影响最大的书有哪些(至少三本,不包括专业教材)。 4、当下新闻热点很多,请你根据给定的网络热词,任选五个,写一篇时评,不超过1000字。(其中包括中国梦、屌丝、高富帅、豆你玩、姜你军、蒜你狠、舌尖上的中国、中国好声音……约有60多个吧) 篇3:羊城晚报校招笔试题 1、同志现任的职务有哪些?写出5个即可得10分。 2、新媒将服务对象称作“用户”,传播媒体将服务对象称作“受众”。“用户”与“受众”有何异同?这对纸媒经营有何启示? 3、雅安地震12小时后你到达现场,在人生地不熟的四川,你如何安排一周内的报道计划?如何寻找可靠的采访资源? 4、马航 MH370未按时抵达,许多乘客家属在机场等候,若派你去机场,你会注意什么?会采取哪种采访方式? 5、京津冀一体化是最近政经的热点,作为羊城晚报的记者,你是如何理解京津冀一体化的?作为一份立足广州、面向全国的报纸,你准备从哪些角度进行报道? 6、什么是“社交化”?例句不少于5个社交网络或应用,并用100字点评其中3个的商业模式和传播模式。 篇4:360校招笔试题 1、下列哪个命令可以用来定时任务的? A. crontab B. setsid C. date D. setup 2、把已存在用户加入到指定组的命令是 A. gpasswd B. groupadd C. useradd D. groupmod 3、下列说法正确的是 A. 两个对象的hashCode不同,则这两个对象肯定是不同的对象 B. 两个对象如果equals判断为true,则这两个对象的hashCode肯定也相同 C. 两个对象如果==判断为true,则这两个对象肯定是同一个对象 D. 两个对象的hashCode相同,则这两个对象肯定是同一个对象 4、在xx处能够书写的代码是 [cpp] view plain copypublic class Test{ int w,x,y,z; public Test(int a, int b) { x=a; y=b; } public Test(int a, int b, int c, int d) { w=d; z=c; } } A. x=a,y=b B. Base(a,b) C. this(a), this(b) D.this(a,b); 5、以下关于递归调用的说法正确的是 A. 递归调用可以用队列实现 B. 函数直接调用自己是递归 C. 递归调用可以用栈实现 D. 函数间接调用自己不是递归 6、设有一组初始关键字序列为{30,20,10,25,15,28},则第4趟直接插入排序结束后的结果的是 A. 10,15,20,25,28,30 B. 10,15,20,25,30,28 C. 10,20,30,25,15,28 D. 10,20,25,30,15,28 7、在含有50个结点的二叉排序树上,查找关键字为20的结点,则依次比较的关键字有可能是 A. 15,35,18,14,20 B. 35,25,28,15,20 C. 35,25,18,15,20 D. 15,35,25,20 8、下列算法段中,语句(6)的语句频度为 [cpp] view plain copy(1)for( i=1; i A. 45 B. 0 C. 55 D. 1045 10、下面程序的输出是什么? [cpp] view plain copyd = lambda p: p*2 t = lambda p: p*3 x = 2 x = d(x) x = t(x) x = d(x) print x A. 36 B. 24 C. 17 D. 12 篇5:360校招笔试题 1、执行下列代码后,main函数的输出结果是 [cpp] view plain copyint func(unsigned int i); void main { printf(“%d ”, func(0x1f4504a8)); return; } int func(unsigned int i) { unsigned int temp = i; temp = (temp & 0x) + ((temp & 0xaaaaaaaa) >>1); temp = (temp & 0x) + ((temp & 0xcccccccc) >>2); temp = (temp & 0x0f0f0f0f) + ((temp & 0xf0f0f0f0) >>4); temp = (temp & 0xff00ff) + ((temp & 0xff00ff00) >>8); temp = (temp & 0xffff) + ((temp & 0xffff0000) >>16); return (temp); } A. 13 B. 12 C. 14 D. 15 2、下列程序的运行结果是1 4 3 4 5,请为横线处选择合适的程序 [cpp] view plain copyvoid point(int *p) { *p=p[2]; } main { int c = {1,2,3,4,5},*p=c; point(p+1); for(;p printf(“%d,”____); } A. ++ (*p) B. ++p C. *p++ D. p++ 3、下列函数的功能是在s所存放的字符串中查找形参c中存放的字符,若找到返回该字符下标,若找不到返回-1;请为横线处选择合适的程序 [cpp] view plain copy#include int f(char s, char c) { int i=0; char *q=s; if(*q!=’0′) while(*(q+i)!=c && q[i] != ‘0’) i++; if(____) return(i); return(-1); } A. *(q+i) == ‘c’ B. *(q+i) == 0 C. q[i] == c D. q[i] == ‘0’ 4、以下程序运行后的输出结果是 [cpp] view plain copy#include #include #include main { char *p; int i; p = (char *)malloc(sizeof(char) * 20); strcpy(p, “welcome”); for(i=6; i>=0; i–) putchar(*(p + i)); printf(“ ”); free(p); } A. emoclew B. cowelme 5、有下列程序段 [cpp] view plain copyint a = {0,1,2,3,4,5}, *p[3], i; for(i=0; istrlen(*(p+j))) { t=*(p+i); *(p+i)=*(p+j); *(p+j)=t; } } main { char *s={“abc”,“abcdef”,“abbd”}; f(s,3); for(int i=0;i2->3->4->5 通过反转后成为5->4->3->2->1。 最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个素,然后将当前节点素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下: struct linka { int data; linka* next; }; void reverse(linka*& head) { if(head ==NULL) return; linka *pre, *cur, *ne; pre=head; cur=head->next; while(cur) { ne = cur->next; cur->next = pre; pre = cur; cur = ne; } head->next = NULL; head = pre; } 还有一种利用递归的方法。这种方法的基本思想是在反转当前节点之前先调用递归函数反转后续节点。源代码如下。不过这个方法有一个缺点,就是在反转后的最后一个结点会形成一个环,所以必须将函数的返回的节点的next域置为NULL。因为要改变head指针,所以我用了引用。算法的源代码如下: linka* reverse(linka* p,linka*& head) { if(p == NULL || p->next == NULL) { head=p; return p; } else { linka* tmp = reverse(p->next,head); tmp->next = p; return p; } } ②已知String类定义如下: class String { public: String(const char *str = NULL); // 通用构造函数 String(const String &another); // 拷贝构造函数 ~ String(); // 析构函数 String & operater =(const String &rhs); // 赋值函数 private: char *m_data; // 用于保存字符串 }; 尝试写出类的成员函数实现。 答案: String::String(const char *str) { if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断 { m_data = new char[1] ; m_data[0] = ‘/0’ ; } else { m_data = new char[strlen(str) + 1]; strcpy(m_data,str); } } String::String(const String &another) { m_data = new char[strlen(another.m_data) + 1]; strcpy(m_data,other.m_data); } String& String::operator =(const String &rhs) { if ( this == &rhs) return *this ; delete []m_data; //删除原来的数据,新开一块内存 m_data = new char[strlen(rhs.m_data) + 1]; strcpy(m_data,rhs.m_data); return *this ; } String::~String() { delete []m_data ; } ③网上流传的c++笔试题汇总 1.求下面函数的返回值(微软) int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。 答案:8 思路:将x转化为2进制,看含有的1的个数。 2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单,系统也不给引用分配存储单。不能建立数组的引用。 3. 将“引用”作为函数参数有哪些特点? (1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。 (2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。 (3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单,且需要重复使用“*指针变量名”的形式进行运算,这很容易产生错误且程序的`阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。 4. 在什么时候需要使用“常引用”? 如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:const 类型标识符 &引用名=目标变量名; 例1 int a ; const int &ra=a; ra=1; //错误 a=1; //正确 例2 string foo( ); void bar(string & s); 那么下面的表达式将是非法的: bar(foo( )); bar(“hello world”); 原因在于foo( )和“hello world”串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的, 因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。 引用型参数应该在能被定义为const的情况下,尽量定义为const 。 5. 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 格式:类型标识符 &函数名(形参列表及类型说明){ //函数体 } 好处:在内存中不产生被返回值的副本;(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtime error! 注意事项: (1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了“无所指”的引用,程序会进入未知状态。 (2)不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memory leak。 (3)可以返回类成员的引用,但最好是const。这条原则可以参照Effective C++[1]的Item 30。主要原因是当对象的属性是与某种业务规则(business rule)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关,因此有必要将赋值操作封装在一个业务规则当中。如果其它对象可以获得该属性的非常量引用(或指针),那么对该属性的单纯赋值就会破坏业务规则的完整性。 (4)流操作符重载返回值申明为“引用”的作用: 流操作符,这两个操作符常常希望被连续使用,例如:cout =0 && n、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 以上 2-8 参考:blog.csdn.net/wfwd/archive//05/30/.aspx 9. 结构与联合有和区别? 1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。 2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。 10. 下面关于“联合”的题目的输出? a) #i nclude union { int i; char x[2]; }a; void main() { a.x[0] = 10; a.x[1] = 1; printf(“%d”,a.i); } 答案:266 (低位低地址,高位高地址,内存占用情况是Ox010A) b) main() { union{ /*定义一个联合*/ int i; struct{ /*在联合中定义一个结构*/ 篇10:腾讯校招笔试题 腾讯校招笔试题 ①、数据结构 若一颗二叉树的前序遍历为a,e,b,d,c,后序遍历为b,c,d,e,a,则根节点的孩子节点( ) A:只有e B:有e,b C:有e,c D:不确定 答案:A 解析:根据前序遍历的定义,根最先被访问,所以a是二叉树的根,正常情况下,a应该有左右两个子树:在前序序列中a的’直接后继是e,说明e位于 左子树;在后序序列中a的直接前驱是e,说明e位于右子树;从而a只能有1个子树,且e就是子树的根节点。 ②、数据结构 现有一个包含m个节点的三叉树,即每个节点都有三个指向孩子节点的指针,请问:在这3m个指针中有( )个空指针。 A:2m B:2m-1 C:2m+1 D:3m 答案:C 解析:方法1:若只有1个根结点,显然该根节点有3个空指针:a(1)=3; 若n-1个结点有a(n-1)个空指针,在一个原空指针的位置增加一个叶结点后,减少了1个空指针,但增加了3个空指针,从而:a(n)=a(n-1) + 2;因此,a(n)是首项为3,公差为2的等差数列,通项为a(n)=2n+1. 方法2:m个结点一共有3m个指针,m个结点的树一共有m-1的边,即m-1个指针是指向结点的,剩下的指针即为空指针:3m-(m-1)=2m+1, ③、数学计算 储蓄盒中2分和5分的硬币的个数相等,2分和5分的钱数也相等,问:可能是多少( ) A:2.1 B:2.4 C:2.8 D:3.0 答案:ABCD 解析:假设2分和5分的硬币数目为x,则有2x=5x,解得x=0。即:储蓄盒中没有2分和5分的硬币。但可以有1分的,而1分的硬币理论上可以表示以0.01为单位的所有值。 篇11:阿里巴巴校招笔试题 阿里巴巴校招笔试题 ①、C++ 以下程序输出结果是( ) class A { public: virtual void func(int val = 1) { std::cout test(); return 0; } A:A->0 B:B->1 C:A->1 D:B->0 答案:B 解析:由于p指向了继承类B的对象,所以,在调用A中的test之后,虚函数func()会调用继承类B的函数,而默认形参仍然会使用test所在的类A的形参1,从而输出B->1, ②、数学计算将1,2,3,……,99,100任意排列成一个圈,相邻两数的差的绝对值求和最多为( ) A:100 B:198 C:200 D:500 E:2500 F:5000 答案:F 解析:定义1-50为“小数”,51-100为“大数”,将“相邻素的差的绝对值之和”简称“绝差之和”。为了将绝差之和取最大,应该避免将“大数”和“大数”放在一起, 因此,可以考虑间隔排布。形成:1,100,2,99,3,98,4,97……,50,51的`序列。而事实上,这个序列即绝差之和最大的序列。可使用如下证明: 1、如下图所示:如果将小数和小数交换,得到的序列绝差之和不变。将小数x和y互换。假定交换之前,x和y的相邻素分别为a、b和c、d。则交换之前的绝差为:(a-x)+(b-x)+(c-y)+(d-y),交换之后的绝差为:(a-y)+(b-y)+(c-x)+(d-x),二者相等。 2、如下图所示:如果将大数和大数交换,得到的序列绝差之和不变。将大数a和b互换。假定交换之前,a和b的相邻素分别为x、y和z、w。则交换之前的绝差为:(a-x)+(a-y)+(b-z)+(b-w),交换之后的绝差为:(b-x)+(b-y)+(a-z)+(a-w),二者相等。 3、如下图所示:如果将大数和小数交换,得到的序列绝差之和必然减小。将小数a和大数z互换。假定交换之前,a和z的相邻素分别为x、y和b、c。则交换之前的绝差为:(a-x)+(a-y)+(b-z)+(c-z),交换之后的绝差为:|x-z|+|y-z|+|b-a|+|c-a|,由于x、y、z更接近,a、b、c更接近,所以交换后绝差变小。 因此,无论如何交换,绝差之和都无法增大。即原序列的绝差之和是最大的。它形成的绝差序列是99,98,97,96……,2,1,50,这100个数的和为5000。 ③、计算机基础 如果下列的公式成立:84*148=B6A8。则采用的是( )进制表示的。 A:15 B:11 C:12 D:14 E:16 F:以上都不对 答案:C 解析:1、常规做法:假定数值是x进制的,则写出等式:(8x+4)*(x2+4x+8)=11×3+6×2+10x+8,化简得到(3×2+6x+2)*(x-12)=0,则x的非负整数解为x=12。 2、“启发式”做法:在十进制体系下,左侧个位乘积4*8=32;右侧个位为8,差32-8=24,从而进制必然是24的约数。只有C选项12是24的约数。 ★ C++笔试题 ★ 网易C++笔试题 ★ 阿里校招研发工程师笔试题 ★ 广东移动校招笔试题及参考答案 ★ 58集团校招笔试题 ★ 通用电气校招网申是试题 ★ 笔试题 ★ 校招发言稿 ★ 校招自荐信 ★ 外企笔试题
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/65968.html