C語言問題計算,c語言這題怎麼計算?

2023-07-13 16:00:07 字數 4798 閱讀 8420

1樓:仲孫金生羊婷

因為sum=a+b;的時候a,b都沒有賦初值。應該先對a

0,b0再參加運算。

2樓:祈蕾杞培

開始定義變數後沒有賦值操作,直接進行了運算。

所以出現這種情況,正確的是。

voidmain()

3樓:網友

順序問題。編譯器是按照循序執行語句。

程式當中你先定義了a,b

並沒有初始化。編譯器給分配了儲存空間但其中的內容並不確定。

所以當執行到sum=a+b的時候就把a,b當中的隨機的值取了出來。

然後你又定義了a,b的值,這是並不影響sum的值。所以可以這樣改。

voidmain()

4樓:魯實丘辛

選b*(p+8)

過程見下:*p=a;//初始時陣列a的首元素的位址賦給了指標變數p說明:在c語言裡陣列名代表陣列首元素,這句話你必須得記住。

推論:*(p+8)

括號裡的優先順序比*號要高,所以先執行。

p+8(p+8與a[8]等價)p+8是位址。

通過上述可知:*(p+8)//其中「

表示「指向」,*p+8)表示「指標變數p所指向的變數」即a[8]元素的值9

c語言這題怎麼計算?

5樓:四季花城廣場

**執行結果:

#include

int main()

int left = 0;//左下標變數。

int right = 0;//右下標變數。

int arr[10] =陣列。

int lsarr[10] =臨時陣列。

right = sizeof(arr) /4 - 1;//獲取陣列位數。

while (right !=0)//進行迴圈。

lsarr[left] =arr[right];/將arr右下標賦值給lsarr左下標。

right--;

left++;

for (int i = 0; i < 10; i++)列印出來。

printf("%d ",lsarr[i]);

return 0;

c語言計算問題

6樓:湯菊孝嬋

答案是22.。

t=(+i)+(i)+(i)=6+8+8=22。。

為什麼呢。這是v

c++編譯器。

的特性。就是最後兩個數的優先順序是相同的。。這樣說起來有點抽象。舉幾個例子您自己去琢磨吧。。

這是因為31=6+7+9+9。。

這是因為41=6+7+8+10+10

這是因為52=6+7+8+9+11+11。。

我只能這樣解釋了。。什麼看不懂的再問我吧。。嘿嘿。

7樓:盤季問浩

c語言裡以0開頭的數表示是八進位制數,那麼,八進位制轉換成二進位制的方法是,乙個八進位制位佔3個二進位制位。

如果用二進位制表示那麼。

x=001011

y=010101

z=000001

z=111110

的優先順序高於^,,優先順序高於|

y&z=000001,.x|y&z=001011,即十進位制的11,所以第乙個用%d輸出的是11

y&~z=010100,.x|y&~z=011111,十進位制的31y&~z=010111,x^y&~z=011111,十進位制的31

8樓:實娜夫白

首先x,y,z都是八進位制的數,這裡面的運算都是用二進位制的所以化為二進位制是x=00001011,y=0010101,z

00000001(用八位表示,不足八位的用0補足)(1)先進行與運算再進行或運算即(x|(y&z))11(十進位制)

2)先進行取反再進行與運算,最後或運算即(x|(y&(~z))31(十進位制)

3)先進行取反再進行與運算,最後進行異或運算即(x^(y&(~z))

00001011^(00010101&(~00000001))=00011111=31(十進位制)

9樓:燕澹厲採

求反運算。求反運算子~為單目運算子,具有右結合性。

其功能是對參與運算的數的各二進位按位求反。例如~9的運算為:

0000000000001001)結果為:1111111111110110

按位或運算。

按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只要對應的二個二進位有乙個為1時,結果位就為1。參與運算的兩個數均以補碼出現。

例如:9|5可寫算式如下:

十進位制為13)可見9|5=13

按位與運算。

按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現。

例如:9&5可寫算式如下:

9的二進位制補碼)&00000101

5的二進位制補碼) 00000001

1的二進位制補碼)可見9&5=1。

c語言問題求解?

10樓:匿名使用者

簡單的說:由於你的**是非標準方法訪問變數,導致結果非常不確定,沒有固定答案,不同編譯器結果不一樣。

你這樣是故意記憶體訪問越界來計算麼?為什麼要研究這個呢?因為這樣做非常明顯的違背軟體工程的。

問題是這個答案是沒有標準答案的,因為編譯器會對結構內的記憶體布局稍微做調整,不同編譯器和不同編譯條件導致的布局都不一樣,沒法給你確保arr值得準確性。

