您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > 几道c笔试题(含参考答案)
1.Whatisdisplayedwhenf()iscalledgiventhecode:classNumber{public:stringtype;Number():type(“void”){}explicitNumber(short):type(“short”){}Number(int):type(“int”){}};voidShow(constNumber&n){coutn.type;}voidf(){shorts=42;Show(s);}a)voidb)shortc)intd)Noneoftheabove2.WhichisthecorrectoutputforthefollowingcodedoubledArray[2]={4,8},*p,*q;p=&dArray[0];q=p+1;coutq–pendl;cout(int)q–(int)pendl;a)1and8b)8and4c)4and8d)8and1第一个选C;虽然传入的是short类型,但是short类型的构造函数被生命被explicit,也就是只能显示类型转换,不能使用隐式类型转换。第二个选A;第一个是指针加减,按照的是指向地址类型的加减,只跟类型位置有关,q和p指向的数据类型以实际数据类型来算差一个位置,因此是1。而第二个加减是实际指针值得加减,在内存中一个double类型占据8个字节,因此是8c/c++某大公司的两道笔试题(含参考答案)1.一群人围成一圈,123的报数,报3者出列,求最后一个人。2.利用链表实现将两个有序队列A和B合并到有序队列H中,不准增加其他空间。请提供全一点的程序第一题://kickout.cpp:Definestheentrypointfortheconsoleapplication.//#include“stdafx.h”#include“malloc.h”#include“stdio.h”intmain(){intm,n;intkickouts=0;int*p=NULL;inti,j;i=j=0;printf(“Pleaseinputm,n:”);scanf(“%d,%d”,&m,&n);while(n1){printf(ndoen'tless0,retryn:);scanf(%d,&n);}p=(int*)malloc(m*sizeof(int));for(i=0;ip[i]=1;i=0;while(1){i=i%m;if(p[i++])j++;if(j==n){p[i-1]=0;j=0;kickouts++;}if(kickouts==m-1)break;}for(i=0;iif(p[i])printf(%d\n,i+1);return0;}2、升序还是降序?以升序为例:while(a!=NULL&&b!=NULL){if(a-datab-data){h-data=a-data;a=a-next;}elseif(a-data==b-data){h-data=a-data;a=a-next;b=b-next;}else{h-data=b-data;b=b-next}h=h-next;}if(a==NULL){while(b!=NULL){h-data=b-data;h=h-next;b=b-next;}}else{while(a!=NULL){h-data=a-next;h=h-next;a=a-next;}}C语言面试题1。编写一个C函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。char*search(char*cpSource,charch){char*cpTemp=NULL,*cpDest=NULL;intiTemp,iCount=0;while(*cpSource){if(*cpSource==ch){iTemp=0;cpTemp=cpSource;while(*cpSource==ch)++iTemp,++cpSource;if(iTempiCount)iCount=iTemp,cpDest=cpTemp;if(!*cpSource)break;}++cpSource;}returncpDest;}2。请编写一个C函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。intsearch(char*cpSource,intn,charch){inti;for(i=0;ireturni;}一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?将这个指针指向的next节点值copy到本节点,将next指向next-next,并随后删除原next指向的节点。#includevoidfoo(intm,intn){printf(“m=%d,n=%d\n”,m,n);}intmain(){intb=3;foo(b+=3,++b);printf(“b=%d\n”,b);return0;}输出:m=7,n=4,b=7(VC6.0)这种方式和编译器中得函数调用关系相关即先后入栈顺序。不过不同编译器得处理不同。也是因为C标准中对这种方式说明为未定义,所以各个编译器厂商都有自己得理解,所以最后产生得结果完全不同。因为这样,所以遇见这种函数,我们首先要考虑我们得编译器会如何处理这样得函数,其次看函数得调用方式,不同得调用方式,可能产生不同得结果。最后是看编译器优化。2.写一函数,实现删除字符串str1中含有的字符串str2.第二个就是利用一个KMP匹配算法找到str2然后删除(用链表实现的话,便捷于数组)/*雅虎笔试题(字符串操作)给定字符串A和B,输出A和B中的最大公共子串。比如A=”aocdfe”B=”pmcdfa”则输出”cdf”*///Author:azhen#include#include#includechar*commanstring(charshortstring[],charlongstring[]){inti,j;char*substring=malloc(256);if(strstr(longstring,shortstring)!=NULL)//如果……,那么返回shortstringreturnshortstring;for(i=strlen(shortstring)-1;i0;i–)//否则,开始循环计算{for(j=0;j=strlen(shortstring)-i;j++){memcpy(substring,&shortstring[j],i);substring[i]='\0';if(strstr(longstring,substring)!=NULL)returnsubstring;}}returnNULL;}main(){char*str1=malloc(256);char*str2=malloc(256);char*comman=NULL;gets(str1);gets(str2);if(strlen(str1)strlen(str2))//将短的字符串放前面comman=commanstring(str2,str1);elsecomman=commanstring(str1,str2);printf(“thelongestcommanstringis:%s\n”,comman);}11.写一个函数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2返回1,若str1小于str2返回-1intstrcmp(constchar*src,constchar*dst){intret=0;while(!(ret=*(unsignedchar*)src–*(unsignedchar*)dst)&&*dst){++src;++dst;}if(ret0)ret=-1;elseif(ret0)ret=1;return(ret);}3,求1000!的未尾有几个0(用素数相乘的方法来做,如72=2*2*2*3*3);求出1-1000里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,能被625整除的数的个数n4.1000!末尾的零的个数=n1+n2+n3+n4;#include#defineNUM1000intfind5(intnum){intret=0;while(num%5==0){num/=5;ret++;}returnret;}intmain(){intresult=0;inti;for(i=5;i=NUM;i+=5){result+=find5(i);}printf(”thetotalzeronumberis%d\n”,result);return0;}用C语言写个函数,完成去掉字符串左边的空格,把右边的空格用0填充。调用之,然后打印出来。C语言基础笔试题1、C语言程序的基本单位是____A)程序行B)语句C)函数D)字符、C、12、C语言程序的三种基本结构是____A、顺序结构,选择结构,循环结构B、递归结构,循环结构,转移结构C、嵌套结构,递归结构,顺序结构D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间A)既允许直接递归调用也允许间接递归调用B)不允许直接递归调用也不允许间接递归调用C)允许直接递归调用不允许间接递归调用D)不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是()A)文本文件和数据文件B)文本文件和二进制文件C)数据文件和二进制文件D)数据代码文件、B、15、C语言可执行程序的开始执行点是()A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是A)doubleB)shortC)integerD)char、B、17、C语言中,运算对象必须是整型数的运算符是A)%B)\C)%和\D)**、A、18、C语言中函数返回值的类型是由()决定。A)return语句中的表达式类型B)调用函数的主调函数类型C)调用函数时临时D)定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。A、该数组的长度。B、该数组的元素个数。C、该数组中各元素的值。D、该数组的首地址。、D、110、C语言中数组下标的下限是________。A、1B、0C、视具体情况D、无固定下限、B、111、C语言中提供的合法关键字是____A、swithB、cherC、caseD、default、D、112、C语言中文件的存取方式是________。A、顺序存取B、随机存取C、顺序存取、随机存取均可D、顺序存取、随机存取均不可、C、113、C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型、B、114、sizeof(float)是()A)一种函数调用B)一个不合法的表示形式C)一个整型表达式D)一个浮点表达式、C、115、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A)inputx,y,z;B)scanf(“%d%d%d”,&x,&y,&z);C)scanf(“%d%d%d”,x,y,z);D)read(“%d%d%d”,&x,&y,&z);、B、116、表达式:10!=9的值是A)trueB)非零值C)0D)1、D、117、表示关系x=y=z的c语言表达式为A)(X=Y)&&(Y=Z)B)(X=Y)AND(Y=Z)C)(X=Y=Z)D)(X=Y)&(Y=Z)、A、118、程序片段:在TC20中,inti=65536;printf(%d,i);的输出结果是____A)65536B)0C)有语法错误,无输出结果D)-1、B、119、当调用函数时,实参是一个数组名,则向函数传送的是_
本文标题:几道c笔试题(含参考答案)
链接地址:https://www.777doc.com/doc-2648255 .html