c語言基礎問題求解。c語言基礎問題,求解答

時間 2023-04-20 06:27:02

1樓:網友

a=0&&b=1的值為1,因為a=0的意思就是把0賦給a,結果肯定是1(如果是a==0,那麼要a等於0才是1),b=1同理。

a&&b是表示a和b都要是1結果才是1

a||b是表示a和b裡面只要有一個1結果就是1while(a)表示只要是a不是0就要執行while裡面的語句。

while(!a)表示!a的值不是0就要執行while裡面的語句(也就是a==0的時候,!a的值為1)

表示對a的結果取反,a如果是1那麼結果就為0,a如果是0那麼結果就是1

這個符號我估計是幾次方的意思,比如2^3就表示2的3的次方。

希望樓主能夠理解上面的解釋啊。

2樓:匿名使用者

a = 0 &&b=1的最終值是0,因為只有&&左右均為1結果才能為1,否則為0,你可以理解為「與運算」

a = 0 ||b=1的最終值為1,你可以理解為「或運算」

while(a)是指,當a不等於0則執行while下的**,否則跳過while。

同理while(!a)是指,當a等於0時則執行while下的**,否則跳過。(!是非運算,你可以理解為相反)

是次方符號。

c語言基礎問題,求解答

3樓:匿名使用者

輸入兩個整型數a=5, b=9

兩個整型指標pointer_1個pointer_2分別指向a和b的地址。

判斷 if (aswap函式的本意,應該是將pointer_1和pointer_2所指地址中的進行交換。

但是錯誤典例中的swap,只是交換了p_1和p_2兩個區域性變數的值。

當swap函式結束,兩個區域性變數就失效了。

沒有對外部的pointer_1和pointer_2產生影響,它們所指地址中的值也就沒有變化。

因此最終輸出仍為*pointer_1=a=5,*pointer_2=b=9;

要想交換pointer_1和pointer_2所指地址中的值,應在swap中使用*

改為如下形式:

void swap(int *p1, int *p2)

就可以交換p1和p2所指地址中的值,也就交換了a和b的值。

c語言的基礎問題,求解不會 50

4樓:匿名使用者

根據運算子優先順序/結合性,從內往外剝離

定義了變數p,

(*p),說明p的本質是一個指標

再外層的[4],說明指標指向的是一個有4個元素的陣列

再往外一層,int,說明陣列的元素型別是int

所以是頂一個一個陣列指標p,並初始化為陣列a的首地址

所以*(p+2)+3,即p[2]+3

又知道陣列a的首地址為100,sizeof(int)=2,所以100+2*4*2+3*2=122

同理,下一題*(*p+2)+3),即p[2][3],即a[2][3]

c語言問題求解

5樓:阿蔥來了

這道題的意思是比較兩個字串每一位所對應的字元是否相等,找到第一個不相等的字元(在有效字元內),此時 i 為1 執行了s1[1]-s2[1] 算術運算也就是ascll碼進行相加減,ascll表中 i 與 n 的數值相差5 小的減去大的,為負5 且 s 是 int 型別 有符號 所以顯示結果為負5

6樓:童年月夜

因為i的ascii碼減去n的ascii碼就等於-5呀。

c語言問題 求解

7樓:網友

.5 (float)a/b= a%c*c=9*16=144 b/c=0

5 a=,所以結果是float型 (int)(b/3*(int)(a+c)/4)%6=(int)(7/3*(int)(3.

3、a=6,執行了加一操作 b=11,執行了減一操作。

c語言基礎問題,求解釋!

8樓:烏長星

這涉及到c語言的一些規定。

第一就是自動向上轉換: 也就是說 佔用空間少的型別和佔用空間多的型別運算,運算結果轉換為佔用空間多的型別 (這是為了防止運算結果放在少空間發生溢位)int 佔用4個位元組 double 佔用8個位元組。

運算結果 為double型別(這是因為最後加的x為double 型別的)如果x是int 型別的要強制型別轉換才能裝換成y 的double 型別。

第二向下取整:也就是說整型和整型運算結果應還為整型,除法也不例外 那麼除不盡怎麼辦呢 那就向下取整 3/2得 向下取整得1 這裡不同於四捨五入只要小於二數都取一。

綜上所述 結果應該為 double 型別的

9樓:匿名使用者

3/2中的3和2 預設為整型 3除二算出也是整形 即為1 然後整形和雙精度型別混合計算自動轉換為雙精度型別。

10樓:德昂當

3/2兩個整型數相除,結果還是整型數,3/2=1

y=x+1= x 是浮點型,所以加個小數位。

11樓:匿名使用者

3/2是整型得到的數為整型,3/2=1,1+1=2 ,y為double 所以y的值為 選 c

c語言基礎問題

12樓:

k++ 就是 k本身加1

如果k=1, 執行 k++ 後 k=2

k++ 就是 k本身加1

k--類似,k=1, 執行 k-- 後 k=0c語言中,和其他不一樣的,是k前字尾操作的問題比如: k++,是先取k,操作,然後對k 加1.如果在等式中,就要注意了。

int a = 10;

int k = 8;

a = k++;

先把k 賦值給a,然後k加1;

結果是a = 8, k=9;

如果反過來,就不一樣了。

int a = 10;

int k = 8;

a = k;

先k加1,再把k賦值給a

k=9; a=9;

13樓:匿名使用者

1. 自加,自減運算表示式,在《全國計算機等級考試二級教程——c語言程式設計》(教育部考試中心編寫,高等教育出版社出版)中,認定其實質是賦值運算。(自己可以預設表示式前面有一個未知數x=,即x=k++,x=k--,x可以是k本身)。

2. 自加,自減運算子,1)如果是變數的字尾,則該表示式值不變,即為原變數的值,而變數的值進行自加1,自減1。

如:int k=1;k++和k--的值都為1,而k++的k變數變為2, k--的k變數變為0。

2)如果是字首,則執行後,該表示式值發生變化,且與變數最後的值一致。

