问题 单项选择题

有以下语句: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);

答案

参考答案:B

解析: C语言的输入语句scanf实际上是其标准输入输出库(stdio.h)中的一个函数,而C语言的函数参数是传值的,要想将值从被调用函数中传回调用函数,必须以参数的地址作为实参。因此必须将b和c的地址传递给scanf。由于c是数组名,本身就是一个固定指针,不需要再取其地址,只需要取b的地址&.b。正确选项是B。

综合
单项选择题