1.(1)读文件file1.txt的内容(例如):
12
34
56
输出到file2.txt:
56
34
12
(逆序)
答案:
注意可增长数组的应用.
#include
#include
fp1 = fopen("a.txt","r");
if(fp1 == NULL)
{
printf("error1");
exit(-1);
}
fp2 = fopen("b.txt","w");
if(fp2 == NULL)
{
printf("error2");
exit(-1);
}
int i = 0;
int j = 0;
while(fscanf(fp1,"%d",&a[i]) != EOF)
{
i++;
j++;
if(i >= MAX)
{
MAX = 2 * MAX;
b = (int*)realloc(a,MAX * sizeof(int));
if(b == NULL)
{
printf("error3");
exit(-1);
}
a = b;
}
}
3. 两个字符串,s,t;把t字符串插入到s字符串的第i个位置前,s字符串有足够的空间存放t字符串
int j,len;
int k=strlen(s)-1;
if(i<0||i>strlen(s))
return;
len=strlen(s)+strlen(t);
for(j=len-1;k>=i;k--,j--)
{
s[j]=s[k];
}
for(k=i;k
{
s[k]=t[k-i];
}
s[len]='
输出到file2.txt:
(逆序)
答案:
注意可增长数组的应用.
#include
#include
int main(void)
{
int MAX = 10;
int *a = (int *)malloc(MAX * sizeof(int));
int *b;
FILE *fp1;
FILE *fp2;
{
}
for(;--j >= 0;)
fprintf(fp2,"%d
",a[j]);
fclose(fp1);
fclose(fp2);
fclose(fp2);
free(a);
return 0;
}
}
2. 分析下面的代码:
char *a = "hello";
char *b = "hello";
if(a= =b)
printf("YES");
else
printf("NO");
"hello"是一个常量字符串。位于静态存储区,它在程序生命期内恒定不变。如果编译器优化的话,会有可能a和b同时指向同一个hello的。则地址相同。如果编译器没有优化,那么就是两个不同的地址,则不同
char *a = "hello";
char *b = "hello";
if(a= =b)
printf("YES");
else
printf("NO");
"hello"是一个常量字符串。位于静态存储区,它在程序生命期内恒定不变。如果编译器优化的话,会有可能a和b同时指向同一个hello的。则地址相同。如果编译器没有优化,那么就是两个不同的地址,则不同
3. 两个字符串,s,t;把t字符串插入到s字符串的第i个位置前,s字符串有足够的空间存放t字符串
答案:
void insert(char *s, const char *t, int i)
{
void insert(char *s, const char *t, int i)
{