版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章 文 件一、單項(xiàng)選擇題1C語(yǔ)言中,文件由( A )。 A字符(字節(jié))序列組成 B記錄組成 C數(shù)據(jù)行組成 D數(shù)據(jù)塊組成2若文件型指針fp中指向某文件的末尾,則函數(shù)feof(fp)的返回值是( C )。 A0B-1C非零值DNULL3. 下列語(yǔ)句將輸出( B ) #include printf(“%d %d %d”, NULL,0,EOF); A. 0 0 1 B. 0 0 1 C. NULL EOF D. 1 0 EOF4下列語(yǔ)句中,將fp定義為文件型指針的是( B )。 AFILE fp;BFILE *fp;Cfile fp;Dfile *fp;5. 定義FILE *fp; 則文件指針f
2、p指向的是( D )。 A. 文件在磁盤上的讀寫位置 B. 文件在緩沖區(qū)上的讀寫位置C. 整個(gè)磁盤文件 D. 文件類型結(jié)構(gòu)體6. 緩沖文件系統(tǒng)的緩沖區(qū)位于( C )。 A. 磁盤緩沖區(qū)中 B. 磁盤文件中C. 內(nèi)存數(shù)據(jù)區(qū)中 D. 程序中7. 以“只讀”方式打開文本文件a:aa.dat,下列語(yǔ)句中哪一個(gè)是正確的( D )。 A、fp=fopen(”a:aa.dat”,”ab”); B、fp=fopen(”a:aa.dat”,”a”); C、fp=fopen(”a:aa.dat”,”wb”); D、fp=fopen(”a:aa.dat”,”r”);8. 以“追加”方式打開文本文件a:aa.dat,
3、下列語(yǔ)句中哪一個(gè)是正確的( B )。 A、fp=fopen(”a:aa.dat”,”ab”); B、fp=fopen(”a:aa.dat”,”a”); C、fp=fopen(”a:aa.dat”,”r+”); D、fp=fopen(”a:aa.dat”,”w”);9. 如果二進(jìn)制文件a.dat已存在,現(xiàn)要求寫入全新的數(shù)據(jù),應(yīng)以什么方式打開( A )。A. “w” B. “wb” C. “w+” D. “wb+”10. 為讀寫建立一個(gè)新的文本文件a:aa.dat,下列語(yǔ)句中哪一個(gè)是正確的( B )。 A、fp=fopen(”a:aa.dat”,”ab”); B、fp=fopen(”a:aa.da
4、t”,”w+”); C、fp=fopen(”a:aa.dat”,”wb”); D、fp=fopen(”a:aa.dat”,”rb+”);11以讀寫方式打開一個(gè)已有的二進(jìn)制文件filel,并且定義FILE *fp,下面fopen函數(shù)正確的調(diào)用方式是( B )。 Afp=fopen (“file1”, ”r”) Bfp=fopen (“file1”, ”rb+”) Cfp=fopen (“file1”, ”rb”)Dfp=fopen (“file1”, ”wb+”)12標(biāo)準(zhǔn)庫(kù)函數(shù)fputs (p1,p2)的功能是( C )。 A從p1指向的文件中讀一個(gè)字符串存入p2指向的內(nèi)存 B從p2指向的文件中
5、讀一個(gè)字符串存入p1指向的內(nèi)存 C從p1指向的內(nèi)存中讀一個(gè)字符串寫到p2指向的文件中 D從p2指向的內(nèi)存中讀一個(gè)字符串寫到p1指向的文件中二、填充題1C語(yǔ)言中調(diào)用 fopen 函數(shù)打開文件,調(diào)用 fclose 函數(shù)關(guān)閉文件。2. fopen函數(shù)的返回值是 包含文件緩沖區(qū)信息的FILE結(jié)構(gòu)體地址 。3. 文件操作的三大特征是 文件保存在外存中 , 文件中數(shù)據(jù)有序 , 數(shù)據(jù)數(shù)量可以不定 。4feof函數(shù)可用于 文本 文件和 二進(jìn)制 文件,它用來(lái)判斷即將讀入的是 否為 文件結(jié)束標(biāo)志 ,若是,函數(shù)值為 非零 。5若ch為字符變量,fp為文本文件指針,從fp所指文件中讀入一個(gè)字符時(shí),可用的二 種不同的輸
6、入語(yǔ)句是 ch=fgetc(fp) 和 fscanf(fp,”%c”, &ch) 。把一個(gè)字符輸 出到fp所指文件中的二種不同的輸出語(yǔ)句是 fputc(ch,fp) 和fprintf(fp,”%c”, ch) 。6sp=fgets (str, n, fp) ; 函數(shù)調(diào)用語(yǔ)句從 fp 指向的文件輸入 n-1 個(gè)字符,并把它們放到 字符數(shù)組str中,sp得到 str 的地址。而 fputs 函數(shù)的作用是向指定的文件輸出 一個(gè)字符串,輸出成功函數(shù)返回值為 0 ,fprintf函數(shù)輸出成功函數(shù)返回值為實(shí)際輸出的字符數(shù) 。7“FILE *fp”的作用是定義了一個(gè) 文件型指針變量 ,其中的“FILE”是在
7、 stdio.h 頭文件中定義的。8在對(duì)文件進(jìn)行操作的過(guò)程中,若要求文件指針的位置回到文件的開頭,應(yīng)當(dāng)調(diào)用的函數(shù)是rewind ( ) 函數(shù)。9下面的程序用來(lái)統(tǒng)計(jì)文件中字符的個(gè)數(shù),請(qǐng)?zhí)羁铡?#include void main( ) FILE *fp ; long num=0 ; if (fp=fopen (“fname. dat”, ”r”) = =NULL) printf (“Can t open file!n”); exit (0) ; while (!feof (fp) fgetc (fp) ; num+ ; printf (“num=%dn”, num) ; fclose (fp)
8、;10下面程序完成從磁盤文件stu.dat中讀取N個(gè)學(xué)生的姓名、學(xué)號(hào)、成績(jī)后在屏幕上顯示 輸出。請(qǐng)將程序補(bǔ)充完整。#include #define N 100struct student char name20; int no; int score; studN;void main () FILE *fp; int i ; if (fp=fopen (“stu.dat”, ”rb”)=NULL) printf (“Can not open file!n”); exit (0); fread (stud, sizeof (struct student), N, fp) ; for (i=0; i
9、N; i+) printf (“name : %s NO: %d score : %dn”, studi. name, studi. no, studi. score); fclose (fp)11. 開辟一個(gè)存儲(chǔ)n個(gè)int數(shù)據(jù)的內(nèi)存區(qū)、并將內(nèi)存區(qū)首地址送入p(指向int類型的指 針變量)的語(yǔ)句為 p=(int )malloc(sizeof(int)*n); 。12釋放由fp所指向的內(nèi)存區(qū)的語(yǔ)句為 free(fp); 。13fp為文件位置指針,將fp移到離當(dāng)前位置25個(gè)字節(jié)處的語(yǔ)句為 fseek(fp,25L ,1); 。14. 輸入若干個(gè)學(xué)生的姓名、學(xué)號(hào)、數(shù)學(xué)、英語(yǔ)、計(jì)算機(jī)成績(jī)到文件中stu
10、dent.dat。 #include void main() FILE *fp; char name8,numb8; int m,e,c,n,i ; scanf(%d,&n); fp=fopen(“student.dat”,”w”); for(i=1;i=n;i+) scanf(%s%s%d%d%d,name,numb,&m,&e,&c); fprintf(fp,%s %s %d %d %dn,name,numb,m,e,c); fclose(fp); ; 15. 下列程序?qū)⑽募.dat、b.dat按原順序(文件中每行一個(gè)數(shù),按從小到大排列) 合并到文件c.dat中。 #include vo
11、id main() FILE *f1,*f2,*f3; int x,y;if(f1=fopen(a.dat,r)=NULL) printf (“Can not open file!n”); exit (0); if(f2=fopen(b.dat,r)=NULL) printf (“Can not open file!n”); exit (1); if( f3=fopen(“c.dat”,”w”) )=NULL) printf (“Can not open file!n”); exit (2); fscanf(f1,%d,&x); fscanf(f2,%d,&y); while(!feof(f1
12、)&!feof(f2) if(xy) fprintf(f3,%dn,x); fscanf(f1,%d,&x); else fprintf(f3,%dn,y); fscanf(f2,%d,&y); if(feof(f1) fprintf(f3,”%dn”, y ); while(!feof(f2) fscanf(f2,%d,&y); fprintf(f3,”%dn”,y); else fprintf(f3, “%dn”, x ); while(!feof(f1) fscanf(f1,”%d”,&x); ; fprintf(f3,%dn,x); fclose(f1); fclose(f2); fc
13、lose(f3); 三、程序分析題1讀程序,指出程序所完成的功能。 include void main( ) int chl,ch2; while (chlgetchar())!EOF) if (ch1a& chlz) ch2chl-32;putchar(ch2); else putchar(chl): 該程序的功能是:從鍵盤讀入一個(gè)字符,如果是小寫字母,則變成大寫輸出到屏幕上, 否則原樣輸出。當(dāng)打入ctr1-z(即EOF)時(shí),輸入結(jié)束。2讀程序,寫功能。 #include void main (int argc, char *argv ) FILE *f1, *f2; char ch; if
14、 ( argc3) printf (“Parameter missing!n”); exit(0); if (f1=fopen (argv1, ”r”) =NULL | (f2=fopen (argv2, ”w”)=NULL) printf (“Can not open file!n”); exit(0); while (!feof (f1) fputc (fgetc (f1), f2); fclose (f1) ; fclose (f2) ;該程序的功能是:在用命令行的形式運(yùn)行本程序時(shí),必須在程序名后加二個(gè)參數(shù),這二個(gè)參數(shù)分別表示磁盤上的二個(gè)文件名。程序運(yùn)行后,能把第一個(gè)文件的內(nèi)容拷貝到第二
15、個(gè)文件。如果命令行缺少參數(shù)或文件打不開,程序終止運(yùn)行并顯示出錯(cuò)情況。3讀程序,寫功能。 include void main( ) FILE *fp: int n0; char ch; if (fpfopen(“fnametxt”,”r”))=NULL) prlntf(“Can not open file!n”);exit(0); while( !feof(fp) chfgetc(fp) ;if(ch= = ) n+; printf(“bdn”,n); fclose(fp) ; 該程序的功能是:統(tǒng)計(jì)文本文件fname.txt中的空格字符數(shù)。4讀程序,寫功能。 include“stdio.h” v
16、oid main( ) FILE *f1,*f2; int k; if (f1fopen(“c:tcpl.c”,”r”)= =NULL) printf(“Can not open file!n”); exit(0); if (f2fopen(“a:pl.c”,”w”)= =NULL) printf(“Can not open file!n”); exit(0); for(k1;k1000 ;k) if( !feof(f1) break ; fputc( fgetc(f1), f2); fclose(f1); fclose(f2); 該程序的功能是:把C盤根目錄下的tc目錄中的文件p1.c復(fù)制到
17、A盤的根目錄下, 取同樣的文件名p1.c。如果C盤中的p1.c文件超過(guò)1000字節(jié),則最多復(fù)制1000字節(jié)。5假定在當(dāng)前盤當(dāng)前目錄下有2個(gè)文本文件,其名稱和內(nèi)容如下: 文件名 a1.txt a2.txt內(nèi)容 121314# 252627#寫出下列程序運(yùn)行后的輸出。#include “stdio.h”void main ( ) FILE *fp; void fc (FILE *fp1); if (fp=fopen (“a1.txt”,”r”)=NULL) printf (“Can not open file!n”) ; exit (1); else fc(fp); fclose (fp); if
18、 (fp=fopen (“a2.txt”,”r”)=NULL) printf (“Can not open file!n”) ; exit (1) ; else fc (fp); fclose (fp); void fc (FILE *fp1) char c; while ( c=fgetc (fp1) !=#) putchar ( c ) ;該程序先打開a1.txt文件,然后調(diào)用函數(shù)fc( ),把文件中#號(hào)字符以前的內(nèi)容在屏幕上現(xiàn)示。再打開a2.txt文件,然后調(diào)用函數(shù)fc( ),把文件中#號(hào)字符以前的內(nèi)容在屏幕上接著現(xiàn)示。因此程序運(yùn)行后輸入 1213142526276. 寫出以下程序運(yùn)行結(jié)
19、果。 #include void main( ) 輸出結(jié)果: all=abcdefghijklmnop FILE *fp; int i; seek1 ch=a char s180,s=abcdefghijklmnop; seek2 ch=l if(fp=fopen(alf.dat,wb+)=NULL) seek3 ch3=m printf (“Can not open file!n”) ; exit (1) ; i=sizeof(s); fwrite(s,i,1,fp); rewind(fp); fread(s1,i,l,fp); printf(all=%sn,s1); fseek(fp,0,
20、0); printf(seek1 ch=%cn,fgetc(fp); fseek(fp,10,1); printf(seek2 ch=%cn,fgetc(fp); fseek(fp,1,1); printf(seek3 ch=%cn,fgetc(fp); fclose(fp); 四、程序設(shè)計(jì)題1編一個(gè)程序,從鍵盤輸入 200個(gè)字符,存入名為“ f1.txt”的磁盤文件中。 #include “stdio.h”void main ( ) FILE *fp; int i ; if ( fp=fopen (“f1.txt”, ”w”)=NULL) printf (“Can not open file
21、!n”) ; exit (1); for ( i=1; i=200; i+) fputc (getchar ( ), fp) ; fclose (fp) ;2設(shè)計(jì)一個(gè)復(fù)制文本文件的程序,源文件名和目標(biāo)文件名隨程序執(zhí)行時(shí)輸入。 #include void main (int argc, char *argv ) FILE *f1, *f2; char ch; if (argc3) printf (“Error! Useage: program_name source_file_name object_file_namen”); exit (0); if (f1=fopen (argv1, ”r”
22、)=NULL) printf (“Can not open source file!n”) ; exit(0); if (f2=fopen (argv2, ”w”)=NULL) printf (“Can not open object file!n”) ; exit(1); while (!feof (f1) fputc (fgect (f1), f2); fclose (f1); fclose (f2);3從上一題中建立的名為“ f1.txt”的磁盤文件中讀取120個(gè)字符,并顯示在屏幕上。 #include “stdio.h”void main ( ) FILE *fp; int i ; i
23、f ( fp=fopen (“f1.txt”, ”r”)=NULL) printf (“Can not open file!n”) ; exit (0); for ( i=1; i=120; i+) putchar (fgetc ( fp) ; fclose (fp) ;4編一個(gè)程序,將磁盤中當(dāng)前目錄下名為“cow1txt”的文本文件復(fù)制在同目錄下,文件名改為“ccw2.txt”。 #include “stdio.h” void main ( ) FILE *f1, *f2; if ( f1=fopen (“ccw1.txt”, ”r”)=NULL) printf (“Can not open
24、 file!n”) ; exit (0); if ( f2=fopen (“ccw2.txt”, ”w”)=NULL) printf (“Can not open file!n”) ; exit (1); while (!feof (f1) fputc (fgetc (f1), f2); 5. 把文本文件d1.dat復(fù)制到文本文件d2.dat中,要求僅復(fù)制d1.dat中的英文字符。 #include void main( ) FILE *fpd1,*fpd2; char ch; if(fpd1=fopen(d1.dat,r)=NULL) printf (“Can not open file!n
25、”) ; exit (0); if( fpd2=fopen(d2.dat,w); printf (“Can not open file!n”) ; exit (1); while(fscanf(fpd1,%c,&ch)!=EOF) if(ch=A&ch=a&ch=z) fprintf(fpd2,%c,ch); fclose(fpd1); fclose(fpd2); 6. 編程,把文本文件d1.dat復(fù)制到d2.dat(其中空格字符不復(fù)制)。 #include void main() FILE *fpd1,*fpd2; char ch; if(fpd1=fopen(d1.dat,r)=NULL)
26、 printf (“Can not open file!n”) ; exit (0); if( fpd2=fopen(d2.dat,w)=NULL) printf (“Can not open file!n”) ; exit (1); while(fscanf(fpd1,%c,&ch)!=EOF) if(ch!= ) fprintf(fpd2,%c,ch); fclose(fpd1); fclose(fpd2); 7. 編程,把文本文件d1.dat復(fù)制到d2.dat(其中大寫英文字母要轉(zhuǎn)換為小寫字母)。 #include void main() FILE *fpd1,*fpd2; char c
27、h; if(fpd1=fopen(d1.dat,r)=NULL) printf (“Can not open file!n”) ; exit (0); if(fpd2=fopen(d2.dat,w)=NULL) printf (“Can not open file!n”) ; exit (1); while(fscanf(fpd1,%c,&ch)!=EOF) if(ch=A&ch=Z) ch=ch+32; fprintf(fpd2,%c,ch); fclose(fpd1); fclose(fpd2); 8. 把文本文件d1.dat復(fù)制到文本文件d2.dat中,要求僅復(fù)制d1.dat中除英文字符
28、和 數(shù)字以外的其它內(nèi)容。 #include void main() FILE *fpd1,*fpd2; char ch; if(fpd1=fopen(d1.dat,r)=NULL) printf (“Can not open file!n”) ; exit (0); if(fpd2=fopen(d2.dat,w)=NULL) printf (“Can not open file!n”) ; exit (1); while(fscanf(fpd1,%c,&ch)!=EOF) if(!(ch=A&ch=a&ch=0&ch=9) fprintf(fpd2,%c,ch); fclose(fpd1);
29、fclose(fpd2); 9. 求出1至100之間的素?cái)?shù)(只能被1和自身整除的數(shù))并順序?qū)懭胛募u.dat。 #include #include void main() FILE *fp; int i,j,k=2; if(fp=fopen(su.dat,w)=NULL) printf (“Can not open file!n”) ; exit (0); fprintf(fp,%4d%4d,2,3); for(i=5;i100;i=i+2) for(j=3;jsqrt(i) fprintf(fp,%4d,i); k+; if(k%10=0) fprintf(fp,n); fclose(fp
30、);10磁盤文件a1和a2,各自存放一個(gè)已按字母順序排好的字符串,編程合并二個(gè)文件到a3文件中,合并后仍保持字母順序。 #include #include void main() FILE *fp1,*fp2,*fp3; int i,j,k; char c1,c2; if(fp1=fopen(a1,r)=NULL) printf (“Can not open file!n”) ; exit (0); if( fp2=fopen(a2,r)=NULL) printf (“Can not open file!n”) ; exit (1); if(fp3=fopen(a3,w)=NULL) prin
31、tf (“Can not open file!n”) ; exit (2); c1=fgetc(fp1); c2=fgetc(fp2); /* 首先從文件a1、a2中各讀入一個(gè)字符分, do 別送入變量c1、c2,作循環(huán)比較 */ if(c1c2) fputc(c1,fp3);c1=fgetc(fp1); else fputc(c2,fp3); c2=fgetc(fp2); while(!feof(fp1)&!feof(fp2); /* 直到讀到文件尾標(biāo)志為止 */ / 若a1先讀到文件尾,則將c2寫入a3,再將a2中其它字符讀入后寫入a3;. if(feof(fp1) do fputc(c2
32、,fp3); c2=fgetc(fp2); while(!feof(fp2) ; else do fputc(c1,fp3); c1=fgetc(fp1); while(!feof(fp1) ; fclose(fp1); fclose(fp2); fclose(fp3); 11順序文件 c.dat 每個(gè)記錄包含學(xué)號(hào)(8位字符)和成績(jī)(三位整數(shù))兩個(gè)數(shù)據(jù)項(xiàng)。從文件讀入學(xué)生成績(jī),將大于或等于60分的學(xué)生成績(jī)?cè)傩纬梢粋€(gè)新的文件score60.dat保存在A盤上,并顯示出學(xué)生總?cè)藬?shù)、平均成績(jī)和及格人數(shù)。 #include #include void main() FILE *fp1,*fp2; cha
33、r s9; int x,sn=0, cs=0, jn=0; fp1=fopen(c.dat,r); fp2=fopen(a:score60.dat,w); fscanf(fp1,%s%d,s,&x); do sn+; cs+=x; if(x=60) jn+; fprintf(fp2,%s %dn,s,x); fscanf(fp1,%s%d,s,&x); while(!feof(fp1); printf(總?cè)藬?shù):%d 平均成績(jī):%d 及格人數(shù):%dn,sn, cs/sn, jn); fclose(fp1); fclose(fp2); 12編程序?qū)γ麨椤癈CW.TXT”的磁盤文件中“”之前的所有字
34、符加密,加密的方法 是每個(gè)字節(jié)的內(nèi)容減10。 設(shè)計(jì)思路:從文件 CCW.TXT中讀一個(gè)字符(字節(jié)),減10后寫到一臨時(shí)文件 TMPCCWTXT,直到讀到字符。然后兩文件反繞到頭,從文件TMPCCWTXT 中讀一個(gè)字符,寫回到文件CCW.TXT,把原字符復(fù)蓋。因此兩文件以r+和w+的形式打開。 #include “stdio.h”void main( ) FILE *fp1, *fp2; char ch; if ( fp1=fopen (CCW.TXT, r+)=NULL) printf (Can not open file!n) ; exit (0); if ( fp2=fopen (TMPC
35、CW.TXT, w+)=NULL) printf (Can not open file!n) ; exit (1); while(ch=fgetc(fp1)!=) fputc(ch-10, fp2); rewind(fp1); rewind(fp2); do ch=fgetc(fp2); if(!feof(fp2) fputc(ch, fp1); while(!feof(fp2) ; fclose(fp1); fclose(fp2) ; 13編程序?qū)ι弦活}中名為“CCW.TXT”的磁盤文件中“”字符之前的所有字符解密 并顯示。 #include “stdio.h” void main( ) F
36、ILE *fp1; char ch; if ( fp1=fopen (CCW.TXT, r)=NULL) printf (Can not open file!n) ; exit (0); while(ch=fgetc(fp1)!=) putchar (ch+10) ; fclose (fp1); 14輸入100個(gè)學(xué)生的信息(含學(xué)號(hào)、姓名、年齡、7科成績(jī)、總分),統(tǒng)計(jì)所有學(xué)生的 總分,然后存入磁盤二進(jìn)制數(shù)據(jù)文件student.dat中。然后再讀取該文件,尋找總分 最高的學(xué)生并輸出該學(xué)生的所有信息。 方法一、定義一個(gè)結(jié)構(gòu)變量,每輸入一個(gè)學(xué)生信息,即存人磁盤二進(jìn)制數(shù)據(jù)文件student.dat中。建
37、立存有100個(gè)學(xué)生信息的文件后,設(shè)計(jì)一個(gè)總分為 0的 hs學(xué)生,再打開讀取該文件,每讀入一個(gè)學(xué)生信息,即與hs比較,尋找總分最高的學(xué)生在hs,并輸出該學(xué)生的所有信息。 include include tinclude void main( ) struct student int sno ; char sn20 ; int sage ; float sg7 ; float sum ; s, t, hs ; FILE *fp ; int i, j ; if (fp=fopen (student.dat, wb)=NULL) printf (Can not open file!n) ; exit
38、(0); printf (以學(xué)號(hào) 姓名 年齡 成績(jī)1 成績(jī)2 成績(jī)3 成績(jī)4 成績(jī)5 成績(jī)6 成績(jī)7的形式輸入:n); for (i=0; i100; i+) printf (學(xué)生%d:n,i+1); scanf (%d,&s.sno) ; scanf (%s,s.sn) ; scanf (%d,&s.sage) ; s. sum=0 ; for (j=0; jhs.sum) hs.sno=t.sno ; strcpy (hs.sn, t.sn) ; / 必須用strcpy( )函數(shù)復(fù)制 hs.sage=t.sage; for (j=0; j7; j+) hs.sgj=t.sgj; hs.su
39、m=t.sum ; printf (總分最高的學(xué)生是 ); printf(學(xué)號(hào):%d 姓名:%s 年齡:%dn, hs.sno, hs.sn, hs.sage); printf(成績(jī)1 成績(jī)2 成績(jī)3 成績(jī)4 成績(jī)5 成績(jī)6 成績(jī)7總分n); for(j=0; j7; j+) printf(%5.1f, hs.sgj) ; printf(%5.1fn, hs.sum);方法二、定義一個(gè)100個(gè)元素的結(jié)構(gòu)數(shù)組s,輸入100個(gè)學(xué)生的信息后,一次存入磁盤二進(jìn)制數(shù)據(jù)文件student.dat中。再打開該文件,讀入100個(gè)學(xué)生信息到100個(gè)元素的結(jié)構(gòu)數(shù)組t中。數(shù)組t中,用結(jié)構(gòu)指針sp和hsp尋找總分最高
40、的學(xué)生,使hsp指向它,并輸出該學(xué)生的所有信息。void main( ) struct student int sno ; char sn20 ; int sage ; float sg7 ; float sum ; s100, t100, *sp, *hsp; FILE *fp ; int i, j ; float hsum=0; if (fp=fopen (student.dat, wb)=NULL) printf (Can not open file!n) ; exit (0); printf (以學(xué)號(hào)n 姓名n 年齡n成績(jī)1 成績(jī)2 成績(jī)3 成績(jī)4 成績(jī)5 成績(jī)6 成績(jī)7的形式輸入:n
41、); for (i=0; sp=s; isno) ; scanf (%s,sp-sn) ; scanf (%d,&sp-sage) ; sp-sum=0 ; for (j=0; jsgj) ; sp-sum=sp-sum+sp-sgj ; fwrite (s, sizeof (struct student), 100, fp); fclose (fp) ; if ( fp=fopen(student.dat, rb)=NULL) printf (Can not open file!n) ; exit (0); fread (t, sizeof (struct student), 100, fp); for (i=0; hsp=t; sp=t isumhsum) hsnm=sp-sum; hsp=sp printf (總分最高的學(xué)生是 ); printf(學(xué)號(hào):%d 姓名:%s 年齡:%dn, hsp-sno, hsp-sn, hsp-sage); printf(成績(jī)1 成績(jī)2 成績(jī)3 成績(jī)4 成績(jī)5 成績(jī)6 成績(jī)7總分n);for(j=0; jsbj); fclose(fp); 15編一個(gè)程序,統(tǒng)計(jì)文本文
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)陽(yáng)光房設(shè)計(jì)與施工一體化協(xié)議版A版
- 專用商標(biāo)使用許可協(xié)議版B版
- 專業(yè)SaaS服務(wù)提供商協(xié)議范本(2024修訂版)版B版
- 專項(xiàng)咨詢與解決方案服務(wù)協(xié)議版B版
- 二零二四全新旅游服務(wù)雙向保密協(xié)議下載與體驗(yàn)合同3篇
- 二零二五年度綠色能源項(xiàng)目補(bǔ)充合同協(xié)議書2篇
- 2025年度城市綜合體戶外廣告位及攤位聯(lián)合租賃合同4篇
- 2025年休閑娛樂(lè)場(chǎng)地租賃合作協(xié)議書4篇
- 2025年度綠色能源項(xiàng)目場(chǎng)地承包經(jīng)營(yíng)合同范本4篇
- 二零二五年度自然人互聯(lián)網(wǎng)金融消費(fèi)合同3篇
- 2025年度土地經(jīng)營(yíng)權(quán)流轉(zhuǎn)合同補(bǔ)充條款范本
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國(guó)人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 0的認(rèn)識(shí)和加、減法(說(shuō)課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版(2024)001
- 醫(yī)院安全生產(chǎn)治本攻堅(jiān)三年行動(dòng)實(shí)施方案
- Python試題庫(kù)(附參考答案)
- 說(shuō)明書hid500系列變頻調(diào)速器使用說(shuō)明書s1.1(1)
- 大斷面隧道設(shè)計(jì)技術(shù)基本原理
- 41某31層框架結(jié)構(gòu)住宅預(yù)算書工程概算表
- 成都市國(guó)土資源局關(guān)于加強(qiáng)國(guó)有建設(shè)用地土地用途變更和
評(píng)論
0/150
提交評(píng)論