精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

C語言程序設(shè)計教程答案

楊路明 郭浩志 編 / 北京郵電大學(xué)出版社

旺仔 上傳

查看本書

1:    / *c語言數(shù)據(jù)文件有幾種存儲形式?每種存儲形式個有什么特點?*/

      答:在C語言使用的文件系統(tǒng)中,數(shù)據(jù)文件的數(shù)據(jù)存儲形式有兩種:一種以字符形式存放,這種文件稱為字符文件

          ,也稱為文本文件或者是正文文件;另外一種是以二進(jìn)制代碼形式存放,這種文件稱為二進(jìn)制文件。

          一般的說,二進(jìn)制文件節(jié)省存儲空間,并且在輸入時不需要把字符代碼先轉(zhuǎn)化成二進(jìn)制代碼形式再送入內(nèi)存,

          在輸出時也不需要把數(shù)據(jù)由二進(jìn)制代碼轉(zhuǎn)化成字符代碼再輸出,因而輸入輸出速度快。用戶程序在實用中,從

         節(jié)省時間和空間的要求考慮,一般選用二進(jìn)制文件。但是,如果用戶準(zhǔn)備的數(shù)據(jù)是作為文檔使用閱讀時,則一

          般使用字符文件,他們可以方便,快捷的通過顯示器或打印機(jī)直接輸出。

2: / *打開文件,關(guān)閉文件的含義是什么?為什么要打開關(guān)閉文件?*/

    答: 打開文件的含義:要把文件使用方式寫入FILE結(jié)構(gòu)體變量中;返回一個FILE結(jié)構(gòu)體指針,指向該文件的FILE結(jié)構(gòu)

         體變量,通過該文件指針可以對文件進(jìn)行操作。

         關(guān)閉文件的含義:文件指針不再指向原來指向的文件。

         為什么要打開文件:(1)要確定文件的使用方式;(2)要得到一個指向文件的指針;(3)還需檢測文件是否存在,

         磁盤是否出故障等。

         為什么要關(guān)閉文件:(1)防止文件被誤用;(2)具體系統(tǒng)中同時打開的文件的數(shù)目是有限的。

 

3: / *C語言標(biāo)準(zhǔn)的I/O接口操作提供了幾種文件存取方式?每種方式各有什么特點?*/

    答: 標(biāo)準(zhǔn)I/O提供了4種文件存取方法:

         (1):讀寫一個字符。

         (2):讀寫一個字符串,將多個字符組成的字符串寫入文件或從文件中讀出。

         (3):格式化讀寫,根據(jù)格式控制指定的數(shù)據(jù)格式對數(shù)據(jù)進(jìn)行轉(zhuǎn)換存取。

         (4):成塊讀寫,也稱做按記錄讀寫。C語言的文件雖然是按字節(jié)流存放,但可以按記錄存取多個字節(jié)的數(shù)據(jù)。

 

4/ *什么是文件型指針?通過文件指針訪問文件有什么好處?*/

   答: 系統(tǒng)定義FILE結(jié)構(gòu)體類型,建立文件相當(dāng)于定義了一個FILE結(jié)構(gòu)體變量,該結(jié)構(gòu)體變量存放文件的有關(guān)信息。打開

        文件返回一個FILE結(jié)構(gòu)體指針,指向該文件的FILE結(jié)構(gòu)體變量。所以,文件型指針就是指向文件的FILE結(jié)構(gòu)體變量的

        指針。

        通過文件指針訪問文件,也即用FILE結(jié)構(gòu)體變量成員,比較方便。

5:   (1)     [1]: fopen(fname,"w")

     [2]: ch

     [3]: fclose(fp)

     

 

     (2)     [1]: "r+"

     [2]: str[i]-32

     [3]: "r"

6、

#include<stdio.h>

main()

