天天看點

練習22

練習22

練習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

回答錯誤 ✕