1、若有定义 int a[8], 则下列表达式中不代表数组a[1]地址的是: A &a[0]+1   B &a[1]   C &a[0]++   D a++2、指针S所指字符串长度为: Char *S=”\”Name\\Address\n”   A 14    B 15   C 16     D 173、有Hash函数 unsigned short hash(unsigned  short key) {return (key>>4)%256}, 问 hash(16)和hash(256)的值:   A 1,16   B 8,32   C 14,16    D 11,324、在某种开发环境下,char被定义为8位1个字节,系统采用32位迅址,定义数组char **a[4][4], 则a所占用的内存有   字节   A 16  B 32  C 64  D1285、已知int a[8]={1,2,3,4,5,6,7,8}, *p=a; *(p+1)*(p+1)[1]的值是:   A 2  B 3    C6  D不确定6、char a=-1; short b; b=(short) a;则 b的值为:  A -1  B 1    C65535    D 255
7、下列原因中导致堆栈不足的直接原因的是:a.子程序中,局部变量占空间过大;b.程序中全局变量占空间过大;c.子程序行参占空间过大;d.程序调用过深;8、关于进程的说法:a.进程进入运行状态是通过调度程序实现的b.单CPU系统,任一时刻有一个进程处于运行状态c.进程无法获得CPU资源时,处于等待状态d.???
填空:1、main(){ char *p; char s[]=”abcd”; for(p=S+1;p<s+4; P++) printf(“%s\n”);} 写出打印结果2、请在空格出填写一行程序,使函数完成计算X阶乘的功能 int f(int x){ if(x==1) return 1; else return ______};3、enum{A,B,C,D,E,K=9,j}; 问D:__J:___4、素数的个数(程序填空)
5、一个字符占1个字节,采用32位寻址方式,则数组char**[4][4]占用多少字节?(64字节)6、Char a=-1;   unsighed int b;   b=a;   printf(“%d”,b);   输出结果是什么?7、有数组a[1,2,3,4,5,6],p=a;   求下式子:   *(a+1)*(p+1)[1]=?8、举至少4例说明进程改变状态的原因. 
编程题1、请定义一个双项链表结构 ,并编写函数传入两个两表节点,交换位置 2、编写一个函数:输入一个字符串, 输出按字母顺序排列后的字符串3、编写一个函数,将字符串反序输出4、求一个100大小的整数的所有因子.(提示,由于该数不是很大,所以可以将质数保存在数组中,以加快计算速度)5、实现函数void strcopy(char * dest_str, char * sour_str, int n)将从dest_str开始的n个字符拷贝给sour_str.保护模式,内存4GB.以上就是小弟今天的面试题,虽然今天答得不好,但事后一定要把它学会。
            多谢大家帮忙^_^

