两道c语言基础题目求解!给高分!

1. 编写一个程序,由键盘输入一个文件名,然后把从键盘输入的字符依次存放到该文件中,用'!'作为结束输入的标志。
2. 编写一个程序fcat.c ,把命令行中制定的多个文本文件连接成一个文件。
例如 C:\>fcat file1 file2 file3 file4
它把文本文件file1、file2、file3 、file4连接成一个文件,连接后的文件名为file1。
#include <stdio.h>
main()
{
FILE *fp;
char s[100],c[100];
int i,j,m,n;
printf("input the file name:\n");
for(i=0;i<=99;i++)
{
s[i]=getchar();
if(s[i]=='\n')
{
m=i;
break;
}
}
for(i=0;i<=m;i++)
fp=fopen("c:\\s[i]","w");
printf("input the content:\n");
for(j=0;j<=99;j++)
{
c[j]=getchar();
if(c[j]=='!')
{
n=j;
break;
}
}
for(j=0;j<=n;j++)
fputc(c[j],fp);
fclose(fp);
}
我自己写的,请高手帮忙修改!

1
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("cannot open fiel\n");
exit(0);
}
ch=getchar();//此语句用来接收在执行scanf语句时最后输入的回车符
ch=getchar();//接收输入的第一个字符
while(ch!='!')
{
fputc(ch,fp);putchar(ch);
ch=getchar();
}
putchar(10);// 向屏幕输出一个换行符
fclose(fp);
}

2
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3
struct filename
{
char files[9];
}file[N]={"file2","file3","file4"};
void main()
{
FILE *in[N],*out;
char ch;
for(int i=0;i<N;i++)
{
if((in[i]=fopen(file[i].files,"r"))==NULL)
{
printf("cannot open file\n");
exit(0);
}
}
if((out=fopen(file1,'w'))==NULL)
{
printf("cannot open file\n");
exit(0);
}
int i=0;
while((!feof(in))&&(i>=3))
fputc(fgetc(in[i++]),out);
for(i=0;i<N;i++)
fclose(in[i]);
fclose(out);
}

没装程序,楼主运行看看。文件file得事先存好。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-23
问题一: (运行环境TC或VC++6。0)
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#define BUFFER 1024
char buff[BUFFER];

int main(void)
{

int fd,bytes,i;
char arr[30];

printf("please enter the fileName:\n");
gets(arr);/*最好输入绝对路径,如c:\mytext.txt*/

if((fd=creat(arr,O_WRONLY))<0)/*创建文件*/
{
printf("can't create file.\n"); exit(EXIT_FAILURE);
}

printf("now please enter characters!\n");
gets(buff);/*取得字符*/
write(fd,buff,BUFFER);/*写入文件*/

close(fd);

return 0;
}

问题二:(这题没有测试过)
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#define BUFFER 1024
char buff[BUFFER];

int main(int argc,char *argv[])
{

int fd,fd2,bytes,i,j;
char arr[30];

fd = open(argv[1],O_WRONLY);/*读取第一个文件用于合并*/
for(i=2;i<argc;++i)/*循环把file2,file3,file4合并到file1*/
{
fd2 = open(argv[i],O_RDONLY);
while((bytes=read(fd2,buff,BUFFER))>0)/*读取2,3,4的内容*/
{
write(fd,buff,bytes);/*写入file1*/
}
}

close(fd);
close(fd2);
return 0;
}

C语言简单编程题目两道,求高手做一下。高分!!!
if (val == 0 || val == 2 || val == 4 || val == 6 || val == 8) { \/\/ 取得的数只要是这5个数中任意一个, count计数就加1 count ++;} } if (count == 4) { \/\/ 如果count=4表示4个位都是0\/2\/4\/6\/8 b[j++] = a[i]; \/\/ 则复制此数字到b数组中...

两道C语言的题,求解(高分)
int min(int a,int b,int c){ if (a<=b&&a<=c)return a;if (b<=a&&b<=c)return b;else return c;}

C语言编程题2道!急!!!
include<stdio.h> int main(){ int a[10];int i;int max = 0;int min = 100;int maxi=0;int mini =0;for(i=0;i<10;i++){ scanf("%d",&a[i]);if(a[i]<min){ min = a[i];mini = i;} if(a[i]>max){ max = a[i];maxi = i;} } int sum =0;for(i=0;i...

高分求两道大一C语言编程题答案,答对的保证再追加100分
printf("%c", *psz);psz++;continue;} fprintf(fp, "%c", *psz);psz++;} } int main(){ char* pszBuff = ReadFile("Old.txt");if( NULL == pszBuff ) return 0;Sort(pszBuff);free(pszBuff);printf("\\n");} \/ 2.\/ include <stdio.h> include <malloc.h> void input...

求高手解答一些简单的C语言题目!(高分悬赏)
3、(1)printf("Input a year:");scanf("%d",&year);(2)(0==year%4 && 0!=year%100) || 0==year%400 4、(1)s[i]!='\\0'(2)s[j]=s[i];5、include<stdio.h> main(){ int i=1,j=1;for(i=1;i<=9;i++){ for(j=1;j<=9;j++){ if(j>=i){ printf("%2d*...

C语言高手请进啊,高分哦,详细的解释!!!
第三题 考 二维数组 以及 数组概念 数组的行列是从 0 开始的, 即 第一个元素为 p[0][0]定义的数组为二维。所以 p[1] 是第二行的全部元素 即 France 另外它不是省略的 p[1][0],两者不同,前者是一行,后者是一个 另外,你可以从c语言的打印方式看出,前者 %s ...

c语言编程问题,求高手解答(高分)
你的程序没有大的问题,可以执行,只是以下几个小问题:一、第一行包含的文件不存在,这一行应该删除。二、定义了argc、argv两个变量没有使用,编译会有警告,可以删除他们或者不管,最好改为:int main()三、scanf输入n和k的时候,中间有个逗号分隔,这样输入的时候会麻烦,最好改为:scanf("%d%d...

c语言问题,紧急高分求救
int main(void){ srand((unsigned)time(NULL));int count1=0;int names[10]={1,2,3,4,5,6,7,8,9,10};int a[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};int b[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};int i,j;printf("\\n");for ( i=0;i<10;i++)...

下半年计算机二级c语言基础试题
下面是我收集的关于计算机二级c语言基础试题,希望大家认真阅读! 下半年计算机二级c语言基础试题1 一、选择: 1.给出以下定义: char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组...

C语言。给高分,求速度。怎么用流程图表示ax2+bx+c=0的根的算法...
2013-03-15 C语言题 求方程ax^2+bx+c=0的根。分别考虑:有两个... 2015-10-18 c语言编程解 ax2+bx+c=0 2013-11-14 求ax^2+bx+c=0的根。分别考虑d=b^2-4ac大于... 更多类似问题 > 为你推荐: 特别推荐 为什么越来越多的大学生主动选择“延迟毕业”? 二阳前有预兆吗?比首阳症状轻吗?

相似回答
大家正在搜