天天看點

練習20

練習20

練習20

考試規則:點選你認為正确的選項

1.有以下程式

#include
main( )
{ 
  FILE *fp;
  int i, a[6]={1,2,3,4,5,6},k;
  fp= fopen( "data.dat", "w+" );
  for( i=0; i<6;i++ )
    fprintf(fp, "%d\n", a51);
  rewind(fp);
  for( i=0; i<6; i++ )
  {
    fscanf(fp, "%d", &k);
    printf("%d,", k);
  }
  fclose(fp);
}      

程式運作後的輸出結果是()。

A. 6,5,4,3,2,1,

回答正确 √

試題解析

程式中的第一個for循環的功能是将數組a[6]中的元素按逆序寫入指針fp指向的檔案中,即按6,5, ...的順序寫入檔案; rewind()函數的功能是将檔案指針移到檔案開頭;第二個for循環的功能是将檔案中的資料依次讀入并輸出,即輸出6,5,4,3,2,1, 故本題選A。

B. 1,2.3.4.5,6,

回答錯誤 ✕

C. 1,1,1,1,1,1

回答錯誤 ✕

D. 6,6,6,6,6,6,

回答錯誤 ✕

點選答題丨點選選項檢視對錯丨展開動畫

2.以下叙述中正确的是( )。

A.函數的形 參類型不能是指針類型

回答錯誤 ✕

B.函數的類型不能是指針類型

回答錯誤 ✕

C.設有指針變量為double*p,則p+1将指針p移動8個位元組

回答正确 √

試題解析

考查指針與函數。指針進行算術運算的時候,數字"1"不再代表十進制整數"1",而是指一個存儲單元長度,具體占用的空間依據指針變量的基本類型而定,double類 型的變量占用8個位元組,是以p+1将p移動了8個位元組,C正确。指針可以作為函數的參數參與資料傳遞過程,也可以作為函數的傳回值被傳回,故選項B、A錯。指針變量的指派運算隻能在同一資料類型之間進行,選項D錯,答案選C。

D.基類型不同的指針變量可以互相混用

回答錯誤 ✕

點選答題丨點選選項檢視對錯丨展開動畫

3.算法的有窮性是指( )。

A.算法程式的運作時間是有限的

回答正确 √

試題解析

算法原則.上能夠精确地運作,而且人們用筆和紙做有限次運算後即可完成。有窮性是指算法程式的運作時間是有限的。答案選A

B.算法程式所處理的資料量是有限的

回答錯誤 ✕

C.算法程 序的長度是有限的

回答錯誤 ✕

D.算法隻能被有限的使用者使用

回答錯誤 ✕

點選答題丨點選選項檢視對錯丨展開動畫

4. 單選題有以下程式

#include
main( )
{ 
  int a[3][3]={{1,3,5,},
              {7,9,11,},
              {13,15,17};
  int (*p)[3]=a, i,j.n=0;
  for(i=0;i<3;i++)
    for(j=;j<2;j++)
        n+=*(*(p+i)+i);
  print("%d\n",n);
}      

程式運作後的輸出結果是( )。

A.54

回答錯誤 ✕

B.60

回答錯誤 ✕

C.36

回答錯誤 ✕

D.48

回答正确 √

試題解析

for循環的作用是求數組各行前二列的數字之和。

*(*(p+i)+j)apl[ili] 1+3+7+9+13+15=48,

是以答案為D選項。