C語言程式題

時間 2022-04-26 23:45:05

1樓:匿名使用者

1.k

等價於k

將實際值代入得:

1<2?(1):(4<3?4:3)

由於1

5+2+3*5.0

經過數學計算,就得到值為22.0,因為5.0是一個浮點數,所以表示式的計算結果會自動轉換為double型別。

3.由於^操作符的優先順序低於<<,所以原式等價於:

a^(b<<2)

b<<2的結果是12

所以a^(b<<2)=a^12,也就是a與12按位異或,結果是94.由於存在地址對齊問題struct型別的sizeof()大小與系統有關,例如在32位平臺上有些編譯系統中是以4位元組對齊的,所以sizeof(ex1)就會被填充到4的整數倍,即,ex1的實際佔用空間是18位元組,就會被填充為20位元組,即sizeof(ex1)返回20,ex2的情況類似,只不過它的實際佔用空間就是體積最大的成員所佔用的空間位元組數,也就是8,於是不需要再填充了,所以sizeof(ex2)返回8

2樓:傲世修羅王

1. 答案是1, 因為k < a為真,所以取k的值。

2. 答案22,巨集即可 5 + mul * 5.0 = 5 + 2 + 3 * 5.0 = 22

3. 答案9, 位運算,注意《的優先順序高於^,轉換成二進位制運算更加一目瞭然, 3 << 2 = 12, 5 ^ 12 = 9

4. 答案是12和8,struct的大小是結構體中所有成員大小之和,但是要注意對齊問題,這裡按大小最大的對齊,int和float都是四個位元組,所以按四位元組對齊,原來結果應該是18,對齊後是20,注意,在不同的編譯器上結果可能不同,因為對齊機制不同而致。union的大小是其最大成員的大小,這裡是int i[2],所以是8位元組。

3樓:林聲飄揚

1、12、22

3、1001

4、20,8

#include

#define mul 2+3

void main()

ex1;

unionex2;

printf("\n%d", sizeof(ex1));

printf("\n%d", sizeof(ex2));}

4樓:匿名使用者

k

5 + mul * 5.0=5 + 2+3 * 5.0=22a^b<<2=a^12=9

8+6+8=208

5樓:魔龍嗜血

1. 1

2. 22

3. 9

4. 20.8

C語言求職題,C語言程式題

include void main 所以k 4 3 2 1 10 include void main 第一次執行的時候,x 20恰為偶數,2 0,所以輸出i 2,執行x x i 10 第二次執行,因為x 10,位偶數,所以在此輸出2,執行x x i 5 第六次執行,因為x 5,i 5,所以輸出i 5...

c語言程式選擇題,C語言程式選擇題。

include main 所以答案是d 陽光上的橋 你選d能得到老師的分。但是實際你的 執行不會是這樣,全部都會出錯,因為 你在 和c之間多了空格。 煞 a錯 不允許有連等於,其實那個 是賦值號,把它右邊的值賦給左邊 b錯 因為已知y 3,所以y 1這個布林判斷即為false,把布林值賦給整型 題目...

C語言程式題!高分求答案,C語言程式題!高分求答案!

void strcpy char a,n,char b,m 函式名 for i 0 i a head 把新開闢的陣列首地址賦給原陣列變數名a delete a delete b 就算原陣列的空間不夠,也可以用這個方法的.無須考慮要合併陣列的長度 補充一下 回答2雖然可以不用管目標的記憶體長度,但是會...