程序设计基础答案
〖程序设计基础〗练习题1<br>一、选择题(每题1分,共30分)<br>下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。<br>1.以下的选项中能正确表示Java语言中的一个整型常量的是( )。<br>A) 12. B) -20 C) 1,000 D) 4 5 6<br>2.以下选项中,合法的赋值语句是( )。<br>A) a = = 1; B) ++ i; <br>C) a=a + 1= 5; D) y = int ( i );<br>3.若所用变量都已正确定义,以下选项中,非法的表达式是( )。<br>A) a != 4||b==1 B) 'a' % 3 <br>C) 'a' = 1/2 D) 'A' + 32<br>4.若有定义int a = 2;则执行完语句a += a -= a * a; 后,a的值是( )。<br>A) 0 B) 4 C) 8 D) -4<br>5.设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( )。<br>A) 定义了一个名为a的一维数组 B) a数组有3个元素<br>C) a数组的下标为1~3 D)数组中的每个元素是整型<br>6.若a和b均是整型变量并已正确赋值,正确的switch语句是( )。<br>A) switch(a+b); B) switch( a+b*3.0 )<br>{ ...... } { ...... }<br>C) switch a D) switch ( a%b )<br>{ ...... } { ...... }<br>7.下列语句序列执行后,x 的值是( )。<br>int a=3, b=4, x=5;<br>if( ++aA) 5 B) 3 C) 4 D) 6<br>8.下列语句序列执行后,k 的值是( )。<br>int i=6, j=8, k=10, n=5, m=7;<br>if( i<br>A) 9 B) 10 C) 11 D) 12<br>9.下列语句序列执行后,r 的值是( )。<br>char ch='8'; int r=10;<br>switch( ch+1 )<br>{ case '7': r=r+3;<br>case '8': r=r+5;<br>case '9': r=r+6; break;<br>default: ;<br>}<br>A) 13 B) 15 C) 16 D) 10<br>10.下列语句序列执行后,j 的值是( )。<br>int j=0;<br>for( int i=3; i>0; i-- ) j+=i;<br>A) 3 B) 4 C) 5 D) 6<br>11.下列语句序列执行后,j 的值是( )。<br>int j=9, i=6;<br>while( i-- >3 ) --j;<br>A) 5 B) 6 C) 7 D) 8<br>12.下列语句序列执行后,i的值是( )。<br>int i=10;<br>do { i-=2; } while( i>6 );<br>A) 10 B) 8 C) 6 D) 4<br>13.为了区分重载多态中同名的不同方法,要求( )。<br>A) 采用不同的形式参数列表 B) 返回值类型不同 <br>C) 调用时用类名或对象名做前缀 D) 参数名不同<br>14.定义主类的类头时可以使用的访问控制符是( )。<br>A) private B) protected <br>C) public D) private protected<br>15.下列整型的最终属性 i 的定义中,正确的是( )。<br>A) static final int i=100; B) final i;<br>C) static int i; D) final float i=1.2f; <br>16.设 x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )。<br>A) public x x1= new y( ); B) x x1=x( ); <br>C) x x1=new x( ); D) int x x1;<br>17.下列方法定义中,正确的是( )。<br>A) int x( int a,b ) B) double x( int a,int b)<br>{ return (a-b); } { int w; w=a-b; }<br>C) double x( a,b ) D) int x( int a,int b)<br>{ return b; } { return a-b; }<br>18.能构成多分支的语句是( )。<br>A) for 语句 B) while 语句 <br>C) switch 语句 D) do - while 语句<br>19.下列程序段执行后t1的结果是( )。<br>int x1 = 9, x2 = 6, t1;<br>t1 = x1 > x2 ? x1 : x2;<br>A) 6 B) 9 C) 11 D) 3<br>20.对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是( )。<br>A) k = n / 10 % 10 B) k = ( n - n / 100 * 100 )%10<br>C) k = n % 10 D) k = n / 10<br>21.现有一变量声明为boolean aa;下面赋值语句中正确的是( )。<br>A)aa=false; B)aa=False; C)aa="true"; D)aa=0;<br>22.为了定义三个整型数组a1、a2、a3,下面声明正确的语句是( )。<br>A)intArray [] a1,a2; B)int [] a1,a2;<br>int a3[]={1,2,3,4,5}; int a3[]={1,2,3,4,5};<br>C)int a1,a2[]; D)int [] a1,a2;<br>int a3={1,2,3,4,5}; int a3=(1,2,3,4,5);<br>23.以下for循环的执行次数是( )。<br>for(int x=0,y=0;(y!=0)&&(x<4);x++);<br>A)无限次 B)一次也不执行 <br>C)执行4次 D)执行3次<br>24.为了使包sos在当前程序中可见,可以使用的语句是( )。<br>A)import sos.*; B)package sos.*;<br>C)sos import; D)sos package;<br>25.以下哪个方法仅在Applet程序被创建和首次被载入支持Java的浏览器时被调用( )。<br>A)paint() B)init() C)action() D)start()<br>26.在某个类A中存在一个方法:void GetSort(int x),以下能作为这个方法的重载的声明的是( )。<br>A)Void GetSort(float x) B)int GetSort(int y)<br>C)double GetSort(int x,int y) D)void Get(int x,int y)<br>27.有一个类A,以下为其构造函数的声明,其中正确的是( )。<br>A)void A(int x){...} B)A(int x){...}<br>C)a(int x){...} D)void a(int x){...}<br>28.选择排序的思想是,将数据序列划分为两个子列,一个子列是排好序的,另一个是尚未排序的。现若想将数据序列由大到小排序,则每次放到有序子列尾部位置的元素,应从无序序列中选择( )。<br>A)最大的 B)最小的 C)任意的 D)头上的<br>29.已知int a[11]={12,18,24,35,47,50,62,83,90,115,134};使用对分查找法查找值为90的元素时, 查找成功所进行的比较次数是( )。<br>A)1 B)2 C)3 D)4<br>30.下面叙述正确的是( )。<br>A)栈不能进行插入元素的操作,而队列可以。<br>B)栈和队列都不能在中间位置进行插入操作。<br>C)链表不能进行插入操作。<br>D)数组不能进行插入操作。<br>二、填空题(每空1分,共15分。)<br>请将正确答案填写在答题纸相应位置上,答在试卷上不得分。<br>1.在Java语言中,逻辑常量只有true 和 ___________ 两个值。<br>2.表达式1/2*3的计算结果是_________。 <br>3.以下方法fun的功能是求两参数之和。<br>int fun ( int a, int b )<br>{ __________________; } <br>4.面向对象技术中的对象具有状态,行为和_________等三个基本属性。 <br>5.面向对象程序设计方法最重要的特性是继承、封装、__________和多态。<br>6.定义一个类包括定义类头和定义_______两个部分。<br>7使用一个对象前,必须声明并___________它。 <br>8.数组、堆栈、________和链表都是线性数据结构。<br>9.执行以下程序段后:a = ________, b = ________ 。<br>int a = 5, b;<br>b = ++a * 3;<br>10.结构化程序设计的三种基本流程控制结构是:顺序结构、循环结构和_______________。<br>11.Java 程序可以分为 Application 和 Applet 两大类,能在 WWW 浏览器上运行的是 _________ 。 <br>12.如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法 __________了父类的同名方法。<br>13.同类中多个方法具有相同的方法名,不同的_____________称为方法的重载。<br>14.在Java语言中,所有的数组都有一个length属性,这个属性存储了该数组的___________。<br>15.在Java语言中,为将源代码翻译成____________时产生的错误称为编译错误。而将程序在运行中产生的错误称为运行错误。<br><br>三、判断题( 每小题1分,共15分 )<br>下列各题中,你认为正确的就在其题干后的括号内打"√",错误的打"×"。<br>1.Java中的的字符使用的是 16 位的Unicode 编码。 <br>2.类是同种对象的集合和抽象。<br>3.Java 仅支持类间的单重继承。 <br>4.接口是由常量和抽象方法组成的特殊类。<br>5.构造函数的方法名可由编程人员任意命名。<br>6.使用静态属性必须以类名做前缀。 <br>7.类的私有属性和私有方法可以被其子类访问。<br>8.abstract 是抽象修饰符,可以用来修饰类及其属性和方法。<br>9.Java 支持多线程机制。<br>10.一个 Java 源程序中允许有多个公共类。<br>11.Java 程序可以划分为两大类: Application 和 Applet。<br>12.for 语句中的循环体不能是空的。<br>13.子类不能继承父类的构造函数。<br>14.重载的方法可以通过它们的返回值类型的不同来区分。<br>15.数组一定占用连续的内存空间。<br><br>四、程序填空( 每空2分,共20分 )<br>阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。<br>1.下面是一个类的定义。<br>class ____________ // 定义名为myclass的类<br>{<br>__________ int var=666;<br>static int getvar()<br>{<br>return var;<br>}<br>} <br>2.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。<br>__________ void paint(Graphics g)<br>{ g.____________("你好!",10,20); }<br>3.下面是用户程序对 Applet 类中方法 action( ) 的重新定义,功能为从单行文本编辑区 input 中输入数据赋给k。TextField 类的对象input和int型变量k已在类体中正确说明。<br>public ___________ action( Event e, Object o )<br>{ if( e.target==input )<br>k=Integer.parseInt( _______.getText( ) );<br>repaint( );<br>return true;<br>}<br>4.下面是一个类的定义<br>import java awt.*;<br>import java applet.*;<br>public class myprogram extends _______//定义小程序的主类<br>{<br>Label p1;<br>TextField in;<br>public void init()<br>{ p1=new Label("请输入一个整数");<br>____________;<br>in =new TextField( 8 );<br>add( in );<br>}<br>} <br>5.下面程序的功能为计算数组各元素的和。<br>import java.awt.Graphics;<br>import java.applet.Applet;<br>public class SumArray extends Applet <br>{<br>int a[] = { 1, 3, 5, 7, 9, 10 }; <br>int total;<br>public void init()<br>{<br>total = 0;<br>for ( int i = 0; ___________; i++ ) <br>total=______________;<br>}<br>public void paint( Graphics g )<br>{<br>g.drawString( "Total of array elements: " +total, 25, 25 );<br>}<br>}<br><br>五、简答题( 每1问2分,共20分 )<br>阅读下面的程序(或程序片段),回答问题 。<br>1.<br>import java.awt.Graphics;<br>import java.applet.Applet;<br>public class BreakTest extends Applet<br>{<br>public void paint( Graphics g )<br>{<br>int count, xPos = 25;<br>for ( count = 1; count <= 10; count++ )<br>{<br>if ( count == 8 )<br>break;<br>g.drawString( " " + count, xPos, 25 );<br>xPos += 10;<br>}<br>}<br>}<br>问题:<br>1)程序的输出结果是什么?<br>2)方法调用 g.drawString( " " + count, xPos, 25 );<br>的第一个实参中为什么要有串 " " ? <br><br>2. <br>import java.awt.Graphics;<br>import java.applet.Applet;<br>public class Applet1 extends Applet <br>{<br>public void paint( Graphics g ) <br>{<br>int c1, c2;<br>boolean b1, b2;<br>c1 = 5;<br>c2 = 7;<br>b1 = false;<br>b2 = true;<br>g.drawString( "b1和b2相与的结果是:"+ ( b1 & b2 ), 25, 25 );<br>g.drawString( "b1和b2相或的结果是:"+ ( b1 | b2 ), 25, 45 ); <br>g.drawString( "c1=" + ++c1, 25, 85 );<br>g.drawString( "++c1 == --c2为" + ( ++c1 == --c2 ), 25, 105 );<br>}<br>}<br>问题: <br>1)程序执行后共输出几行 ?<br>2)输出结果是什么 ?<br><br>3.现有一个类定义如下:<br>class student<br>{<br>String name;<br>int age;<br>int score=88;<br>student(String a1,int a2,int a3)<br>{name=a1; age=a3; score=a2;}<br>} <br>在使用该类时,已使用下面语句生成了该类的对象: <br>student s1,s2;<br>s1=new student("张三",20,33);<br>s2=new student();<br>问题:<br>1)s1.name,s1.age,s1.score的值各是什么?<br>2)s2.name,s2.age,s2.score的值各是什么?<br><br>4.现有类说明如下:<br>class A<br>{<br>int x=10;<br>int GetA(){return x;}<br>}<br>class B extends A<br>{<br>int x=100;<br>int GetB(return x;}<br>}<br>问题:<br>1)类B是否能继承类A的属性x?。 <br>2)若b是类B的对象,则b.GetB()的返回值是什么?<br>3)若b是类B的对象,则b.GetA()的返回值是什么?<br>4)类A和类B都定义了x属性,这种现象称为什么?<br>
- 1
- 轩子西2014-09-04非常好的东西欧
- 粉丝: 2
- 资源: 33
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助