如:int k=1;++k與k都為2,--k與k都為0。

簡單地說,就是: 字尾先賦值(給x),後運算(變數)。

字首先運算(變數),後賦值(給x)。

14樓:匿名使用者

k++其實就是 k=k+1

k--就是 k=k-1

就是在當前這個結構(迴圈 if。。。即花括號內東西)進行中不改變k 在這個結構結束後再讓k自加1

15樓:匿名使用者

例如:k=10;

i=k++,加號在後面, i=10, k=11; 意思先把k值給i再加1

i=++k,加號在前面, i=11, k=11; 意思k先加1然後把值給i

-」同理可證。

16樓:匿名使用者

int k=0;

k++;這時k=0

下一步時k=1

k--同理。

c語言基礎問題

17樓:果樂

(a++)b 和a+++b兩個表示式一樣的a++,在後面的時候,先保留a的運算,a全部運算完後a才自加對於這個題目,a++,此時a=5,不做運算下一個字元是b沒有模組運算。

這時c的全部運算結束。

a為5,b為7 所以結果是c=5+7=12.

此時才開始計算表示式中的a++

然後a變為6

最後的值就是。

a=6b=7

c=12希望對你有幫助。

補充:也就是c=a+++b

等同於c=a+b a++

18樓:祖立志

會報編譯錯誤,運算子需要用空格隔開,空格的位置不同答案會不一樣。

實際程式中永遠不要這麼寫,讓人難以理解。善用括號吧。

19樓:百思不de騎姐

c為12,c=a+++b;拆開就是c=a+b;a++;

求採納 謝謝。

20樓:烈鷹之翼

目測為12,因為根據運算子的優先順序,單目運算子優先與雙目運算子,所以先是++b,也就是8,然後再加a=5,就是12

21樓:

本身寫法就錯了,編譯器會自動從左向右,a++後執行+++語法錯誤,你的意思大概是(a++)b)把? 這樣答案是13。

22樓:匿名使用者

c為12,原因是先進行a+b的運算,在進行a++的運算。如果c=++a+b,則結果是13.原因是先進行a++,在進行a+b運算。

記住有++符號時,在字母前面就先運算,在後面就後運算。

c語言基礎問題,C語言基礎問題

一 c語言規定總是從main 開始執行的 這個函式也叫 主函式 因此,你發來的題目中的 1 6 8 敘述都是錯誤的,都應該選擇f。二 第2題中,c語言對其資料在記憶體中所佔用的實際位元組數,隨著程式中宣告的資料型別以及資料的多少而變化,c語言本身並沒有明確規定。這題應該選f。三 第3題,c語言中強制...

c語言基礎問題,求解釋

這涉及到c語言的一些規定 第一就是自動向上轉換 也就是說 佔用空間少的型別和佔用空間多的型別運算,運算結果轉換為佔用空間多的型別 這是為了防止運算結果放在少空間發生溢位 int 佔用4個位元組 double 佔用8個位元組 運算結果 為double型別 這是因為最後加的x為double 型別的 如果...

c語言的基礎題,c語言題基礎題?

1,m m 1,實現m自加1 2,c語言不允許對陣列的大小作動態定義,即陣列的小不依賴於程式執行過程中的變數的值。3,分兩種情況 第一種有參函式的宣告 型別標示符 函式名 形式參數列列 第二種 無參函式的宣告 型別標示符 函式名 4,一維的不能省略,二維的可以省略第一個下標。5,可以用for迴圈實現...