OCJP(310-065)

多选题Which two code fragments are most likely to cause a StackOverflowError?()Aint []x = {1,2,3,4,5};for(int y = 0; y < 6; y++)    System.out.println(x[y]);Bstatic int[] x = {7,6,5,4};static { x[1] = 8;x[4] = 3; }Cfor(int y = 10; y < 10; y++)doStuff(y);Dvoi

题目
多选题
Which two code fragments are most likely to cause a StackOverflowError?()
A

int []x = {1,2,3,4,5};for(int y = 0; y < 6; y++)    System.out.println(x[y]);

B

static int[] x = {7,6,5,4};static { x[1] = 8;x[4] = 3; }

C

for(int y = 10; y < 10; y++)doStuff(y);

D

void doOne(int x) { doTwo(x); }void doTwo(int y) { doThree(y); }void doThree(int z) { doTwo(z); }

E

for(int x = 0; x < 1000000000; x++) doStuff(x);

F

void counter(int i) { counter(++i); }

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下列程序的运行结果是_______。

main()

{ int x=1,y=2,z=3;

printf("%d,",x<y?y:x);

primf("%d,",z<y?x++:y++);

primf("%d,%d",x,y);

}


正确答案:2213
2,2,1,3 解析:本题考查++,--运算符和条件运算符的使用。
“表达式1?表达式2:表达式3”的功能是:表达式 1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。
本题中,x=1,y=2时,xy成立,输出y的值2;y=2, z=3时,zy不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。

第2题:

for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是( )。

A.0

B.5

C.6

D.无穷


正确答案:C
C。【解析】此题是典型的考题。题中X=0,则!x永远为真,对于条件表达式!xy<=5只考虑y<=5,由于每次循环Y都增加1,而且y从0开始到5。所以可知总共循环了6次。

第3题:

阅读下面程序: include void fun(int n) { int x(5); static int y(10); if(n>0) {

阅读下面程序:

include<iostream.h>

void fun(int n)

{

int x(5);

static int y(10);

if(n>0)

{

++x;

++y;

cout<<x<<","<<y<<end1;

}

}

void main()

{

int m(1);

fun(m);

}

则该程序的输出结果是______。


正确答案:611
6,11

第4题:

设x和y均为int型变量,则执行下面的循环后,y值为( )。 public class Sun { public static void main(String args[ ]) { int x, y; for (y=1, x=1; y<=50; y++) { if(x>=10) break; if (x%2==1) { x+=5; continue; } x-=3; } System.out.println (y); } }

A.2

B.4

C.6

D.8


正确答案:C
解析:该题考查for循环和if条件语句的嵌套应用。当y=1,x=1时,不满足第1个if语句向下继续执行第2个if语句,x=6,继续执行for循环:当y=2,x=6时,不满足第1个和第2个if语句,x=3,继续执行for循环;当y=3,x=3时,不满足第1个if语句向下继续执行第2个if语句,x=8,继续执行for循环;一直执行下去,直到y=6,x=12是满足第1个 if语句退出for循环。故本题答案是C。

第5题:

下列程序的输出结果是includeclass Myclass{public : Myclass( int i=0,int j=0){x

下列程序的输出结果是 #include<iostream.h> class Myclass{ public : Myclass( int i=0,int j=0) {x=i; y=j; } void show( ){cout<<"x="<<x<<" "<"y="<<y<<endl;} void show( )const{cout<<"x="<

A.x=4,y=3;x=7,y=8

B.x=3,y=4;x=7,y=8

C.x=7,y=8;x=4,y=3

D.x=8,y=7;x=7,y=8


正确答案:A
解析:在Myclass类中定义了两个同名函数show,其中一个是常成员函数。在main函数中定义了两个对象myl,my2,其中对象my2是常对象。这两个对象调用成员函数show时,通过对象myl调用的是没有用const修饰的一般成员函数,而通过对象my2调用的是const修饰的常成员函数。

第6题:

若有以下程序段:include using namespace std;int main (){ int a[]={1,4,5}; int *p

若有以下程序段: #include <iostream> using namespace std; int main () { int a[]={1,4,5}; int *p=&a[0],x=6, y,z; for (y=0; y<3; y++) z= ( (* (p+y) <x) ? *(p+y) :x); cout<<z<<end1; return 0; } 程序运行后的输出结果是( )。

A.1

B.4

C.5

D.2


正确答案:C
解析:本题考核指针的运算。程序首先定义了一整型数组a,并赋初值1,4,5。即a[0],a[1]和a[2]的值分别为1,4和5。程序还定义了一个整型指针p,并将其初始化且指向数组元素a[0]。在for循环语句中,赋值语句“z=((*(p+y)x)?*(p+y):x);”可等价为“z=(a[y]x)?a[y]:x”。因为表达式中的“*(p+y)=p[y]=a[y]”。for语句每循环一次,就给变量z重新赋值一次,z的值其实就是数组和x相比较,将数组a中的最大值赋给z。当y=2后,退出循环,输出结果是5。

第7题:

下列程序的输出结果是includeclass Myclass{public:Myclass(int i=0,int j=0){x=i;

下列程序的输出结果是 #include<iostream.h> class Myclass{ public:Myclass(int i=0,int j=0) { x=i; y=j; } void show( ) {cout < <"x=" < < x < <" " <"y=" < < y < < endl;} void show( ) const{cout < <"x=" < <" " < <"y=" < < y < < endl;} privated: int x; int y; }; void main( ) { Myclass my1(3,4) ; const my2(7,8) ; my1.show( ) ;my2.show( ) ;}

A.x=4,y=3;x=7,y=8

B.x=3,y=4;x=7,y=8

C.x=7,y=8;x=4,y=3

D.x=8,y=7;x=7,y=8


正确答案:A
解析:在Myclass类中定义了两个同名函数show,其中一个是常成员函数。在main函数中定义了两个对象my1、my2,其中对象my2是常对象。这两个对象调用成员函数show时,通过对象my1调用的是没有用const修饰的一般成员函数,而通过对象my2调用的是const修饰的常成员函数。

第8题:

阅读下面程序: include void f(int n) { int x(5); static int y(10); if(n>0) { ++

阅读下面程序:

include<iostream.h>

void f(int n)

{

int x(5);

static int y(10);

if(n>0)

{

++x;

++y;

cout<<x<<","<<y<<endl;

}

}

void main()

{

int m(1);

f(m),

}

则该程序的输出结果是【 】


正确答案:611
6,11

第9题:

for(int x=0,y=0;!x||y<=5;y++,x=!x)语句执行的循环次数是( )。

A.0

B.7

C.6

D.无数次


正确答案:B
解析:因为||(逻辑或)运算符只要有一个为真,则整个表达式为真,由条件“y=5”得知,前6次循环一定会执行。又由x=!x得知,奇数次循环时!x为真,所以第7次循环仍会执行。第8次!x和y=5都为假,循环结束。所以一共循环了7次。

第10题:

下列程序段的运行结果是______。

int x=0,y=0;

while(x<15) y++,x+=++y;

pfintf("%d,%d",y,x);


正确答案:820
8,20 解析:本题考查while循环和++运算符的运用。x=0符合条件x15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8=20,此时y=8。

更多相关问题