c语言题目!急!求高手!新!

1.改错题
(1)下列程序的功能为:在键盘输入四行字符写到D盘data1.dat文件中,请纠正程序中存在错误,使程序实现其功能,程序以文件名sy9_1.c存盘。
#include <stdio.h>
#include<string.h>
void main()
{
FILE *fp1;
char ch[80];
int i,j;
fp1=fopen("d:\\data1.dat","b");
for(i=1;i<=4;i++)
{gets(ch);
j=0;
while(ch[j]!='\0')
{fputc(fp1, ch[j]);
j++;
}
fputc(fp1,'\n');
}
fclose(fp1);
}
(2) 下列程序的功能为:随机产生10整数,写入一个二进制文件中,请纠正程序中存在错误,使程序实现其功能,程序以文件名sy9_2.c存盘。
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main ( )
{
int x[10],i,k;
FILE *fp2;
srand( (unsigned)time( NULL ) );
for (i=0;i<10;i++)
x[i]=rand();
fp2=fopen ("d:\\data2.dat","wb");
if(fp2==NULL)
{
printf("Open error \n");exit(0);
}
for (int k=0 ; k<10 ; k++ )
fwrite( x[k],sizeof(int), fp2);
fclose (fp2 ) ;
}
(3) 下列程序的功能为:从数组读入数据,建立ASCII码文件,并按下列格式输出:
10 20 30 40 50 60 70 80 90 100(每个数据占5个字符宽度),请纠正程序中存在语法错误,使程序实现其功能,程序以文件名sy9_3.c存盘。
#include<stdio.h>
#include<stdlib.h>
void main()
{ FILE *fp3;
int b[]={10,20,30,40,50,60,70,80,90,100},i=0,n;
if((fp3=fopen("e:\\file9_3.txt","w"))==NULL)
{ printf("%s不能打开\n","e:\\file9_3.txt");
exit(1);
}
while(i<10)
{ fprintf(fp3,"%d",b[i]);
if(i%3==0) fprintf(fp3,"\n");
i++;
}
fclose(fp3);
if((fp3=fopen("e:\\file9_3.txt","r"))==NULL)
{ printf("%s不能打开读\n","e:\\file9_3.txt");
exit(1);
}
fscanf(fp3,"%5d",&n);
while(!feof(fp3))
{ printf("%5d",n);
fscanf(fp3,"%d",&n);
}
printf("\n");
fclose(fp3);
}
2.程序填空
(1) 下列程序的功能为:从字符指针数组读出字符串,建立ASCII码文件file9_4.txt,请填写适当的符号或语句,使程序实现其功能,程序以文件名sy9_4.c存盘。
#include<stdio.h>
#include<stdlib.h>
void main()
{ FILE *fp;
int i=0;
char *str[]={"visual C++","visual Basic","visual java","visual foxpro"};
if((fp=fopen("e:\\file9_4.txt", ))==NULL)
{ printf("%s不能打开!\n","file9_4.txt");
exit(1);
}
while(i<4)
{
fprintf( );
;
}
fclose(fp);
}
(3) 下列程序的功能为:从字符指针数组读出字符串,建立和输出二进制文件file9_6.dat,请填写适当的符号或语句,使程序实现其功能,程序以文件名sy9_6.c存盘。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{ FILE *fp6;
int i=0;
char str[][20]={"visual C++","visual Basic","visual java","visual foxpro"};
char s[20];
if((fp6=fopen("e:\\file9_6.dat", )==NULL)
{ printf("%s不能打开!\n","file9_6.dat");
exit(1);
}
while(i<4)
{
fwrite( , ,1,fp6);
i++;
}
fclose(fp6);
if((fp6=fopen("e:\\file9_6.dat", ))==NULL)
{ printf("%s不能打开!\n","file9_6.dat");
exit(1);
}
fread(( , ,1,fp6);
while(!feof(fp6))
{ printf("%s\n",s);
fread(( , ,1,fp6);
}
fclose(fp6);
}

第1个回答  2009-06-27
改错第3题
#include<stdio.h>
#include<stdlib.h>
void main()
{ FILE *fp3;
int b[]={10,20,30,40,50,60,70,80,90,100},i=0,n;
if((fp3=fopen("e:\\file9_3.txt","w"))==NULL)
{ printf("%s不能打开\n","e:\\file9_3.txt");
exit(1);
}
while(i<10)
{ fprintf(fp3,"%5d",b[i]);
if(i%3==0) fprintf(fp3,"\n");
i++;
}
fclose(fp3);
if((fp3=fopen("e:\\file9_3.txt","r"))==NULL)
{ printf("%s不能打开读\n","e:\\file9_3.txt");
exit(1);
}
fscanf(fp3,"%d",&n);
while(!feof(fp3))
{ printf("%5d",n);
fscanf(fp3,"%d",&n);
}
printf("\n");
fclose(fp3);
return 0
}

参考资料:如果您的回答是从其他地方引用,请表明出处

第2个回答  2009-06-27

汗这么多,  我也不知道(=@__@=)纳  ~\(≥▽≤)/~啦啦啦

相似回答