华为笔试c语言

一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分)

1、有数组定义int a[2][2]={,{2,3}};则a[0][1]的值为0。( )

2、int (*ptr) (),则ptr是一维数组的名字。( )

3、指针在任何情况下都可进行>,<,>=,<=,==运算。( )

4、switch(c) 语句中c可以是int ,long,char ,float ,unsigned int 类型。( )

5、#define print(x) printf("the no, "#x",is ")



二、填空题(共30分)

1、在windows下,写出运行结果,每空2分,共10分。

char str[ ]= "Hello";

char *p=str;

int n=10;

sizeof(str)=( )

sizeof(p)=( )

sizeof(n)=( )



void func(char str[100])

{ }

sizeof(str)=( )



2、void setmemory(char **p, int num)

{ *p=(char *) malloc(num);}

void test(void)

{ char *str=NULL;

getmemory(&str,100);

strcpy(str,"hello");

printf(str);

}

运行test函数有什么结果?( )10分



3、设int arr[]={6,7,8,9,10};

int *ptr=arr;

*(ptr++)+=123;

printf("%d,%d",*ptr,*(++ptr));

( ) 10分



二、编程题(第一小题20,第二小题30分)

1、 不使用库函数,编写函数int strcmp(char *source, char *dest)

相等返回0,不等返回-1;  

方法2:
  #include
  #include
  main()
  {
   char str[]="hello,world";
   int len=strlen(str);
   char t;
   for(int i=0; i   {
    t=str[i];
    str[i]=str[len-i-1]; str[len-i-1]=t;
   }
   printf("%s",str);
   return 0;
  }
  1.-1,2,7,28,,126请问28和126中间那个数是什么?为什么?
  第一题的答案应该是4^3-1=63
  规律是n^3-1(当n为偶数0,2,4)n^3+1(当n为奇数1,3,5)
  答案:63
  2.用两个栈实现一个队列的功能?要求给出算法和思路!
  设2个栈为A,B, 一开始均为空.
  入队:
  将新元素push入栈A;
  出队:
  (1)判断栈B是否为空;
  (2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;
  (3)将栈B的栈顶元素pop出;
  这样实现的队列入队和出队的平摊复杂度都还是O(1), 比上面的几种方法要好。3.在c语言库函数中将一个字符转换成整型的函数是atool()吗,这个函数的原型是什么?
  函数名: atol
  功 能: 把字符串转换成长整型数
  用 法: long atol(const char *nptr);
  程序例:
  #include
  #include
  int main(void)
  {
   long l;
   char *str = "98765432";
   l = atol(lstr);
   printf("string = %s integer = %ld/n", str, l);
   return(0);
  }
  13.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
  c用宏定义,c++用inline

  14.直接链接两个信令点的一组链路称作什么?
  PPP点到点连接
  
  15.接入网用的是什么接口?
 
  16.voip都用了那些协议?

  17.软件测试都有那些种类?
  黑盒:针对系统功能的测试
  白合:测试函数功能,各函数接口

  18.确定模块的功能和模块的接口是在软件设计的那个队段完成的?
  概要设计阶段

  19.
  enum string
 {
   x1,
   x2,
   x3=10,
   x4,
   x5,
  }x;
  问x= 0x801005,0x8010f4 ;

  20.
  unsigned char *p1;
  unsigned long *p2;
  p1=(unsigned char *)0x801000;
  p2=(unsigned long *)0x810000;
  请问p1+5= ;
    p2+5= ;
  选择题:

  21.Ethternet链接到Internet用到以下那个协议?

  A.HDLC;B.ARP;C.UDP;D.TCP;E.ID
 
  22.属于网络层协议的是:
 
   A.TCP;B.IP;C.ICMP;D.X.25

  23.Windows消息调度机制是:

  A.指令队列;B.指令堆栈;C.消息队列;D.消息堆栈;

  24.
  unsigned short hash(unsigned short key)
  {
 return (key>>)%256
 }

  请问hash(16),hash(256)的值分别是:

   A.1.16;B.8.32;C.4.16;D.1.32
  找错题:

  25.请问下面程序有什么错误?

  int a[60][250][1000],i,j,k;
  for(k=0;k<=1000;k++)
  for(j=0;j<250;j++)
  for(i=0;i<60;i++)
  a[i][j][k]=0;
  把循环语句内外换一下

  26.
  #define Max_CB 500
  void LmiQueryCSmd(Struct MSgCB * pmsg)
  {
   unsigned char ucCmdNum;
   ......
  for(ucCmdNum=0;ucCmdNum   {
    ......;
   }
   死循环

  27.以下是求一个数的平方的程序,请找出错误:

  #define SQUARE(a)((a)*(a))
  int a=5;
  int b;
  b=SQUARE(a++);

  28.
  typedef unsigned char BYTE
  int examply_fun(BYTE gt_len; BYTE *gt_code)
  {
   BYTE *gt_buf;
   gt_buf=(BYTE *)MALLOC(Max_GT_Length);
   ......
   if(gt_len>Max_GT_Length)
   {
    return GT_Length_ERROR;
   }
   .......
  }
  问答题:

  29.IP Phone的原理是什么?
  IPV6

  30.TCP/IP通信建立的过程怎样,端口有什么作用?
  三次握手,确定是哪个应用程序使用该协议

  31.1号信令和7号信令有什么区别,我国某前广泛使用的是那一种?

  32.列举5种以上的电话新业务?

你可能感兴趣的:(Program,language)