网站建设找哪一家比较好,4.9.8wordpress,谷歌浏览器安卓下载,响应式网站设计与实现论文《C Primer Plus》第13章复习题与编程练习复习题1. 下面的程序有什么问题#xff1f;2. 下面的程序完成什么任务#xff1f;#xff08;假设在命令行环境中运行#xff09;3. 假设程序中有下列语句#xff1a;4. 编写一个程序#xff0c;不接受任何命令行参数或接受一个命…
《C Primer Plus》第13章复习题与编程练习复习题1. 下面的程序有什么问题2. 下面的程序完成什么任务假设在命令行环境中运行3. 假设程序中有下列语句4. 编写一个程序不接受任何命令行参数或接受一个命令行参数。如果有一个参数将其解释为文件名如果没有参数使用标准输入stdin作为输入。假设输入完全是浮点数。该程序要计算和报告输入数字的算术平均值。5. 编写一个程序接受两个命令行参数。第1个参数是字符第2个参数是文件名。要求该程序只打印文件中包含给定字符的那些行。复习题
1. 下面的程序有什么问题
int main(void)
{ int * fp; int k; fp fopen(gelatin); for (k 0; k 30; k) fputs(fp, Nanette eats gelatin.); fclose(gelatin);return 0;
}缺少头文件fopen()和fclose()函数错误。 修改后的代码如下
#include stdio.hint main(void)
{ FILE *fp; int k; fp fopen(gelatin, w); for (k 0; k 30; k) fputs(Nanette eats gelatin.\n, fp); fclose(fp);return 0;
}2. 下面的程序完成什么任务假设在命令行环境中运行
#include stdio.h
#include stdlib.h
#include ctype.h
int main(int argc, char *argv [])
{ int ch; FILE *fp; if (argc 2) exit(EXIT_FAILURE); if ((fp fopen(argv[1], r)) NULL) exit(EXIT_FAILURE); while ((ch getc(fp)) ! EOF) if (isdigit(ch)) putchar(ch); fclose(fp); return 0;
}如果有第二个参数尝试打开一个和该参数名同名的文件如果该文件可以打开在屏幕上输出一个其中的所有数字。 运行结果 3. 假设程序中有下列语句
#include stdio.h
FILE * fp1,* fp2;
char ch;fp1 fopen(terky, r);
fp2 fopen(jerky, w);另外假设成功打开了两个文件。补全下面函数调用中缺少的参数
a.ch getc(); b.fprintf( ,“%c\n”, ); c.putc( , ); d.fclose(); /* 关闭terky文件 */ a. fp1 b. fp2 ch c. ch fp2 d. fp1 4. 编写一个程序不接受任何命令行参数或接受一个命令行参数。如果有一个参数将其解释为文件名如果没有参数使用标准输入stdin作为输入。假设输入完全是浮点数。该程序要计算和报告输入数字的算术平均值。
代码
#include stdio.h
#include stdlib.h
#include string.h
#include time.hvoid makeFile()
{srand((unsigned long)time(0));FILE *fp;fp fopen(file.txt, w);//生成100个浮点数小数点前有3位小数点后有4位for (int j 0; j 100; j){for (int i 0; i 7; i){if (i 3){putc(., fp);}putc(rand() % 10 0, fp);}putc(\n, fp);}fclose(fp);
}int main(int argc, char **argv)
{makeFile();FILE *fp;double n, sum 0.0;int num 0;if (argc 1){fp stdin;}else if (argc 2){if ((fp fopen(argv[1], r)) NULL){fprintf(stderr, Open %s failed\n, argv[1]);exit(EXIT_FAILURE);}}else{fprintf(stderr, Usage:%s [filename]\n, argv[0]);exit(EXIT_FAILURE);}while (fscanf(fp, %lf, n) 1){num;sum n;}if (num){printf(%lf\n, sum / n);}else{puts(There is no number);}system(pause);return 0;
}运行结果
使用文件输入 使用键盘输入 5. 编写一个程序接受两个命令行参数。第1个参数是字符第2个参数是文件名。要求该程序只打印文件中包含给定字符的那些行。 注意 C程序根据’\n’识别文件中的行。假设所有行都不超过256个字符你可能会想到用fgets()。