c语言c++软件开发求职试题集合Word下载.docx

上传人:b****5 文档编号:19421423 上传时间:2023-01-06 格式:DOCX 页数:36 大小:34.02KB
下载 相关 举报
c语言c++软件开发求职试题集合Word下载.docx_第1页
第1页 / 共36页
c语言c++软件开发求职试题集合Word下载.docx_第2页
第2页 / 共36页
c语言c++软件开发求职试题集合Word下载.docx_第3页
第3页 / 共36页
c语言c++软件开发求职试题集合Word下载.docx_第4页
第4页 / 共36页
c语言c++软件开发求职试题集合Word下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

c语言c++软件开发求职试题集合Word下载.docx

《c语言c++软件开发求职试题集合Word下载.docx》由会员分享,可在线阅读,更多相关《c语言c++软件开发求职试题集合Word下载.docx(36页珍藏版)》请在冰豆网上搜索。

c语言c++软件开发求职试题集合Word下载.docx

(7)完成字符串拷贝可以使用sprintf、strcpy及memcpy函数,请问这些函数有什么区别,你喜欢使用哪个,为什么?

(8)main()

{ints=10,k=10;

  do

  {s=s-3;

k--;

  while(s>

1);

  printf(“k=%d”,k);

}程序运行的结果是____________

(9)下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(isr),请评论一下这段代码的错误。

__interruptdoublecompute_area(doubleradius)

doublearea=pi*radius*radius;

area=%f"

area);

returnarea;

