第2章 结构化程序设计

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

第2章 结构化程序设计

第二章结构化程序设计2.1【判断正误*]】Java语言的标识符是不区分大小写的。╳2.2【判断正误*】在Java语言中,每个ASCII码英文字符占用8个二进制位,而每个中文汉字字符则占用16个二进制位×2.3【判断正误*】已知语句“intt=640;”在语法上是正确的。并将给变量t赋初值640,那么判断语句“shorts=640;”在语法上的正确性。√2.4【判断正误*】已知语句“intt=640000;”在语法上是正确的,并将给变量t赋初值640000,那么请判断语句“shorts=640000;”在语法上的正确性。×2.5【判断正误*】已知语句“intt=640000;”在语法上是正确的,并将给变量t赋初值640000,那么请判断语句“shorts=(short)640000;”在语法上的正确性.√2.6【判断正误*】在Java语言中,语句“booleant=1;”定义了boolean类型的变量t并给它赋了初值true。×2.7【判断正误*】判断下面语句是否正确。×B=9a+2;2.8【判断正误*】在Java语言中,执行语句“booleant=1&&8;”的结果将使boolean类型变量t的值成为true。×2.9【填空题*】Java标识符是由Java字母和Java数字组成的除关键字、false、true和null之外的字符序列。2.10【填空题*】Java字符(char)采用的是ISO(国际标准化组织)规定的Unicode字符集。2.11【填空题*】下面程序的运行结果是12。PublicclassJ_Test{Publicstaticvoidmain(Stringargs[]){Inti=0;While(true){If(i++>10)Break;}System.out.println(i);}//方法main结束}类J_Test结束2.12【填空题*】下面程序的运行结果是11。PublicclassJ_Test{Publicstaticvoidmain(Stringargs[]){Inti=0;While(true){If(i++>10)Break;n}System.out.println(i);}//方法main结束}类J_Test结束2.13【填空题*】请写出下面程序的输出结果:4。ClassJ_Test{Publicstaticvoidmain(Stringargs[]){Inta=1,b=2;if((a==0)&(++b==6))//注:这种写法不符合编程规则a=100;System.out.println(a+b);}//方法main结束}//类J_Test结束2.14【填空题*】下面程序输出的是value=8。PublicclassJ_Test{Publicstaticintmb_method(intx){intj=1;Switch(x){case1:j++;case2:j++;case3:j++;case4:j++;case5:j++;default:j++;}returnj+x;}Publicstaticvoidmain(Stringargs[]){System.out.println("value="+mb_method(4));}方法main结束}类J_Test结束2.15【填空题*】请写出下面成学的输出结果:7。classJ_Test{publicstaticvoidmain(Stringargs[]){inta=2;switch(a){case1:break;ncase2:a+=2;case3:a+=3;break;case4:a+=4;break;default:a=0;}System.out.println(a);}方法main结束}类J_Test结束2.16【填空题*】下面程序输出的是ABDCBDCB。publicclassJ_Test{staticbooleanmb_fun(charc){System.out.println(c);returntrue;}方法mb_fun结束Publicstaticvoidmain(Stringargs[]){inti=0;for(mb_fun('A');mb_fun('B')&&(i<2);mb_fun('C')){i++;mb_fun(‘D’);}}//方法main结束}//类J_Test结束2.17[填空题**]请写出下面程序的输出结果:sum=15。publicclassJ_Test{publicstaticvoidmain(Stringargs[]){intsum=0outer:for(inti=1;i<100;i++){innerfor(intj=1;j<3;j++){sum+=j;if(i+j>6)breakouter;n}//内部for循环结束}//外部for循环结束System.out.println(“sum=”+sum);}//方法main结束}//类J_Test结束2.18[填空题**]请写出下面程序的输出结果:sum=19。publicclassJ_Test{publicstaticvoidmain(Stringargs[]){intsum=0outer:for(inti=1;i<10;i++){innerfor(intj=1;j<3;j++){sum+=j;if(i+j>6)breakouter;}//内部for循环结束}//外部for循环结束System.out.println(“sum=”+sum);}//方法main结束}//类J_Test结束2.19[填空题**]请写出下面程序的输出结果:sum=27。publicclassJ_Test{publicstaticvoidmain(Stringargs[]){intsum=0outer:for(inti=1;i<10;i++){innerfor(intj=1;j<3;j++){sum+=j;if(i+j>6)continueinner;}//内部for循环结束}//外部for循环结束System.out.println(“sum=”+sum);}//方法main结束}//类J_Test结束2.20[填空题**]请写出下面程序的输出结果:sum=19。npublicclassJ_Test{publicstaticvoidmain(Stringargs[]){intsum=0outer:for(inti=1;i<10;i++){innerfor(intj=1;j<3;j++){sum+=j;if(i+j>6)continueouter;}//内部for循环结束}//外部for循环结束System.out.println(“sum=”+sum);}//方法main结束}//类J_Test结束2.21[选择题*]下面哪些选项不可以用作变量名的首字符?C(A)字母(B)下划线(__)(C)数字(D)美元符号($)2.22[选择题*]下面哪些单词是Java语言的关键字?B(A)sizeof(B)abstract(C)null(D)Sting2.23[选择题*]下面哪些单词是Java语言的关键字?B(A)For(B)for(C)FOR(D)true2.24[选择题*]下面哪些单词是Java语言的关键字?D(A)null(B)false(C)length(D)instanceof2.25[选择题*]下面哪些语句不会出现编译警告或错误?C(A)floatf=1.3;(B)charc=“a”;(C)byteb=25;(D)booleand=null;2.26[选择题*]下面哪个赋值语句会产生编译错误?A(A)floata=2.0;(B)doubleb=2.0;(C)intc=2;(D)longd=2;2.27[选择题*]下面哪个赋值语句会产生编译错误?AB(A)chara=’abc’;(B)byteb=1234;(C)longc=0x123;(D)doubled=1e-3f;2.28[选择题*]下面那些语句可以通过编译?ACD(A)floata=1;(B)floatb=1.0;(C)floatc=2e1f;(D)floatd=0x1234;2.29[选择题*]设各个变量的定义如下,哪些选项的值为true?ABCDinti=1;floatf=1.0f;ndoubled=1.0;booleanb=true;(A)i==f;(B)i==d;(C)f==d;(D)2.1>i==b;2.30[选择题*]下面程序片段输出的是什么?Cinta=3;intb=1;if(a=b)System.out.println(“a=”+a);(A)a=1;(B)a=3;(C)编译错误,没有输出(D)正常运行,但没有输出2.31[选择题*]执行完下面程序片段之后,下面哪些结论是正确的?Binta,b,c;a=1;b=2;c=(a+b>3?a++:++b);(A)a的值是2,b的值是3(B)a的值是1,b的值是3;(C)a的值是1,b的值是2(D)c的值是false2.32[选择题*]请优化下面的程序代码,并判断下面哪些结论是正确的。Cpublicvoidmb_method(booleana,booleanb){if(a)System.out.println(“A”);elseif(a&&b)System.out.println(“A&&B”);else{if(!b)System.out.println(“notB”);elseSystem.out.println(“ELSE”);}}//方法mb_method结束(A)语句”mb_method(true,true);”输出”A&&B”(B)语句”mb_method(true,false);”输出”notB”(C)语句”mb_method(false,true);”输出”ELSE”(D)语句”mb_method(false,false);”输出”ELSE”2.33[选择题*]对于下面的源程序,哪些选项的结论是正确的?CpublicclassJ_Test{publicstaticintmb_isOdd(intx){return(x%2);}//方法mb_isOdd结束publicstaticvoidmain(Stringargs[]){nif(mb_isOdd(3))System.out.println(“3isodd.”);elseSystem.out.println(“3iseven.”);}//方法main结束}//类J_Tese结束(A)程序输出“3isodd.”(B)程序输出“3iseven.”(C)程序无法通过编译(D)程序可以通过编译,但无法正常运行2.34[选择题*]对于下面的源程序,哪些选项的结论是正确的?BpublicclassJ_Test{publicstaticvoidmain(Stringargs[]){intx=2;inty=2;if(++x==y++)System.out.println(“x=y”);elseSystem.out.println(“x!=y”);}//方法main结束}//类J_Test结束(A)程序输出“x=y”(B)程序输出“x!=y”(C)程序无法通过编译(D)程序可以通过编译,但无法正常运行2.35[选择题*]可以用作表达式switch的基本数据类型分别是:BCDE(A)boolean(B)char(C)byte(D)short(E)int(F)long(G)float(H)double2.36[选择题*]当整数变量i的值为多少时,下面的程序片段会在控制台窗口中输出”Message2.”?BCDswitch(i){case1:System.out.println(“Message1.”);case2:case3:System.out.println(“Message2.”);break;}//switch结构结束(A)0(B)1(C)2(D)3(E)42.37[选择题*]针对下面的程序,哪些结论是正确的?BpublicclassJ_Test{npublicstaticvoidmain(Stringargs[]){byteb=1;while(++b>0);System.out.println(“Loop?”);}//方法main结束}//类J_Test结束(A)运行程序将进入死循环,从而导致什么都无法输出(B)每运行一次程序,则输出一次“Loop?”并退出(C)每运行一次程序,会输出多次“Loop?”(D)程序中含有编译错误2.38[选择题*]下面程序片段输出的是什么?Dinti=0,j=9;do{if(i++>--j)break;}while(i<4);System.out.println(“i=”+i+”andj=”+j);(A)i=4andj=4(B)i=5andj=5(C)i=5andj=4(D)i=4andj=52.39[简答题*]请判断下面字符序列是否是合法的Java标识符。如果认为不是合法的Java标识符,请说明原因。(1)public不是(2)%def123abc不是(3)$400是(4)redHat是(5)Line-Number不是(6)400Arcs不是(7)_400Arcs是(8)_debug是(9)a@abc.com不是(10)”char”不是(11)keyword是(12)goto不是(13)null不是(14)true不是(15)redhat不是(16)*pointer不是(17)猫是(18)old-timer不是2.40[简答题*]请写出Java的所有基本数据类型,并分别写出这些基本数据类型所对应的每个变量在内存中所占用的位数。布尔(boolean)8位;数值类型:定点类型:字符(char)16位,字节(byte)8位,短整数(short)16位,整数(int)32位,长整数(long),64位;浮点型:单精度浮点数(float)32位,双精度浮点数(double)64位。2.41[简答题*]请分别写出下面转义符的含义。(1)’b’退格(2)’f’换页(3)’n’换行(4)’r’回车(5)’t’制表符(Tab)(6)’’’单引号(7)’”’双引号(8)’\’反斜杠2.42[简答题*]请写出下面Java直接量的数据类型。(1)0.0f单精度浮点数(float)(2)0.125d双精度浮点数(double)(3)’a’字符型(char)(4)”abc”字符串(5)true布尔型(boolea)(6)123整数(int)(7)12L长整数(long)(8)’\’应用数据类型(9)0.1双精度浮点数(double)(10)0x123L长整数(long)2.43[简答题*]请将下面的整数转换成为整.数(int)和长整数(long)类型补码表示的二进制数。13,212,305,3,-99,-55,-11,-13,-6n(int)1300000000000000000000000000001101(long)130000000000000000000000000000000000000000000000000000000000001101(int)21200000000000000000000000011010100(long)2122.44[简答题*]下面是一些二进制补码表示的整数(int),请分别写出它们所对应的十进制数值。(l)00000000000000000000000000001100(2)00000000000000000000000000000111(3)00000000000000000000000000010001(4)00000000000000000000000001101111(5)00000000000000000000000000011111(6)11111111111111111111111111110100(7)11111111111111111111111101111101(8)11111111111111111111111111111010(9)11111111111111111111111111101101(10)111111111111111111111111111110012.45[简答题**]假设已经定义如下的一些变量:inta=8;intb=2;请计算下面Java表达式的值,并写出表达式结果的数据类型。(注:在计算某小题的表达式的值时请不要考虑其他小题对它的影响,即假定每道小题的运算都是在前面变量定义之后立即进行的。)(1)(int)l.5/2.0(2)(int)(1.5/2.0)(3)1.5/2.0(4)3/2(5)5%3(6)5.2%3(7)(-5.2)%3(8)5.2%(-3)(9)(-5.2)%(-3)(10)-a/b++(11)–a/b++(注:两减号间有一空格)(12)10>1(13)-10>1(14)10>>1(15)-l0>>l(16)10>>>1(17)-10>>>1(18)10<1(19)-10<1(20)10<<1(21)-10<<1(22)~10(23)~(-10)(24)10|3(25)(-10)|3(26)10&3(27)(-10)&3(28)10^3(29)(-10)&3(30)(a>7)&&(b>1)(31)(a>7)&&(b>7)(32)(a>10)&&(b>7)(33)(a>7)&(b>1)(34)(a>7)&(b>7)(35)(a>10)&(b>7)(36)(a>7)||(b>1)(37)(a>7)||(b>7)(38)(a>10)||(b>7)(39)(a>7)|(b>1)(40)(a>7)|(b>7)(41)(a>10)|(b>7)(42)(a>7)^(b>1)(43)(a>7)^(b>7)(44)(a>10)^(b>7)(45)(a>7)&&(b++1)&&(b>2)(46)(a>7)&&((++b)>2)&&(b>2)n(47)(a>10)&&((b++)>1)&&(b>2)(48)(a>10)&&((++b)>2)&&(b>2)(49)(a>7)&((b++)>1)&&(b>2)(50)(a>7)&((++b)>2)&&(b>2)(51)(a>10)&((b++)>1)&&(b>2)(52)(a>10)&((++b)>2)8L&(b>2)(53)(a>7)||((b++)>1)&&(b>2)(54)(a>7)||((++b)>2)&&(b>2)(55)(a>10)||((b++)>1)&&(b>2)(56)(a>10)||((++b)>2)&&(b>2)(57)(a>7)|((b++)>1)&(b>2)(58)(a>7)|((b++)>2)&(b>2)(59)(a>10)|((b++)>1)&(b>2)(60)(a>10)|((++b)>2)&(b>2)(61)(a>7)^((b++)>1)&(b>2)(62)(a>7)^((++b)>2)&(b>2)(63)(a>10)^((b++)>1)&(b>2)(64)(a>10)^((++b)>2)&(b>2)(65)a>7?a:b(66)a>10?a:b(67)(byte)2142.46[简答题*]请指出下面程序片断可能存在的问题。for(inti=0;i<10;i++)System.out.println(i);源程序无法通过编译,赋值语句应当用“=”运算符2.47[简答题*]请指出下面程序片断可能存在的问题。for(inti=0,i==10;i++)System.out.println(i);程序没有输出,语句“System.out.println(i);”不起作用2.48[简答题*]请指出下面程序片断可能存在的问题。inti=0;while(i<5)System.out.println(i);程序无限循环输出0,即控制循环的变量在循环中一直无法发生变化2.49[简答题*]请判断下面的程序片断能否通过编译并正常运行。如果能通过编译并正常运行,则请写出程序运行的结果。inti=0:doSystem.out.println(i++);while(i<5);运行结果为:012342.50[简答题*]请指出下面程序可能存在的问题。npublicclassJ_Test{publicstaticvoidmain(Stringargs[]){inti=0:do{System.out.println(i++);}}//方法main结束}//类J_Test结束do_while结构少了while部分2.51[简答题*]请总结break,continue和return的具体用法。2.52[编程题*]请编写程序,要求采用循环语句,在控制台窗口输出如下图案。****************2.53[编程题*]编写一个小应用程序,通过循环语句生成如下图所示的图案。ABCDEFGHIJKLMNOPQRST2.54[编程题*]请编写程序,计算并输出”1+2+…+2008”的结果。2.55[编程题*]请完成下面程序。classJ_Test{publicstaticvoidmain(Stringargs[]){inti,n;n=10if(args.length>=1){try{n=Integer.parseInt(args[0]);}catch(Exceptione){}}nSystem.out.println(n+”isconvertedinto:”);System.out.println(“------------------------------”);}//方法main结束}//类J_Test结束要求完整的程序能够将给定的整数转换成若干行星号(“*”)。具体的转换规则如下唆所示。假设整数以十进制表示,如果给定整数第i位是n,则倒数第i行输出n个星号。下面是具体的两个运行实例。c:examples>javaJ_Test123123isconvertedinto:******c:examples>javaJ_Test3434isconvertedinto:*******请不要用超过四行的语句完成上面的程序。当一行内容只有“{”或“}"时,则这行不计算行数。每行至多只能出现一条Java语句,而且每行至多出现一个如下的关键字:“for”、“do”、“while”、“switch"、“if’’和“else”。例如:1.if(a==b){2.System.out.println(s);}3.System.out.println(s);上面的程序应当计算为三行程序。2.56[编程题*]在程序中直接给定一个正整数n(例如n=201),请编写程序计算并输出小于n的最大素数。2.57[编程题*]请编写一个素数表的程序,要求输出1000以内的所有素数。2.58[编程题*]请编写程序输出从1到9的乘法口诀表。口诀表的前一部分如下:1*1=1;1*2=2;2*2=4;1*3=3;2*3=6;3*3=9;l*4=4;2*4=8;3*4=12;4*4=16;…publicclassNine{publicstaticvoidmain(Stringargs[]){intsum;for(inti=1;i<10;i++){for(intj=1;j<=i;j++){sum=i*j;nSystem.out.printf(j+"*"+i+"="+sum+"");}System.out.println();}}}2.59[编程题**]请完成下面的方法体,使得方法mb-binary在控制台窗口中输出整数i的二进制补码。Voidmb_binary(inti){//方法体)//方法mb_binary结束2.60[趣味题**]请编写一个组合24的游戏程序。由程序的参数给定四个从0到9的整数。程序可以对这四个数字进行任意排列并任意进行四则运算(加减乘除与括号)。如果能够得到24,则输出具体的表达式(只要给出一个就可以)。否则,输出“无解”。
查看更多

相关文章

您可能关注的文档