
練習22
考試規則:點選你認為正确的選項
1. 以下叙述正确的是( )。
A.表達式 sizeof(FILE*) == sizeof(int*)的值為真
回答正确 √
試題解析
sizeof(FILE*)=4,因為fle*為指針,指針的大小4,sizeof(int*)=4,理由同前面。檔案指針的值是位址,是一個16進制的數,它的值不一定小于檔案位元組數,是以選項B錯誤。檔案指針是所指檔案的目前讀取位置,而不是檔案指針的值是以選項C錯誤。intfscanf(FILE*stream,constchar*format,[argume...J);fscanf函數可以向任意類型的檔案,寫入任意數量不能超過系統的緩沖區,寫檔案先寫入緩沖區,最後一起寫入檔案,是以選項D錯誤。答案為A選項
B.檔案指針的值是一個整數,它的值-定小于檔案位元組數
回答錯誤 ✕
C.檔案 指針的值是所指檔案的目前讀取位置
回答錯誤 ✕
D.使用fscanf函數可以向任意類型的檔案中寫入任意數量的字元
回答錯誤 ✕
點選答題丨點選選項檢視對錯丨展開動畫
2.設有以下程式段
float a[8] = {1.0, 2.0};
int b[1]= {0};
char cD={"A", "B"};
char d == "1";
以下叙述正确的是( )。
A.隻有變量a,b的定義是完全合法的
回答正确 √
試題解析
題目中的變量a和變量b的定義是合法的;變量c應該定義為二維數組,是以題目中的定義語句是錯誤的;變量d在定義的同時可以賦初值,但不能用關系運算符進行比較,是以題目中對變量d的定義是錯誤的。故本題選A。
B.隻有變量a,b,c的定義是完全合法的
回答錯誤 ✕
C.所有變量的定義都是完全合法的
回答錯誤 ✕
D.隻有變量c的定義是合法的
回答錯誤 ✕
點選答題丨點選選項檢視對錯丨展開動畫
3. 有以下程式
#include
void fun( int x, int y, int *z)
{ *z=y-x; }
main()
{
inta,b,C;.
fun(10,5,&a );
fun(7,a,&b );
fun(a,b,&c );
print("%d,%d,%d\n", a,b,c );
}
程式運作後的輸出結果是( )。
A.5,2,3
回答錯誤 ✕
B.-5,-12,7
回答正确 √
試題解析
程式執行過程為:調用函數fun(10,5,&a),将變量a位址傳入函數,a=5-10=-5; 調用函數fun(7,a,&b) ,将變量b位址傳入函數,b=-5-7=-12; 調用函數fun(a,b,&c),将變量c位址傳入函數,c=-12-(-5)=-7。輸出-5,-12,7, B選項正确。
C.-5,-12;-17
回答錯誤 ✕
D.5,-2;-7
回答錯誤 ✕