Java认证考试

55. int []x= {1, 2,3,4, 5};  56. int y[] =x;  57. System.out.println(y[2]);  Which is true?() A、 Line 57 will print the value 2.B、 Line 57 will print the value 3.C、 Compilation will fail because of an error in line 55.D、 Compilation will fail because of 

题目

55. int []x= {1, 2,3,4, 5};  56. int y[] =x;  57. System.out.println(y[2]);  Which is true?() 

  • A、 Line 57 will print the value 2.
  • B、 Line 57 will print the value 3.
  • C、 Compilation will fail because of an error in line 55.
  • D、 Compilation will fail because of an error in line 56.
参考答案和解析
正确答案:B
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序执行后的输出结果是( )。include usingnamespacestd;void try(int,int,int,in

以下程序执行后的输出结果是( )。 #include <iostream> using namespace std; void try(int,int,int,int); int main ( ) { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = X*X; y = y*y; r = z+x+y; }

A.18

B.9

C.10

D.不确定


正确答案:D
解析:本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。下面是正确解答。根据程序逐步分析:①程序中定义了一个名为try的void型函数,即函数try()没有任何返回值。②而try()函数在主函数中是以一条独立语句的方式被调用的,且主函数最后输出变量r的值。③但在主函数中,并没有对变量r赋值。④在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以,虽然在函数try()中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

第2题:

下面程序的结果【】。 include int f(int); void main() { int x=1,i; for (i=0; i<3;

下面程序的结果【 】。

include<iostream.h>

int f(int);

void main() {

int x=1, i;

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

cout<<f(x)<<‘ ’ ;

cout<<end1;

}

int f(int x){

int y=1;

static int z=3

y++;

z++;

return (x+y+z);

}


正确答案:7 8 9
7 8 9

第3题:

有以下程序

int fa(int x){return x*x;}

int fb(int x){return x*x*x;}

int f(int(*fl)(),int(*f2)(),int x}

{return f2(x)-f1(x);}

main()

{int i;i=f(fa,fb,2);printf("%d\n",i);}

程序运行后,输出结果是【 】。


正确答案:4
4 解析:在主函数中调用函数f,函数f有三个参数,形参f1与f2分别是两个指向函数的指针。在f中执行f2(x)-f1(x),实际上是执行了fb(2)-fa(2),故执行i=(fa,fb,2)后i的龇23-22=4。

第4题:

有如下程序:include void fun(int& x, int y){int t=x;x=y;y=t;}int main (){int

有如下程序: #include <iostream> void fun(int& x, int y){int t=x;x=y;y=t;} int main () { int a[2]={23,42}; fun(a[1],a[0]); std::cout<<a[0]<<","<<a[1]<<std::endl; return 0; } 执行后的输出结果是

A.42,42

B.23,23

C.23,42

D.42,23


正确答案:B
解析:本题考核函数的调用以及参数值的传递。函数fun中的第一个参数采用引用传值方式,函数中对形参值的改变同样作用于实参上;第二个参数采用按值传值方式,函数中对形参的操作不会影响到实参。所以main函数中调用fun函数后,a[1]的值被修改为a[0]的值,而a[0]的值没有改变。

第5题:

有如下程序: include using namespace std; void f1(int& x, int& y){int z=

有如下程序:

#include<iostream>

using namespace std;

void f1(int& x, int& y){int z=x; x=y; y=z;)

void f2(int x, int y){int z=x; x=y; y=z;}

intmain(){

int x=10, y=26;

f1(x, y);

f2(x, y);

cout<<y<<end1;

return 0;

}

运行时的输出结果是( )。

A) 10

B) 16

C) 26

D) 36

A.

B.

C.

D.


正确答案:A

第6题:

有以下程序:includeusing namespace std;int f(int,int);int main(){ int i:1,x; x=f

有以下程序: #include<iostream> using namespace std; int f(int,int); int main() { int i:1,x; x=f(i,i+1); cout<<x<<end1; return 0; } int f(int a,int b) { int c; c = a; if(a>b) c = 1; else if(a==b) c = 0; else c = -2; return c; } 运行后的输出结果是( )。

A.1

B.0

C.-1

D.-2


正确答案:D
解析:本题考核对函数调用方法的掌握程度。做此类题主要是弄清楚程序每一步的目的:在主函数前面声明了整型函数f。在主函数中,调用了函数f()。实参的值分别是1和2,1传给函数f的形参a,2传给函数f的形参b,函数返回的值赋给变量x。即为输出的函数值。具体分析一下函数f()的功能:如果a大于b,则赋予c的值为1;并且跳出if-else语句。如果a不大于b,则进入elseif分支中,如果a等于b,则赋予c的值为0,并跳出以下的if-else语句。如果a不等于b,则进入else分支,执行c=-2。因为实参1,2分别传给形参a,b,所以此时ab,f()函数应执行c=-2。即最终输出应为-2。

第7题:

以下程序的输出的结果是( )。int x=3;main(){ int i;for(i=1;i<x;i++)incre();}incre(){ staic int x=1; x*=x+1; printf(" %d", x);}

A.33

B.22

C.26

D.25


正确答案:C
解析:本题首先定义一个全局变量x并赋初值为3,主函数中使用这个全局变量控制循环次数,循环执行了2次,调用两次incre()函数。第一次调用incre(),定义一个静态变量x并赋初值1,然后执行“x*=x+1”,使x的值变为2:第二次调用incre()函数时,静态变量将保留上—饮退出时的值即2,执行语句“x*=x+1”后,x的值变成6,输出x的值为6。所以,4个选项中C为所选。

第8题:

有如下程序:include void fun (int& x,int y){int t=x;x=y;y=t;}int main(){ int

有如下程序: #include <iostream> void fun (int& x,int y){int t=x;x=y;y=t;} int main() { int a[2]={23,42}; fun (a[1],a[0]; std::cout<<a[0]<<”,”<<a[1]<<std:: ond1; retum0; }执行后的输出结果是______ 。

A.41,41

B.23,23

C.13,42

D.42,23


正确答案:B
解析:a[0]做的是地址传递,所以执行函数后值发生变化,而a[1]做的是值传递,值并没有发生变化,所以此题应选择A。

第9题:

有以下程序: include using namespace std; class Point' { public: void SetPoint(

有以下程序: #include <iostream> using namespace std; class Point' { public: void SetPoint(int x,int y); void Move(int xOff,int yOff); int GetX() { return X; } int GetY() { return Y; } private: int X,Y; }; void Point::SetPoint(int x, int y) { X=x; Y=y; } void Point: :Move(int xOff, int yOff) X+=xOff; Y+=yOff; } int main () { Point p1; p1.SetPoint(1,2); p1.Move (5, 6); cout<<"Point1 is ("<<p1.GetX()<<','<<p1.GetY()<<")"<<end1; return 0; } 执行后的输出结果是( )。

A.Point1 is (6,8)

B.Point1 is (1,2)

C.Point1 is (5,6)

D.Point1 is (4,4)


正确答案:A
解析:本题考核对象的定义与使用。程序中定义了一个类Point,在主函数中定义了一个Point类的对象p1,然后通过对象p1调用其成员函数SetPoint()和Move()实现移位的操作。

第10题:

下列程序的输出结果是()。 include int fun(int x) {int a; if(x==0‖x==1) return 3;

下列程序的输出结果是( )。

#include<stdio.h>

int fun(int x)

{ int a;

if(x==0‖x==1)

return 3;

else

a=x-fun(x-2) ;

return a;

}

void main()

{ printf("%d",fun(7) );

}

A.2

B.8

C.9

D.5


正确答案:A
解析:本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→ fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→ fun(5):a=5-0=5→fun(7):a=7-5=2,最后的计算结果为2。

更多相关问题