嵌入式筆試題

2021-06-16 14:49:09 字數 1026 閱讀 5773

考查逗號表示式

main() 

這段程式的輸出是:

(a) c=3 d=3

(b) c=5 d=3

(c) c=3 d=5

(d) c=5 d=5

應該選c。

c語言提供一種特殊的

運算子,逗號運算子,優先級別最低,它將兩式聯接起來,如:(3+5,6+8)稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60。

逗號表示式的形式如下:

表示式1,表示式2,表示式3,...... ,表示式n

逗號表示式的要領:

(1) 逗號表示式的運算過程為:從左往右逐個計算表示式。

(2) 逗號表示式作為乙個整體,它的值為最後乙個表示式(也即表示式n)的值。

(3) 逗號

運算子的優先級別在所有運算子中最低。

題目:以下程式的輸出結果是:

main()

[a]2,3,3 [b]2,3,2 [c]2,3,1 [d]1,1,1

解析:x和y的值經過自增以後分別為2和3,d可以排除。剩下3個選項選擇什麼呢?

如果是(x++,y++,++y)實際上可以看成(1,1,3)整個逗號表示式的值應該是3,那麼選a。

如果是(x++,++y,y++)實際上可以看成(1,2,2)整個逗號表示式的值應該是2,那麼選b。

但這是錯的,這兒還有

賦值運算子。

賦值運算子的優先順序是14,而逗號表示式的優先順序是15,也就是說上面的表示式中應該等價於這樣的結合:(z=x++),y++,++y;如果這樣寫的話,則答案很清晰,為:2,3,1

正確答案選c。

main() 

這段程式的輸出是:

(a) i=4 j=2

(b) i=3 j=2

(c) i=3 j=4

(d) i=3 j=6

選c。參考 sizeof用法彙總

嵌入式 筆試題

指出下列程式的執行結果 int main memcpy a 3,a,5 for int i 0 i 10 i return 0 解答 0 1 2 0 1 5 6 7 8 9 注意 1 陣列a作為引數時,轉化為普通指標 a 3 按照char長度計算 2 memcpy的原型是 void memcpy v...

嵌入式筆試題(3)

1 設float a 2,b 4,c 3 以下c語言表示式與代數式 a b c計算結果不一致的是 a.a b c 2 b.1 2 a b c c.a b c 1 2 d.c 2 a b 2 為了向二進位制檔案尾部增加資料,開啟檔案的方式應採用 a.ab b.rb c.wb d.wb 參 d r代表r...

華為嵌入式筆試題

華為嵌入式軟體開發筆試題 在一字串中使用 隱藏敏感字元?include stdio.h intmain ys len i printf 請輸入 scanf s c b j while b j mg len j 1 測試用的輸出 printf b 0 c n b 1 printf mg len d n...