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語言題目求詳解
域寬不夠時 自動四捨五入輸出。c語言題目求詳解 具體的c語言題目沒有給出,因此我無法提供細節和解答。一般來說,在學習和掌握c語言過程中,需要熟悉c語言的語法 資料型別 控制結構和函式等基礎知識,並能夠靈活運用這些知識解決問題。掌握c語言程式設計技巧和除錯方法同樣重要,要能夠編寫簡單的程式,除錯出程式執行...
c語言程式題目,c語言程式 題目
死兔子 include void main int grgc,char argv printf s help init questionsystem while 1 以上是程式的main函式部分,你需要做的是首先定義乙個結構體,比如 typedef struct question char ques...