Java认证考试

Given the following code:     1) public void modify() {     2) int i, j, k;     3) i = 100;     4) while ( i > 0 ) {     5) j = i * 2;  6) System.out.println (" The value of j is " + j );     7) k = k + 1;     8) i--;     9) }  10) }  Which line might ca

题目

Given the following code:     1) public void modify() {     2) int i, j, k;     3) i = 100;     4) while ( i > 0 ) {     5) j = i * 2;  6) System.out.println (" The value of j is " + j );     7) k = k + 1;     8) i--;     9) }  10) }  Which line might cause an error during compilation?()   

  • A、 line 4
  • B、 line 6
  • C、 line 7
  • D、 line 8
参考答案和解析
正确答案:C
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有以下程序

main()

{int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;

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

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

for(i=0;i<4;i++)printf(“%d,”,a[i][j]);

}

程序运行后的输出结果是( )。

A.1,6,5,7,

B.8,7,3,1,

C.4,7,5,2,

D.1,6,2,1,


正确答案:A

第2题:

有以下程序 main() { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t; for(i=0;<4:i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i]{t=a[j][i];a[j][i]=a[k][i]=a[k][i]=t;}/*按列排序*/ for(i=0;i<4;i++)printf("%d,",a[i][i]); } 程序运行后的输出结果是

A.1,6,5,7,

B.8,7,3,1,

C.4,7,5,2,

D.1,6,2,1,


正确答案:A
解析:本题利用多重for循环的嵌套来实现对二维数组元素的按列排序。利用最外层循环来实现对列的控制。内部循环利用选择法对数组元素按照从小到大的顺序进行排列。最后输出对角线上的元素值。故本题答案为A)。

第3题:

有以下程序

main( )

{ int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;

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

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/* 按列排序 */

for(i=0;i<4;i++)printf("%d,",a[i][ i ]);

}

程序运行后的输出结果是

A)1,6,5,7,

B)8,7,3,1,

C)4,7,5,2,

D)1,6,2,1,


正确答案:A

第4题:

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

【说明】

将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。

在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

例:序列{6,8,9,1,2,5,4,7,3}

经重排后成为{3,4,5,2,1,6,8,9,7}

【函数】

include < stdio. h >

include < conio. h >

void jsValue( int a [10] [9] )

{ int i,j,k,n,temp;

int b[9];

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

{ temp=a[i] [0];

k=8;n=0;

for(j=8;j=0;j--)

{ if(temp < a[i] [j]) (1)=a[i][j];

if(temp >a[i] [j]) (2)=a[i][j];

if(temp =a[i] [j]) (3)= temp;

}

for(j=0;j<9;j++) a[i][j] =b[j];

}

}

void main( )

int a[10] [9] = {{6,8,9,1,2,5,4,7,3},{3,5,8,9,1,2,6,4,7},

{8,2,1,9,3,5,4,6,7}, {3,5,1,2,9,8,6,7,4},

{4,7,8,9,1,2,5,3,6}, {4,7,3,5,1,2,6,8,9},

{9,1,3,5,8,6,2,4,7}, {2,6,1,9,8,3,5,7,4},

{5,3,7,9,1,8,2,6,4}, {7,1,3,2,5,8,9,4,6}

};

int i,j;

(4);

for(i=0;i<10;i++) {

for(j=0;j<9;j++) {

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

if((5))printf(",");

}

printf(" \n" );

}

getch( );

}


正确答案:(1)b[k--] (2)b[n++] (3)b[n] (4)jsValue(a) (5)j=7
(1)b[k--] (2)b[n++] (3)b[n] (4)jsValue(a) (5)j=7 解析:在主函数中先要调用函数jsValue()对数组a进行处理,所以(4)空应填入“jsValue(a)”。然后输出数组元素,同一行的元素之间用逗号分隔,所以(5)空应填入“j=7”。
函数jsValue()是将数组按题目要求进行排序。通过观察发现处理后的数组中元素的顺序与原来的顺序相反,并且每一行中没有与第一个数相同的数,所以是从后往前处理,也就是将每组从最后往前倒序逐个问第一个数比较,比它大的就放到临时数组b中的最后,比它小的就放到临时数组b中的最前面,以次类推,所以(1)空应填入“b[k- -]”,(2)空应填入“b[n++],(3)空应填入“b[n]”。最后将b数组赋给a数组。

第5题:

有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;j--)if (

有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;j--) if (x[j+1)>x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;} for (i=0;i<3;i++) for (j=4;j<7-i;j++) if (x[j]>x[j+1]){k=x [j];x[j]=x[j+1];x[j+1)=k;} for(i=0;i<8;i++)printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是 ______。

A.75310246

B.1234567

C.76310462

D.13570246


