下面的代码是否有错误?() If (true)  {  String  var2=”变量2”; System .out.

题目
单选题
下面的代码是否有错误?() If (true)  {  String  var2=”变量2”; System .out.println(var2); }  String  var2=”变量2B”;  System .out.println(var2);
A

正确,尽管变量var2定义了两次,但程序自动将它们看成一个变量;

B

正确,前面出现的变量var2有效期仅在if中,不会与后面的变量var2重叠 ;

C

错误,if 块中的变量var2有效期从这里直到函数结束,因此会出现变量重叠;

D

错误,不管变量在哪里定义,它们都会在函数入口处初始化,因此会出现变量重叠;

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

第1题:

阅读下列代码 public class Arrays{ public static void main(String[]args){ int[]a=new int[5]; for(int i=0;i<a. length; i=i+1){ a[i]=10+i; } for(int i=0; i<a. length; i=i+1){ System. out. println(a[i]); } String[]s={"Frank","Bob","Jim"}; for(int i=0; i<s. length; i=i+1){ System. out. println(s[i]); } S[2]="Mike"; System. out. println(s[2]); } } 代码运行结果正确的是

A.10 11 12 13 14 Mike Bob Frank Jim

B.11 12 13 14 15 Frank Bob Mike Jim

C.10 11 12 13 14 Frank Bob Jim Mike

D.11 12 13 14 15 Mike Jim Bob Frank


正确答案:C
解析:每一个for循环对整型数组a赋值时从“10+0”开始,直到“10+4”为止共5个数。第二个for循环直接将字符串数组内容依次打印出来,循环结束后对s[2]重新赋值为“Mike”,故再次打印s[2]时输出“Mike”。

第2题:

下面程序的运行结果是( )。 public class Test { public static void main (String args[]) { int c=5; System. out. println (C); System. out. println (c++); System. out. println (C); } }

A.5 6 6

B.5 5 6

C.6 7 7

D.6 6 6


正确答案:B
解析:第一个输出语句输出的值为c的初值5;第二个输出语句输出c++,由于++在变量之后,先取变量的值作为表达式的值,然后变量再自增,所以表达式c++的值仍为5,输出后c的值变为6。第三次输出时,c的值为6。

第3题:

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

[说明]

本程序中预设了若干个用户名和口令。用户输入正确的用户名后,可以查找对应的口令,一旦输入结束标记“end”,程序结束。

[Java代码]

import java. io. *:

public class User {

public String user;

public Siring pass;

public User() { }

public User( String u,String p) {

user=u;

pass=p;

}

public String (1) () { return this. user; }

public String (2) () { return this. pass; }

public static void main(String[] args) {

User ua[]={new User("Li","123456"), new User("wang","654321"),

new User("Song","666666")};

while(true) {

InputStreamReader reader = new InputStreamReader(System. in);

BufferedReader inpul = new BnfferedReader(reader);

System. out. print("Enter your name:");

String name = null;

try { name = input. readLine();}

catch (IOException ex) {}

if((3)) break;

int i;

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

if (name. equals(ua[i]. getUser())){

System. out. println("密码:"+ua[i].getPass());

(4);

}

}

if ((5)) System. out. println("该用户不存在!");

}

}

}


正确答案:(1) getUser (2) getPass (3) name.equals("end") (4) break (5) i= =3或i>=3或i>2或其他等效形式
(1) getUser (2) getPass (3) name.equals("end") (4) break (5) i= =3或i>=3或i>2或其他等效形式 解析:User类中包括数据成员User和pass,分别存储用户名和口令,另有一个构造函数和getUser()、getPass()两个成员函数,分别用于获取用户名和口令。main ()中包含一个User类型的数组ua.当用户输入一个用户名后,在ua中查找,若找得到则输出对应的口令,否则输出相应的提示信息。
(1)~(2)从后面的代码中可以推断出,User类中有getUser()、getPass()两个成员函数;
(3)此处给出了退出程序的判断条件,即输入的用户名等于“end”;
(4)此处的for循环用于查找用户名,若找到了可即刻退出循环。
(5)此处是判断用户是否存在的条件,如果正常结束 for循环,则说明没用找到用户。

第4题:

执行下列程序段之后,变量b的值为( )。 public class Test { public static void main (String[] args) { int i = 12; int j = 24; boolean b1 = true; booleanb=(j%i==0)&&(! b1) || (j/i! =2); System. out. println (B); } }

A.true

B.false

C.0

D.1


正确答案:B
解析:表达式执行次序为:首先做!b1得到false;然后做j%i==0得到true;再做j/i!=2得到false;然后做&&得到false;最后是||,得到false。

第5题:

下面的代码是否有错误?()If(true){Stringvar2=”变量2”;System.out.println(var2);}Stringvar2=”变量2B”;System.out.println(var2);

A.正确,尽管变量var2定义了两次,但程序自动将它们看成一个变量;

B.正确,前面出现的变量var2有效期仅在if中,不会与后面的变量var2重叠;

C.错误,if块中的变量var2有效期从这里直到函数结束,因此会出现变量重叠;

D.错误,不管变量在哪里定义,它们都会在函数入口处初始化,因此会出现变量重叠;


参考答案:B

第6题:

阅读下列代码 public class Test{ String s="One World One Dream"; public static void main(String args[]){ System. out. println(s); } } 其运行结果是

A.args

B.One World One Dream

C.s

D.编译时出错


正确答案:D
解析:字符串s没有被声明成静态的,题中当主函数调用打印函数输出s的内容时,Test类还没有被实例化,也就没有字符串常量s了。可将字符串s声明为static类型的,或者在打印字符前先实例化Test类,再打印这个对象中的字符串。

第7题:

下面哪几段代码不会出现编译错误()

A、inti=0;if(i){System.out.println(“Hi”);}

B、booleanb=true;booleanb2=true;if(b==b2){System.out.println(“Sotrue”);}

C、inti=1;intj=2;if(i==1||j==2)System.out.println(“OK”);

D、inti=1;intj=2;if(i==1


参考答案:B,C

第8题:

阅读下列代码 public class Test{ public static void main(String args[]){ System. out. println((2<0)? 10:8); } } 其运行结果是

A.2

B.0

C.10

D.8


正确答案:D
解析:“?:”是三元运算符,首先判断“?”前面的布尔表达式,若为true,则执行“:”左边的表达式,而为false则执行“:”右边的表达式。本题中“2O? 10:8”,首先“20”返回false,故执行“:”右边的表达式,将8返回。

第9题:

执行下列代码段之后,变量b的值为______。 public class ex40 { public static void main(String[] args) { byte x=5; byte y=5; byte c=10; boolean b; b-c<x<<y; System.out.println (b); } }

A.1

B.0

C.false

D.true


正确答案:D

第10题:

假设变量sum=0和j=80都是int类型,则下列语句中的正确的是( ).

A.if (true) System. out. println("true"); else;

B.if (5<>1) System. out. println( "not equal" );

C.for (iht j=20;j<<50;j--) System. out. println (j);

D.while (j>>=50) sum +=j; j--;


正确答案:A
解析:选项B中,不等于关系运算符不是>,而是!=;选项C中,for循环里第二个语句 j20的结果不是布尔型;选项D中,条件表达式的结果也不是布尔型,而且循环体应该包括两条语句,这时需要加{}将j--;也包含在循环体内。

更多相关问题