{ FILE *p;

char ch;

if((p=fopen(file.c,"w"))==NULL)

{    printf("cannot open file.\n");

exit(1);

}

ch=getch();

while(ch!='#')

{    if(ch>=65&&ch<=90)ch+=32;fputc(ch,p);putchar(ch);ch=getchar();}

fclose(p);

}

7、

#include<stdio.h>

void main()

{ FILE *fp;

int i,j,n,k;

char x[160],ch,t;

if((fp=fopen("file1","r"))==NULL)

{    printf("Can't open file1\n");

     exit(1);

}

for(i=0;(ch=fgetc(fp))!=EOF;i++)

{    x[i]=ch;

}

fclose(fp);

if((fp=fopen("file2","r"))==NULL)

{    printf("Can't open file2\n");

     exit(1);

}

while((ch=fgetc(fp)!=EOF))

{    x[i]=ch;

     i++;

}

n=i;

for(i=0;i<n-1;i++)

{    k=i;

     for(j=i+1;j<n;j++)

          if(x[i]>x[j]) k=j;

             if(k!=i)

{ t=x[i];x[i]=x[j];x[j]=t;} 

}

if((fp=fopen("file3","w"))==NULL)

{    printf("Can't open file3\n");

     exit(1);

}

for(i=0;i<n;i++)

   fputc(x[i],fp);

fclose(fp);

}

8

9、

#include<stdio.h>

main()

{ FILE *fp;

  char str;

if((fp=fopen("text.txt","w"))==NULL)

{    printf("Can't open this file.\n");

     exit(1);

}

printf("\nInput  char: ");

while((str=fgetc(stdin))!='#')

         fputc(str,fp);

fclose(fp);

fp=fopen("text.txt","r");

while((str=fgetc(fp))!=EOF)

{    if(str>=97&&str<=122)

      str-=32;

      fputc(str,stdout);  

}

fclose(fp);

}

10、

#include<stdio.h>

struct student

{ char sid[15];

char name[15];

int score[3];

float ave;

}stu[100];

void main()

{ int i,j,n,sum=0,all[3]={0};

FILE *fp;

printf("How many student you want to input?:  ");

scanf("%d",&n);

for(i=0;i<n;i++)

{   printf("Input the message of %d student\n",i+1);

    printf("\tsid:\t");scanf("%s",stu[i].sid);

    printf("\tname:\t");scanf("%s",stu[i].name);

    sum=0;

    for(j=0;j<3;j++)

    {    printf("%d score:\t",j+1);

 scanf("%d",&stu[i].score[j]);

 sum=sum+stu[i].score[j];/ *各個同學(xué)的總分*/

 all[j]+=stu[i].score[j];/ *該班各門課程的總分*/

    }

    stu[i].ave=sum/3.0;

}

if((fp=fopen("stud1","wb"))==NULL)/ *文件以二進(jìn)制形式打開*/

{   printf("Can't open stud file\n");

         exit(1);

}

for(i=0;i<n;i++)

{   if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)/ *該班各門課程總分還沒有輸入文件*/

printf("file write error.\n");

    fclose(fp);

}

}

11、

#include<stdio.h>

struct student

{ char sid[15];

char name[15];

int score[3];

float ave;

}stu1[100],change;

main()

{ FILE *fp;

int i,j,n,k;

if((fp=fopen("stud1","rb"))==NULL)

{    printf("Can't open file\n");

     exit(1);

}

for(i=0;fread(&stu1[i],sizeof(struct student),1,fp)!=1;i++)

fclose(fp);

n=i;

for(i=0;i<n-1;i++)

{    k=i;

     for(j=i+1;j<n;j++)

if(stu1[i].ave<stu1[j].ave)k=j;

if(k!=i)

{   change=stu1[i];stu1[i]=stu1[j];stu1[j]=change;}

}

fp=fopen("stu2","wb");

for(i=0;i<n;i++)

fwrite(&stu1[i],sizeof(struct student),1,fp);

fclose(fp);

}


查看更多