13.10复习题
1.下面的程序有什么问题?
改正后的程序如下
#include <stdio.h>
int main(void)
{
FILE * fp;
int k;
fp = fopen("gelatin", "w"); //要提供一种模式,例如“w” "a"
for (k = 0; k < 30; k++)
fputs("Nanette eats gelatin. \n", fp); // 顺序反了
fclose(fp); // 关闭用fopen打开的指针
return 0;
}
2.下面的程序完成什么任务,假设在命令行环境中运行
答: 会打开和第一个参数相同的名字的文件,并且打印其中的数字。
3.补全下面函数调用中缺少的参数:
a. ch = getc(fp1);
b. fprint(fp2, “%c \n”, ch);
c.putc(ch, fp1);
d.fclose(fp1);
4.编写一个程序,不接受任何命令行参数或接受一个命令行参数。如果有一个参数,将其解释为文件名,如果没有参数,使用标准输入(stdin)作为输入。假设输入完全是浮点数。该程序要计算和报告输入数字的算术平均值。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[])
{
FILE * fp;
double n;
double sum = 0.0;
int ct = 0;
if (argc == 1)
fp = s