电大C语言程序设计(原C语言程序设计A)学习周期04任务答案

一、作品题(共 1 道试题,共 100 分。)
1.
一、 目的:
会利用数据文件存储数据,并学会使用数据文件的程序分析和设计。
二、 内容和步骤:
1、打开第一次作业所建立的工作区,或另建一个新工作区;
2、在工作区下建立一个内容为空的、进行控制台应用的工程项目,假定项目名用“xkzy4”表示;
3、在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下;
#include
#include
void main(void)
{
int x;
FILE* f1; //定义一个文件指针
f1=fopen("data.txt","w"); //在程序所在项目内建立一个空文件
if (f1==NULL) { //当f1对应的文件没有建立和打开时则退出运行
printf("不能够打开文件!\n");
exit(1);
}
printf("从键盘向数据文件输入一批整数,直到输入0时结束!\n");
scanf("%d",&x); //从键盘读入一个整数
while(x!=0) { //对每个有效地整数进行处理
int i=0, d[6];
if(x<0) { //若为负数则向文件写入一个负号 fputc('-', f1); x=-x; } while(x/10!=0) { //用d数组保存整数中的每个数字位 d[i++]=x%10; x=x/10; } fputc(48+x, f1); //把整数的最高位数字写入文件中 while(--i>=0) //依次把整数的后续每位数字写入文件中
fputc(48+d[i], f1);
fputc(' ', f1); //每个整数后写入一个空格
scanf("%d",&x); //再从键盘读入一个整数
}
fclose(f1); //关闭f1所对应的data.txt文件
}
4、修改上述程序,使得从键盘输入到数据文件中的数据内容,每隔3个整数后增加一个换行;
提示:在int x语句后,增加一条定义变量的语句,用该变量记录从键盘上输入的整数个数;在fputc(' ', f1)语句后,增加一条条件语句,用来记数和控制输出换行符。
5、编译、连接和运行上述经修改后的程序,要求从键盘上输入至少10个整数。
三、 提交内容
经修改后的完整程序,以及程序运行时所建立的数据文件的内容。(请将内容保存到文本文件,并压缩成一个压缩包上传。)

参考答案:

评分标准<br/>本次任务占形成性考试成绩的25%。程序应添加的两条语句为: int j=0; //用来记录输入数据的个数 if(++j%3==0) fputc('\n', f1); //每3个整数后写入一个换行符在数据文件的内容中,整数之间有一个空格,每3个整数后有一个换行。请根据答题情况酌情给分。 参考程序(只供老师参考) #include<stdio.h> #include<stdlib.h> void main(void) { int x; int j=0; //用来记录输入数据的个数 FILE* f1; //定义一个文件指针 f1=fopen("data.txt","w"); //在程序所在项目内建立一个空文件 if (f1==NULL) { //当f1对应的文件没有建立和打开时则退出运行 printf("不能够打开文件!\n"); exit(1); } printf("从键盘向数据文件输入一批整数,直到输入0时结束!\n"); scanf("%d",&x); //从键盘读入一个整数 while(x!=0) { //对每个有效地整数进行处理 int i=0, d[6]; if(x<0) { //若为负数则向文件写入一个负号 fputc('-', f1); x=-x; } while(x/10!=0) { //用d数组保存整数中的每个数字位 d[i++]=x%10; x=x/10; } fputc(48+x, f1); //把整数的最高位数字写入文件中 while(--i>=0) //依次把整数的后续每位数字写入文件中 fputc(48+d[i], f1); fputc(' ', f1); //每个整数后写入一个空格 if(++j%3==0) fputc('\n', f1); //每3个整数后写入一个换行符 scanf("%d",&x); //再从键盘读入一个整数 } fclose(f1); //关闭f1所对应的data.txt文件 }