第一篇:java 试题 设计投票器
实例设计:设计统计投票器。A、功能描述:
有一个班采用民主投票方法推选班长,班长候选人共4位,每个人姓名及代号分别为 张三 1,李四 2,王五 3,刘六 4。程序操作员将每张选票上所填的代号(1、2、3、或4)循环输入电脑,输入数字0结束输入,然后将所有候选人的得票情况显示出来,并显示最终当选者的信息。B、具体要求如下:(1)、编写候选人类Person,将候选人姓名、代号和票数保存到类Person(候选人类)中。(2)、输入数据之前,显示出各位候选人的代号及姓名:(提示:建立一个候选人类型数组)如下所示。(3)、循环执行接收键盘输入的班长候选人代号,直到输入的数字为0,结束选票的输入工作,如下图所示(4)、在接收每次输入的选票后要求验证该选票是否有效,即:如果输入的数不是0,1,2,3,4这5个数字之一,或者输入一串字母(捕捉异常),应显示出错误提示信息:此选票无效,请输入正确的候选人代号!并继续等待输入。(5)、输入结束后显示所有候选人的得票情况,如下所示(6)、输出最终当选者的相关信息,如下所示。C、参考图示: 1:张三【0票】 2:李四【0票】 3:王五【0票】 4:刘六【0票】
请输入班长候选人代号(数字0结束):1 请输入班长候选人代号(数字0结束):1 请输入班长候选人代号(数字0结束):1 请输入班长候选人代号(数字0结束):1 请输入班长候选人代号(数字0结束):2 请输入班长候选人代号(数字0结束):3 请输入班长候选人代号(数字0结束):4 请输入班长候选人代号(数字0结束):5 此选票无效,请输入正确的候选人代号!请输入班长候选人代号(数字0结束):hello 此选票无效,请输入正确的候选人代号!请输入班长候选人代号(数字0结束):0 1:张三【4票】 2:李四【1票】 3:王五【1票】 4:刘六【1票】
投票最终结果:张三同学,最后以4票当选班长!
第二篇:六年级下册信息技术 教案17 设计投票器
设计投票器
——初识变量
学习目标
1、通过计数器的设计,了解Scratch中用变量模块实现数据的获取存储和表达的过程。
2、通过计数器的数据可视化设计,了解Scratch语言中程序初始化的重要性。
3、通过投票选举活动,引导学生思考生活中那些问题是值得投票的,如何用科学的语言解释投票的结果。
4、主动邀请他人分享成果,表达自己的设计思路,愿意合作交流。
学习重点:信息的本质概念
让学生理解计数器设计原理。
学习难点:启发学生利用计数器,实现投票器的设计。
学习过程:
一、创设情境,提出主题
在社会民主化的今天,我们的班级活动中少不了各种民主选举,如班长竞选等。我们可以利用Scratch来制作一个“投票器”软件,帮助同学们统计选票。
二、试一试
设计Scratch程序需要创设舞台和角色,利用已学知识为我们的“投票器”构建舞台背景和角色。
活动结束后,引导学生用科学的语言描述投票结果。
投票活动结束了,这节课接下来我们要干什么呢?投票器中有一个很重要的技术就是计数器,下面请同学跟老师一起来看一看Scratch中计数器是如何设计的?
(1)
设计计数器
1.回忆刚才的活动,如何获取投票者的投票数据?
学生描述投票结果
2.获取投票者的投票数据后,如何存贮数据呢?
学生猜想回答
(2)投票器的设计
1.没有投票时,存储数据的变量应该为零,设计程序的初始化,表明程序初始化得重要性。
学生按键盘中某一个键
2.如何实现猫的投票结果的数据可视化
学生新建变量,利用变量的值增加1存储数据
3.测试,进一步体会程序初始化得重要性
以下是计数器谁的两个脚本:
学生将变量的值设定为0
三、做一做
利用计数器,请同学自己选择一个投票主题,设计一个投票器
教师引导学生参与程序的设计,启发学生。
四、分享交流
1.巡视指导,解决问题。
从计数器设计过渡到投票设计。
2.组织学生测试投票器。
互相交流共同帮助修改脚本,测试。
3.展示学生的投票器,鼓励有创新的同学。
五、探一探
结合已学知识,我们可以让“投票器”
更具动感,动手实践探究一下吧!
板书设计
设计投票器
——初识变量
基于“变量”的程序设计的一般步骤:
变量的声明;变量的初始化;变量的赋值和运算
第三篇:Java试题A
Java测试题(A卷)
一、单选题(2分/题*20题=40分)
1.下列javaDoc注释正确的是()
A、/*我爱北京天安门*/ B、//我爱北京天安门*/ C、/**我爱北京天安门*/ D、/*我爱北京天安门**/ 2.下列说法正确的是()
A、JAVA程序的main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样
D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来 3.下列语句执行后,变量a、c的值分别是()。
int x=182;int a,c;c=x/100;a=x%10;A、1,2
B、2,1 C、1.82, 2 D、100,82 4.下面哪个表达式可用得到x和y的最大值()?
A、x>y?y:x B、x
a = 6;System.out.print(a);System.out.print(a++);System.out.print(a);A、666 B、667
C、677 D、676 6.下列输出结果是()
int a = 2 while(a < 5){ switch(a){ case 0: case 3 : a = a + 2;case 1 : case 2 : a = a + 3;default : a = a + 5;} } System.out.print(a)A、5 B、7
C、10
D、1
27.下面是func(int m,int n)方法的定义,方法调用func(1,4)的返回结果是()。
int func(int m,int n){
int sum=0;for(int i=1;i<=4;i+=2){ sum+=i;} return sum;} A、1
B、4
C、5
D、10
8.以下定义一维数组的语句中,正确的是()
A、int a[5]
B、int a[] = new.int[5];C、int a[];D、int a[] = {1,2,3,4,5};
9.分析选项中关于Java中this关键字的说法正确的是()
A、this关键字是在对象内部指代自身的引用 B、this关键字可以在类中的任何位置使用
C、this关键字和类关联,而不是和特定的对象关联 D、同一个类的不同对象共用一个this 10.在Java中,关于构造方法,下列说法错误的是()
A、构造方法的名称必须与类名相同 B、构造方法可以带参数 C、构造方法不可以重载 D、构造方法绝对不能有返回值
11.假设类A有构造方法A(int a),则在类A的其它构造方法中调用该构造方法的语句为()
A、A(x)
B、this.A(x)C、this(x)//本类的构造方法都是使用this关键字来调用
法使用的是super 12.下列关于抽象类的说法正确的是()
A、某个抽象类的父类是抽象的,则这个子类必须重载父类的所有抽象方法 B、抽象类中必须存在抽象方法 C、绝对不能用抽象类去创建对象
D、抽象类可以实现接口,并且可以只实现接口的部分接口方法 13.下面代码段
静态的变量只有一个值,常驻内存存在的 class HasStatic{
} 输出的结果是: private static int x = 101;public static void main(String[] args){
} HasStatic hs1 = new HasStatic();hs1.x++;102 HasStatic hs2 = new HasStatic();hs2.x++;102 hs1 = new HasStatic();hs1.x++;103 HasStatic.x--;System.out.println(hs1.x + hs2.x);
D、super(x)调用父类的构造方
A、103102 B、204
C、205
D、206
14.下面()不是String类提供的合法的方法。
A、equals(String)//判断是否内容相同 B、trim()//去空格的函数 C、append()D、indexOf()//对索引进行处理
15.在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列()选项中的方法是LinkedList类有而ArrayList类没有的。A、add(Object o)B、add(int index,Object o)C、remove(Object o)D、removeLast()16.下列哪些说法是正确的?
A、IOException必须被捕获或抛出
B、java语言声明变量的同时必须赋值
C、java 语言不允许同时继承一个类并实现一个接口
D、垃圾收集可被随时强制执行 17.关于线程状态的说法正确的是()
A、使用new刚创建出来的线程是就绪状态 B、调用start()方法线程立即处于运行状态 C、提倡调用stop()方法终止线程
D、线程等待IO输入会处于线程阻塞状态 18.以下代码: class Message{
String mailmessage;}...Message data;Socket toServer=new Socket(“172.17.96.34”,1001);...ObjectOutputStream out=new ObjectOutputStream(toServer.getOutputStream());out.write(data);
在执行上面代码时引发异常NotSerializableException。引发此异常的可能原因是什么? A.没有连上服务器
B.此消息类(Message)声明不充分 C.输出套接字可能被破坏
D.写出到此套接字,不应使用ObjectOutputStream 19.关于JDBC编程,以下说法错误的是()。
A、使用Class.forName()方法加载数据库驱动程序
B、使用DriverManager的getConnection()方法建立与数据库的连接 C、使用Connection的executeQuery(sql)方法执行查询得到ResultSet对象 D、用executeUpdate()执行更新、删除语句不会得到ResultSet对象
20.下面代码段, class Dog {
} class Beagle extends Dog{ } 如果类Beagle继承Dog, 并且Beagle类只有一个构造器,下面哪个是Beagle类合法的构造器? A、Beagle(){ } B、Beagle(){ super();} C、Beagle(){ super(“fido”);}
D、不提供构造器,使用默认的构造器。Dog(String name){ }
二、多选题(错选、漏选不得分,2分/题*10题=20分)
1.下面的说法正确的是()。
A、Java 语言是面向对象的、解释执行的网络编程语言。
B、Java 语言具有可移植性,是与平台无关的编程语言。C、Java 语言可对内存垃圾自动收集。
D、Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。2.在Java接口中,下列选项中有效的方法声明是()。(选择二项)
A、public void aMethod();B、void aMethod();C、protected void aMethod();D、private void aMethod();3.定义变量如下:
char c='w';int i=8;long L=15;float f=8.9f;以下赋值语句正确的是()。
A、i=c+i;B、c=c+i;C、L=f+L;D、f=i+L+f;
4.面向对象程序设计的三大特征是()。
A、抽象 B、封装 C、继承 D、多态
5.下面关于类的说法正确的是()。
A、类是 Java 语言中的一种复合数据类型。B、类中包含数据变量和方法。
C、类是对所有具有一定共性的对象的抽象。D、Java 语言的类只支持单继承。
6.编译并运行下面的程序:
public class A {
} class B extends A { public static void main(String[] args){
} void test(){ } System.out.print(“A”);A a=new B();a.test();
} 以下结论正确的有().A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。B、代码可以编译运行,并输出结果:AB。C、代码可以编译运行,并输出结果:A。
D、子类B定义了与父类A中同名的方法test,java中称为方法的重载。7.下面哪些说法正确()?
A、如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B、如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。D、接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。8.关于面向对象的说法正确的是()
A、面向对象编程是类来描述现实世界中的实体 B、有多少个实体就要创建多少个类
C、对象的行为和属性被封装在类中,外界通过发送消息来通知对象执行某个任务 D、现实世界中的某些实体不能用类来描述 9.下面代码:
1.class Over { 2.3.4.5.} 6.7.class Over2 extends Over { 8.9.} 哪两个选项放在第8行会导致不能编译? A、public int doStuff(int x, float y){ return 4;} B、protected int doStuff(int x, float y){return 4;} C、private int doStuff(int x, float y){return 4;} D、String doStuff(int x, float y){ return “4”;} E、int doStuff(float x, int y){ return 4;} // 选择代码添加在此处 int doStuff(int a, float b){ } return 7;void test(){
} super.test();System.out.println(“B”);
10.以下关于布局的说法,正确的是()
A、布局管理是为了能自动适应窗口大小的变化
B、BorderLayout是边框布局,他将窗口分为上、下、左、右四部分
C、FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列
D、GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件
三、填空题(2分/题*5题=20分)1.补充下面代码的实现求数组中元素的最小值。
int[] x={122,33,55,678,-987};int min=_____999_________;for(int i=1;i } System.out.println(“最小值为:”+min); 2.终止循环使用关键字____break______,结束本次循环进入下一次循环使用关键字____continue______。3.子类中调用父类被重写的方法需使用关键字__Super,声明常量使用关键字___final______。4.自定义的异常类通常继承自______Execption____________类,方法声明中抛出异常使用关键字____throw______。 5.内部类的特点是内部类与外部类共享______外部类的成员变量_________;内部类中的实例变量与外部类的实例变量重名时,内部类中通过“_____________.this.外部类实例变量名”来引用外部类实例变量。if(_x[i] 四、问答题(4分/题*5题=20分)1.什么是垃圾,java垃圾回收的工作原理 2.类变量与实例变量的区别 3.Vector与TreeSet在存储结构和存取性能上的区别 4.IO流分为字节流和字符流,说明他们的区别,每一类分别说出两个java类 5.什么是线程安全问题?什么情况下容易产生线程安全问题?线程安全问题如何解决? 五、程序题(5分/题*2题=10分) 1.用循环输出九九乘法口诀表 2.编写TCP服务器端程序,并且每个连接启动一个单独的线程来处理。 升级投票器 ——变量的应用 学习目标 1.能读懂范例中的将移动模块或旋转模块插入到Scratch程序设计课程《升级投票器》复合模块中,控制角色如果按下某一键就移动或旋转,否则,停止该脚本的设计方法。 2.能灵活运用Scratch程序设计带有计时、显示结果等新功能的投票器。 学习重点 指导学生如何来玩,从玩中体验脚本设计的方法。 学习难点 帮助学生在理解脚本设计方法的基础上,修改脚本玩出不同效果。 学习过程: 一、谈话导入 上节课我们已经设计了简单的投票器,可以实现基本的投票、计票功能。小明想为投票器增加计时、显示选举结果等新功能,我们一起来实践探究一下吧! 二、试一试 学生阅读课本第73页的脚本,尝试理解脚本实现了什么样的功能。 勾选计算器指令前的方框,计算器即显示在舞台上。 三、脚本分析 1、系统变量 计算器类似于上节课所学的“用户自定义”变量,我们把这种变量称为“系统变量”。系统变量无须用户新建,用户直接使用即可。 2、基于自定义变量的条件判断 投票结束时,我们可以根据变量boy和girl中存储的数据进行比较,据此输出不同的图投票结果。 想一想:当boy>girl成立时,显示男孩获胜;当boy>girl不成立时,男孩获胜指令会被执行吗? 3、基于计时器的等待侦测 脚本的功能: 当计时器没有超过60秒时,程序处于等待状态,一旦条件满足,即执行本指令下面的脚本指令。 四、做一做 输出投票结果的多种算法实现 投票结束,两个变量的大小关系可能有三种情况,分别对应三种选举结果:“男孩获胜”、“女孩获胜”“未分出胜负,请重新投票”。 五、练一练 系统提供的计时器不能真正“停止”,我们能否使用自定义变量达到“计时”的目的? 六、探一探 随着程序的复杂度越来越高,多人合作开发软件的需求便显现出来。Scratch为我们提供了合作开发软件的可能,实现方法如下: 1、分工开发各角色及其脚本,并生成带脚本的角色文件。 2、在主项目文件或其他文件中,以↑从本地文件中上传角色的方式,导入角色。 导入角色后,角色的造型以及脚本一并被导入。以小组为单位,合作开发投票器小程序,并为软件增加更多的角色,如被选举人。 七、分享交流 邀请同学欣赏你的作品。 板书设计: 升级投票器 ——变量的应用 系统变量 基于自定义变量的条件判断 基于计时器的等待侦测 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1)使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。 (2)使用next()获得序列中的下一个元素。 (3)使用hasNext()检查序列中是否还有元素。 (4)使用remove()将迭代器新返回的元素删除。 Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。 迭代器应用: list l = new ArrayList();l.add(“aa”);l.add(“bb”);l.add(“cc”);for(Iterator iter = l.iterator();iter.hasNext();){ String str =(String)iter.next();System.out.println(str);} /*迭代器用于while循环 Iterator iter = l.iterator();while(iter.hasNext()){ String str =(String)iter.next();System.out.println(str);} */第四篇:六年级下册信息技术 教案18 升级投票器
第五篇:Java学习之Iterator(迭代器)的一般用法