錯題筆記第三天

  1. 7&3+12的值是15。請問這個說法是正確的嗎?
    錯誤 因爲+的優先級大於& 先進行加法 之和進行位與。 答案爲7;
  2. 變量a是一個64位有符號的整數,初始值用16進製表示爲:0x7FFFFFFFFFFFFFFF;變量b是一個64位有符號的整數,初始值用16進製表示爲:0x8000000000000000。則a+b的結果用10進製表示爲多少?
    答 :-1 錯誤原因 正負數的符號位搞錯了。
  3. 設x、y、t均爲int型變量,則執行語句:t=3; x=y=2; t=x++||++y; 後,變量t和y的值分別爲____ t = 1,y=2;
    錯誤原因 :邏輯或當成位或;
    邏輯或有一即爲真 x++ 不爲0 t=1 。後面的++y被“短路”沒有計算 所有y沒有+1;
  4. #include<stdio.h>
    #include<string.h>
    char * fun (char *t)
    { char p=t;
    return(p+strlen(t)/2); //指針向後移動長度的一半
    }
    int main(void)
    { char
    str= " abcdefgh";
    str= fun(str);
    puts(str);
    return 0 ;
    }
  5. 函數x的定義如下,問x(x(8))需要調用幾次函數x(int n)?
    int x(int n){
    cnt++;
    if (n<=3)
    {
    return 1;
    }
    else
    {
    return x(n-2)+x(n-4)+1;
    }
    }
    18次 遞歸計算 注意+1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章