有定义语句:int b;char c[10];,则正确的输入语句是______。 A、scanf("%d%s",&b,&c); B、scanf("%d%s",&b,c); C、scanf("%d%s",b,c); D、scanf("%d%s",b,&c);
时间: 2023-07-18 20:20:24 浏览: 238
正确的输入语句应该是选项 B:`scanf("%d%s",&b,c);`。
在 `scanf()` 函数中,参数需要传入变量的地址,因此对于整型变量 `b`,使用 `&b` 传入其地址;而对于字符型数组 `c`,由于数组名已经代表了数组首元素的地址,因此只需要传入 `c` 即可。
选项 A 中,对于字符型数组 `c`,需要使用 `&c` 来传入其地址,但是 `&c` 的类型是 `char (*)[10]`,与 `%s` 格式要求的类型 `char *` 不匹配,因此该选项是错误的。
选项 C 中,缺少了对整型变量 `b` 的地址传递,因此也是错误的。
选项 D 中,虽然对整型变量 `b` 的传递正确,但对于字符型数组 `c` 使用了错误的传递方式,因此也是错误的。
相关问题
若有定义和语句: int a; char c; float f; scanf("%d,%c,%f",&a,&c,&f); 若通过键盘输入: 10,A,12.5 则a=10,c='A',f=12.5。 判断对错
这个判断是正确的。通过 `scanf` 函数可以实现从键盘输入多个不同类型的数据。 `%d` 用于读取整型数据,`%c` 用于读取字符型数据,`%f` 用于读取浮点型数据。在输入数据时需要按照指定格式进行输入,例如在输入 `10,A,12.5` 时需要按照 `"%d,%c,%f"` 的格式进行输入。因此,执行该代码后,变量 `a` 的值为 `10`,变量 `c` 的值为 `'A'`,变量 `f` 的值为 `12.5`。
在下列程序段中,为能正确将数据读入结构变量stu成员sno 中,则应补充语句 struct students /int sna;char sname[10]:}stu;scanf("%d"_
为了能够正确将数据读入结构体变量stu的成员sno中,应该在scanf函数中添加对应的格式控制符"%d",并且在变量名sno前加上取地址符"&",示例如下:
```c
struct students {
int sno;
char sname[10];
} stu;
scanf("%d", &stu.sno);
```
这样就能够从标准输入中读取一个整数,并将其存储到结构体变量stu的成员sno中。