所以我建議是至少不要現在研究這個,等你學的深入了對記憶體布局及編譯器優化有深刻了解在研究這個。對於初學者而言,養成良好的程式設計習慣很重要,這種東西還是不對的。

c語言計算問題問題

11樓:匿名使用者

a=1,b=0,c=3

首先看運算子的級別:()關係運算子》賦值運算子整個是乙個關係表示式:

從左往右:ik為假 值為0,賦給b,所以b=0

因為是與運算,有乙個為假就整體為假,後面就不做,故c=3

12樓:匿名使用者

ik是假的,所以j>k=0;所以b=0,ijk都!=0,所以c=1;

c語言運算的問題

13樓:乙個愛學習的

// 先執行右邊括號裡面的 從左向右執行,//第一步 執行a = 3 ==a = 3// 第二步 執行 b = a-- 因為--在後,所以a先賦值給b 即b=3 a在--,即a = 2

第三步 x的值,在此執行過程中,x取括號裡面最後一次執行的值,即取b的值。

14樓:匿名使用者

b=a--,先將a的值賦給b,a再自減1

a=3,b=a=3,然後a自減1,a=2

x=(a=3,b=a--)右邊為逗號運算子,從左至右執行各語句,並將最後乙個語句的計算結果賦給x,對於本題,也就是將b的值賦給。

因此,執行語句x=(a=3,b=a--)後,x的值是3,a的值是2,b的值是3。

15樓:烏綸奇初珍

0/3=0

對於除法運算子的運算屬於算術運算的範疇。

進行算術運算的資料型別一般為:整型(int),長整型(long),短整型(short),字元型(char),實型《實型又分單精度實型(float)雙精度實型(double)>

1.當運算雙方是同型別的話,那麼結果也是一樣的型別,比如如果都為整型(int),那麼結果也是整型。

例:2/4=0;7/2=3;-5/3=-1

採取向0取整的原則。如果雙方是float型,那麼結果也是float型(小數部位是7個有效數字)

2.當運算雙方不是同型別的話,那麼機器就會自動地進行型別轉換。

double<--float

longunsigned

int<--char,short

橫向向左的箭頭是必定轉換的,如果資料型別是char的話必須先轉換為int型,對於縱向的越往上級別越高,也就是兩個資料間低等級的型別要先轉化到那個高等級的資料型別,然後再進行計算,當然結果也就是那個高等級資料型別的形式。

3.還有種強制轉化計算的方式,就是為了得到自己想要的資料型別,而將乙個不符合標準的資料型別進行強制轉換,比如float型的資料不能進行求餘運算,所以必須要將他強制轉化為int型方可運算,否則出錯。例:

floata=;(int)a%2=1;

c語言關係運算問題

16樓:匿名使用者

&&是從左向右運算的,先算 m=a>b,由於a>b是false,返回0,所以m=0

是的&&運算為false,因為左邊已經是false,右邊就不運算了。

所以n還是=2

17樓:

m=a>b的執行結果,是m的值,是0,所以,&&後面的式子不再執行。

n=c>d未執行。

所以,n仍然是初值,為2

18樓:智遴

因為左邊已是零,所以不需要對右邊進行運算了,因此n的值不變。

19樓:匿名使用者

c的與&&運算有短路功能。當參加與&&運算的第乙個運算元(m=a>b)為假時,直接返回假,而不對第二個運算元(n=c>d)執行處理,即n=c>d沒有被執行。

c語言 基本計算問題?

20樓:網海1書生

x=5>1+2&&2||2*4<4-!0

1 (|後面的不需要計算)

C語言的乙個計算題,c語言這題怎麼計算?

這個問題是乙個運算子優先順序的問題!題目中的優先順序 最高,依次是 所以上一題首先求解的是 第乙個 求解 z y為真,所以結果是1,用它的結果和x比較,1 2,所以括號內的結果是0 第二個 求解 y z為真,結果為1 第三個 求解 x y 2 4 6 第四個 求解 y z 2 所以得到的結果是!0 ...

C語言的問題,這道題怎麼做啊,C語言的問題,這道題怎麼做啊?

考你遞迴的用法 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...

C語言問題,c語言問題

int a 4 void main int a 2 這種局 bai部變數,會du隱藏掉上一級 定義zhi的同名變數,下面dao 也是一樣回 中有效。所以上面的復合語句中,會輸出0,下面呼叫sub1時,實際上傳入的是main中的int a 2 又有a a 1,所以會輸出1,下面也是一樣的,main中的...