C語言面試題

來源:互聯網
上載者:User

標籤:空間   複製   char   const   崩潰   檔案組   不同   bsp   方式   

C語言經典面試題:

1.可以做switch()的參數類型是:

答:只能是int和char型。

2.寫出float X與零值比較的if語句

答:if(x>-0.000001&x<0.000001)

3.C語言中將一個字元轉換成整數的函數是哪個?寫出這個函數的原型

答:函數:atol()

    功能:把字串轉換成長整型

    原型:long atol(const char *nptr)

樣本:

#include<stdio.h>

int main()

{

  long lNum=0;

  char *str="12345";

  lNum=atol(str);

  printf("String=%s integer=%d\n",str,lNum);

  return 0;

}

4.unsigned char *p1=(unsigned char *)0x801000;

  unsigned long *p2=(unsigned long *)0x810000;

  p1+5=?,p2+5=? 

答:p1+5=0x801005,p2+5=0x810014;

5.求值:int aNum=5,bNum=0;

        bNum=(aNum++)(aNum++);

        aNum=?,bNum=?

答:aNum=7,bNum=25

6 一16位整數1101010110110111,每四位為一個整數,寫函數求值

答:char sumFunc(unsigned short num)

    {

      char ch=0;

      int  iCount=4;

      do{

           c+=n&15;

           n>>4;

         }(while--i);

     return 0;

     }

7.編程實現兩個字串s和t,把t字串拼接到s字串尾,s字串有足夠的空間存放t字串

void strConnect(char *s,char *t,int n)

{

  char *p=s;

  char *q=t;

  if(q==NULL)

     return;

  while(*p!=‘\0‘)

     p++;

  while(*q!=‘\0‘)

  {

     *p=*q;

      p++;

      q++;

   }

   *p=‘\0‘;

}

void main()

{

   char cArray1[10]="abcde";

   char cArray2[3]="xyz";

   strConnect(cArray1,cArray2,3);

   printf("%s",cArray1);

}
8.static全域變數與普通全域變數的區別,static局部變數與普通局部變數的區別,static函數與普通函數的區別。

答:1.非靜態全域變數的範圍是整個來源程式,當一個來源程式由多個源檔案組成時,非靜態全域變數在各個源檔案中都是有效,而靜態全域變數(只初始化一次)限制了其範圍,只在定義該變數的源檔案內有效,同一來源程式的其它源檔案都不能使用它。

    2.static局部變數(只初始化一次)儲存在靜態區,普通局部變數儲存在棧中,儲存方式不同。

    3.static函數在記憶體中只有一份,普通函數在每個被調用中都維持一份拷貝。

9.char a;

  char *str=&a;

  strcpy(str,"hello");

問這段代碼有什麼問題?

答:沒有為str分配記憶體空間,將會發生異常,將一個字串複製進一個字元變數指標所指指標,雖然可以正確輸出結果,但因為越界進行內在讀寫導致程式崩潰。

C語言面試題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.