1樓:在下姓周
結果是 4
>> 是c語言中的右移運算子,它將運算元按位右移,即把低位去掉然後在高位補0或者補1
當運算元是無符號數或者正數時,高位補0; 是負數時高位補1如:無符號數 11100000 右移3位的結果為:00011100有符號數 11100000 右移3位的結果為:
11111100所以 8 也就是二進位制的 1000 >> 1 的結果為 100(高位的0省略),即十進位制的 4
另在二進位制中,每個數位的位權為2,所以右移 n 位就相當於除以 2的n次方
2樓:
輸出十進位制數 4和回車
8的二進位制是1000,在c語言中,由2(或4,由你所用的編譯器決定)位元組表示。就是說它在計算機總表示為:0000 0000 0000 1000
右移(>>)就是將概資料依次右移一位,最低位溢位(丟棄),最高位補零
以上二進位制碼右移後變為:0000 0000 0000 0100 ,也就是十進位制的4
因為右移後所有位的位權都用要有減一,由那麼原來的2^n變為2^(n-1),所以相當於除以2
相反若為左移就相當於乘以2(注意,左移時是最低位補0,最高位丟棄)
再舉個列子:9右移後得4
0000 0000 0000 1001>>0000 0000 0000 0100
(最低位丟棄)
3樓:匿名使用者
樓上正解
r>>1 這個是移位操作
4樓:匿名使用者
應當輸出十進位制數 4
8的二進位制是00001000,右移1位後,00000100,十進位制數 4
5樓:匿名使用者
>>的意思是位右移一位,要先將8化為二進位制1000,右移一位就是0100,轉化為十進位制就是4了,明白嗎?
6樓:匿名使用者
4;r>>1相當於除以2
c語言題目簡單的題目?
7樓:
定義陣列,長度必須是個確定的值,char p[n],這樣肯定不對
字元比較,,不用strcmp,這個是比較字串的,只用用if( p[i]== 'a' )這樣就可以了
str[i]是個什麼?看不出來
8樓:武聰司寇璐
要看區別直復
接,替換到語句中
制就明白了:
1,設有一以下巨集定義
#define
width
80#define
length
width+40
則執行賦值語句
v=length*20
v=?替換得:
v=80+40*20
這顯示不是你想要結果
2,設有一以下巨集定義
#define
width
80#define
length
(width+40)
則執行賦值語句
v=length*20
v=?替換得:
v=(80+40)*20
所以一看就明白結果是不一樣的。
9樓:匿名使用者
mian
else if(str[i]=='b')
else if(str[i]=='c')
}printf("%d,%d,%d",a,b,c);}
10樓:匿名使用者
#include
int main()
;while((c=getchar())!專='\n')屬r[c-'a']++;
printf("%d %d %d",r[0],r[1],r[2]);
return 0;}
11樓:青島第一仙女
?啊啊啊啊啊啊啊啊啊
12樓:匿名使用者
11111111111
c語言的問題,這道題怎麼做啊? 50
13樓:匿名使用者
考你遞迴的用法:
10送入fun(10)
void fun(int n)
n/2=5,條件為真,呼叫函式fun(5),printf("%d",10%2);被壓棧
n/2=2,條件為真,呼叫函式fun(2),printf("%d",5%2);被壓棧
n/2=1,條件為真,呼叫函式fun(1),printf("%d",2%2);被壓棧
n/2=0,條件為假,列印printf("%d",1%2);也就是1
由於棧是先進後出的,所以反相出棧,列印printf("%d",2%2);也就是0
然後列印printf("%d",5%2);也就是1
然後列印printf("%d",10%2);也就是0
所以結果為:1010
14樓:洪冷鬆
四題選項b和d明顯是相反條件啊,你只要判斷出d是等價的,b肯定就是不等價的啊。
再說題意,while( e ) 就是說只有e的值為0的時候,條件判斷結果為:false
d選項中 ( e != 0 ),當 e 的值為 0 的時候,條件判斷為假:false----等價
b選項中 ( e == 0 ), 當 e 的值為 0 的時候,條件判斷為真:true----不等價
綜上,選b
15樓:聽不清啊
這個題,就是選擇答案d。
圖中,if(n/2)其實就是等價於if(n/2!=0),考慮到n是正數,它也就等價於if(n>1)
總之,第一次呼叫,就滿足條件,進行遞迴呼叫:fun(5)…………具體見圖所示(一個紅框,就是一次函式呼叫):
依輸出的先後次序,總的輸出就是:1010
16樓:匿名使用者
fun(10);
fun: n=10, n/2不等於0成立,fun(n/2); [n/2=5]
fun: n=5, n/2不等於0成立,fun(n/2); [n/2=2]
fun: n=2, n/2不等於0成立,fun(n/2); [n/2=1]
fun: n=1, n/2不等於0不成立,printf輸出:1fun:
n=2, printf輸出:0,累計輸出:10fun:
n=5, printf輸出:1,累計輸出:101fun:
n=10, printf輸出:0,累計輸出:1010printf輸出:
換行並不是a
17樓:自我程式設計
列印1010。
這是遞迴函式,每次執行到呼叫自己的時候,要等呼叫的那個執行完
才會返回繼續執行下一條語句。
也就是說
if(n/2)fun(n/2);//每一次呼叫自己的這一句執行結束,才會執行下面的列印。
printf("%d",n%2);
所以每一層都會列印自己的變數n%2的值。
而最先執行列印的是最裡一層的呼叫,整個執行過程分別是fun(10)->fun(5)->fun(2)->fun(1)。
既列印1%2,2%2,5%2,10%2,也就是1010。
18樓:夏天的小紅花
這是一個把十進位制數n轉換為二進位制數的程式,選擇答案d。程式的執行是這樣的,裡面判斷語句的功能就是說,如果n除以2的值大於0,就進行遞迴呼叫。這個語句也可以寫成為如果n大於1就進行遞迴呼叫。
等到遞迴呼叫返回時,再輸出這個n除以2的餘數,但是這個操作是要等遞迴呼叫返回後才輸出的,所以是最後一次呼叫的時候的輸出是最靠前的。這樣就實現了反向除二取餘數的功能,也就是說把n轉換為二進位制進行輸出。
簡單的C語言題,C語言題目簡單的題目?
c getchar n 的含義是什麼?從鍵盤接收一個字元賦給變數c,若c不是回車,while進入下一輪迴圈,若是回車則退出迴圈。如果輸入kas2i9e則程式的最後輸出結果是什麼 輸出是29。因為if c 0 c 9 限制只處理0 9這10個字元,n的初值是0,遇到2時n 10 0 2 0 0 2 2...
c語言的題目,C語言的題目
錯誤1 巨集定義最後沒有分號,將 define d 500 改為 define d 500 錯誤2 l不是整數,因此將l定義為int型就錯了 錯誤3 既然規定輸入格式為p 那麼輸入時就不能直接輸入數值,而應在數值之前輸入p 例如輸入p 6000 另外,程式的不妥之處 1 利潤不一定是整數,因此將p定...
求c語言題目,求C語言題目
c語言經典100題 程式1 題目 有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數 都是多少 1.程式分析 可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去 掉不滿足條件的排列.2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成.利潤 i 低於或等於1...