单选题
1、第263题 (1.0分) 题号:741 在C程序中,可把整型数以二进制形式存放到文件中的函数是()。
A
fprintf函数
B
fread函数
C
fwrite函数
D
fputc函数
答案解析
正确答案:A
解析:
这道题的官方答案 **A 是错误的**。
**正确答案应该是:C. fwrite函数**
以下是详细解析:
### 1. 题目核心考点
题目要求选出能将整型数以**二进制形式**(binary format)存放到文件中的函数。在 C 语言中,文件操作分为“文本模式”和“二进制模式”。
* **文本模式**:数据以 ASCII 码字符形式存储。例如,整数 `123` 会被存储为字符 `'1'`, `'2'`, `'3'` 三个字节。
* **二进制模式**:数据以内存中的原始字节序列存储。例如,整数 `123`(假设是 4 字节 int)会直接将其二进制补码形式存入文件,占用 4 个字节。
### 2. 选项分析
* **A. fprintf 函数**
* **功能**:格式化输出到文件。
* **特点**:它通常用于将数据转换为**文本格式**(ASCII)。例如 `fprintf(fp, "%d", 123);` 会将整数 123 转换成字符序列 "123" 写入文件。
* **结论**:它是典型的**文本 I/O** 函数,不符合“二进制形式存放”的要求。因此,原题给出的答案 A 是错误的。
* **B. fread 函数**
* **功能**:从文件中读取数据块。
* **特点**:这是**输入**(读取)函数,而题目问的是“存放”(写入)。
* **结论**:方向错误,排除。
* **C. fwrite 函数**
* **功能**:向文件中写入数据块。
* **原型**:`size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);`
* **特点**:它将内存中的数据原封不动地以**二进制字节流**的形式写入文件。例如 `fwrite(&num, sizeof(int), 1, fp);` 会将整型变量 `num` 在内存中的二进制表示直接写入文件。
* **结论**:这是标准的**二进制 I/O** 写入函数,符合题意。**这是正确答案。**
* **D. fputc 函数**
* **功能**:向文件写入一个字符。
* **特点**:虽然它也可以用于写入二进制数据的一个字节,但它一次只能处理一个 `char`(或 unsigned char)。对于“整型数”(通常占 2 或 4 字节),使用 `fputc` 需要多次调用并处理字节序,不是直接以整型为单位进行二进制存放的标准函数。相比之下,`fwrite` 是更直接、更标准的答案。
* **结论**:不如 C 选项准确。
### 3. 总结
* **文本方式读写**:`fprintf`, `fscanf`, `fputs`, `fgets`, `fputc`, `fgetc` 等。
* **二进制方式读写**:`fread`, `fwrite`。
因此,能够把整型数以**二进制形式**存放到文件中的函数是 **fwrite**。
**建议:** 如果这是考试题或练习题,请注意原题答案可能存在印刷错误或逻辑错误。正确的选择应为 **C**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第36题〗88) 两个指针变量不可以()。
单选题
1、〖第35题〗567) 以下叙述中正确的是 ()。
单选题
1、〖第34题〗454) 以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
单选题
1、〖第33题〗214) C语言中的文件的存储方式有()。
单选题
1、〖第32题〗603) 以下符合C语言语法的赋值表达式是()。
单选题
1、〖第31题〗601) 下面四个选项中,均是不合法的浮点数的选项是()。
单选题
1、〖第30题〗730) 若以”a+”方式打开一个已存在的文件,则以下叙述正确的是()。
单选题
1、〖第29题〗734) 以下可作为函数fopen中第一个参数的正确格式是()。
单选题
1、〖第28题〗400) 下列语句的输出结果是()。 printf(”%d\n”,(int)(2.5+3.0)/3);
单选题
1、〖第27题〗47) 执行下列语句后,a和b的值分别为()。 int a,b; a=1+'a'; b=2+7%-4-'A';
