若有如下定义语句:
double a[5];
int i=0;
能正确给a数组元素输入数据的语句是( )。
A.scanf("%lf%lf%lf%lf",a); B.for(i=0;i<=5;i++) scanf("%lf",a+i);
C.while(i<5) scanf("%lf",&a[i++]); D.while(i<5) scanf("%lf", a+i);
A scanf("% lf%lf%lf%lf",a); 后续也要五个参数. 错误. Bfor(i=0;i<=5;i++)scanf("%lf", a+i); 循环为0到5, 共计六次, 越界. 错误. Cwhile(i<5)scanf("%lf",&a[i++]); i初始为0,每次自加, 到i=5退出. 于是i=0 1 2 3 4. 这个正确. D while(i<5) scanf("i<5" scanf(scanf("% lf",a+i)) i没有变化, 死循环, 错误. 所以选C
一眼妙选C
解析:选择式D中a+i,a代表首地...
用户登录可进行刷题及查看答案
解析:选择式D中a+i,a代表首地址, i代表偏移量,这里的偏移量随变量的数据类型的不同而不同,char i的偏移量为1,int i 的偏移量为2,float i的偏移量为4,double i的偏移量为8,所以在计算地址的时候除了要考虑首地址和第几个元素外,还要考虑所声明的变量类型,选择式B中共要循环6次,而double a[5]只声明了5个元素,所以出错。
答案:C
登录后提交答案