2012年自考“高级语言程序设计”经典习题及答案(30)
来源:本站整理 时间:2020-02-13 15:55:05
8.4 程序设计题
1.编一个程序,从键盘输入200个字符,存入名为 f1.txt 的磁盘文件中。
解 要将从键盘输入的字符写到指定的文件,程序要定义一个文件指针变量,并以写方式打开指定的文件,然后是一个循环,反复从键盘读人字符,将读人字符复制到文件。程序如下:
# include
# include
FILE * fp;
void main()
{ int i, ch;
if(( fp =fopen( f1.txt , w ))== NULL) {
prinit( Can t open file %s.\n , f1.txt ); exit(0);
}
printf( Enter 200 characters. \n );
for( i = 1;i =200;i++) {
ch= getchar();
if( ch== EOF) break;
fputc( ch,fp);
}
fclose(fp);
}
2.从上一题中建立的名为 f1.txt 的磁盘文件中读取120个字符,并显示在屏幕上。
解 要从指定文件读入字符显示,要以读方式打开,并用循环控制从文件读人字符。程序如下:
# include
# include
FILE * fp;
void main()
{ int i;
if(( fp =fopen( f1.txt , r ))== NULL) {
printf( Can t open file %s.\n , f1.txt ); exit(0);
}
for(i=l; i =120; i++ ) {
if(feof(fp)) break;
putchar( fgetc(fp));
}
fclose(fp);
printf( \n );
}
3.编一个程序,将磁盘中的当前目录下名为 ccw1.txt 的文本文件复制在同一目录下,文件名改为 ccw2.txt 。
解 程序需要两个文件指针变量,一个对应读文件,另一个对应写文件。并分别用读和写方式打开两个文件。
接着是以读文件状态作为循环控制条件,在读文件还未结束下循环,反复读人字符,并将读人字符复写到写文件中。程序如下:
# include
# include
FILE * rp, * wp;
void main()
{ int c;
if((rp= fopen( ccw1.txt , r ))== NULL) {
printf( Can t open file %s.\n , ccwl.txt ); exit(0);
}
if((wp= fopen( ccw2.txt , w ))== NULL) {
printf( Can t open file %s.\n , ccw2.txt ); exit(0);
}
while((c= fgetc(rp))!= EOF)
fputc( c,wp);
fclose(wp);
fclose(rp);
}
4.编程序,对名为 CCW.TXT 的磁盘文件中 @ 之前的所有字符加密,加密方法是每个字节的内容减10.
解 程序从文件读出字符,在字符 @ 未出现之前,将读出字符作加密处理后回写。加密循环受文件结束或当前字符是 @ 字符控制。程序如下:
# include
# include
# define DALTA 10
FILE * rp;
void main()
{ int c;
if(( rp = fopen( ccw.txt , r+ )) ==NULL ) {
printf( Can t open file %s.\n , ccw.txt ); exit(0);
}
while(( c= fgetc(rp))!= EOF) {
if( c == @ ) break;
c+= DALTA;
fseek( rp,-1L,1 );
fputc( c, rp);
fseek( rp,OL,l);
}
fclose(rp);
}