c语言复习题.docx

上传人:b****4 文档编号:5006641 上传时间:2022-12-12 格式:DOCX 页数:14 大小:19.36KB
下载 相关 举报
c语言复习题.docx_第1页
第1页 / 共14页
c语言复习题.docx_第2页
第2页 / 共14页
c语言复习题.docx_第3页
第3页 / 共14页
c语言复习题.docx_第4页
第4页 / 共14页
c语言复习题.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

c语言复习题.docx

《c语言复习题.docx》由会员分享,可在线阅读,更多相关《c语言复习题.docx(14页珍藏版)》请在冰豆网上搜索。

c语言复习题.docx

c语言复习题

一、选择题:

  

(1)以下叙述中错误的是

   A)C语言中对二进制文件的访问速度比文本文件快

   B)C语言中,随机文件以二进制代码形式存储数据

   C)语句FILEfp;定义了一个名为fp的文件指针

   D)C语言中的文本文件以ASCII码形式存储数据

  

  

(2)有以下程序

  #include

  main()

  {FILE*fp;inti,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)00

   B)12345

   C)14

   D)12

  

  (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)12

   B)1230

   C)123

   D)00

  

  (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语言中,顺序读写方式不适用于二进制文件

 

[1][2][3][4]下一页

 

(11)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。

  #include

  main()

  {FILE*fout;charch;

  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)2030

   B)2050

   C)3050

   D)3020

  

  (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;inti;

  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][2][3][4]下一页

 

二、填空题:

  

(1)已有文本文件test.txt,其中的内容为:

Hello,everyone!

以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是【1】。

  #include

  main()

  {FILE*fr;charstr[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;longnum=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;lingf1;

  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;

  {charch;

  if((fp=fopen(【5】))==NULL)exit(0);

  while((ch=getchar())!

=’@’)fputc(ch,fp);

  fclose(fp);

  }

  

  (6)以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。

  #include

  main()

  {FILE*fp;

  charch,fname[32];intcount=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;

  charstr[100];inti=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);}

 

上一页[1][2][3][4]下一页

 

(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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1