第56练 第11章 文件的字符串输入输出(fgets、fputs)《C语言程序设计》(电子工业出版社)一课一练

| 2份
| 8页
| 42人阅读
| 0人下载

内容正文:

编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《C语言程序设计》(电子工业出版社)一课一练的第11章的第56练,内容涵盖第11章文件的11.4 文件的字符串输入输出(fgets/fputs)。 《C语言程序设计》(电子工业出版社)一课一练 第56练 第11章 文件 11.4 文件的字符串输入输出(fgets/fputs) 1、 单项选择题(本题共4小题) 1、已知char str[15];,执行fgets(str, 10, fp);后,str 数组中最多能存储的有效字符个数是( ) A. 9 B. 10 C. 14 D. 15 【答案】A 【解析】fgets 函数的第二个参数 n 表示最多读取 n-1 个字符,剩余 1 个位置用于自动添加串结束符'\0',因此 10-1=9 个有效字符,其他选项不符合函数参数规则。 2、下列关于 fputs 函数的调用,合法的是( ) A. fputs ('Hello', fp); B. char s [] = "World"; fputs (s, fp); C. fputs (12345, fp); D. fputs ("Hi ", "test.txt"); 【答案】B 【解析】fputs 的第一个参数必须是字符串(字符串常量、字符数组名或字符串指针),第二个参数是文件指针。A 是字符常量非法,C 是整数非法,D 第二个参数是文件名而非文件指针,只有 B 符合语法规则。 3、fgets 函数在读取字符串时,不会提前终止读取操作的情况是( ) A. 遇到换行符 B. 遇到文件结束符 EOF C. 读取到 n-1 个字符 D. 遇到空格字符 【答案】D 【解析】fgets 的终止条件是读取到 n-1 个字符、遇到换行符或 EOF,空格是普通字符,不会触发终止,会被正常读取,因此 D 选项不会导致提前终止。 4、当 fgets 函数读取字符串失败或到达文件末尾时,其返回值是( ) A. 0 B. -1 C. NULL D. 字符数组的首地址 【答案】C 【解析】fgets 函数读取成功时返回存储字符串的字符数组首地址,若读取失败或已到文件末尾,返回空指针 NULL,程序可通过该返回值判断读取状态。 2、 判断题(本题共3题) 1、fgets 函数读取字符串后,会自动在字符数组的末尾添加串结束符'\0',保证存储的是合法的 C 语言字符串。( ) 【答案】√ 【解析】fgets 的设计逻辑是预留一个字符位置存储'\0',无论读取到终止条件还是完成 n-1 个字符读取,都会自动添加该结束符,确保字符数组符合 C 语言字符串格式。 2、fputs 函数向文件写入字符串时,会将字符串末尾的'\0'一并写入文件中。( ) 【答案】× 【解析】'\0'是 C 语言字符串在内存中的结束标识,并非字符串的有效内容,fputs 仅写入字符串的有效字符部分,不会将'\0'写入文件。 3、使用rewind(fp)函数后,文件内部的位置指针会被移动到文件的末尾位置。( ) 【答案】× 【解析】rewind 函数的作用是将文件内部位置指针移动到文件的起始位置,而非末尾;若要移动到末尾可使用 fseek 函数。 3、 填空题(本题共2题) 1、fgets 函数的返回值规则为:读取成功时返回____,读取失败或到达文件末尾时返回 NULL。 【答案】存储字符串的字符数组的首地址 【解析】fgets 返回字符数组首地址,方便程序直接使用读取后的字符串进行后续操作;同时通过返回 NULL 明确标识读取异常,让程序能快速判断读取状态。 2、使用 fputs 函数向文件写入多行字符串时,若需要换行,必须在字符串末尾手动添加____,否则所有字符串会连续存储在同一行。 【答案】换行符' ' 【解析】fputs 不会自动添加换行符,仅按传入的字符串内容写入文件;手动添加' '后,文件存储时会将后续内容换行显示,符合文本文件的换行格式要求。 4、 读程序写结果题(本题共1题) 1、阅读下面的 C 语言程序,写出程序运行后的输出结果。 【程序代码】 #include <stdio.h> int main() { FILE *fp = fopen("temp.txt", "w+"); fputs("C语言", fp); rewind(fp); char buf[20]; fgets(buf, 20, fp); printf("读取到的内容:%s ", buf); fclose(fp); return 0; } 【答案】 程序运行结果: 读取到的内容: C 语言 【解析】 程序以读写模式打开 temp.txt 文件,先用 fputs 将字符串 "C 语言" 写入文件,再通过 rewind 将文件位置指针移到文件开头,接着用 fgets 读取文件中的字符串到 buf 数组,最后输出读取到的内容。由于写入的字符串长度远小于 20,fgets 会完整读取全部内容并自动添加'\0',因此输出结果与写入的字符串一致。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《C语言程序设计》(电子工业出版社)一课一练的第11章的第56练,内容涵盖第11章文件的11.4 文件的字符串输入输出(fgets/fputs)。 《C语言程序设计》(电子工业出版社)一课一练 第56练 第11章 文件 11.4 文件的字符串输入输出(fgets/fputs) 1、 单项选择题(本题共4小题) 1、已知char str[15];,执行fgets(str, 10, fp);后,str 数组中最多能存储的有效字符个数是( ) A. 9 B. 10 C. 14 D. 15 【答案】A 【解析】fgets 函数的第二个参数 n 表示最多读取 n-1 个字符,剩余 1 个位置用于自动添加串结束符'\0',因此 10-1=9 个有效字符,其他选项不符合函数参数规则。 2、下列关于 fputs 函数的调用,合法的是( ) A. fputs ('Hello', fp); B. char s [] = "World"; fputs (s, fp); C. fputs (12345, fp); D. fputs ("Hi ", "test.txt"); 【答案】B 【解析】fputs 的第一个参数必须是字符串(字符串常量、字符数组名或字符串指针),第二个参数是文件指针。A 是字符常量非法,C 是整数非法,D 第二个参数是文件名而非文件指针,只有 B 符合语法规则。 3、fgets 函数在读取字符串时,不会提前终止读取操作的情况是( ) A. 遇到换行符 B. 遇到文件结束符 EOF C. 读取到 n-1 个字符 D. 遇到空格字符 【答案】D 【解析】fgets 的终止条件是读取到 n-1 个字符、遇到换行符或 EOF,空格是普通字符,不会触发终止,会被正常读取,因此 D 选项不会导致提前终止。 4、当 fgets 函数读取字符串失败或到达文件末尾时,其返回值是( ) A. 0 B. -1 C. NULL D. 字符数组的首地址 【答案】C 【解析】fgets 函数读取成功时返回存储字符串的字符数组首地址,若读取失败或已到文件末尾,返回空指针 NULL,程序可通过该返回值判断读取状态。 2、 判断题(本题共3题) 1、fgets 函数读取字符串后,会自动在字符数组的末尾添加串结束符'\0',保证存储的是合法的 C 语言字符串。( ) 【答案】√ 【解析】fgets 的设计逻辑是预留一个字符位置存储'\0',无论读取到终止条件还是完成 n-1 个字符读取,都会自动添加该结束符,确保字符数组符合 C 语言字符串格式。 2、fputs 函数向文件写入字符串时,会将字符串末尾的'\0'一并写入文件中。( ) 【答案】× 【解析】'\0'是 C 语言字符串在内存中的结束标识,并非字符串的有效内容,fputs 仅写入字符串的有效字符部分,不会将'\0'写入文件。 3、使用rewind(fp)函数后,文件内部的位置指针会被移动到文件的末尾位置。( ) 【答案】× 【解析】rewind 函数的作用是将文件内部位置指针移动到文件的起始位置,而非末尾;若要移动到末尾可使用 fseek 函数。 3、 填空题(本题共2题) 1、fgets 函数的返回值规则为:读取成功时返回____,读取失败或到达文件末尾时返回 NULL。 【答案】存储字符串的字符数组的首地址 【解析】fgets 返回字符数组首地址,方便程序直接使用读取后的字符串进行后续操作;同时通过返回 NULL 明确标识读取异常,让程序能快速判断读取状态。 2、使用 fputs 函数向文件写入多行字符串时,若需要换行,必须在字符串末尾手动添加____,否则所有字符串会连续存储在同一行。 【答案】换行符' ' 【解析】fputs 不会自动添加换行符,仅按传入的字符串内容写入文件;手动添加' '后,文件存储时会将后续内容换行显示,符合文本文件的换行格式要求。 4、 读程序写结果题(本题共1题) 1、阅读下面的 C 语言程序,写出程序运行后的输出结果。 【程序代码】 #include <stdio.h> int main() { FILE *fp = fopen("temp.txt", "w+"); fputs("C语言", fp); rewind(fp); char buf[20]; fgets(buf, 20, fp); printf("读取到的内容:%s ", buf); fclose(fp); return 0; } 【答案】 程序运行结果: 读取到的内容: C 语言 【解析】 程序以读写模式打开 temp.txt 文件,先用 fputs 将字符串 "中职 C 语言" 写入文件,再通过 rewind 将文件位置指针移到文件开头,接着用 fgets 读取文件中的字符串到 buf 数组,最后输出读取到的内容。由于写入的字符串长度远小于 20,fgets 会完整读取全部内容并自动添加'\0',因此输出结果与写入的字符串一致。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

第56练 第11章 文件的字符串输入输出(fgets、fputs)《C语言程序设计》(电子工业出版社)一课一练-第1页
1
第56练 第11章 文件的字符串输入输出(fgets、fputs)《C语言程序设计》(电子工业出版社)一课一练-第2页
2

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。