-
printf ("%s",++p+1))-s;乙個括號缺少 printf(對於行"%s",++p+1))-s);
你必須告訴我你想做什麼,向程式新增括號只能輸出三個字元"jkt"
-
這個問題主要涉及指標:
1) 第乙個 printf 的值:
有結構體 str1 *p[2];
p[0]=&s1[0];p[1]=&s1[1];
*(p+1) 指向 s1[1] (即"ijk","lmn")。
因為++p+1))-s 表示指向字串"ijk"的指標遞增 1,因此列印值為 jk
2)第二個printf的列印值:
有結構體 str2
s2=;並且是指向字串"rst"(因為陣列從 0 開始,而 c[2] 是第三個字元),即結果是 t。
所以輸出是 jkt
-
1、i=30
i*=i+1 等價於 i=i*(i+1)。
2. x=0 因為 x 是整數 x=1 4 1 4 中間符號右邊是整數除法,結果是商是 0
-
i*=i+1 是 i=i*(i+1),答案是 30;
int x=1 4=0,因為 x 是 int 型別,所以答案是四捨五入的。
-
1.對; 2.錯誤; 3.對; 4.錯誤; 5. 錯誤; 6. 錯誤; 7. 對; 8. 錯誤; 9、對; 10. 錯誤; 11.一對; 12. 錯誤; 13. 對。
-
2.False:一定要先執行 main 函式。
3.False:也可以是 1 個 true 和 1 個 false。
6.至 7錯誤:如果省略它,則它不是結構體。
8.false 下標以 0 開頭,八分之一是 a[7]9False,以標記開頭的符號為 *10錯了:不一定。
11.右。 12.錯誤,與問題 8 相同。
13.False:應基於實際引數。
自己動手並不總是正確的。
-
除了最後乙個之外,其他都是正確的。
哪乙個有疑問,我會解釋。
-
c b 第三個問題可能有點問題。
-
expression(a=ik)&&c=i,j,k)。
先計算括號內的公式:第乙個a=ik結果為0,由於1&0的結果是0,邏輯為假,根據邏輯運算元短路的性質,所以第三個括號中的公式不計算。
所以沒有改變的 c 的值仍然是 3
-
(a = i < j) .i k) .j>k 是假的 b=0; 整個條件語句結束。
第三句 (c = i, j, k) 不執行 c=3
:雙方同時為真,否則為假。
如果你有任何問題,你可以問我。
-
A是錯誤的,當函式沒有定義返回型別時,預設返回int型別,這沒問題,但是如果不寫return,預設返回值為0; ,所以返回 0 並說函式沒有返回任何值是錯誤的。
B 錯誤,這兩個變數是區域性變數,這很好,但 count 是乙個靜態成員,所以它所在的記憶體空間在函式退出時不會釋放,而是一直保留到整個程式結束。 由於 temp 不是靜態成員,因此會釋放函式 exit。
c 是錯誤的,這個函式只是交換了兩個引數變數 x 和 y 的值,但引數不受影響,不會交換。
d 是正確的,兩者都是引數,注意對引數值的任何修改都不會影響引數的值,所以前面說過,引數的值不能通過交換 x 和 y 的值來交換。
E正確,原因與b項相同。
-
static 被定義為靜態變數,而不是區域性變數,生命週期是函式的整個生命週期,即在函式結束時釋放。
-
在第乙個問題中,a,p指向s陣列的第乙個位址,即p指向s[0],p->y=s,所以s[0]->y也指向s[0],這句話沒用。 輸出語句 ++p->x, -> 優先順序大於 ++,所以它是 ++ (p->x),p->x 是 1,先加,變為 2,輸出 2
在第二個問題中,b,p 指向 s[1],p->y 指向 s[0],其中 p->x 等價於 s[1]。x,為2; 在 p=p->y 之後,p 指向 s[0],其中 p->x 等價於 s[0]。x,為1; 2 1 應在末尾輸出