习 题
一、选择题
1.下面不属于Java条件分支语句结构的是( )。
A.if结构 B.if-else结构 C.if-else if结构 D.if-else else结构
2.多分支语句switch(表达式){}中,表达式不可以是哪种类型的值?( )
A.int B.float C.char D.byte
3.下列方法method()执行后,返回值为( )。

A.10 B.20 C.30 D.编译出错
4.一个循环一般应包括哪几部分内容?( )
A.初始化部分 B.循环体部分
C.迭代部分和终止部分 D.以上都是
5.关于while和do-while循环,下列说法正确的是( )。
A.两种循环除了格式不同外,功能完全相同
B.与while语句不同的是,do-while语句的循环至少执行一次
C.do-while语句首先计算终止条件,当条件满足时,才去执行循环体中的语句
D.以上都不对(https://www.daowen.com)
6.下列程序输出结果为( )。


A.0 B.2 C.3 D.4
二、编程题
1.使用for循环结构实现:从键盘上接收从周一至周五每天的学习时间(以小时为单位),并计算每日平均学习时间。
2.分别用while循环和do-while计算1+1/2!+1/3!+1/4!…的前10项和。
3.质数就是除了1和它本身以外不再有其他的因数,编写一个应用程序求200以内的全部质数。
4.完数就是该数恰好等于它的因子之和,如:6=1+2+3,编写应用程序求1000之内的所有完数。
5.编写一个应用程序,它从1计数到100,遇到3的倍数输出单词“Flip”,遇到5的倍数就输出单词“Flop”,遇到既是3又是5的倍数时则输出单词“FlipFlop”,其余情况下输出当前数字。
6.编写一个应用程序,实现快速排序。
该算法的实现可分为以下几步:
① 在数组中选一个基准数(通常为数组第一个)。
② 将数组中小于基准数的数据移到基准数左边,大于基准数的移到右边。一次循环:从后往前比较,用基准值和最后一个值比较,比基准值小的交换位置,如果没有,继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比较,如果有比基准值大的,交换位置,如果没有继续比较下一个,直到找到第一个比基准值大的值才交换。直到从前往后的比较索引=从后往前比较的索引,结束第一次循环。
③ 对基准数左、右两边的数组不断重复以上两个过程,直到每个子集只有一个元素,即为全部有序。