亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • c語言面試找錯題

    時間:2020-11-08 09:03:19 面試問題 我要投稿

    c語言面試找錯題

      1、 C 語言同意一些令人震驚的結(jié)構(gòu),下面的結(jié)構(gòu)是合法的嗎,如果是它做些什么?

    c語言面試找錯題

      int a = 5, b = 7, c;

      c = a+++b;

      這個問題將做為這個測驗(yàn)的一個愉快的結(jié)尾。不管你相不相信,上面的例子是完全合乎語法的。問題是編譯器如何處理它?水平不高的編譯作者實(shí)際上會爭論這個問題,根據(jù)最處理原則,編譯器應(yīng)當(dāng)能處理盡可能所有合法的用法。因此,上面的'代碼被處理成:

      c = a++ + b;

      因此, 這段代碼持行后 a = 6, b = 7, c = 12。

      如果你知道答案,或猜出正確答案,做得好。如果你不知道答案,我也不把這個當(dāng)作問題。

      我發(fā)現(xiàn)這個問題的最大好處是這是一個關(guān)于代碼編寫風(fēng)格,代碼的可讀性,代碼的可修改性的好的話題。

      2、下面的代碼輸出是什么,為什么?

      void foo(void)

      {

      unsigned int a = 6;

      int b = -20;

      (a+b > 6) ? puts("> 6") : puts("<= 6");

      }

      這個問題測試你是否懂得 C 語言中的整數(shù)自動轉(zhuǎn)換原則,我發(fā)現(xiàn)有些開發(fā)者懂得極少這些東西。不管如何,這無符號整型問題的答案是輸出是 ">6"。原因是當(dāng)表達(dá)式中存在有符號類型和無符號類型時所有的操作數(shù)都自動轉(zhuǎn)換為無符號類型。因此-20 變成了一個非常大的正整數(shù),所以該表達(dá)式計(jì)算出的結(jié)果大于 6。這一點(diǎn)對于應(yīng)當(dāng)頻繁用到無符號數(shù)據(jù)類型的嵌入式系統(tǒng)來說是豐常重要的。如果你答錯了這個問題,你也就到了得不到這份工作的邊緣。

      3、請找出下面代碼中的所以錯誤

      說明:以下代碼是把一個字符串倒序,如“abcd”倒序后變?yōu)?ldquo;dcba”

      1、#include"string.h"

      2、main()

      3、{

      4、 char*src="hello,world";

      5、 char* dest=NULL;

      6、 int len=strlen(src);

      7、 dest=(char*)malloc(len);

      8、 char* d=dest;

      9、 char* s=src[len];

      10、 while(len--!=0)

      11、 d++=s--;

      12、 printf("%s",dest);

      13、 return 0;

      14、}

      答:

      方法 1:

      int main(){

      char* src = "hello,world";

      int len = strlen(src);

      char* dest = (char*)malloc(len+1);//要為\0 分配一個空間

      char* d = dest;

      char* s = &src[len-1];//指向最后一個字符

      while( len-- != 0 )

      *d++=*s--;

      *d = 0;//尾部要加\0

      printf("%s\n",dest);

      free(dest);// 使用完,應(yīng)當(dāng)釋放空間,以免造成內(nèi)存匯泄露

      return 0;

      }

      方法 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;

      }

      4、請問下面程序有什么錯誤?

      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;

      答案:把循環(huán)語句內(nèi)外換一下

    【c語言面試找錯題】相關(guān)文章:

    經(jīng)典C語言面試算法題09-24

    c語言指針面試常見問題09-28

    華為c語言筆試面試題題庫11-09

    2017年c語言面試筆試題09-03

    嵌入式開發(fā)—C語言面試題08-17

    C語言編程練習(xí)11-23

    C語言編程題11-23

    C語言符號積累08-20

    c語言基本符號08-20

    計(jì)算機(jī)程序c語言面試常見問題12-08