解决方案 »

  1.   

    1.d
    2.a
    3.a
    4.a
    5.
    6.d
    7.a
    8...
    ...
      

  2.   

    1,
    2,a
    3,a
    4,也许是b
    5,c?,d?(不知道p是何种类型的指针)
    6,猜测是a
    7.d
    8,b
    .......
      

  3.   

    下面是我今天在面试时候的答案:请大家多多指教一.
    1.D 
    2.A 
    3.A 
    4.C 
    5.C 
    6.A
    7.A 二.
    1.{bcd,cd,d}
    2.X * f(X-1);
    3. D=3; j=10;
      

  4.   

    YOU ARE RIGHT^_^
    TO: oyljerry(☆勇敢的心☆-Paper Reviewing) 
    能做做编程的题吗?
    我感觉这部份我答的不好,希望你能给出答案!
      

  5.   

    1.C  <C、D的写法都不对,不过D可以看成是a+1,所以算对了>
    2.A 
    3.A 
    4.C 
    5.C 
    6.A
    7.A
      

  6.   

    编写一个函数,将字符串反序输出void RollBackStr(char* strData)
    {
       int nLen = strlen(strData);
       char chTmp;
       int i=nLen,j=0;
       while(i>j)
       {
          chTmp = *(strData+j);
          *(strData+j) = *(strData+i-1);
          *(strData+i-1) = chTmp;
          j++;
          i--;
       }
    }
      

  7.   

    只看到前6题,明天接着看,
    不过第4题不明白为什么是64,
    第5题我在VC下得到的结果是2,也就是说选A,但是楼主给的答案是C,不知是怎么回事,也不明白。
    高手先指点一下。
      

  8.   

    1、若有定义 int a[8], 则下列表达式中不代表数组a[1]地址的是: A &a[0]+1   B &a[1]   C &a[0]++   √D a++2、指针S所指字符串长度为:
     Char *S=”\”Name\\Address\n”   √A 14    B 15   C 16     D 173、有Hash函数 unsigned short hash(unsigned  short key)
     {return (key>>4)%256}, 问 hash(16)和hash(256)的值:   √A 1,16   B 8,32   C 14,16    D 11,324、在某种开发环境下,char被定义为8位1个字节,
    系统采用32位迅址,定义数组char **a[4][4], 
    则a所占用的内存有   字节   A 16  B 32  √C 64  D1285、已知int a[8]={1,2,3,4,5,6,7,8}, *p=a;
     *(p+1)*(p+1)[1]的值是:   A 2  B 3    √C6  D不确定6、char a=-1; short b; b=(short) a;则 b的值为:  √A -1  B 1    C65535    D 255
    7、下列原因中导致堆栈不足的直接原因的是:a.子程序中,局部变量占空间过大;b.程序中全局变量占空间过大;c.子程序行参占空间过大;√d.程序调用过深;8、关于进程的说法:√a.进程进入运行状态是通过调度程序实现的b.单CPU系统,任一时刻有一个进程处于运行状态c.进程无法获得CPU资源时,处于等待状态d.???
    填空:1、main()
    {
     char *p;
     char s[]=”abcd”;
     for(p=S+1;p<s+4; P++) printf(“%s\n”);
    } 写出打印结果:
     
     (不可预知的结果, 因为printf缺少参数)
    2、请在空格出填写一行程序,使函数完成计算X阶乘的功能
     int f(int x)
    {
     if(x==1) return 1;
     else return ______
    }; x*f(x-1);3、enum{A,B,C,D,E,K=9,j}; 问D:__J:___ D:3
     J:10
    4、素数的个数(程序填空)
    5、一个字符占1个字节,
     采用32位寻址方式,
     则数组char**[4][4]占用多少字节?
     
     4*4*4 = 64字节6、Char a=-1;   unsighed int b;   b=a;   printf(“%d”,b);   输出结果是什么?
      
       在16位系统中是: 65535
       在32位系统中是: 4294967295
       (不会是255吧)7、有数组a[1,2,3,4,5,6],p=a;   求下式子:   *(a+1)*(p+1)[1]=?   68、举至少4例说明进程改变状态的原因.
     
    编程题1、请定义一个双项链表结构 ,并编写函数传入两个两表节点,交换位置 
    struct NODE
    {
     int nData;
     NODE* pPrev;
     NODE* pNext;
    };NODE* swapNode(NODE* pHead,int nPos1,int Pos2)
    {
      if(pHead == 0) return pHead;
      if(nPos1 < 0) return pHead;
      if(nPos2 < 0) return pHead;  NODE* pNode1 = pHead;
      NODE* pNode2 = pHead;  for(int i=0; i<nPos1; ++i)
      {
        if(pNode1 == 0) return pHead;
        pNode1 = pNode1->pNext;
      }  for(int j=0; j<nPos1; ++j)
      {
        if(pNode2 == 0) return pHead;
        pNode2 = pNode2->pNext;
      }  if(pNode1 == 0) return pHead;
      if(pNode2 == 0) return pHead;  if(pNode1 == pNode2) return pHead;  NODE* pPrev1 = pNode1->pPrev;
      NODE* pPrev2 = pNode2->pPrev;
      NODE* pNext1 = pNode1->pNext;
      NODE* pNext2 = pNode2->pNext;  pNode1->pPrev = pPrev2;
      if(pPrev2 != 0)
        pPrev2->pNext = pNode1; 
      else
        pHead = pNode1;  pNode2->pPrev = pPrev1;
      if(pPrev1 != 0)
        pPrev2->pNext = pNode2;
      else
        pHead = pNode2;  pNode1->pNext = pNext2;
      if(pNext2 != 0) pNext2->pPrev = pNode1;       pNode2->pNext = pNext1;
      if(pNext1 != 0) pNext1->pPrev = pNode2;   return pHead;
    }2、编写一个函数:输入一个字符串, 输出按字母顺序排列后的字符串   3、编写一个函数,将字符串反序输出
       void printX(const char* pS)
       {
          if(*pS == 0) return;
          printfX(pS+1);
          printf("%c",*pS);
       }4、求一个100大小的整数的所有因子.
    (提示,由于该数不是很大,所以可以将质数保存在数组中,以加快计算速度)
    5、实现函数
    void strcopy(char * dest_str, char * sour_str, int n)
    将从dest_str开始的n个字符拷贝给sour_str.保护模式,内存4GB.void strcopy(char * dest_str, char * sour_str, int n)
    {
      if(dest_str == 0) return;
      if(sour_str == 0) return;
      if(n<=0) return;
      if(dest_str == sour_str) return;
     
      // 假设sour_str和dest_str数据区域不重叠
      while(*sour_str)
      {
        *dest_str = *sour_str;
        dest_str++;
        sour_str++;
        n--;
        if(n<=0) return;
      }
      *dest_str=0;
    }