计算机二级C语言教程章节测试.docx
- 文档编号:7764730
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:9
- 大小:19.55KB
计算机二级C语言教程章节测试.docx
《计算机二级C语言教程章节测试.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言教程章节测试.docx(9页珍藏版)》请在冰豆网上搜索。
计算机二级C语言教程章节测试
计算机二级C语言教程章节测试:
文件
一、选择题:
(1)以下叙述中错误的是
A)C语言中对二进制文件的访问速度比文本文件快
B)C语言中,随机文件以二进制代码形式存储数据
C)语句FILE fp;定义了一个名为fp的文件指针
D)C语言中的文本文件以ASCII码形式存储数据
(2)有以下程序
#include
main()
{FILE *fp; int i,k,n;
fp=fopen("data.dat","w+");
for(i=1;i<6;i++)
{ fprintf(fp,"%d ",i);
if(i%3==0) fprintf(fp,"\n");
}
rewind(fp);
fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n);
fclose(fp);
}
程序运行后的输出结果是
A)0 0
B)123 45
C)1 4
D)1 2
(3)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是
A)feof(fp)
B)ftell(fp)
C)fgetc(fp)
D)rewind(fp)
(4)有以下程序
#include "stdio.h"
voidWriteStr(char *fn,char *str)
{
FILE *fp;
fp=fopen(fn,"W");
fputs(str,fp);
fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是
A)start
B)end
C)startend
D)endrt
(5)有如下程序
#include
main()
{FILE *fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:
good,则运行以上程序后文件f1.txt中的内容为
A)goodabc
B)abcd
C)abc
D)abcgood
(6)有以下程序
#include
main()
{ FILE*fp; inti,k=0,n=0;
fp=fopen(“d1.dat”,”w”);
for(i=1;i<4;i++) fprintf(fp,”%d”,i);
fclose(fp);
fp=fopen(“d1.dat”,”r”);
fscanf(fp,”%d%d”,&k,&n); printf(“%d%d\n”,k,n);
fclose(fp);
}
执行后输出结果是
A)1 2
B)123 0
C)1 23
D) 0 0
(7)有以下程序(提示:
程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
#include
main()
{FILE*fp; inti,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat
","rb");
fseek(fp,-2L*sizeof(int).SEEK_END);
fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/
fclose(fp);
printf("%d\n",B);
}
执行后输出结果是
A)2
B)1
C)4
D)3
(8)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为
A)0
B)1
C)-1
D)一个非0值
(9)下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件
B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
(10)以下叙述中不正确的是
A)C语言中的文本文件以ASCⅡ码形式存储数据
B)C语言中对二进制文件的访问速度比文本文件快
C)C语言中,随机读写方式不适用于文本文件
D)C语言中,顺序读写方式不适用于二进制文件
(11)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include
main()
{ FILE *fout; char ch;
fout=fopen('abc.txt',’w');
ch=fgetc(stdin);
while(ch!
=’#’)
{ fputc(ch,fout);
ch=fgetc(stdin);
}
fclose(fout);
}
出错的原因是
A)函数fopen调用形式错误 B)输入文件没有关闭
C)函数fgetc调用形式错误 D)文件指针stdin没有定义
(12)有以下程序
#include
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen(“d1.dat”“w”);
fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”j);
fclose(fp);
fp=fopen(“d1.dat”,“r”);
fp=fscanf(fp,“%d%d”,&k,&n); printf(“%d%d\n”,k,n);
fclose(fp);
}
程序运行后的输出结果是
A)20 30
B)20 50
C)30 50
D)30 20
(13)以下叙述中错误的是
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
(14)若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A)fopen("A:
\user\abc.txt","r")
B)fopen("A:
\\user\\abc.txt","r+")
C)fopen("A:
\user\abc.txt","rb")
C)fopen("A:
\\user\\abc.txt","w")
(15)下面的程序执行后,文件testt.t中的内容是
#include
voidfun(char *fname.,char *st)
{ FILE *myf; int i;
myf=fopen(fname,“w”);
for(i=0;i fclose(myf); } main() {fun(“test”,“newworld”;fun(“test”,“hello,”0;) A)hello, B)newworldhello, C)newworld D)hello,rld (16)若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是 A)EOF B)-1 C)非零值 D)NULL (17)在C程序中,可把整型数以二进制形式存放到文件中的函数是 A)fprintf函数 B)fread函数 C)fwrite函数 D)fputc函数 (18)标准函数fgets(s,n,f)的功能是 A)从文件f中读取长度为n的字符串存入指针s所指的内存 B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C)从文件f中读取n个字符串存入指针s所指的内存 D)从文件f中读取长度为n-1的字符串存入指针s所指的内存 二、填空题: (1)已有文本文件test.txt,其中的内容为: Hello,everyone! 。 以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是【1】。 #include main() { FILE *fr; char str[40]; …… fgets(str,5,fr); printf("%s\n",str); fclose(fr); } (2)若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件: fp=fopen( [2] );。 (3)以下程序用来统计文件中字符个数。 请填空。 #include "stdio.h" main() {FILE *fp; long num=0L; if((fp=fopen("fname.dat","r"))==NULL) { pirntf("Openerror\n"); exit(0);} while(【3】) {fgetc(fp);num++;} printf("num=%1d\n",num-1); fclose(fp); } (4)以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE *myf; ling f1; myf=【4】(“test.t”,“rb”); fseek(myf,0,SEEK_END);f1=ftel(myf); fclose(myf); printf(“%d\n”,f1); (5)下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。 请填空。 #include “stdio.h” FILE *fp; { char ch; if((fp=fopen( 【5】 ))==NULL)exit(0); while((ch=getchar())! =’@’)fputc(ch,fp); fclose(fp); } (6)以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。 #include main( ) { FILE *fp; char ch,fname[32]; int count=0; printf("Inputthefilename: ");scanf("%s",fname); if((fp=fopen( 【6】 ,"w+"))==NULL) { printf("Can'topenfile: %s\n",fname);exit(0);} printf("Enterdata: \n"); while((ch=getchar())! ="#"){ fputc(ch,fp); count++;} fprintf( 【7】 ,"\n%d\n",count); fclose(fp); } (7)下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空. #include FILE *fp; main() { inti,j; if((fp=fopen(【8】, "wb"))==NULL) exit(0); for(i=0; i<10;i++) { scanf("%d",&j); fwrite(&j,sizeof(int),1,【9】 ); } fclose(fp); } (8)以下程序的功能是: 从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。 请填空。 #include main() {FILE *fp; char str[100]; int i=0; if((fp=fopen("text.txt",【10】))==NULL) {printf("can'topenthisfile.\n");exit(0);} printf("inputastring: \n"); gest(str); while(str[i]) {if(str[i]>='a'&&str[i]<='z') str[i]=【11】; fputc(str[i],fp); i++; } fclose(fp); fp=fopen("test.txt",【12】); fgets(str,100,fp); printf("%s\n",str); fclose(fp); } (9)下面程序把从终端读入的文本用@作为文本结束标志)复制到一个名为bi.dat的新文件中,请填空。 #include FILE*fp; main() {charch; if((fp=fopen(【13】))==NULL)exit(0); while((ch=getchar())! ='@')fputc(ch,fp);【14】 (10)以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志.请填空. #include main() {FILE*fp; charch,fname[10]; printf("lnputthenameoffile\n"); gets(fname); if((fp=【15】)==NULL) {printf("Cannotopen\n"); exit(0);} printf("Enterdata\n"); while((ch=getchar())! ='#') fputc(【16】,fp); fclose(fp); } (11)下面的程序用来统计文件中字符的个数,请填空。 #include main() {FILE*fp; longnum=0; if((fp=fopen("fname.dat","r"))==NULL) {printf("Can'topenfile! \n");exit(0);} while 【17】 {fgetc(fp);num++;} printf("num=%d\n",num); fclose(fp); } (12)以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。 #include main(intargc,char*argv) {FILE*f1,*f2; charch; if(argc<【18】) {printf("Parametersmissing! \n"); exit(0);} if(((f1=fopen(argv[1],"r"))==NULL)||((f2=fopen(argv[2],"w"))==NULL)) {printf("Cannotopenfile! \n");exit(0);} while(【19】)fputc(fgetc(f1),f2); fclose(f1); fclose(f2);} 答案: 一、选择题: 01) C 02) D 03) D 04) B 05) C 06) B 07) D 08) A 09) D 10) D 11) A 12) A 13) D 14) B 15) A 16) C 17) A 18) B 二、填空题: (1)Hell (2)“d1.dat”,”rb”或“d1.dat”,”r+b”或”d1.dat”,”rb+” (3)! feof(fp) (4)fopen (5)“bi.dat”,“w”或“bi.dat”,“wt”或“bi.dat”,“w+t” (6)fname (7)fp (8)"bi.dat" (9)fp (10)"w"或"w+"或"wt"或"w+t"或"""wt+" (11)str[i]-32或str[i]-('a'-'A'或str[i]-'a'+'A' (12)"r"或"r+"或"r+t"或"rt+" (13)"bi.dat","w" (14)fclose(fp) (15)fopen(fname,"w") (16)ch (17)(! feof(fp)) (18)3 (19)! feof(f1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 语言 教程 章节 测试