C语言习题答案-9.doc_第1页
C语言习题答案-9.doc_第2页
C语言习题答案-9.doc_第3页
C语言习题答案-9.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【习题9】一、选择题1已知函数fwrite的一般调用形式是fwrite(buffer,size,count,fp)其中buffer代表的是 B 。A一个指向要输出文件的文件指针B存放输出数据项的存储区C要输出数据项的总数D存放要输出的数据的地址或指向此地址的指针2若调用fputc( )的函数输出字符成功,则其返回值是 D 。AEOFB1C0D输出的字符3标准函数 fgets(s, n, f) 的功能是 D 。 A从文件f中读取长度为n的字符串存入指针s所指的内存B从文件f中读取长度不超过n1的字符串存入指针s所指的内存C从文件f中读取n个字符串存入指针s所指的内存D从文件f中读取长度为n1的字符串存入指针s所指的内存4若fp是指向某文件的指针,且已读到该文件的末尾,则C语言库函数feof(fp)的返回值是 A 。 AEOF B1 C非零值 DNULL5有以下程序:#include void main()FILE *fp; int i=20,j=30,k,n;fp=fopen(d1.dat, w);fprintf(fp, %dn,i);fprintf(fp, %dn,j);fclose(fp);fp=fopen(d1.dat, r);fp=fscanf(fp, %d%d,&k,&n); printf(%d %dn,k,n);fclose(fp);程序运行后的输出结果是 A 。A20 30 B20 50 C30 50 D30 20二、编程题1从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“text”中保存。输入的字符串以“!”结束。#include #include #include void main()FILE *fp;char str100;int i=0;if(fp=fopen(test,w)=NULL) printf(Can not open the filen); exit(0); printf(Input a string:n);gets(str);while (stri!=!)if (stri=a&stri=z) stri=stri-32; fputc(stri,fp);i+;fclose(fp);fp=fopen(test,r);fgets(str,strlen(str)+1,fp);printf(%sn,str);fclose(fp);2有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。分析:将程序分成3部分,输入、写文件、从文件输出。 本题可采用结构体变量存放学生数据,对文件读写数据可分别采用fread()和fwrite()函数。#include struct student /*定义结构体变量*/ char num10; char name8; int score3; float ave; stu5;void main() /*主程序*/int i,j,sum;FILE *fp;for (i=0;i5;i+) /*输入*/ /*输入学生的姓名、学号*/printf(n Input score of student%d:n,i+1);printf(NO.:); scanf(%s,stui.num);printf(name:);scanf(%s,);sum=0;for(j=0;j3;j+) /*输入第j门成绩*/printf(score %d:,j+1);scanf(%d,&stui.scorej);sum+=stui.scorej; stui.ave=sum/3.0; /*求平均分*/*将数据写入文件stud*/ fp=fopen(stud,w);for (i=0;i5;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(File write errorn);fclose(fp);/*检查文件内容,从文件中读数据并显示在屏幕上*/fp=fopen(stud,r);for(i=0;i5;i+) fread(&stui,sizeof(struct student),1,fp); printf(%s,%s,%d,%d,%d,%6.2fn,stui.num,,stui.score0,stui.score1,stui.score2,stui.ave); fclose(fp);3将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu_sort”中。分析:本题分3个步骤解决:1)从源文件读数据到结构体变量并输出到屏幕。2)数据排序3)将排好序的数据写入文件并输出到屏幕。#include #define N 10 struct student char num10; char name8; int score3; float ave; stN,temp; /*st、temp均为结构体变量*/void main()FILE *fp;int i,j,n;/*从源文件stud中读数据到结构体变量,并输出到屏幕*/if(fp=fopen(stud,r)=NULL)printf(Can not open the file.);exit(0);printf(nfilestud:);for (i=0;fread(&sti,sizeof(struct student),1,fp)!=0;i+)printf(n%8s%8s,sti.num,);for(j=0;j3;j+)printf(%8d,sti.scorej);printf(%10.2f,sti.ave);fclose(fp);n=i; /*n值为总学生个数*/for(i=0;in;i+) /*按降序排序*/for(j=i+1;jn;j+)if(sti.avestj.ave)temp=sti;sti=stj;stj=temp; printf(nnow:); /*将排好序的数据写入文件stu_sort,并输出到屏幕*/fp=fopen(stu_sort,w);for(i=0;in;i+)fwrite(&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论