若有如下定义语句: double a[s]; int i=0; 能正确给a数组元素输入数据的语句是( )

admin2014-10-20  33

问题 若有如下定义语句:
double a[s];
int i=0;
能正确给a数组元素输入数据的语句是(    )

选项 A、scanf(“%If%If%If%If”,a);
B、for(i=0;i<=5;i++)scanf(“%If”,a+i);
C、while(i<5)scanf(“%If”,&a[i++]);
D、while(i<5)scanf(“%If”,a+i);

答案C

解析 选择式D中a+i,a代表首地址,i代表偏移量,这里的偏移量随变量的数据类型的不同而不同,ehar i的偏移量为1,int i的偏移量为2,float i的偏移量为4,double i的偏移量为8,所以在计算地址的时候除了要考虑首地址和第几个元素外,还要考虑所声明的变量类型,选择式B中共要循环6次,而double a[5]只声明了5个元素,所以出错。
转载请注明原文地址:https://kaotiyun.com/show/yuvR777K
0

最新回复(0)