1.C語言中,關係表示式和邏輯表示式的值是( B ) 。
A、0
B、 0或1
C、 1
D、‘T’或’F’
2. 下面( D )表示式的值為4.
A、 11/3
B、 11.0/3
C、 (float)11/3
D、 (int)(11.0/3+0.5)
【解析】(1)相同資料型別的元素進行數學運算(+、-、*、/)得到結果還保持原資料型別。
(2)不同資料型別的元素進行數學運算,先要統一資料型別,統一的標準是低精度型別轉換為高精度的資料型別。
選項A,11與3為兩個整數,11/3結果的資料型別也應為整數,因此將3.666666的小數部分全部舍掉,僅保留整數,因此11/3=3.
選項B,11.0為實數,3為整數,因此首先要統一資料型別,將整型資料3轉換為3.0,轉換後資料型別統一為實型資料,選項B變為11.0/3.0,結果的資料型別也應為實型資料,因此選項B 11.0/3=3.666666
選項C,先將整數11強制型別轉換,轉換為實型11.0,因此選項C變為11.0/3,其後計算過程、結果與選項B同
選項D,首先計算11.0/3,其計算過程、結果與選項B同,得到3.666666;再計算3.666666+0.5=4.166666,最後將4.166666強制型別轉換為整型,即將其小數部分全部舍掉,結果為4
3.設整型變數 a=2,則執行下列語句後,浮點型變數b的值不為0.5的是( B )
A、b=1.0/a
B、b=(float)(1/A、
C、b=1/(float)a
D、b=1/(a*1.0)
4. 若“int n; float f=13.8;”,則執行“n=(int)f%3”後,n的值是(A)
A、1
B、4
C、4.333333
D、4.6
【解析】“(int)f“表示將f中的值強制型別轉換為整型,即將13.8的小數部分舍掉,轉換為13;然後計算13%3,結果為1,再將結果賦給變數n,因此n的值為1
5. 以下對一維陣列a的正確說明是: D
A、char a(10);
B、 int a[];
C、int k=5,a[k];
D、char a[3]={‘a’,’b’,’c’};
【解析】詳見教材P143~144,一維陣列的定義、初始化
型別符 陣列名 [常量表達式]
型別符是指陣列中陣列元素的`型別;陣列名要符合識別符號命名規則;常量表達式是指陣列的長度(陣列中包含元素的個數),其值只能是整數,不可以是變數,而且從1開始計數。
選項A,常量表達式只能放在中括號 [ ]中
選項B,只有在對陣列初始化(即賦值)的時候才可以省略陣列的長度,B中並未對a進行初始化。
選項C,常量表達式不能為變數。
6.以下能對一維陣列a進行初始化的語句是:( C )
A、int a[5]=(0,1,2,3,4,)
B、 inta(5)={}
C、 int a[3]={0,1,2}
D、 int a{5}={10*1}
【解析】詳見教材P145,一維陣列的定義、初始化
選項B,D,常量表達式只能放在中括號 [ ]中
選項A,陣列可以看做是若干個相同資料型別元素的有序集合,因此以集合的形式對其初始化,使用{ }對其初始化,選項A用了().
7.在C語言中對一維整型陣列的正確定義為 D 。
A、int a(10);
B、int n=10,a[n];
C、int n;a[n];
D、#define N 10
8、已知:int a[10]; 則對a陣列元素的正確引用是( D )。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
【解析】詳見教材P144,陣列元素的引用
陣列名[下標]
引用陣列元素時,[ ]中的下標為邏輯地址下標,只能為整數,可以為變數,且從0開始計數
int a[10]表示定義了一個包含10個整型資料的陣列a,陣列元素的邏輯地址下標範圍為0~9,即a[0] 表示組中第1個元素; a[1] 表示組中第2個元素; a[2] 表示組中第3個元素; ......;a[9] 表示組中第10個元素.
選項A,超過了陣列a的邏輯地址下標範圍;
選項B,邏輯地址下標只能為整數
選項C,邏輯地址下標只能放在[ ]中
9.若有以下陣列說明,則i=10;a[a[i]]元素數值是(C )。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};
A、10
B、9
C、6
D、5
【解析】先算a[a[i]]內層的a[i],由於i=10,因此a[i]即a[10].
a[10]對應下面陣列中的元素為9. 因此a[a[i]]即為a[9]
a[9]對應下面陣列中的元素為6. 因此a[9]即為6
10.若有說明:int a[][3]={{1,2,3},{4,5},{6,7}}; 則陣列a的第一維的大小為: ( B )
A、2
B、3
C、4
D、無確定值
【解析】二維陣列的一維大小,即指二維陣列的行數,在本題中,按行對二維陣列賦值,因此內層有幾個大括號,陣列就有幾行