//給定程式的功能是:呼叫fun函式建立班級通訊錄。通訊中記錄每位學生的編號,姓名和**號碼。班級的人數和學生的資訊從鍵盤讀入,每個人的資訊作為乙個資料塊(代表要使用結構體)寫到名為myfile5.dat的二進位制的檔案中。
//重要點:1,資料塊結構體的定義和使用。2,檔案指標的定義以及對檔案的讀寫操作。3,結構體的定義和使用。
#include
#include
//包含工程所需要的標頭檔案,為什麼呢?因為之後會用到這些標頭檔案中定義的函式。
#define n 5
//定義乙個變數的值為5,以後用到n的時候,就是5。
typedef struct [名稱]
int num;
char name[10];
char tel[10];
}stype;
//c語言可以定義新型別,把這個結構體的新型別名稱定義為stype,以後使用stype就可以。(這裡是無名結構體)
void check();
//函式的宣告。如果函式是在呼叫的後面定義的,那麼就要進行宣告。
int fun(stype *std)
file *fp;
int i;
if((fp=fopen("myfile5.dat","wb"))==null) return (0);//開啟檔案格式為二進位制可寫格式
printf("\noutput data to file !\n");
for(i=0;ifwrite(&std[i],sizeof(stype),1,fp);//指標使用時,不需要加*,定義的時候需要。
fclose(fp);//關閉檔案
return(1);
main()
stype s[10]=,,,,};
//stype為結構體型別,定義的時候直接使用。
int k;
k=fun(s);//呼叫fun()函式,把函式返回值賦予k,函式作用,把結構體內容,輸入到指定檔案中。
if(k==1)
printf("succeed!");
check();//函式作用,把指定檔案中的內容顯示。
else
printf("fail!");
void check()
file *fp;//定義了乙個檔案指標fp.
int i;
stype s[10];//定義結構體陣列。
if((fp=fopen("myfile5.dat","rb"))==null)
//開啟檔案,呼叫檔案開啟函式fopen,檔案指標進行判斷是否為空。"rb"格式開啟檔案(二進位制唯讀格式)
printf("fail !!\n");
exit(0);//終止程式的執行。
printf("\nread file and output to screen:\n");
printf("\n num name tel\n");
for(i=0;ifread(&s[i],sizeof(stype),1,fp);
//fread()函式,從檔案中開始讀取資料,第乙個引數,從哪個位置開始讀,第二個引數一次讀多長,第三個引數一次讀這個長度的幾個,第四個引數,指標變數代表檔案。
printf("%6d %s %s\n",s[i].num,s[i].name,s[i].tel);//結構體輸出格式。
fclose(fp);//把檔案關閉。
計算機等級考試二級C語言上機填空題題1
填空題 程式通過定義學生結構體變數,儲存了學生的學號 姓名和3門課的成績。函 數fun的功能是對形參b所指結構體變數中的資料進行修改,最後在主函式中輸出修改後的資料。例如 b所指變數t中的學號 姓名 和三門課的成績依次是 10002 zhangqi 93 85 87,修改後輸出t中的資料應為 100...
計算機等級考試二級C語言上機填空題2
填空題 給定程式中,函式fun的功能是 統計形參s所指字串中數字字元出現的次數,並存放在形參t所指的變數中,最後在主函式中輸出。例如,形參s所指的字串為 abcdef35adgh3kjsdf7。輸出結果為 4。請在程式的下劃線處填入正確的內容並把下劃線刪除,使程式得出正確的結果。注意 源程式存放在考...
計算機二級C語言上機考試填空題及答案3
填空題 請補充main函式,該函式的功能是 從鍵盤輸入兩個字串並人別儲存在字元數組成str1 t 和str2中,用字串str2 替換字串聯str1前面的所有字元,注意 str2的長度不大於str1,否則需要重新輸入.例如,如果輸入不敷出str1 abced str2 gg 則輸出ggced.僅在橫線...