練習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選項。