正确答案:A
解析:本题中第一次执行for循环后,数组x中的前四个元素按由大到小的次序排序,即x[0]=7、x[1]=5、x[2]=3、 x[3]=1、x[4]=2、x[5]=4、x[6]=6、x[7]=0;第二次执行for循环后,数组x中的后4个元素按由小到大的次序排序,即此时x[0]=7、x[1]=5、x[2]=3、x[3]=1、x[4]=0、x[5]=2、x[6]=4、x[7]=6。故正确答案为A。

第6题:

有以下程序inclUdevoidfun(int*s,intn1,intn2){inti,j,t;i=n1;j=n2;while(i

有以下程序 #inclUde <stdio.h> void fun(int *s,int n1,int n2) { int i,j,t; i=n1; j=n2; while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;} } main() { int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4

A.0987654321

B.4321098765

C.5678901234

D.0987651234


正确答案:C
解析: 函数fun(int*s,int n1,int n2)的功能是对数组s中的元素进行首尾互相调换。所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。

第7题:

下面程序的输出结果是( )。 public class Sun { public static void main(String args[ ]) { int x=0; for(int i=1;i<=4;i++) { x=4; for(int j=1;j<=3;j++) { x=3; for(int k=1;k<=2;k++) { x-x+6; } } } System.out.println(x); } }

A.7

B.15

C.157

D.538


正确答案:B
解析:本题考查对for循环嵌套的理解。此题中应用3重for嵌套循环,要注意每次执行完变量k的最内层循环后,得到的x值为15,无论x赋值为3或4,执行到最内层循环都被新值覆盖。因而,j分别等于1,2, 3执行结束时,x的返回值是15;i分别等于 1,2,3,4执行结束时,x返回值依然是15。故本题答案是B。

第8题:

●试题四

阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。

在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

例:序列 {6,8,9,1,2,5,4,7,3}

经重排后成为{3,4,5,2,1,6,8,9,7}

【函数】

#include<stdio.h>

#include<conio.h>

void jsValue(int a[10][9])

{int i,j,k,n,temp;

int b[9];

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

{temp=a[i][0];

k=8;n=0;

for(j=8;j=0;j--)

{if(temp<a[i][j]) (1) =a[i][j];

if(temp>a[i][j]) (2) =a[i][j];

if(temp=a[i][j]) (3) =temp;

}

for(j=0;j<9;j++)a[i][j]=b[j];

}

}

void main()

{

int a[10][9]={{6,8,9,1,2,5,4,7,3},{3,5,8,9,1,2,6,4,7},

{8,2,1,9,3,5,4,6,7},{3,5,1,2,9,8,6,7,4},

{4,7,8,9,1,2,5,3,6},{4,7,3,5,1,2,6,8,9},

{9,1,3,5,8,6,2,4,7},{2,6,1,9,8,3,5,7,4},

{5,3,7,9,1,8,2,6,4},{7,1,3,2,5,8,9,4,6}

};

int i,j;

(4) ;

for(i=0;i<10;i++){

for(j=0;j<9;j++){

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

if( (5) )printf(",");

}

printf("\n");

}

getch();

}


正确答案:

●试题四

【答案】(1)bk--(2)bn++](3)bn(4)jsValue(a)(5)j<=7

【解析】在主函数中先要调用函数jsValue()对数组a进行处理,所以(4)空应填入"jsValue(a)"。然后输出数组元素,同一行的元素之间用逗号分隔,所以(5)空应填入"j<=7"。

函数jsValue()是将数组按题目要求进行排序。通过观察发现处理后的数组中元素的顺序与原来的顺序相反,并且每一行中没有与第一个数相同的数,所以是从后往前处理,也就是将每组从最后往前倒序逐个同第一个数比较,比它大的就放到临时数组b中的最后,比它小的就放到临时数组b中的最前面,以次类推,所以(1)空应填入"bk--",(2)空应填入"bn++],(3)空应填入"bn"。最后将b数组赋给a数组。

 

第9题:

Giventhefollowingcode:1)publicvoidmodify(){2)inti,j,k;3)i=100;4)while(i>0){5)j=i*2;6)System.out.println("Thevalueofjis"+j);7)k=k+1;8)i--;9)}10)}Whichlinemightcauseanerrorduringcompilation?()

A.line4

B.line6

C.line7

D.line8


参考答案:C
这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前必须显式初始化,而代码中的变量k在使用前没有。

第10题:

给出下列的代码,哪行在编译时可能会有错误? ① public void modify() { ② int i,j,k; ③ i=100; ④ while(i>0) { ⑤ j=i*2; ⑥ System.out.println(" The value of j is"+ j); ⑦ k=k+1; ⑧ } ⑨}

A.line 4

B.line 6

C.line 7

D.line 8


正确答案:C
解析:局部变量在使用前必须进行初始化,而代码中的变量k在使用前没有进行初始化。

更多相关问题