【2】 ;
}
【1】 A. fp,ch B. ch,file_s C. ch,fp D. file_s,ch 【2】 A. exit(0) B. fclose(fp) C. exit(fp) D. fclose(0)
3. 编程题
(1) 函数 ff(str,ch)的功能是统计并返回字符ch在字符串str中出现的次数。例如:调用ff(\后返回2,因为在字符串\中字符'e'出现了2次。
从键盘输入一个字符ch,输出该字符在文本文件 input.txt 的每一行中出现的次数。 ( 必须调用函数 ff(str,ch) )。例如:如果文件input.txt中存放了下列数据:
every 121
I am a student.
运行程序,并输入'e'后,输出 2 0 1
(2)编写程序,从键盘输入3个学生的数据(学号,姓名,年龄,通信地址),将它们存入文件student;然后再从文件中读出数据,显示在屏幕上。
#include
char address[10]; } stu[SIZE], out; /*请填写完整*/
10.4 实验十 文件操作
一、实验目的与要求
1.掌握文件、文件指针的概念。
2.学会使用文件打开、关闭、读、写等文件操作函数。 3.实验2学时。
二、实验内容
1.程序完整题
填空横线处并调试程序:从键盘输入一行字符(以#字符结束),写到文件file1.txt中。注意文件打开方式的定义。
#include \#include \main() {FILE *fpout; char ch;
if( ==NULL) {printf(\ exit(0);}
while(( )!='#') {fputc(ch,fpout); }
}
2.程序调试题
设文件NUMBER.DAT中放了一组整数。请修改以下程序并调试程序:统计并输出文件中正整数,零和负整数的个数。假设NUMBER.DAT文件内容为“1 2 3 0 -2 0”,输出结果应为positive:3,negtive:1,zero:2。
#include\FILE *fp; main() { int p=0,n=0,z=0,temp;
fp=fopen(?number.dat?,?r?); /* error */ if(fp==NULL)
printf(\else
{ while(feof(fp)) /* error */
{ fscanf(fp,\ /* error */
if(temp>0) p++;
else if (temp<0) n++; else z++; } fclose(fp);
printf(\}
}
3.一般编程题
(1)以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。请将横线处添入适当的内容。
#include
FILE *fp1,*fp2;
fp1=fopen(\ /* 打开file2.c */
while (!feof(fp1)) putchar(fgetc(fp1)); /* 把文件file1.c的内容输出到屏幕 */ rewind(fp1); /* 把文件内部的位置指针移动文件首 */ /* 把文件file1.c的内容写入文件file2.c */ fclose(fp1); fclose(fp2); }
(2) 请编写程序:从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,然后输出到磁盘文件“upper.txt”中保存。
4.较难编程题
(1)请编写函数 sum_fact(number),返回number 的因子之和(能整除number的数就是它的因子,number定义为int)。例如sum_fact(6) = 12 (因为1, 2, 3, 6是6的因子)。
文本文件 input.txt 中存放了一批整数,将其中每个数的因子之和顺序写入文件 output.txt。 (必须调用函数 sum_fact(number)),例:若文件 input.txt 中存放了1, 2, 6 ,则每个数的因子之和分别是 1 3 12 ,它们被写入文件output.txt。
# include
int sum_fact(int number) {
/*请填写完整*/ }
void main() {
FILE *fpin, *fpout; int x;
if (( fpin = fopen(\ printf( \ exit(0); } /*请填写完整*/ }