单选题
1、第157题 (1.0分) 题号:717 fscanf函数的正确调用形式是()。
A
fscanf(fp,格式字符串,输出表列);
B
fscanf(格式字符串,输出表列,fp);
C
fscanf(格式字符串,文件指针,输出表列);
D
fscanf(文件指针,格式字符串,输入表列);
答案解析
正确答案:D
解析:
**解析:**
`fscanf` 是 C 语言标准库 `` 中用于从文件中读取格式化数据的函数。其功能与 `scanf` 类似,但 `scanf`是从标准输入(键盘)读取,而 `fscanf` 是从指定的文件流中读取。
**1. 函数原型:**
```c
int fscanf(FILE *stream, const char *format, ...);
```
**2. 参数详解:**
* **第一个参数 (`FILE *stream`)**:文件指针。指向要读取数据的文件流(例如通过 `fopen` 打开的文件)。
* **第二个参数 (`const char *format`)**:格式字符串。指定读取数据的格式(如 `%d`, `%s`, `%f` 等),这与 `scanf` 中的格式字符串用法一致。
* **后续参数 (`...`)**:输入表列(地址列表)。这是一系列变量的地址(指针),用于存储从文件中读取到的数据。因为需要修改这些变量的值,所以必须传递它们的地址(例如 `&var`)。
**3. 选项分析:**
* **A. `fscanf(fp,格式字符串,输出表列);`**
* 错误点:“输出表列”表述不当。`fscanf` 是输入函数,将数据读入内存变量,因此应称为“输入表列”或“地址列表”。虽然参数顺序对(指针, 格式, 地址),但术语“输出”通常对应 `fprintf` 或 `printf`,容易引起概念混淆。不过在某些语境下,如果仅仅看参数位置,A和D的结构相似,但D的术语更准确。让我们仔细看D。
* **B. `fscanf(格式字符串,输出表列,fp);`**
* 错误点:参数顺序完全错误。文件指针必须是第一个参数。
* **C. `fscanf(格式字符串,文件指针,输出表列);`**
* 错误点:参数顺序错误。文件指针应为第一个参数。
* **D. `fscanf(文件指针,格式字符串,输入表列);`**
* 正确点:
1. **文件指针**作为第一个参数,符合原型。
2. **格式字符串**作为第二个参数,符合原型。
3. **输入表列**(即变量地址列表)作为后续参数,符合原型。且使用“输入”一词准确描述了数据流向(从文件到内存)。
**结论:**
`fscanf` 的正确调用形式是:`fscanf(文件指针, 格式控制字符串, 输入项地址列表)`。因此,选项 D 的描述最为准确和规范。
**正确答案:D**
题目纠错
c语言选择判断题库
相关题目
单选题
1、第102题 (1.0分) 题号:544 char *s1=“hello”,*s2;s2=s1;则()。
单选题
1、第101题 (1.0分) 题号:160 C语言的if语句嵌套时,if与else的配对关系是()。
单选题
1、第100题 (1.0分) 题号:625 已知x=43,ch='A',y=0;则表达式( )的值是()。
单选题
1、第99题 (1.0分) 题号:692 以下叙述中正确的是()。
单选题
1、第98题 (1.0分) 题号:668 以下正确的说法是()。
单选题
1、第97题 (1.0分) 题号:643 以下能对一维数组a进行正确初始化的语句是()。
单选题
1、第96题 (1.0分) 题号:526 用户定义的函数不可以调用的函数是()。
单选题
1、第95题 (1.0分) 题号:532 结构体类型的定义允许嵌套是指()。
单选题
1、第94题 (1.0分) 题号:164 下列数组说明中,正确的是()。
单选题
1、第93题 (1.0分) 题号:597 下列四个选项中,均是C语言关键字的选项是()。
