JAVA基本程序练习题12.docx
《JAVA基本程序练习题12.docx》由会员分享,可在线阅读,更多相关《JAVA基本程序练习题12.docx(12页珍藏版)》请在冰豆网上搜索。
JAVA基本程序练习题12
JAVA基本程序练习题
(一)
【程序1】
题目:
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
程序分析:
可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
【程序2】
题目:
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
程序分析:
请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
【程序3】
题目:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:
在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
【程序4】
题目:
输入某年某月某日,判断这一天是这一年的第几天?
程序分析:
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
【程序5】
题目:
输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:
我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
【程序6】
题目:
用*号输出字母C的图案。
程序分析:
可先用'*'号在纸上写出字母C,再分行输出。
【程序8】
题目:
输出9*9口诀。
程序分析:
分行与列考虑,共9行9列,i控制行,j控制列。
【程序9】
题目:
要求输出国际象棋棋盘。
程序分析:
用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
【程序11】
题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21....
【程序12】
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
【程序13】
题目:
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
程序分析:
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
【程序14】
题目:
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,
重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【程序15】
题目:
利用条件运算符的嵌套来完成此题:
学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:
(a>b)?
a:
b这是条件运算符的基本例子。
【程序16】
题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
程序分析:
利用辗除法。
【程序17】
题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
【程序18】
题目:
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时
共有5个数相加),几个数相加有键盘控制。
程序分析:
关键是计算出每一项的值。
【程序19】
题目:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程
找出1000以内的所有完数。
【程序20】
题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?
第10次反弹多高?
【程序21】
题目:
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下
的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
程序分析:
采取逆向思维的方法,从后往前推断。
【程序22】
题目:
两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定
比赛名单。
有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
【程序23】
题目:
打印出如下图案(菱形)
*
***
******
********
******
***
*
程序分析:
先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重
for循环,第一层控制行,第二层控制列。
【程序24】
题目:
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
程序分析:
请抓住分子与分母的变化规律。
【程序25】
题目:
求1+2!
+3!
+...+20!
的和
程序分析:
此程序只是把累加变成了累乘。
【程序26】
题目:
利用递归方法求5!
。
程序分析:
递归公式:
fn=fn_1*4!
【程序27】
题目:
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
【程序28】
题目:
有5个人坐在一起,问第五个人多少岁?
他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?
程序分析:
利用递归的方法,递归分为回推和递推两个阶段。
要想知道第五个人岁数,需知道
第四人的岁数,依次类推,推到第一人(10岁),再往回推。
【程序29】
题目:
给一个不多于5位的正整数,要求:
一、求它是几位数,二、逆序打印出各位数字。
程序分析:
学会分解出每一位数。
【程序30】
题目:
一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
程序分析:
同29例
【程序31】
题目:
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续
判断第二个字母。
程序分析:
用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
【程序36】
题目:
求100之内的素数
【程序37】
题目:
对10个数进行排序
程序分析:
可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
下次类推,即用第二个元素与后8个进行比较,并进行交换。
【程序38】
题目:
求一个3*3矩阵对角线元素之和
程序分析:
利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
【程序39】
题目:
有一个已经排好序的数组。
现输入一个数,要求按原来的规律将它插入数组中。
程序分析:
首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
此元素之后的数,依次后移一个位置。
【程序40】
题目:
将一个数组逆序输出。
程序分析:
用第一个与最后一个交换。
【程序54】
题目:
取一个整数a从右端开始的4~7位。
程序分析:
可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。
可用~(~0<<4)
(3)将上面二者进行&运算。
【程序56】
题目:
画一个奥运五环标志,学用circle画圆形。
【程序57】
题目:
画一个五角星,学用line画直线。
【程序58】
题目:
画图,学用rectangle画方形。
【程序61】
题目:
打印出杨辉三角形(要求打印出10行如下图)
程序分析:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
【程序66】
题目:
输入3个数a,b,c,按大小顺序输出。
【程序67】
题目:
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
【程序68】
题目:
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
【程序69】
题目:
有n个人围成一圈,顺序排号。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
【程序70】
题目:
写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
【程序71】
题目:
编写input()和output()函数输入,输出5个学生的数据记录。
【程序72】
题目:
创建一个链表。
【程序73】
题目:
反向输出一个链表。
【程序74】
题目:
连接两个链表。
【程序76】
题目:
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n。
【程序79】
题目:
字符串排序。
【程序80】
题目:
海滩上有一堆桃子,五只猴子来分。
第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
第二只猴子把剩下的桃子又平均分成五份,又多了
一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
问海滩上原来最少有多少个桃子?
【程序81】
题目:
809*?
?
=800*?
?
+9*?
?
+1其中?
?
代表的两位数,8*?
?
的结果为两位数,9*?
?
的结果为3位数。
求?
?
代表的两位数,及809*?
?
后的结果。
【程序82】
题目:
八进制转换为十进制
【程序83】
题目:
求0—7所能组成的奇数个数。
【程序84】
题目:
一个偶数总能表示为两个素数之和。
【程序85】
题目:
判断一个素数能被几个9整除
【程序86】
题目:
两个字符串连接程序
【程序88】
题目:
读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。
【程序89】
题目:
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
【程序96】
题目:
计算字符串中子串出现的次数
【程序97】
题目:
从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。
【程序98】
题目:
从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。
输入的字符串以!
结束。
【程序99】
题目:
有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
【程序100】
题目:
有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
JAVA基本程序练习题
(二)
1、本程序从键盘输入一个5*5整型数组赋值,找出其中的最小值并显示出来。
2、本程序从键盘输入10个整数存入一数组中,然后将该数组中的各元素按ni序存放后显示出来。
3、本程序演示计算一维数组中所有元素的平均值。
4、本程序演示输入100个整型数据,找出其中的最大值并显示出来。
5、本程序演示从键盘输入x的值,计算并打印下列分段函数的值。
y=0(x<60)
y=1(60<=x<70)
y=2(70<=x<80)
y=3(80<=x<90)
y=4(x>=90)
6、本程序演示一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
7、本程序演示输入三个整数x,y,z,请把这三个数由小到大输出。
8、本程序演示输出9*9口诀。
9、本程序演示判断101-200之间有多少个素数,并输出所有素数。
10、本程序演示打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
11、本程序演示将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
12、本程序演示输入两个正整数m和n,求其最大公约数和最小公倍数。
13、本程序演示输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
14、本程序演示一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。
15、本程序演示猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
16、本程序演示打印出如下图案(菱形)
*
***
******
********
******
***
*
17、本程序演示求1+2!
+3!
+...+20!
的和
18、本程序演示一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
19、本程序演示求100之内的素数
20、本程序演示对10个数进行排序
21、本程序演示编一个函数fun(Stringstr),函数的功能是把字符串中的内容逆置。
例如:
字符串中原有的内容为:
abcdefg,则调用该函数后,串中的内容为:
gfedcba。
22、本程序演示实现矩阵(3行3列)的转置(即行列互换)。
23、本程序演示编一个函数fun(int*a,intn,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。
形参n给了数组中数据的个数:
利用指针odd返回奇数之和,利用指针even返回偶数之和。
例如:
数组中的值依次为:
1,8,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。
24、要求程序的功能是:
把20个随机数存入一个数组,然后输出该数组中的最小值。
其中确定最小值的下标的操作在fun函数中实现,请给出该函数的定义。
25、请编一个函数floatfun(doubleh),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。
例如:
h值为8.32433,则函数返回8.32;h值为8.32533,则函数返回8.33。
26、编写函数fun,函数的功能是:
从字符串中删除指定的字符。
同一字母的大、小写按不同字符处理。
例:
若程序执行时,输入字符串为:
turbocandBorlandc++,从键盘上输入字符:
n,则输出后变为:
turbocadborladc++,如果输入的字符串不存在,则字符串照原样输出。
27、请编写一个unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,函数求出w的后n-1位的数作为函数值返回。
例如:
w值为5923,则函数返回923;w值为923则函数返回23。
28、编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。
29、请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。
二维数组中的值在主函数中赋予。
30、请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。
例如,原来的字符串为CEAedca,排序后输出为CedcEAa。
31、请编一函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中,二维数组中的数已在主函数中赋予。
32、写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。
(注意:
用****作为结束输入的标志。
)
33、请编一个函数fun,其中n所指存储单元中存放了数组中元素的个数。
函数的功能是:
删除所有值为y的元素。
数组元素中的值和y的值由主函数通过健盘读入。
34、编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为:
asdasasdfgasdaszx67asdmklo,子字符串为:
as,则应输出6。
35、请编写一个函数intfun(intx),它的功能是:
判断整数x是否是同构数。
若是同构数,函数返回1;否则返回0。
所谓“同构数”是指这样的数,它出现在它的平方数的右边。
例如:
输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数。
x的值由主函数从健盘读入,要求不大于100。
36、请编写函数fun,函数的功能是:
在字符串中所有数字字符前加一个$字符。
例如,输入:
A1B23CD45,则输出为:
A$1B$2$3CD$4$5。
37、请编一个函数fun(char*s),函数的功能是把字符串中所有的字符前移一个位置,串中的第一个字符移到最后。
例如:
原有的字符串为:
Mn.123xyZ,则调用该函数后,串中的内容为:
n.123xyZM。
38、请编写函数fun,函数的功能是:
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如,若输入:
17,则应输出:
9和46891012141516。
39、请编一个函数fun(char*s),函数的功能是把字符串中所有的字母改写成该字母的下一个字母,最后一个字母z改写成字母a。
大写字母仍为大写字母,小写字母仍为小写字母,其他的字符不变。
例如:
原有的字符串为:
Mn.123zyZ,则调用该函数后,串中的内容为:
No.123yzA。
40、请编写函数fun,函数的功能是:
将s所指字符串中、下标为奇数位置上的大写字母转换为字母序列中的下一个小写字母;若该位置上是小写字母,则不转换;若该位置上是大写字母Z,则仅转换成小写字母z。
例如,输入:
ABCdxZZZ,则输出为:
AcCdXzZz。
41、程序定义了N*N的二维数组,并在主函数中赋值。
请编写函数fun,函数的功能是:
给数组周边元素置0值。
42、请编写函数fun,它的功能是:
求出ss所指字符串中、指定字符的个数,并返回此值。
例如:
若输入字符串:
123412132,输入字符为:
1,则输出:
3。
43、程序定义了N*N的二维数组,并在主函数中赋值。
请编写函数fun,函数的功能是:
求出数组周边元素的平均值并作为函数值返回给主函数中的s。
44、编写一个函数fun,它的功能是:
实现两个字符串的连接(不使用库函数strcat)。
例如,分别输入下面两个字符串:
FirstSrting—
SecondString
程序输出:
FirstString—SecondString
45、程序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N]),函数的功能是:
使数组第一列元素中的值与最后一列元素中的值对调、第二列元素的值与倒数第二列中的值对调、……、其他依次类推。
46、请编写函数fun,函数的功能是:
实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。
计算结果在main函数中输出。
47、程序序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N]),函数的功能是:
使数组第一行元素中的值与最后一行元素中的值对调、第二行元素的值与倒数第二行中的值对调、……、其他依次类推。
48、m个人的成绩存放在score数组中,请编写函数fun,它的功能是:
将低于平均分的人数作为函数值返回。
例如,当score数组中的数据为:
10、20、30、40、50、60、70、80、90、时,函数返回的人数应该是4,below中的数据应为:
10、20、30、40。
49、程序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N]),函数的功能是:
使数组左下半三角元素中的值全部置成0。
50、请编写函数fun,经的功能是:
求出1到1000之内能被7或11整除、但不能同时补7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
51、程序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N]),函数的功能是:
使数组右上半三角元素中的值全部置成0。
52、编写函数voidfun(intx,intpp[],int*n),它的功能是:
求出能整除x且不是偶数的各整数,并放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为:
30,则有4个数符合要求,它们是1,3,5,15。
53、程序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N],intn),函数的功能是:
使数组右上半三角元素中的值乘以m。
54、编写一个函数voidfun(char*tt,intpp[]),统计在tt字符串中’a’到’z’26个字母各自出现的次数,并依次放在pp所指数组中。
例如,当输入字符串:
abcdefgabcdeabc后,程序的输出结果应该是:
33322110000000000000000000
55、程序定义了N*N的二维数组,并在主函数中自动赋值。
请编写函数fun(inta[][N],intn),函数的功能是:
使数组左下半三角元素中的值乘以n。
56、函数fun的功能是:
将两个两位数的整数a、b合并形成一个整数放在c中。
合并的方式是:
将a的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。
例如:
当a=45,b=12。
调用该函数后,c=4251
57、请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:
将大于整数m且紧靠m的k个素数存入xx所指的数组中。
例如,若输入17,5,则应输出:
19,23,29,31,37。
58、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。
请编写函数fun,函数的功能是:
找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。
已给出函数的首部,请完成该函数。
59、请编写一个函数voidfun(chara[],intk,intn),其功能是:
删除字符串中指定下标开始的n个字符。
其中