嵌入式筆試題(3)

2021-08-02 04:35:34 字數 2383 閱讀 8688

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代表read的簡寫,+代表可讀可寫,w代表write,b代表bit二進位制位,t代表text

3:下述程式執行後的輸出結果是

#include

main()

a.gb.h

c.id.j

4:c語言中,下列運算子優先順序最高的是

a.!b.%

c.>>

d.= =

5:陣列定義為「 int a [ 4 ] ; 」,表示式 ( ) 是錯誤的。

a.*a

b.a [ 0 ]

c.ad.a++

參***:d

當a為陣列名時,可以當做一維指標進行取值運算,但是由於陣列名等同於常量指標,所以不可以對陣列名進行賦值運算。

所以當a為陣列時, a=任意表示式 這樣的計算都是非法的。

而a++,等效於a=a+1, 所以這種表示式一樣是非法的,編譯的時候會報錯

6:執行語句「 k=7>>1; 」後,變數 k 的當前值是

a.15

b.31

c.3d.1

7:定義函式時,預設函式的型別宣告,則函式型別取預設型別

a.void

b.char

c.float

d.int

8:若main()函式帶引數,引數個數最多是

a.0b.1

c.2d.3

9:若有巨集定義:#define mod(x,y) x%y

則執行以下語句後的輸出結果是

int a=13,b=94;

printf(″%d\n″,mod(b,a+4));

a.5b.7

c.9d.11

10:下列各個錯誤中,哪乙個不屬於編譯錯誤

a.改變 x 原值 3 為 5 ,寫作「 x==5;」

b.花括號不配對

c.復合語句中的最後一條語句後未加分號

d.變數有引用、無定義

11:下列程式段執行後, x 的值是( )

a=1;b=2;x=0;

if(!( -- a))x -- ;

if(!b)x=7;else ++x;

a.0b.3

c.6d.7

12:設

#define n 3

#define y(n) ((n+1)*n)

則表示式2*(n+y(5+1))的值是

a.42

b.48

c.54

d.出錯

13:若定義了char ch=cs;

則sizeof(cs)的值是

a.4b.5

c.6d.7

在32 位的系統上short 出來的記憶體大小是2 個byte;

int 出來的記憶體大小是4 個byte;

long 出來的記憶體大小是4 個byte;

float 出來的記憶體大小是4 個byte;

double 出來的記憶體大小是8 個byte;

char 出來的記憶體大小是1 個byte。

(注意這裡指一般情況,可能不同的平台還會有所不同,具體平台可以用sizeof關鍵字測試一下)

18:若變數已正確定義,表示式( j=3 , j++ )的值是

a.3b.4

c.5d.0

什麼鬼???

19:c 語言中運算物件必須是整型的運算子是

a.%b./

c.!d.**

嵌入式筆試題

考查逗號表示式 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...

嵌入式 筆試題

指出下列程式的執行結果 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...

華為嵌入式筆試題

華為嵌入式軟體開發筆試題 在一字串中使用 隱藏敏感字元?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...