1、程序设计导论课程试题2009-2010学年第二学期(模拟卷)(适用专业: 考试时间:120分钟)题号一二三四总分分数合分人: 复查人: 一、单项选择:(每题2分,共40分)分数评卷人1、在Java中,main()方法的返回值的类型是:A、public B、static C、void D、String2、Java源程序文件的扩展名为:A、.java B、.class C、.exe D、.jar3、在JAVA中,下列标识符合法的是:A、3kyou B、163 C、name D、while4、设有定义int a=3,b=4,c=5;则以下的表达式中,值为false的是:A、a b & b c B、a
2、 = bC、a ( b + c ) D、! ( a 1; B、 i+; C、 a= a+1=5; D、y = int ( i );6、若所用变量都已正确定义,以下选项中,非法的表达式是:A、a!= 4|b=1; B、a % 3; C、a = 1/3; D、A + 32;7、以下的变量定义语句中,合法的是:A、byte=128; B、boolean=null;C、long a=123L; D、double=0.9239d;8、下列程序段执行后t3的结果是( )。int t1=2, t2=3, t3;t3=t1t2?t1:(t2+t1);A、2 B、4 C、5 D、69、Java语言中创建一个对象
3、使用的关键字是:A、class B、interface C、new D、create10、已知int a=new int10,则下列对数组元素的访问不正确的是:A、a0 B、a1 C、a9 D、a1011、下列方法定义中,正确的是:A、int x( ) char ch=a; return (int)ch; B、void x( ) .return true; C、int x( ) .return true; D、int x( int a, b) return a+b; 12、在某个类A中存在一个方法:void set(int x),以下不能作为这个方法的重载的声明的是:A、void set(in
4、t y) B、int set(int x,double y)C、double set(int x,int y) D、void set(int x,int y)13、下列语句序列执行后,i的值是:for(int i=2;i=0;i-)System.out.print(s.charAt(i);System.out.println();public static void main(String args)String s=abcd;reverse(s);System.out.println(s);3、class P2_3static int n1=9;public static void disp
5、lay()byte n2=127;n1=n1+n2;(接右页)(接左页)System.out.println(n1=+n1);System.out.println(n2=+n2);public static void main(String args)int n3;n3=n1+2;System.out.println(n1=+n1);System.out.println(n3=+n3);display();4、class P2_4public static void main(String args)int day=2;switch(day) case 1: System.out.printl
6、n(法国大餐); break;case 2:case 4: System.out.println(满汉全席); break;default: System.out.println(香蕉餐); 5、class P2_5 public static void main(String args) (接下页) (接上页)for(int i=1;i=3;i+) for(int j=1;j=3-i;j+) System.out.print( );/ 为一个空格 for(int k=1;k=2*i-1;k+) System.out.print(*); System.out.println(); 6、publ
7、ic class Personprivate String name;private boolean sex;private int age;public Person()public Person(String n,boolean s,int a)setName(n);setSex(s);setAge(a);public void setName(String n)name=n;public String getName()return name;public void setSex(boolean s)sex=s;public String getSex()(接右页)(接左页)if(sex
8、=true)return male;elsereturn female;public void setAge(int a)age=a;public int getAge()return age;public void disp() System.out.println(Name:+getName()+ Sex:+getSex()+ Age:+getAge();public static void main(String args)Person p1=new Person();Person p2=new Person(Mary,false,20);p1.disp();p2.disp();三、根据
9、程序功能完善程序,在给出的空白处填上正确的语句。(每空3分,共30分)分数评卷人1、求1100以内所有的偶数之和。class P3_1public static void main(String args)int sum= (1) ;for(int i=1;i=100;i+)if( (2) )Sum=sum+i;/求偶数之和(接下页)(接上页)System.out.println(sum);2、下列方法用于判断一个数是否为“水仙花数”。水仙花数是一个三位数,它的各位数字的立方和等于该数。public static void is(int n) int i,j,k; i=n/100; /求百位
10、j= (3) ; /求十位 k= (4) ; /求个位 if(n= (5) ) /各位数字的立方和等于该数? System.out.println(n+是水仙花数!); else System.out.println(n+不是水仙花数!); 3、递归方法gcd,返回x和y的最大公约数。x和y的最大公约数方法gcd的递归定义如下:如果y等于0,则gcd(x,y)就是x;否则,gcd(x,y)就等于gcd(y,x%y),其中“%”是求模运算符。static int gcd(int x,int y)if( (6) )return x;else (7) ;4、下面的方法为在升序排列的数组中进行二分查找
11、的算法。static int binarySearch(int data,int key)/在升序排列的数组中进行二分查找int left=0,right=data.length-1,mid;while(left=right)mid= (8) ;if(key=datamid)return mid;else if(keydatamid) (10) ;return -1;四、编程题,请写出完整的程序。(共12分)分数评卷人1、(5分)编程求123100的值并输出。2、(7分)定义一个水果类Fruit,要求如下:l 私有属性weight,代表水果的质量,数据类型为floatl 私有属性color,代表水果的颜色,数据类型为Stringl 构造方法public Fruit(),将质量和颜色初始化为默认值l 构造方法public Fruit(float w,String c),将质量和颜色初始化为w和cl 公有方法getWeight ( ),用于获取水果的质量l 公有方法setWeight ( ),用于设置水果的质量l 公有方法getColor ( ),用于获取水果的颜色l 公有方法setColor ( ),用于设置水果的颜色l 公有方法disp ( ),用于显示水果的质量和颜色第 8 页共 8 页