2. 有两个字符数组a、b,则以下正确的输入语句是 。 A、gets(a,b); B、scanf(“%s%s”,a,b); C、scanf(“%s%s”,&a,&b); D、gets(“a”),gets(“b”);
时间: 2024-03-31 14:37:54 浏览: 280
正确的输入语句是 B、scanf("%s%s",a,b)。
A、gets(a,b)是错误的,因为gets()只接受一个参数,即输入的字符串。
C、scanf("%s%s",&a,&b)是错误的,因为a和b已经是字符数组了,不需要再使用&符号。
D、gets("a"),gets("b")是错误的,因为gets()函数的参数必须是一个字符数组,而不是一个字符串常量。
相关问题
有两个字符数组a,b,则以下正确的输入语句是() A. gets(a,b); B. scanf("%s%s",a,b); C. scanf("%s%s",&a,&b); D. gets("a"),gets("b");
正确的输入语句是B. scanf("%s%s",a,b);。在C语言中,使用scanf函数可以输入字符数组,%s表示输入字符串,而a和b分别表示两个字符数组的地址,因此可以使用scanf("%s%s",a,b)来输入两个字符数组a和b。而gets函数只能输入一个字符数组,因此选项A和D都是错误的。选项C中使用了&a和&b,这是错误的,因为&a和&b分别表示a和b数组的地址,而不是数组本身。
有两个字符数组a,b,则以下正确的输入语句是() A. gets(a,b); B. scanf("%s%s",a,b); C. scanf("%s%s",&a,&b); D. gets("a"),gets("b");
正确答案是 B. scanf("%s%s",a,b);。
- `gets` 函数在 C 语言中已经被标记为不安全,因为它可能会导致缓冲区溢出,尤其是在没有指定字符串长度的情况下。因此选项 A 和 D 都不推荐使用。
- `scanf` 函数用于从标准输入读取格式化的数据,`%s` 用于读取字符串,当用两个 `%s` 分别对应两个字符数组 a 和 b 时,应该分别跟在数组名后,选项 C 中的地址符 `&` 是多余的,因为数组名本身就是一个指向数组首元素的指针。
所以,选项 B 是正确的输入语句,它能正确地读取两个字符串并分别存储在 a 和 b 数组中。
阅读全文