课堂习题(模块1:Java编程逻辑)
室内装修设计图片-
课堂作业
模块
1
Java
编程逻辑
【第
1
课】
【作业
1
】编写一个
< br>Java
程序,在控制台上输出如下两行信息:
Hel
lo
,
World
!
< br>
Hello
,
Java
!
考核点
1
:了解一个<
/p>
Java
程序的启动位置(即
程序入口<
/p>
)
。
考核点<
/p>
2
:掌握
基本输出语句
< br>:
n(
字符串
)
【第
2
课】
【作业
1
】从键盘输入
3
个整数
a
、
b
、
c
,计算
a+b*c
的结果后输出,
验证计算结果是否遵循运算
符的优先级顺序。
考核点
1
:使用
Scanner
类获取键盘输入。
考核点
2
:基本运
算符及其优先级顺序。
【作业
p>
2
】从键盘输入
1
个实数
r
,计算以
r
< br>为半径的圆的面积并输
出结果,要求将
π
定义为符号常量。
考核点:
符号常量
的基本用法。
1 / 22
【第
3
课】
【作业
1
】从键盘输入
3
个整数,比较大小后输出最大者。
考核点:
if-
else
语句的运用。
【作业
2
】
从键盘输入一
个
3
位数,
判断其是否为水仙花数。<
/p>
所谓
“水
仙花数”
是指一个三位整数,
其各位数字立方和等于该数本身。
例如:
153=1
3
+5
3
+3
3
,
所以
153
是一个水仙花数。
考核点:基本数学运算符和逻辑运算符的用法。
【第
4
课】
【作业
1
】
从
键盘输入
3
个整数,
比较大小后按由小
到大的顺序输出。
考核点:
if-
else
语句嵌套运用。
【作业
2
】
从键盘输入
一个年份和一个月份,
输出此月份有多少天
(考
虑闰二月的情况)
。
考核点:使用
switch-
case
多分支语句。
【第
5
课】
【作业
1
】从键盘输入一个正整数,判
断其是否为素数。素数指只有
1
和它本身两个因子的整数。
p>
考核点:基本循环语句的用法。
2 / 22
【作业
2
】输出
100-999
之
间的全部水仙花数。
考核点:基本循环语句的用法。
<
/p>
【作业
3
】从键盘输入一个正整数,判断
并输出该正整数是几位数。
考核点
1
:
基本循环语句的用法。
考核点
2
p>
:分离一个整数各个位数字的方法。
【第
6
课】
【作业
1
】编写一个
< br>Java
程序,输出如下图案,图案的行数由键盘
输入。
(
1
p>
)观察图案中行、列及星星个数之间的关系。
(
2
)扩展练习,输出如下图案,图案的行数由键盘输入。
(
3
p>
)扩展练习,输出如下图案,图案的行数由键盘输入。
3 / 22
考核点
1
:发现图案中的变化规律
(
即逻辑)
。
考核点
2
:循环嵌套的用法。
<
/p>
【作业
2
】
从键
盘输入一个正整数
n
,
利用
似值,
n
为求和的总项数。
考核点:发现公式中的计算规律(即计算逻辑)
。
【作业
3
】百钱百鸡问题:公鸡每只
5
元、母鸡每只
p>
3
元、小鸡
3
只<
/p>
1
元,用
100
元钱买
100
只鸡,求公鸡、母鸡、小鸡的只数。
考核点
1
:多重循环的使
用。
考核点
2
:提炼和化简计算逻辑,将多重循环改进为单重循环。
【第
7
课】
【作业
1
】将输入的一个偶数
n(n>=6)
分解为两个素数之和。例如
8=
5+3
。
【作业
2
】有
n
个人围成一圈,顺序排号。从第一个人开始报数(从
4 / 22
< br>
1
1
1
1
...
求
π
的近
4
3
5<
/p>
7
1
到
3
报数)
,凡报到
3
的
人退出圈子,请输出这
n
个人退出圈子的
整个次序。
【第
8
课】
【作业
1
】将一个
n
×
n
方阵就地转置,即行列元素
互换。
(
1
)扩展成矩阵转置,将一个矩阵
a(m
×
n)
转置成一个新矩阵
b(n
p>
×
m)
。
【作业
2
】
建立如下的杨辉三角,行数
n
由键盘输入。
(
1
)分析出杨辉三角形中每个元素的
计算逻辑
。
< br>
(
2
)使用
< br>()
方法进行
格式化输出
。
p>
5 / 22
【第
9
课】
【作业
1
】
回
文串
:输入一个字符串,判断其是否为回文串并输出结
果。回文
串是指从左向右读与从右向左读都相同的一个字符串,如
12a3a21
就是一个回文串。
【作业
2
】
超大整数求和
:编写一个
Java
程序,能对输入的两个超
大非负整数求和。
例如:
输入
“
12345678
”
和
“
111
”
,
其和为
“
12345789
”
。
(
1
)每个超大非负整数以字符串形式存储。
(
2
)求和的结果也以字符串形式存储。
< br>
【作业
3
< br>】将一个正整数(万以内的数字)的每一位数值转换成中文
中的数值表示(如将<
/p>
5036
转换成“伍仟零叁拾陆”<
/p>
)
。
(
1
)使用
数据表
来简
化转换逻辑。
(
2
< br>)注意逻辑思维的严密性。
一组转换数据样例(万以内的数字)
数字串
0
零
6 / 22
汉字串
100
90000
90001
90500
91002
90070
90055
90909
90990
壹佰
玖万
玖万零壹
玖万零伍佰
玖万壹仟零贰
玖万零柒拾
玖万零伍拾伍
玖万零玖佰零玖
玖万零玖佰玖拾
【第
10
课】
【作业
1
】编写一个
< br>Java
程序,定义
Java
静
态方法实现下面数学分
段函数并进行验证。
【作业
2
】
编写一个
Java
< br>静态方法,
将一个
m*n
矩阵转
置成一个
n*m
矩阵。
7 / 22
< br>【作业
3
】
输入一个数字
a
,
求
S=a+aa
+aaa+aaaa+aaaaa
的和。
例如,
a=2
,则
S=2+22+222+2222+222
22
。
(
1
)学会发现问题中的共性以分解问题。
(
2
)理解解决同一问题的多种逻辑思维。
< br>
【第
11
课】
【作业
1
】编写一个
< br>Java
程序,输出
2
——
p>
1000
以内的全部完数。
一个完数恰好等
于其
全部因子
之和。
例如
6=1+2+3
,
故
6
p>
是一个完数,
28=1+2+4+7+14
,
故
28
也是一个完数。
要求采用模块化程序设计解决
此类问题。
【作业
2
】编写函数完成下列每种数制转换:
(
1
)十进制正整数
二进制正整数。
(
2
)十进制正整数
十六进制正整数。
8 / 22
(
3
)十进制正整数
八进制正整数。
p>
要求采用模块化程序设计解决此类问题,发现数制转换中的共性规
律。
【作
业
3
】从键盘输入一个棋盘的行数和列数,打印出棋盘的样子。
(
1
)
分析打印棋盘的整个过程,发现其中的逻辑步骤。
(
2
)
编写方法实现不同的逻辑步骤。
【第
12
课】
【作业
1
】汉诺塔问题:有
n
个盘子依其半径大小套在柱子
A
上,其
中半径大的在底下,
柱子
B
和
C
没套盘子。
< br>现要将
A
上的盘子全部搬
运到<
/p>
C
上(借助
B
)
,移动规则是每次只能移动一个盘子,并且不允
许将大盘子压在
小盘子的上面。
(
1
)分析归纳出搬运
n
个盘子的递归规律,编写
递归方法
。
(
2
)输出完整的搬运过程以及移动盘子的总次数。
9 / 22
【作业
2
】
编写一个
Java
程序,输入两个正整数
m
和
n
,输出
m
和
n
的最大公约数(
greatest common
divisor
)和最小公倍数(
Least
Common
Multiple
)
。
(
1
)最大公约数
gcd<
/p>
是指
m
和
n
p>
的全部公共因子之积,最小公倍数
lcm
为
m
和
n
之积除
以最大公约数
gcd
。
(
2
)掌握计算最大公约数的
递推方法
:辗转相除法。
【作业
3
】
天平称物:有四个砝码,总重量是
40
克,砝码的质量是
整数,且各不相等。请确定它们的质量,使之能称出
1
到
40
克之间
任何整数质量的物体。
10 / 22
【作业
4
】一个整数除以
3
余<
/p>
2
,除以
5
余<
/p>
3
,除以
7
余<
/p>
2
,求这个整
数。
【第
13
课】
【作业
1
】将二分查找算法改写为递归
形式。
【作业
2
】编写一个
Java
程序,从一
个字符串中
S
中删除所有和字
符串
p>
T
相同的子串,
输出删除后的结果。
例如:
S=
“
abc
dabef
”
,
T=
< br>,
则删除后的结果
S=
。
【作业
3
】编写一个
Java
程序,求得所有包含在串
S
中而不包含在
串
T
中的字符构成的新串
R
。例如:
S=
“
aabcddef
”
,
T=
,则
R=
。
【作业
4
】编写一个
Java
程序,求得串
S
和串
< br>T
中的一个最长公共
子串
R
p>
。例如:
S=
“
a
abcddef
”
,
T=
,则
R=
。
【第
14
课】
【作业
1
】改进冒泡排序算法,只要在
一趟冒泡排序过程中不发生相
邻记录的交换,则整个排序过程就可以立即结束。
11 / 22