内容正文:
第八章文件(一)
第八章文件(一)
一、理论测试题(每小题12分,其中输出格式占2分,共60分)
1.下面的程序执行后,输出内容是?
#include <stdio.h
int main()
FILE fpw;
int i,a,b;
fpw=fopen("D:\\data.txt","w++");
for(i=9;i>=0;i--)
fprintf(fpw,"%d",i);
if(i%2==0)fprintf(fpw,"
");
rewind(fpw);
fscanf(fpw,"%d%d",&a,&b);
printf("%d %d
",a,b);
fclose(fpw);
}
2.有以下程序运行后的输出结果是?(d:test.txt原本无内容)
#include "stdio.h"
void WriteStr(char fn[],char str[])
FILE fp;
fp=fopen(fn,"a");
fputs(str,fp);
fclose(fp);
}
int main()
char str1[20];
FILE fpl;
WriteStr("d:\\test.txt","I");
WriteStr("d:\\test.txt","love");
WriteStr("d:\\test.txt","CHINA!");
fpl=fopen("d:\\test.txt","r");
·45·
单招零距离·计算机专业综合测试卷·下册
fgets(str1,20,fpl);
printf("%s",str1);
fclose(fpl);
}
3.以下程序是将D盘根目录下一个名为file1.txt的文本文件中字母大写的内容拷贝到
一个名为file2.txt的新文本文件中,请填空。
#include <stdio.h
int main()
FILE fpwl,fpw2;
int ch;
fpwl=fopent("d:\\filel.txt",①);
fpw2=fopen(②
ch=getc(fpwl);
while(c!=EOF)
{if(ch>=A'&&.ch<=Z')
fputc(③
);
ch=④
}
fclose(fpw1);
fclose(fpw2);
4.以下程序的执行结果是?(d:\exam3.txt原本无内容)
#include <stdio.h
int main()
FILE fpw,fpr;
char str1[80],str2[80];
int i;
fpw=fopen("d:\\exam3.txt","a");
for(i=0;i<26;i++)
str1[i]=65+i;
for(i=0;i<26;i++)
fputc(strli],fpw);
·46·
第八章文件(一)
fclose(fpw);
fpr=fopen("d:\\exam3.txt","r");
i=0;
while(!feof(fpr))
{
str2[i++]=fgetc(fpr)+32;
}
str2[i]=\0';
str2L6]=0;
printf("%s",str2);
fclose(fpr);
}
5.下面程序的功能是从C盘根目录下test1.txt中读出内容进行处理,把处理结果写进
C盘根目录下test2.txt文件中,请完成程序。
Testl.txt中内容为:
1011
1111
1001
1010
1100
Test2.txt中内容为:
B
F
9
A
C
#include <stdio.h>
#include <string.h>
int main()
FILE fpl,fp2;
char a[80];
int i,s=0,k;
fpl=fopen("c:\\testl.txt","r");
·47·
单招零距离·计算机专业综合测试卷·下册
fp2=fopen("①);
for(k=1;k<=5;k++)
(fscanf(fpl,"%s",②);
i=0:s=0:
while(a[i)
{s=s*2+a[i门一0';
③
}
if(s<10)
fprintf(fp2,"%cn",s十0);
else
④
}
fclose(fpl);
fclose(fp2);
}
二、技能测试题(第1题20分,第2、3题各30分,共80分)
1.程序填空题:下列程序实现从D盘根目录ilel.txt中读入的一个十六进制字符串整数
转换为一个十进制整数。例如,将字符串”A0A1"转换为41121再添加写入原文件中。请将
程序中未完成的部分补充完整,使程序运行正确。
#include <stdio.h
#include <stdlib.h
int htod(char st[」])
{
int i,num =0;
for(i =0;st[i];++i)
{
if(st[i]>=A'&&.st[i]<='F)
num 16 num st[i]A'+10;
else if(st[i]>='0&.&.st[i]<='9)
/米米米装米米*米第*米米米米米米PACE***兴米兴米关关米米关米米米
num=
(1);
}
return num;
·48·
第八章文件(一)
int main()
{
FILE fl;
char s[9];
/并并关¥关¥关并米¥并并关关米米SPACE米米并并关米弟0¥关米米兴0米/
if((f1=fopen((2)))==NULL)
(printf("open filel.txt error");
exit(O);
fscanf(f1,"%s",s);
printf("这个数的l0进制是:%u
",htod(s));
fprintf(f1,"这个数的10进制是:%u小n",htod(s);
fclose(fl);
return 0;
2.程序改错题:D盘目录下文件test1.txt中有一个字符串,要求判断其是否是回文,把判
断结果写入相同目录下test2.txt中,找出下列程序中的错误加以改正。#include<stdio.h>
#include <stdlib.h
#include "string.h"
define N 30
int test_st(char st[])
(int i,j;
j=0;
while(st[j])
j++;
j-一;
i=0;
while(i<j)
(if(st[i]!=st[j])
(return 0;
}
i++;
j--;
·49·
单招零距离·计算机专业综合测试卷·下册
}
return 1;
int main()
(char str[N];
/*米并兴兴¥¥关*并并关米并兴FOUND关关0并**兴兴并关米关关米米兴0/
FILE fp1,fp2;
int k;
if((fpl=fopen("d:\\testl.txt","w")==NULL))
(printf("open testl.txt error");
exit(0);
}
if((fp2=fopen("d:\\test2.txt","w"))==NULL)
(printf("open test2.txt error");
exit(0);
}
fgets(str,10,fpl);
/*关兴兴米米米举**米米米米米F○UND米米米米***兴米米米米****0/
if(!test_st(str))
(fputs("the word:"fp2);
fputs(str,fp2);
fputs("is回文",fp2);
}
else
(fputs("the word:"fp2);
fputs(str,fp2);
fputs("isn't'回文",fp2);
}
fclose(fpl);
fclose(fp2);
}
3.程序设计题:D盘根目录下有一个文件abcl.txt,其中有多个大小写混合的字母,请读
出后求出最多次数的那个字母。大小写看成是同一个字母。如'B’和b’是同一个字母,如果
·50·
第八章文件(一)
b出现次数最多,则输出文件中最多的字符是:b。请完成程序。
函数void file_read(char st[])完成从abcl.txt读入字母到st[]中;
函数char count char(char st[])求出st[]中出现次数最的那个字母。
#include "stdio.h"
include "stdlib.h"
#include "string.h"
#include "ctype.h"
define N 200
char count_char(char st[])
{
/**米米***米米米Pr0gram米米米米米******米*
/*米兴¥关米关米米米*米关¥End*¥关米¥米关弟关**关¥米/
}
void file_read(char st[])
{
/¥*米米米***米*米*米米Pr0grm*兴米米米*****米米**
/**米关关关米*关关***米Ed***米关*关*兴兴兴兴关米/
int main()
·51·
单招零距离·计算机专业综合测试卷·下册
(char str[N],ch;
file_read(str);
ch=count_char(str);
printf("文件中最多的字符是:%c",ch);
}
·52·m=m/10;
}
if(q∗q==n)b[num++]=sum;
}
else
i++;
}
returnnum;
}
第七章 函 数(B)
一、理论测试题
1.(1)符号
(2)调用
(3)实际
(4)print(s)
2.i=2 j=2
i=2 j=0
1 3 5 7 9
3.k=25,k=49,k=60
4.1 6 120 s=135
5.(1)rq[2]>md[rq[1]-1]
(2)b[k--]=x%2+'0'
(3)strcpy(b,"error")
(4)split(a[i],b[i])
二、技能考试题
1.(1)l<=h或x==a[m]
(2)sizeof(a)/sizeof(int)
(3)a[i]>a[j]
(4)p=search(a,n,x)
2.(1)len=strlen(s);
(2)c[k]=t%2+48;或c[k]=t%2+'0';
(3)if(flag)或if(flag==1)或if(flag! =0)或if
(t>1)或if(t>=2)
3.intGenStr(chars[],inta[])
{ inti,x,y,t,max,jz,p;
for(i=0;i<strlen(s)-1;i++)
{ y=x=s[i]+s[i+1];
max=-1;
while(x)
{ if(x%10>max) max=x%10;
x/=10;
}
jz=max+1;p=1;t=0;
while(y)
{ t=t+y%10∗p;
y=y/10;
p=p∗jz;
}
a[i]=t;
}
returni;
}
intishz(intm,intn)
{ intt;
while(t=m%n)
{ m=n;n=t;
}
returnn==1;
}
intCalculate(inta[],intn,intb[][2])
{ inti,j,k=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(ishz(a[i],a[j]))
{ b[k][0]=a[i];
b[k][1]=a[j];
k++;
}
returnk;
}
第八章 文件一
一、理论测试题
1.98 76
2.IloveCHINA
3.(1)r (2)"d:\\file2.txt","w"
(3)ch,fpw2 (4)fgetc(fpw1)
4.abcdef
5.(1)c:\\test2.txt","w" (2)a (3)i++
(4)fprintf(fp2,"%c
",s+'A'-10)
二、技能测试题
1.(1)16∗num+st[i]-'0'
(2)"d:\\file1.txt","a+"
2.(1)FILE ∗fp1,∗fp2;
(2)if((fp1=fopen("d:\\test1.txt","r"))==
NULL)
(3)if(test_st(str))
5
总复习方案参考答案
3.程序设计题:
intnum[26]={0};
inti,maxi;
i=0;
while(st[i])
{num[tolower(st[i])-'a']++;
i++;
}
maxi=0;
for(i=0;i<26;i++)
if(num[i]>num[maxi])maxi=i;
returnmaxi+'a';
charstr[N],ch;
inti;
FILE ∗fpr;
if((fpr=fopen("d:\\abc1.txt","r"))= =
NULL)
{printf("openabc1.txterror");
exit(0);
}
ch=fgetc(fpr);
while(ch! =EOF)
{str[i++]=ch;
ch=fgetc(fpr);
}
str[i]=0;
fclose(fpr);
第八章 文件二
一、理论测试题
1.IloveBeijing.
Beijingwelcomeyou!
Hey!
2.10111213141516171819
3.排序之后的数据为:5645342321
4.aabbaa
5.①fopen("d:\\exam.dat","rb")
②fp,sizeof(int),1
③max=a[0]
④y
二、技能测试题
1.(1)j=i-1,x=a[i] (2)ff,"%d,",a[i]
2.(1)for(j=0;j<k;j++)
(2)fgets(st,N,fpr)
(3)if((fpw=fopen(fn,"a"))==NULL)
3.inti,j,n,num;
n=0;
for(i=0;i<3;i++)
{num=0;
for(j=0;st[i][j]! ='
'&&st[i][j]! =0;j
++)
num=num∗8+st[i][j]-'0';
if(num>=10)
{
result[n++]=num/10+'0';
result[n++]=num%10+'0';
}
else
{result[n++]='0';
result[n++]=num+'0';
}
}
result[n]=0;
inti;
FILE ∗fpr;
if((fpr=fopen(filename,"r"))==NULL)
{printf("open%serror",filename);
exit(0);
}
for(i=0;i<3;i++)
{fgets(str[i],N,fpr);
printf("%s",str[i]);
}
fclose(fpr);
6
单招零距离计算机专业综合测试卷下册