(10)阅读下列程序,回答问题。

  #include

  main()

  {

  inta,b,m,n;

  scanf(“%d%d\n”,%a,%b);

  m=1;

  n=1;

  if(a>

0)m=m+n;

  if(a

  elseif(a==b)n=5;

  elsen=m+n;

  printf(“m=%dn=%d\n”,m,n);

  }

当输入为:

-1-2<

回车>

时,写出程序的运行结果。

(11)编写子函数:

(1)用冒泡法将一个数组排成升序的函数---sub1;

(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---sub2。

主函数:

①输入任意10个正整数给数组;

②调用sub1对数组进行排序;

③从键盘输入一个正整数,调用sub2将其插入该数组。

(12)执行下列程序后,输出结果为_______。

  #include

  fun(intx)

  intp;

  if((x==0||(x==1))return(3);

  p=x-fun(x-2);

  returnp;

  main()

  {printf(″%d\n″,fun(9));

(13)编写strcpy函数:

已知strcpy函数的原型是

char*strcpy(char*strdest,constchar*strsrc);

其中strdest是目的字符串,strsrc是源字符串。

(1)不调用c++/c的字符串库函数,请编写函数strcpy

(2)strcpy能把strsrc的内容复制到strdest,为什么还要char*类型的返回值?

(14)如何引用一个已经定义过的全局变量?

(15)有一个整数n,写一个函数f(n),返回0到n之间出现的\"

1\"

的个数。

比如f(13)=6,现在f

(1)=1,问下一个最大的f(n)=n的n是什么?

(16)static函数与普通函数有什么区别?

(17)阅读下列程序,将输出结果写到各题右侧的空白处。

main()

  inta[3][3]={1,4,17,3,6,19,2,5,18},i,s=0;

  for(i=0;

i<

  s=s+a[i][2-i];

  printf(″s=%d\n″,s);

(18)不用乘法或加法给一个数增加7倍。

(19)一堆数在一个集合中,总共2n个,问如何将这些数分成a,b两分,每分n个,要求a中的数均小于b中的数,需要考虑时间复杂度。

(20)找错

voidtest1()

charstring[10];

char*str1=\"

0123456789\"

strcpy(string,str1);

voidtest2()

charstring[10],str1[10];

for(i=0;

i<

10;

i++)

str1[i]='

a'

voidtest3(char*str1)

if(strlen(str1)<

=10)

(21)不允许使用系统时间,写出一个随机数生成函数。

(22)编写子函数:

(23)解二次方程:

a*x*x+b*x+c

intquadratic(doublea,doubleb,doublec,double&

x1,double&

x2);

返回值:

解的个数

(24)全局变量定义在可被多个.c文件包含的头文件中可不可以?

(25)以下程序的功能是用选择法对数组a中的整数由小到大进行排序。

voidsort(intb[],intn)

{inti,j,t;

  for(i=0;

-1;

i++)

  for(______;

j<

++)

  if(b[i]_____b[j])

  {t=b[i];

_____________;

b[j]=t;

  {inta[]={5,8,6,2,7,4,1,3};

  inti;

  sort(a,8);

8;

i++)

  printf(″﹪5d″,a[i]);

  printf(″\n″);

补充完整。

(26)#include

  voidf1(x,y,z)

  intx,inty,intz;

  {x=x*x;

y=y*y;

  z=x+y;

  printf(″

(1)x=%dy=%dz=%d\n″,x,y,z);

  voidf2(x,y,z)

  int*x,int*y,int*z;

  {*x=(*x)*(*x);

*y=(*y)*(*y);

*z=*x+*y;

  voidmain()

  {intx=2,y=3,z=0;

  f1(x,y,z);

  printf(″

(2)x=%dy=%dz=%d\n″,x,y,z);

  f2(&

x,&

y,&

z);

  printf(″(3)x=%dy=%dz=%d\n″,x,y,z);

  运行结果如下:

(27)以下程序的功能是用选择法对数组a中的整数由小到大进行排序。

(28)阅读下列程序,回答问题。

  intfun(intn);

  printf(″thefunof3is%d\n″,fun(3));

  printf(″thefunof4is%d\n″,fun(4));

  intfun(intn)

  intresult=1;

  while(n>

1)

  result*=n--;

  returnresult;

  程序的运行结果是什么?

(29)耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:

13人围坐一圈,从第一个开始报号:

1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。

(30)简述头文件的功能,并列出两个头文件的名称。

(31)char*getstr()

char*tmp;

tmp=\"

123\"

returntmp;

voidmain()

printf(\"

%s\"

getstr());

会输出123吗?

123创建在堆上还是栈上呢?

123的空间是什么时候释放的?

(32)#include

  {intc;

  while((c=getchar())!

=′\n′)

  switch(c-′2′)

  {case0:

  case1:

putchar(c+4);

break;

  case2:

  case3:

putchar(c+3);

  default:

putchar(c+2);

  printf(″\n″);

  运行时输入:

2473,输出结果:

(33)main函数执行以前,还会执行什么代码?

(34)给你一个32位的六进制数,写一个程序让它倒序输出。

(35)循环的有序数组(比如1,2,3,4,5,-3,-2,-1这种数列)里查找一个数。

(36)将一个1m-10m的文件,逆序存储到另一个文件,就是前一个文件的最后一个字符存到新文件的第一个字符,以此类推。

(37)有200个正整数,且每个数均在1000至9999之间。

请编制函数,其函数的功能是:

要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。

(38)writeaprogramtoremoveallcommentsfromacprogram.don'

tforgettohandlequotedstringsandcharacterconstantsproperly.ccommentsdonotnest.

(39)将任意证书n分解成多个互不相同的正整数的和,并打印所有可能的组合方式。

例如n=6,组合方式有1+5,2+4,1+2+3。

(40)considerthefollowingcode:

intmain(intargc,char*argv[]){

inti=1;

charbuf[4];

strcpy(buf,\"

aaaa\"

%d\n\"

i);

return0;

a)whencompiledandexecutedonx86,whydoesthisprogramusuallynotoutputwhattheprogrammerintended?

b)nameseveralwaysinwhichthesecurityproblemthatcausesthisprogramnottooutputwhattheprogrammerintendedcanbepreventedwithoutchangingthecode.

(41)char*p1;

void*p2;

intp3;

charp4[10];

sizeof(p1...p4)=?

(42)在一个文件中有10g个整数,乱序排列,要求找出中位数。

内存限制为2g。

只写出思路即可。

(43)下面的程序或程序段存在一个错误或不妥处请在其下划一条线,并将改正的内容写到每小题后的空白处

{inta,*p;

  a=20;

  p=a;

  printf(“a=%d”,*p);

(44)writeafunctionescape(s,t)thatconvertscharacterslikenewlineandtabintovisibleescapesequenceslike\nand\tasitcopiesthestringttos.useaswitch.writeafunctionfortheotherdirectionaswell,convertingescapesequencesintotherealcharacters.

(45)现有两个文件,

  a)数据文件a,格式为:

关键词、ip地址、时间,记录条数为1000万左右,该文件是无序排列的。

  b)数据文件b是关键词id到关键词的对应表文件,格式为:

id、关键词,记录条数在100万左右,也是无序排列的。

该对应表中的记录是一一对应的,不存在id或者关键词重复的情况。

  要求将数据文件a对应的关键词替换为b中的id,生成新的数据文件c,数据文件c的格式为:

关键词id、ip地址、时间。

  请设计一个程序,实现上述功能,并分析时间复杂度和空间复杂度。

运行程序所使用的服务器的内存为1g,硬盘足够大。

(至少要给出关键算法和设计思路)

(46)写一个生成随机数的类(或者函数)。

(47)现有两个文件,

(48)char**p,a[16][8];

问:

p=a是否会导致程序在以后出现问题?

(49)c++中的空类,默认产生哪些类成员函数?

(50)输入一个五位以内的正整数,

(1)判断它是一个几位数;

(2)请按序输出其各位数字;

(3)逆序输出其各位数字。

  如输入:

56439,输出:

5位数

  5,6,4,3,9

  9,3,4,6,5

(51)#include和#include“filename.h”有什么区别?

(52)程序填空

把文本文件d1.dat复制到文本文件d2.dat中,要求仅复制d1.dat中的英文字符。

  {_______charch;

  fpd1=fopen(″d1.dat″,″r″);

_______

  while(fscanf(fpd1,″%c″,&

ch)_______)

  if(_______||ch>

=′a′&

&

ch<

=′z′)fprintf(fpd2,″%c″,ch);

  fclose(fpd1);

fclose(fpd2);

(53)下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(isr),请评论一下这段代码的错误。

(54)四个小孩正在花园里玩追捕游戏。

一个小孩扮演逃亡者,其余三个小孩做追捕者。

花园是一块由n行m列方格组成的草地,花园周围有木栏包围着,不能走出,花园里面还有一些障碍物不能够通过。

游戏可以进行许多回合,每个回合分成两轮,第一轮追捕者可以进行追捕行动,第二轮逃亡者可以根据前一轮追捕者的行动开展逃亡旅程。

在第一轮里,三个追捕者必须在三人中选择一个人向某个相邻的方格走一步,只有在三个人都没有可以走的相邻方格时,他们才允许选择停留在原地。

在第二轮里,逃亡者也必须选择某个相邻的方格走一步,如果逃亡者没有任何可走的方格,那么逃亡者就被捕了。

四个小孩都不允许走到有障碍物或其他人的方格上,也不能走出花园,因而,四个小孩总是会位于不同的方格上面。

  这些小孩都是非常聪明的,三个追捕者也是团结一致的。

追捕者如果有可以捉到逃亡者的方法,那么他们就一定不会错过。

逃亡者如果有不被捕获的方法,那么他也不会犯错。

除此之外,追捕者会希望尽快地捉到逃亡者,而逃亡者即使在会被捕获的情况下也会尽可能地拖延时间。

给定花园的障碍物的分布图和四个小孩的初始位置,你知道追捕者有方法捉到逃亡者吗?

如果有,他们要经过多少轮后才能捉到逃亡者呢?

(55)阅读下列程序,将输出结果写到各题右侧的空白处。

  intx=20,y=40,*p;

  p=&

x;

printf(″%d,″,*p);

  *p=x+10;

y;

printf(″%d\n″,*p);

  *p=y+20;

  printf(″%d,%d\n″,x,y);

(56)char*constp;

charconst*p

constchar*p

上述三个有什么区别?

(57)模拟n个人参加选举的过程,并输出选举结果:

假设候选人有四人,分别用a、b、c、d表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是a、b、c、d则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。

(58)writeaprogramthatprintsalistofallwordsinadocument,and,foreachword,alistofthelinenumbersonwhichitoccurs.removenoisewordslike"

the"

"

and,"

andsoon.

(59)请编写一个c函数,该函数在一个字符串中找到可能的最长的子字符串,该字符串是由同一字符组成的。

(60)apartment在com中有什么用?

为什么要引入?

(61)c/c++编译器中虚表是如何完成的?

(62)#include

{intk=0;

charc=′a′;

  do{

  switch(c++){

  case′a′:

k++;

break;

  case′b′:

  case′c′:

k+=2;

  case′d′:

k=k%2;

  case′e′:

k=k*10;

  default:

k=k/3;

  }

  k++;

  }while(c<

′g′);

  printf(″k=%d\n″,k);

  }输出结果:

_______

(63)用100元钱买100支笔,其中钢笔3元/支,圆珠笔2元/支,铅笔0.5元/支,问钢笔、圆珠笔和铅笔可以各买多少支?

(64)你觉得c程序中为什么会有main(),有没有想过exit,return,或什么都不做也可以让程序正常终止?

(65)writeaprogramtocountblanks,tabs,andnewlines.

(66)#include

classvalue

public:

value(intnval){m_nval=nval;

callvalue:

:

value(intnvalue)n\"

~value(){printf(\"

~value()n\"

va

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1