總結沒有順序之分
想起一個算一個
逗號表示式 https://blog.csdn.net/qq_43539854/article/details/105757536(參考)
設 f是實型變數,下列表示式中不是逗號表示式的是_________
A. f= 3.2, 1.0 B. f>0, f<10 C. f=2.0, f>0 D. f=(3.2, 1.0)
逗號表示式 即 執行第二個結果
D選項中的不對
先看看人家蚊香一言咋說的
然後D選項雖然選取了 1.0 但是賦予了f 1.0 是賦值表示式
(== = === 區別很重要)
例如:
int i=0,k=0;
for(i=0,k=0;k=0;i++,k++){
k++;
}
這就是一個坑 判斷條件k=0 是是是賦值 所以表示式為0 不會迴圈執行
對於一些for迴圈體內
for(int i=..;i...;i..){
i=....
}
如果迴圈體內再定義i 會出錯
在陣列中找數
中間折半法
int a;
printf("a = %d\n", a);
會出現一個垃圾數 不確定值
int b=0,x=1;執行語句 if(x++) b=x+1; 後,x,b 的值依次為______。
A. 2,3 B. 2,0 C. 3,0 D. 3,2
int b=0,x=1;
if(x++)
b=x+1;
x++即會在其他完成後執行 這裡就是括號 所以在此結束
這裡判斷的時候 x還是1 隨後變成2
所以b=2+1=3
設有語句 int a=3;,則執行了語句 a+=a-=a*=a; 後,變數 a 的值是________。
A. 3 B. 0 C. 9 D. -12
這個會錯呢
還是運算子的優先順序結合性沒背會
去背
優先 所以先計算 a=a 9
a現在就是9了 那可是賦值號
隨意後面都是自右向左
a-=a 0
所以最終為0
以下使用者識別符號中,合法的是__________ 。
A. int B. nit C. 123 D. a+b
- 字母數字下劃線組成
- 數字不能為開頭
- 不能使用關鍵字
C 語言中的邏輯值“真”是用_____表示的,邏輯值“假”是用_________表示的
真是非0
C語言中有符號資料型別(signed)和無符號資料型別(unsigned)的本質區別為_________
signed 最高位為符號位
unsigned 全為數值位
設 c='w',a=1,b=2,d=-5, 則表示式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分別為
第四個 b==a=2 b被賦值為1 1=2 錯誤
還有就是12<a<15
如果想要表達這個
需要if(12<a && a<15)
假如a=7
12<7 為0
0<15 為真
會執行 因此需要改變 否則會出錯
這就是將for裡面的提取出來 的效果不同