二、填空題:
(1) 已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由文件指針fr指向該文件,則程序的輸出結(jié)果是 【1】 。
#include <stdio.h>
main()
{ FILE *fr; char str[40];
……
fgets(str,5,fr);
printf("%s\n",str);
fclose(fr);
}
(2) 若fp已正確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請(qǐng)?zhí)羁,以便為“讀”而打開此文件:fp=fopen( [2] );。
#include "stdio.h"
main()
{ FILE *fp; long num=0L;
if((fp=fopen("fname.dat","r"))==NULL)
{ pirntf("Open error\n"); exit(0);}
while( 【3】 )
{ fgetc(fp); num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
(4) 以下程序段打開文件后,先利用 fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度,請(qǐng)?zhí)羁铡?BR> FILE *myf; ling f1;
myf= 【4】 (“test.t”,“rb”);
fseek(myf,0,SEEK_END); f1=ftel(myf);
fclose(myf);
printf(“%d\n”,f1);
(5) 下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中。請(qǐng)?zhí)羁铡?BR> #include “stdio.h”
FILE *fp;
{ char ch;
if( (fp=fopen ( 【5】 ) )= = NULL)exit(0);
while( (ch=getchar( )) !=’@’) fputc (ch,fp);
fclose(fp);
}
(6) 以下程序中用戶由鍵盤輸入一個(gè)文件名,然后輸入一串字符(用#結(jié)束輸入)存放到此文件文件中形成文本文件,并將字符的個(gè)數(shù)寫到文件尾部,請(qǐng)?zhí)羁铡?BR> #include <stdio.h>
main( )
{ FILE *fp;
char ch,fname[32]; int count=0;
printf("Input the filename :"); scanf("%s",fname);
if((fp=fopen( 【6】 ,"w+"))==NULL)
{ printf("Can't open file:%s \n",fname); exit(0);}
printf("Enter data:\n");
while((ch=getchar())!="#"){ fputc(ch,fp); count++;}
fprintf( 【7】 ,"\n%d\n", count);
fclose(fp);
}
(7) 下面程序把從終端讀入的10個(gè)整數(shù)以二進(jìn)制方式寫到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁?
#include<stdio,h>
FILE *fp;
main()
{ int i,j;
if((fp=fopen( 【8】, "wb"))==NULL) exit(0);
for(i=0; i<10; i++)
{ scanf("%d",&j);
fwrite(&j,sizeof(int),1, 【9】 );
}
fclose(fp);
}
(8) 以下程序的功能是:從鍵盤上輸入一個(gè)字符串, 把該字符串中的小寫字母轉(zhuǎn)換為大寫字母,輸出到文件test.txt中,然后從該文件讀出字符串并顯示出來。請(qǐng)?zhí)羁铡?BR> #include
main()
{ FILE *fp;
char str[100]; int i=0;
if((fp=fopen("text.txt",【10】))==NULL)
{ printf("can't open this file.\n");exit(0);}
printf("input astring:\n"); gest(str);
while (str[i])
{ if(str[i]>='a'&&str[i]<='z')
str[i]=【11】;
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("test.txt",【12】);
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}
(9) 下面程序把從終端讀入的文本用@作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?BR> #include <stdio.h>
FILE *fp;
main()
{ char ch;
if((fp=fopen( 【13】))==NULL)exit(0);
while ((ch=getchar())!='@')fputc(ch,fp); 【14】
(10) 以下程序由終端輸入一個(gè)文件名,然后把從終端鍵盤輸入的字符依次存放到該文件中,用#作為結(jié)束輸入的標(biāo)志.請(qǐng)?zhí)羁?
#include <stdio.h>
main()
{ FILE * fp;
char ch,fname[10];
printf("lnput the name of file\n");
gets(fname);
if((fp=【15】)==NULL)
{ printf("Cannot open\n"); exit(0);}
printf("Enter data\n");
while((ch=getchar())!='#') fputc(【16】,fp);
fclose(fp); }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |