新致软件笔试题和面试题答案目(2)

招聘笔试题2018-11-22王新老师

  四.C语言程序设计和数据结构(40分)

  1. 举例说明左加(++i)及右加(i++)的区别。(4分)

  2. 举例说明Struct和Union的区别(4分)

  3. 说明unsigned char和char 的区别,在什么情况下用unsigned char,什么情况下用char?(4分)

  4. 写一个函数,输入参数是一个排序二叉树的头指针和关键值,在排序二叉树中检索和输入关键值相同的iKey,如果检索到,返回相应的pData,否则返回NULL.(8分)

  5. 在有序表(升序排列)ST中折半查找关键字等于Key的数据元素,若找到则函数值为该元素在ST表中的位置,否则返回0.假定ST表的定义如下:

  typedef struct tagKeyType{

  KeyType key;

  } KeyType;

  typedef struct tagSStable{

  ElemType * elem;

  int length;

  }Sstable;

  试写出下列函数。(10分)

  int Search(SStable ST,KeyType key)

  {

  }

  6. 阅读以下程序说明和C程序,将答案写在后面的空白处。

  本程序所列函数replace(char *s1,char *s2,char *str1,char *str2)实现当已知字符串s1中有与字符串str1相同的字符列时,就把该字符拷贝到字符数组s2;当从某字符开始能够成一个与字符串str2相同的字符列时,就将字符串str2的个字符拷贝到字符数组s2,并继续访问字符串s1中那个字符列之后的字符,直至字符串s1被访问完,字符复制即告结束。

  如程序中所列数据abcdefg ababcd abab,

  程序运行输出为:ABCXYZdefg abABCXYZDd abab

  程序:

  replace(char *s1,char *s2,char str1,char *str2)

  {

  char *t0,*t1,*t2;

  while ((1))

  {

  for (t0=s1,t1=str1;*t1!=’’ && (2), t0++,t1++)

  if(*t1!=’’) *s2++=(3);

  else

  {

  for(t1=str2;*t1!=’’)

  *s2++=(4)

  (5)

  }

  *s2=’’;

  }

  main()

  {

  char s1[]=abcdefg ababcd abab;

  char s2[80];

  replace(s1,s2,abc,ABCXYZ);

  printf(%s ,s2);

  }

  五、英译汉

相关推荐

猜你喜欢

大家正在看

换一换