AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第197题 (1.0分) 题号:554 从键盘上输入某字符串时,不可使用的函数是()。

A
 getchar()
B
 gets()
C
 scanf()
D
 fread()

答案解析

正确答案:A

解析:

这道题的正确答案实际上应该是 **D**,而不是题目中给出的 A。题目本身或者提供的答案可能存在错误。下面是对各个选项的详细解析,帮助你理解为什么 `fread()` 是不可用于从键盘直接输入字符串的标准函数,而 `getchar()` 是可以的(尽管它一次只读一个字符)。 ### 详细解析 题目问的是:**从键盘上输入某字符串时,不可使用的函数是?** 我们需要分析每个函数在 C 语言中的用途和特性: #### A. `getchar()` * **功能**:从标准输入(通常是键盘)读取**单个字符**。 * **是否可用于输入字符串**:**可以**。虽然它一次只读一个字符,但可以通过循环调用 `getchar()` 将字符逐个存入字符数组中,从而构成字符串。 * 例如: ```c char str[100]; int i = 0; char c; while ((c = getchar()) != '\n' && i < 99) { str[i++] = c; } str[i] = '\0'; ``` * **结论**:它是可以从键盘获取输入并组成字符串的,只是效率较低且需要手动处理。因此,说它“不可使用”是不准确的。 #### B. `gets()` * **功能**:从标准输入(键盘)读取一行字符串,直到遇到换行符或 EOF。 * **是否可用于输入字符串**:**可以**。这是专门用来读取字符串的函数(尽管因为缓冲区溢出风险,在现代 C 标准中已被废弃,推荐用 `fgets`,但在传统 C 语言考试中仍常作为正确选项出现)。 * **结论**:可以直接用于从键盘输入字符串。 #### C. `scanf()` * **功能**:格式化输入函数。 * **是否可用于输入字符串**:**可以**。使用 `%s` 格式说明符可以从键盘读取一个不含空格的字符串。 * 例如:`scanf("%s", str);` * **结论**:可以直接用于从键盘输入字符串。 #### D. `fread()` * **功能**:从**文件流**中读取数据块。它的原型是 `size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);`。 * **是否可用于输入字符串**:**理论上可以,但通常不用于“从键盘输入字符串”这种场景**。 * `fread` 是二进制读取函数,主要用于读取固定大小的数据块,常用于文件操作。 * 虽然可以将 `stdin` 作为流传入(`fread(buffer, 1, n, stdin)`),但它不是为交互式键盘输入设计的。它不会自动处理字符串结束符 `\0`,也不会像 `gets` 或 `scanf` 那样以换行符或空格为自然分隔。 * 在 C 语言的基础教学和考试语境中,`fread` 被归类为**文件操作函数**,而不是标准的**控制台/键盘字符串输入函数**。 * **结论**:在常规的“从键盘输入字符串”的语境下,`fread` 是不合适且不常用的,通常被视为“不可使用”或“非标准用法”。 --- ### 为什么题目答案可能是错的? * 如果答案是 **A**,那意味着出题人认为 `getchar()` 不能用来输入字符串。这显然是错误的,因为任何字符串输入底层都可以由字符输入组合而成。 * 如果答案是 **D**,这更符合 C 语言的教学逻辑:`getchar`、`gets`、`scanf` 都是 `` 中用于标准输入的经典函数,而 `fread` 是面向二进制流/文件的函数。 ### 正确答案建议 **正确答案应为:D. fread()** ### 总结 | 函数 | 主要用途 | 能否用于键盘输入字符串 | 备注 | |------|----------|------------------------|------| | `getchar()` | 读取单个字符 | ✅ 能(需循环) | 基础字符输入 | | `gets()` | 读取一行字符串 | ✅ 能 | 已废弃,但有此功能 | | `scanf()` | 格式化输入 | ✅ 能(用 `%s`) | 常用字符串输入 | | `fread()` | 二进制块读取 | ❌ 不适合 | 主要用于文件,非交互式字符串输入 | > **注意**:如果你是在做题库练习,且系统强制认定答案为 A,那可能是题库有误。但从技术角度讲,**D 是更合理的“不可使用”选项**。
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码