Java基本数据类型与数组
思维导图
PTA题目
判断题
1-1
程序运行中可以改变数组的大小。
F
1-2
Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。
T
1-3
数组也是对象。
T
1-4
使用方法length( )可以获得字符串或数组的长度。
F
1-5
一个数组可以存放不同类型的数值。
F
1-6
Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。
T
1-7
java语言中不用区分字母的大写小写。
F
1-8
Java的字符类型采用的是ASCII编码。
F
1-9
Java的字符类型采用的是Unicode编码,每个Unicode码占16个比特。
T
1-10
Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。
T
1-11
Java语言中,变量名可以用汉字表示。
T
1-12
语句 System.out.println(4+8+“Hello,world!”); 的输出结果是12Hello,world!。
F
1-13
boolean型数据的值只有true和false。
T
1-14
Java中数组的元素只能是简单数据类型。
T
1-15
把数组中元素按某种顺序排列的过程叫做查找 。
F
1-16
一个数组可以存放许多不同类型的数值。
F
1-17
数组中有length()这个方法,如array.length()表示数组array中元素的个数
F
1-18
制造(new)数组时,要指定数组长度,以便为数组分配内存。
T
1-19
Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。
F
单选题
程序填空题
该程序功能是遍历数组,输出一维数组的所有元素,
- public class Main {
public static void main(String[] args) {
int[] a={10,3,1,3,53,23,232,90,21,33};
for( 【代码一】 【代码二】 : 【代码三】)
{
System.out.print( 【代码四】+" ");
}
}
}
输出样例:
10 3 1 3 53 23 232 90 21 33
代码一:int
代码二:t
代码三:a
代码四:t
2
用数组来求Fibonacci数列问题,打印前20项数列,每行打印4个数。。
public class Main {
public static void main(String[] args) {
int f[]=new int[20];
f[0]=1;
f[1]=1;
for(int i=2;i<20;i++){
【代码一】 ;
}
for(【代码二】;i<20;i++){
System.out.printf("%12d",f[i]);
if(【代码三】)
System.out.println();
}
}
}
代码一:f[i]=f[i-1]+f[i-2]
代码二:int i=0
代码三:(i+1)%4==0
编程题
7-1 编程题:判断闰年-hebust (10分)
根据输入的正整数y所代表的年份,计算输出该年份是否为闰年 闰年的判断标准:
能够被4整除且不能被100整除的年份
或者能够被400整除的年份
输入格式:
输入n取值范围是 【1…3000】
输出格式:
是闰年,输出 yes
非闰年,输出 no
输入样例:
在这里给出一组输入。例如:
100
输出样例:
在这里给出相应的输出。例如:
no
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int k=0;
if(a<0||a>3000){
System.out.println("年份有误!");
}
if(a%4==0&&a%100!=0||a%400==0)
{
System.out.println("yes");
}
else
{
System.out.println("no");
}
}
}
7-2 java基本语法-整数四则运算 (10分)
输入2个整数,输出它们的和、差、乘积和准确的商。
输入格式:
输入两个整数
输出格式:
每一行中依次输出四则运算的结果
输入样例:
70
16
输出样例:
在这里给出相应的输出。例如:
86
54
1120
4.375
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double a=sc.nextDouble();
double b=sc.nextDouble();
System.out.printf("%.0f\n",a+b);
System.out.printf("%.0f\n",a-b);
System.out.printf("%.0f\n",a*b);
System.out.println(a/b);
}
}
7-3 计算钱币 (10分)
编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始。纸币的种类有十元、五元、一元,硬币的种类有五角、一角、贰分、壹分。
输入格式:
47.63
输出格式:
4 张十元
1 张五元
2 张一元
1 个五角
1 个一角
1 个贰分
1 个壹分
输入样例:
在这里给出一组输入。例如:
47.63
输出样例:
在这里给出相应的输出。例如:
4 张十元
1 张五元
2 张一元
1 个五角
1 个一角
1 个贰分
1 个壹分
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double n=sc.nextDouble();
double a,b,c,d,e,f,g;
a=n/10;
n=n%10;
b=n/5;
n=n%5;
c=n/1;
n=n%1;
d=n/0.5;
n=n%0.5;
e=n/0.1;
n=n%0.1;
f=n/0.02;
n=n% 0.02;
g=n/0.01;
System.out.printf("%.0f张十元\n%.0f张五元\n%.0f张一元\n%.0f个五角\n%.0f个一角\n%.0f个贰分\n%.0f个壹分",a,b,c,d,e,f,g);
}
}
7-4 有重复的数据 (10分)
在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。
输入格式:
你的程序首先会读到一个正整数n,1<=n<=100000。然后是n个整数。
输出格式:
如果这些整数中存在重复的,就输出:
YES
否则,就输出:
NO
输入样例:
5
1 2 3 1 4
输出样例:
YES
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int len=scanner.nextInt();
scanner.nextLine();
String str = scanner.nextLine();
String[] strs = str.split(" ");
Set<Integer> set = new HashSet<Integer>();
for (int i=0; i<len; i++) {
set.add(Integer.parseInt(strs[i]));
}
if (set.size() == len) {
System.out.println("NO");
}else {
System.out.println("YES");
}
}
}
7-5 摘苹果 (5分)
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出很多苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知每个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式:
包括三行数据。 第一行是一个整数n,表示有n个苹果。苹果至少有一个,不超过1000个。 第二行包含n个100到200之间(包括100和200)的整数(以厘米为单位)分别表示这n个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。 第三行是一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式:
一个整数,表示陶陶能够摘到的苹果的数目。
输入样例:
10
100 200 150 140 129 134 167 198 200 111
110
输出样例:
5
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[]apple=new int[n];
for(int i=0;i<n;i++)
{
apple[i]=sc.nextInt();
}
int s=sc.nextInt();
int k=0;
for(int i=0;i<n;i++)
{
if(apple[i]<=s||apple[i]<=(s+30))
{
k++;
}
}
System.out.println(k);
}
}
7-6 jmu-Java-01入门-取数字浮点数 (2分)
本题目要求读入若干以回车结束的字符串表示的整数或者浮点数,然后将每个数中的所有数字全部加总求和。
输入格式:
每行一个整数或者浮点数。保证在浮点数范围内。
输出格式:
整数或者浮点数中的数字之和。题目保证和在整型范围内。
输入样例:
-123.01
234
输出样例:
7
9
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while (true){
String s = sc.nextLine();
char[] chars = s.toCharArray();
int sum=0;
for (int i=0;i<chars.length;i++){
if (chars[i]=='-'||chars[i]=='+'||chars[i]=='.') {
}else {
int tmp=Integer.valueOf(chars[i])-48;
sum+=tmp;
}
}
System.out.println(sum);
}
}
}
转载:https://blog.csdn.net/weixin_45739450/article/details/105546476