第 1 題 【 單選題 】
表達式117 % 16 的結果是( )。
A:0
B:5
C:7
D:10
解析:
%
是取模運算符,用于計算兩個數相除后的余數。
- 計算
117 / 16
,結果是7
,余數是5
。- 因此,
117 % 16 = 5
。
答案:
B
第 2 題 【 單選題 】
下列選項中,字符數組定義正確的是( )。
A:char a[5] = "hello";
B:char a[ ] = "hello";
C:char a = "hello";
D:char a[6] = 'hello';
解析:
A:
char a[5] = "hello";
錯誤。"hello"
的長度為5,但字符數組需要6個空間(包括結尾的\0
),因此數組大小不足。B:
char a[ ] = "hello";
正確。編譯器會自動計算數組大小,包括結尾的\0
,因此a
的大小為6。C:
char a = "hello";
錯誤。char
是單個字符類型,不能用于存儲字符串。D:
char a[6] = 'hello';
錯誤。'hello'
是多字符字面量,其類型是int
,而不是字符串。正確的初始化方式應使用雙引號。
答案:
B
第 3 題 【 單選題 】
定義int i = 0, a = 10; 執行表達式a = (i <= 0 ? 1 : 2) 后,a 的值是( )。
A:1
B:2
C:10
D:隨機值
解析:
表達式
a = (i <= 0 ? 1 : 2)
是一個三元運算符表達式,其邏輯如下:
- 判斷
i <= 0
:
- 已知
i = 0
,因此i <= 0
為true
。- 三元運算符
? :
的規則是:
- 如果條件為
true
,則結果為1
;- 如果條件為
false
,則結果為2
。- 由于
i <= 0
為true
,因此表達式的值為1
。- 最后,將
1
賦值給a
。
答案:
A
第 4 題 【 單選題 】
十進制數22.5625 轉換成十六進制數是( )。
A:16.7
B:16.8
C:16.9
D:17.1
解析:
步驟一:轉換整數部分(22)
- 用除16法轉換整數部分:
- 22 ÷ 16 = 1 余 6
- 1 ÷ 16 = 0 余 1
- 將余數逆序排列,得到整數部分的十六進制值為 16。
步驟二:轉換小數部分(0.5625)
- 用乘16法轉換小數部分:
- 0.5625 × 16 = 9.0
- 取整數部分,得到小數部分的十六進制值為 .9。
合并結果
將整數部分和小數部分合并,得到十六進制數為 16.9。
答案:
C
第 5 題 【 單選題 】
定義int a[5] = {1, 2, 3, 4, 5}, *p = a, *q = p++; 那么*p 和*q 的值分別是( )。
A:2、3
B:3、2
C:3、2
D:2、1
解析:
定義數組和指針:
int a[5] = {1, 2, 3, 4, 5};
定義了一個數組a
,其元素為{1, 2, 3, 4, 5}<