( 难度:中等)var emp = new Array(3); for(var i in emp) 以下答案中能与for循环代码互换的是:A.for(var i =0; i<emp; i++)B.for(var i =0; i<Array(3); i++)C.for(var i =0; i<emp.length(); i++)D.for(var i =0; i<emp.length; i++)

题目
( 难度:中等)var emp = new Array(3); for(var i in emp) 以下答案中能与for循环代码互换的是:
A.for(var i =0; i<emp; i++)
B.for(var i =0; i<Array(3); i++)
C.for(var i =0; i<emp.length(); i++)
D.for(var i =0; i<emp.length; i++)
参考答案和解析
答案:D
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有定义语句:

int x[-6]={2,4,6,8,5,7),*p=X,i;

要求依次输出X数组6个元素中的值,不能完成此操作的语句是( )。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(pq-i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",*(p)++);


正确答案:D
本题要求输出每个元素的值,D选项中(*p)++等价于*p=*p+1,其仅仅是对*p加1,并没有达到输出其每个值的作用。

第2题:

设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是 ______。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);


正确答案:D
解析:选项D中(*p)++的意思是将p所指向的存储单元的值加1,与题意不符,错误。

第3题:

没有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A.for(i=0;i<6;i++) printf("%2d",*(p++));

B.for(i=0;i<6;i++) printf("%2d",*(p+i);

C.for(i=0;i<6;i++) printf("%2d",*p++);

D.for(i=0;i<6;i++) printf("%2d",(*p)++);


正确答案:D
解析:本题首先定义了一个一维数组并初始化,接着定义了一个指针变量 p指向数组x。因此可以通过指针p的下移,即每次加1引用数组x中的元素,来指向数组中的每个元素,这样循环6次即可引用数组的每个元素。选项A、B和选项C满足要求,而在选项D中表达式为(*p)++,该表达式是先取*p的值然后将其值加1,而没有将指针下移一位。

第4题:

设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(p+i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",(*p)++);


正确答案:D
解析:本题涉及指针运算,通过数据的指针取出其对应的值,语法为。  (p+n),其中n为数组元素的索引。

第5题:

下列循环语句中有语法错误的是

A.int i;for(i=1;i<10;i++) cout<<‘*’;

B.int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘*’;

C.int i=0;for(;i<10;i++)cout<<‘*’;

D.for(1) cout<<‘*’;


正确答案:D
解析:D项语法错误。for语句语法格式为:
  for(<表达式1>;<表达式2>;<表达式3>)
  <语句>
  D选项for语句中漏掉了两个分号。

第6题:

以下程序的输出结果是______。 main() { int i,k,a[10],p[3] k=5; for(i=0;i<10;i++)a[i]=i for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); }

A.20

B.21

C.22

D.23


正确答案:B
解析:按照程序的流程走一遍,可以得到p[0]=0,p[1]=2,p[3]=6:执行三次k+=p[i]*2,相当于k=5+0*2+2*2+6*2=21。

第7题:

以下不会造成死循环的C语句是(49)。

A.while(x=8)x--;

B.for(i=10;sum=0;sum<=i;)sum=--i;

C.for(y=0,x=1;x>++y;x=i++)i=x;

D.for(x=10;;x+=i);


正确答案:C
解析:赋值表达式x=8永远成立,因此选项A的循环语句“while(x=8)x--;”将构成死循环。选项B是错误的表达形式,因为for()的第3个表达式不能包含“:”。选项C的“for(y=0,x=1;x>++y;x=i++)i=x;”是正确的for循环语句。选项D的for()中缺少第2个表达式,即缺少循环终止条件,必定构成死循环。

第8题:

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

实现矩阵(3行3列)的转置(即行列互换)。

例如,输入下面的矩阵:

100 200 300

400 500 600

700 800 900

程序输出:

100 400 700

200 500 800

300 600 900

【函数】

int fun(int array[3][3])

{

int i,j,t;

for(i=0;(1);i++)

for(j=0;(2);j++)

{

t=array[i][j];

(3);

(4);

}

}

}

main()

{

int i,j;

int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};

clrscr();

for (i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

fun((5));

printf("Converted array:\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

}


正确答案:(1)i3 (2)ji (3)array[i][j]=array[j][i] (4)array[j][i]=t (5)array
(1)i3 (2)ji (3)array[i][j]=array[j][i] (4)array[j][i]=t (5)array 解析:本题考查用C语言实现矩阵的转置。
题目要求程序实现矩阵(3行3列)的转置,其关键是将当前行列对应的元素与其对应的列行元素互换。题目中给出了具体的矩阵元素和结构,下面来具体分析程序。
第(1)空很明显是循环语句的判断条件,是上界条件,这个二重循环的作用是进行数组中元素的互换,而从题目中给出的已知条件可以判断出,这个数组是一个三维的数组,而在程序中下标是从0开始的,那么其上界应该是不大于3,因此这个空的答案分别是i3。
第(2)空也是循环的判断上界,在上面我们已经分析出了这个二重循环的作用是进行数组中元素的互换,而元素互换的过程是将当前行列对应的元素与其对应的列行元素互换,元素的下标都要在能互换的下标范围内,那么第二重循环的上界应该是第一重循环变量的当前值,因此此空答案为ji。
第(3)空在这个二重循环体中,从程序中不难发现,用一个临时变量f来存放要置换的值,接下来就是此空,那么应该是将其中一个值放到其转置后的位置,再结合上面分析,可以得出此空答案为array[i][j]=array[j][i]。
第(4)空是紧接着上一空而来的,在上面的程序中已经将当前位置中的值保存到了临时变量t中,且把其对应的转置位置的元素值放到了这个位置,那么接下来应该是将临时变量中的值放到转置位置,因此此空答案为array[j][i]=t。
第(5)空很明显是函数的参数,这个函数就是功能函数fun(),用来实现矩阵的转置,根据程序中函数的定义,它只有一个参数,这个参数是要被处理的数组。在主函数中,需要被处理的数组是array,这里我们需要注意在数组作为函数的形参时,一般是通过传递其地址来实现参数传递的,因此此空答案为array。

第9题:

与“for(i=0;i<10;i++)putchar('a'+i);”功能不同的语句是______。

A.for(i=0;i<10;)putchar('a'+(++i));

B.for(i=0;i<10;)putchar('a'+(i++));

C.for(i=0;i<10;putchar('a'+i),i++);

D.for(i=0;i<=9;i++)putchar('a'+i);


正确答案:A

第10题:

以下for语句中不是死循环的是A.for(int i=0;i<1;++);B.for(int i=0∷++);C.for(int i=1;i>0;++i);

以下for语句中不是死循环的是

A.for(int i=0;i<1;++);

B.for(int i=0∷++);

C.for(int i=1;i>0;++i);

D.for( ;;);


正确答案:A
解析:for循环的一般格式为for(初始化部分;终止条件判断部分;迭代部分){循环体;}说明如下:for循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。注意:在for语句中,如果省略了终止条件判断部分,开且在语句中没有break,或者是终止条件判断部分始终没有终止,都将出现死循环。注意:for循环语句可由while循环语句来代替。

更多相关问题