C語言的題目問題,C語言題目簡單的題目?

時間 2021-08-16 12:10:42

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...