程序分析题目

程序分析题目,第1张

1.

输出:0(int不初始化默认是0)

package bgc

public class Happy {

public static void main (String[] args){

int index=1

int a[]=new int[3]

int bas=a[index]

int baz=bas+index

System.out.println(a[baz])

}

}

2.

输出:i=0j=-1

public class ForLoop {

public static void main (String[] args){

int i=0,j=5

st:for(i++){

for(j--){

if(i>j) break st

}

}

System.out.println("i="+i+"j="+j)

}

}

3.

输出:t equals4

package bgc

public class Testt {

public static void main (String[] args){

int m=2,p=1,t=0

for(p<5p++){

if(t++>m){

m=p+t

}

}

System.out.println("t equals"+t)

}

}

4

解释下面的程序运行结果输出为什么是null

答案:public void My()不是构造函数,要改成Public My(),否则s不能初始化

public class My{

String s

public void My(){

s="Constructor"

}

public void go(){

System.out.println(s)}

public static void main(String args[]){

My m=new My()

m.go()}

}

5.

输出:无

Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。

public class ThisClass {

public static void main (String[] args){

Object o=(Object)new ThisClass()

Object s=new Object()

if(o.equals(s))

System.out.println("true")

}

}

6.

public class C1 {

static int j=0

public void method(int a){

j++

}

}

class Test extends C1{

public int method(){

return j++

}

public void result(){

method(j)

System.out.println(j+method())

}

public static void main(String args[]){

new Test().result()

}

}

7.

class ThisClass{

static void foo() throws Exception{

throw new Exception()

}

public static void main(String args[]){

try{

foo()

}catch(Exception){

System.exit(0)

}

finally{

System.out.println("In finally")

}

}

}

二、下面编译可能有错 若有 为什么?

1.

为什么不能编译下面代码?

public class Test{

static int sn

int n

final static int fsn

final int fn}

2.

interface Action{

int i=10

}

class Happy implements Action{

public static void main(String args[]){

Happy h=new Happy()

int j

j=Action.i

j=Happy.i

j=h.i

}

}

编译运行的结果是什么?

三、注释处(catch?),应该放什么内容

答案:catch(EOFException e)

class Excep{

static void method() throws Exception{

throw new EOFException()

}

public static void main(String args[]){

try{

method()

}catch(////){

}

}

}

有几个没答。你最好在Eclipse里试一试,其实不费时间

设R0=20H,R1=25H,(20H)=70H,(21H)=80H,(22H)=A0H,(22H)=A0H,(25H)=A0H(26H)=6FH,(27H)=76H,下列程序执行后,

CLR C CY=0

MOV R2,#3 R2=03H R2=02HR2=01H

LOOP:

MOV A,@R0 A=70H A=80H A=A0H

ADDC A,@R1CY=1,A=10H CY=0,A=F0HCY=1,A=16H

MOV @R0,A (20H)=10H (21H)=F0H (22H)=16H

INCR0 R0=21H R0=22HR0=23H

INCR1 R1=26H R1=27HR1=28H

DJNZ R2,LOOP

JNCNEXT

MOV @R0,#01H 23H=01H

SJMP $

NEXT: DECR0

SJMP $

结果:(20H)=10H ,(21H)=F0H ,(22H)=16H ,(23H)=01H ,(A)=16H ,(CY)=1 .

分析过程参照注释

第一题的答案应该是D.-15 因为-017L表示的是八进制的整形数,按十进制输出应该转化一下。即-15

第二题的答案是D.显示x=255 C语言是对应输出的

第三题的答案是C.2 4 由题得一级指针p指向a(数组的首地址),*p既是a[0]的内容;二级指针k指向p,*k是p的内容(因为在上一次的输出中p往后加一),既是a[1]的地址,**k就是a[1]的内容.

第四题的D答案int max(int x,int max(int y,int z)),是函数的头部,里面的是形参,当以调用次函数时,只能从外面传值,不能在定义时定义一个调用的形参.

第五题的答案是A,因为函数的调用是值传递的过程,p的改变并不影响pt的改变,它仍指向字符数组的首地址,即b[0]的地址。

第六题的答案是C。x=6,continue的作用仅是跳出本次循环,并不影响下次循环的进行。

第七题应该填 地址 数组名代表的是整个数组占的内存单元的首地址。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11102047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存