问题 单项选择题

以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#define N 10
void artin( int x[N])

int i=0;
while(i<N)
scanf("%d", );

在下划线处应填入的是( )。

A.x+i

B.&x[i+1]

C.x+(i++)

D.&x[++i]

答案

参考答案:C

解析: 根据scanf()的定义,应该在空白处填入一地址值,又因为要为数组中所有元素赋值,故空白处填入的表达式应使i每次增1,选项A和B不会使i增1,所以不正确。选项D在第一次执行时i先自增为1,所以输入的第一个数据被存到x[l]中,而第N次执行时会将数据输入到x[N],这个地址已经超过数组x的范围,属于越界行为,所以也不正确。故正确答案为C。

单项选择题
填空题