C语言程序设计实验电子稿 下载本文

【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 #include #define SIZE 3 struct student /* 定义结构 */ { long num; char name[10]; int age;

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 void main() {

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 # include \

int sum_fact(int number) {

/*请填写完整*/ }

void main() {

FILE *fpin, *fpout; int x;

if (( fpin = fopen(\ printf( \ exit(0); } /*请填写完整*/ }