Java程序设计练习题7集合与泛型

选择题

R1-1

分数 1

作者 强彦

单位 太原理工大学

制造(new)数组时,要指定数组长度,以便为数组分配内存。

T

F


R1-2

分数 1

作者 翁恺

单位 浙江大学

Arrays in Java can change its size as needed.

Java中的数组可以根据需要更改其大小。

T

F


R1-3

分数 1

作者 强彦

单位 太原理工大学

一个数组可以存放许多不同类型的数值。

T

F


R1-4

分数 1

作者 翁恺

单位 浙江大学

There is a length() method for all the arrays to represent the number of elements

所有数组都有一个length()方法来表示元素的数量

T

F


R1-5

分数 1

作者 翁恺

单位 浙江大学

An array subscript may be an integer or an integer expression. If a program uses an expression as a subscript, then the expression is evaluated to determine the particular element of the array.

数组下标可以是整数或整数表达式。如果程序使用表达式作为下标,则对表达式求值以确定数组的特定元素。

T

F


R1-6

分数 1

作者 殷伟凤

单位 浙江传媒学院

Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。( )

T

F


R1-7

分数 1

作者 翁恺

单位 浙江大学

length of an array is the number of elements in the array.

数组的长度是数组中的元素数。

T

F


R1-8

分数 1

作者 翁恺

单位 浙江大学

To pass one row of a double-subscripted array to a method that receives a single-subscripted array, simply pass the name of the array followed by the row subscript.

要将双下标数组的一行传递给接收单下标数组的方法,只需传递数组名称,后跟行下标即可。

T

F


R1-9

分数 1

作者 强彦

单位 太原理工大学

数组作为方法的参数时,必须加在数组名后加方括号。

T

F


R1-10

分数 1

作者 强彦

单位 太原理工大学

把数组中元素按某种顺序排列的过程叫做查找 。

T

F


R1-11

分数 1

作者 强彦

单位 太原理工大学

数组中有length()这个方法,如array.length()表示数组array中元素的个数

T

F


R1-12

分数 1

作者 王从银

单位 吉首大学

Java中数组的元素只能是简单数据类型。

T

F


R1-13

分数 1

作者 强彦

单位 太原理工大学

Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。

T

F

单选题

R2-1

分数 2

作者 强彦

单位 太原理工大学

关于char类型的数组,说法正确的是( )。

A.

数组不能转换为字符串

B.

可以存储整型数值

C.

可以仅通过数组名来访问数组

D.

其数组的默认值是'A'


R2-2

分数 2

作者 王从银

单位 浙江大学

给出下面代码,关于该程序以下哪个说法是正确的?(    )

public class Person{static int arr[] = new int[5];public static void main(String a[]) {System.out.println(arr[0]);}
}

A.

输出空

B.

输出0

C.

编译时将产生错误

D.

编译时正确,运行时将产生错误


R2-3

分数 2

作者 强彦

单位 太原理工大学

定义了一维int型数组a[10]后,下面错误的引用是( ) 。

A.

a[10]=2

B.

a[0]=1

C.

a[1]=a[2]*a[0]

D.

a[0]=5*2


R2-4

分数 2

作者 王从银

单位 吉首大学

下面关于数组声明和初始化的语句那个有语法错误?(   )

A.

String a2[]={"string1","string1","string1"};

B.

int[][] a4=new int[3][3];

C.

int a1[]={3,4,5};

D.

String a3[]=new String(3);


R2-5

分数 2

作者 强彦

单位 太原理工大学

下面程序的运行结果是( )

main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);
}

A.

60

B.

30

C.

50

D.

20


R2-6

分数 2

作者 强彦

单位 太原理工大学

下列语句会造成数组new int[10]越界是( )。

A.

a[0] += 9;

B.

for(int i=0;i<=10;i++) a[i]++;

C.

a[9]=10;

D.

a[9]


R2-7

分数 2

作者 强彦

单位 太原理工大学

定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为( )

A.

25

B.

17

C.

24

D.

18


R2-8

分数 2

作者 强彦

单位 太原理工大学

下列数组声明,下列表示错误的是( )

A.

int[ ] a

B.

int[ ]a[ ]

C.

int[ ][ ] a

D.

int a[ ]


R2-9

分数 2

作者 王从银

单位 吉首大学

执行下面代码,下面描述正确的是( )。

public class Person{static int arr[] = new int[10];public static void main(String a[]){System.out.println(arr[1]);}
}

A.

产生编译错误

B.

编译正确,运行错误

C.

输出空

D.

输出0


R2-10

分数 2

作者 强彦

单位 太原理工大学

当访问无效的数组下标时,会发生( )。

A.

抛出异常

B.

系统崩溃

C.

中止程序

D.直接跳过


R2-11

分数 2

作者 王从银

单位 吉首大学

执行完以下代码int [ ]  x = new int[10];后,以下哪项说明是正确的(   )

A.

x[9]为0

B.

x[10]为0

C.

x[0]为空

D.

x[9]未定义


R2-12

分数 2

作者 王从银

单位 吉首大学

有语句String s=”hello world”; ,以下操作哪个是不合法的?(    )

A.

s>>>=3;

B.

String ts=s.trim();

C.

int i=s.length();

D.

String t=s+”!”;

程序填空题 

R5-1

计算N阶矩阵的主对角线和反对角线之和

分数 10

作者 刘永福

单位 河北农业大学

下列给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元
素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线
元素中的值。

例如:若N=3,有下列矩阵:

                         1  2  34  5  67  8  9首先累加1、5、9,然后累加3、5、7,函数返回值为30。

 public class Main {
public static void main(String[] args) {
int t[][]={{21,2,13,24},{25,16,47,38},{29,11,32,54},{42,21,3,10}};
System.out.println("The original data:");
for(int i=0;i for(int j=0; j<@@[t.length](2); j++)
System.out.printf("%4d",t[i][j]);
System.out.println();
}
System.out.println("The result is:"+fun(t));
}
public static int fun(int t[][]){
int sum;
@@[sum=0](2);
for(int i=0; i sum+=@@[t[i][i]](3);
for(int i=0; i sum+= t[i][t.length-i-@@[1](3)];
return sum;
}
}


R5-2

求一个二维数组中每行的最大值和每行的和

分数 10

作者 刘永福

单位 河北农业大学

以下程序的功能是求一个二维数组中每行的最大值和每行的和。

输入样例

3 
1 2 3 
6 5 4 
7 9 8

输出样例

1  2  3  3  6
6  5  4  6 15
7  9  8  9 24

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner sc=new Scanner(@@[System.in](2));
int n=sc.nextInt();
int a[][]=new int[n][n];
int b[]=new int[n];
int c[]=new int[n];
for(int i=0;i for(int j=0;j<@@[a[i].length](2);j++){
a[i][j]=sc.nextInt();
}
}
int max,s;
for(int i=0;i max=a[i][0];
@@[s=0](2);
for(int j=0;j if(a[i][j]>max){
@@[max=a[i][j]](2);
}
s+=a[i][j];
}
b[i]=max;
c[i]=s;
}
for(int i=0;i for(int j=0;j System.out.printf("%3d",@@[a[i][j]](2));
}
System.out.printf("%3d%3d",b[i],c[i]);
System.out.println();
}
}
}


R5-3

foreach遍历输出一维数组元素

分数 8

作者 黎浩宏

单位 浙江工贸职业技术学院

该程序功能是遍历数组,输出一维数组的所有元素,

public class Main {
public static void main(String[] args) {
int[] a={10,3,1,3,53,23,232,90,21,33};
for(@@[int](2) @@[t](2):@@[a](2))
{
System.out.print(@@[t](2)+" ");
}
}

###输出样例:
10 3 1 3 53 23 232 90 21 33


R5-4

Longest word

分数 5

作者 翁恺

单位 浙江大学

This program reads a line from user's input and analysis each word in the line, prints out each word and the longest length of the words.

FYR: toUpperCase() of String can turn a string into all upper case, and the Scanner has a methods nextLine() to read a whole line in.

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int max = 0;
Scanner in = new Scanner(System.in);
String line = in.@@[nextLine()](1); // read a whole line in
String[] a = line.@@[split(" ")](1); // split the line according to space
for ( @@[String s: a](1) ) { // iterate every word in the line
@@[s = s.toUpperCase()](1); // turn the whole word into upper case
System.out.println(s); // print out the upper case word
max = Integer.max(max, @@[s.length()](1)); // find the longest word
}
System.out.println(max);
in.close();
}
}


R5-5

输出Fibonacci数列

分数 10

作者 刘永福

单位 河北农业大学

用数组来求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++){
@@[f[i]=f[i-1]+f[i-2]](3);
}
for(@@[int i=0](3);i<20;i++){
System.out.printf("%12d",f[i]);
if(@@[(i+1)%4==0](4))
System.out.println();
}
}
}

编程题 

R7-1 jmu-Java-01入门-取数字浮点数

分数 2

全屏浏览题目

作者 郑如滨

单位 集美大学

本题目要求读入若干以回车结束的字符串表示的整数或者浮点数,然后将每个数中的所有数字全部加总求和。

输入格式:

每行一个整数或者浮点数。保证在浮点数范围内。

输出格式:

整数或者浮点数中的数字之和。题目保证和在整型范围内。

输入样例:

-123.01
234

输出样例:

7
9

代码长度限制

16 KB

时间限制

400 ms

内存限制

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);while (cin.hasNext()) {String string = cin.nextLine();int sum = 0;for (int i = 0; i < string.length(); i++) {if (Character.isDigit(string.charAt(i))) {sum += string.charAt(i) - '0';}}System.out.println(sum);}}}

R7-2 求一组数组中的平均数

分数 10

全屏浏览题目

作者 黎浩宏

单位 浙江工贸职业技术学院

输入10个整数,输出这10个整数的的平均数,要求输出的平均数保留2位小数

###输入样例:
1 2 3 4 5 6 7 8 9 10
###输出样例:
5.50

代码长度限制

16 KB

时间限制

400 ms

内存限制

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);double sum = 0;for (int i = 0; i < 10; i++) {int x = cin.nextInt();sum += x;}System.out.printf("%.2f" ,sum / 10);}}

R7-3 评委打分

分数 5

全屏浏览题目

作者 翁恺

单位 浙江大学

班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢?

输入格式:

第一行有十个整数,表示十位同学的初始分。第二行一个整数n,表示有n道题竞赛。
接下去有n行,每行有一个数字x,x表示本次可以加分的选手序号(每次答对者得10分)。

输出格式:

10个同学最终的得分值,每两位同学之间有一个空格。

输入样例:

10 0 0 0 10 10 0 0 0 10
3
1
10
1

输出样例:

30 0 0 0 10 10 0 0 0 20

代码长度限制

16 KB

时间限制

400 ms

内存限制

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int[] a = new int[12];for (int i = 0; i < 10; i++) {a[i] = cin.nextInt();}int n = cin.nextInt();for (int i = 0; i < n; i++) {int x = cin.nextInt();a[x - 1] += 10;}for (int i = 0; i < 10; i++) {if (i != 0)System.out.print(" ");System.out.print(a[i]);}}
}

R7-4 打台球

分数 5

全屏浏览题目

作者 翁恺

单位 浙江大学

杨同学迷上了一款叫诺斯克的台球游戏,而且随着练习的深入,他总是能在某些神奇的时刻开启外挂模式,此时小李将指哪打哪,直至无球可打。现在杨同学想让你帮他计算下当他开启外挂模式的时候最多可以取得多少分数。注意:台面上的球数可能与传统斯诺克的不同。

比赛的基本规则如下:

  1. 彩球共分8种颜色,红(1分)、黄(2分)、绿(3分)、棕(4分)、蓝(5分)、粉(6分)、黑(7分)、白(主球,控制白球来打其余球);
  2. 当台面上有红球的时候你必须先击打一个红球,然后能且只能击打一个彩球(不包括红球),此时落袋的彩球将会被放回桌面,一直重复该过程;
  3. 当打完规则2的彩球(不包括红球)发现已经没有红球时,按照彩球的分值从低到高将其依次击入袋中。

输入格式:

输入仅有一行,共7个用空格隔开的整数,分别为当前台面上红、黄、绿、棕、蓝、粉、黑球的数目。

输出格式:

输出1个整数,表示杨同学可以得到的最高分。

输入样例:

2 0 1 0 3 0 2 

输出样例:

48

台面上共有红球2个、绿球1个、蓝球3个、黑球2个,获得最高分的打法是红-黑-红-黑-绿-蓝-蓝-蓝-黑-黑,共可以获得48分。

代码长度限制

16 KB

时间限制

400 ms

内存限制

// package pta代码;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int f[] = new int[10];int sum = 0;for (int i = 1; i <= 7; i++) {f[i] = cin.nextInt();}sum += f[1];for (int i = 7; i > 1; i--)if (f[i] != 0) {sum += i * f[1];break;}for (int i = 2; i <= 7; i++)sum += f[i] * i;System.out.print(sum);}
}

R7-5 用foreach求数组之和

分数 10

全屏浏览题目

作者 ami

单位 临沂大学

定义一个整型数组a, 数组长度通过键盘给出,使用foreach语句,求数组所有元素之和。

输入格式:

输入在第一行给出数组的长度
第二行给出数组每个元素的值,空格隔开

输出格式:

输出和的值

输入样例:

在这里给出一组输入。例如:

5
1 2 3 4 5

输出样例:

在这里给出相应的输出。例如:

15

代码长度限制

16 KB

时间限制

400 ms

内存限制

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int sum = 0;for (int i = 0; i < n; i++) {sum += in.nextInt();}System.out.println(sum);}
}

R7-6 输出所有大于平均值的数

分数 15

全屏浏览题目

作者 刘永福

单位 河北农业大学

本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。

输入格式:

输入在第1行中给出一个正整数n(1≤n≤10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。

输出格式:

输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。

如果输入的n不在有效范围内,则在一行中输出"Invalid."。

输入样例1:

10
55 23 8 11 22 89 0 -1 78 186

输出样例1:

在这里给出相应的输出。例如:

47.10
55 89 78 186 

输入样例2:

0

输出样例2:

在这里给出相应的输出。例如:

Invalid.

代码长度限制

16 KB

时间限制

400 ms

内存限制

// package pta代码;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n = cin.nextInt();int sum = 0;if (n < 1 || n > 10) {System.out.println("Invalid.");}int[] a = new int[n];for (int i = 0; i < n; i++) {a[i] = cin.nextInt();sum += a[i];}double ave = 1.0 * sum / n;System.out.printf("%.2f\n", ave);for (int i = 0; i < n; i++)if (a[i] > ave)System.out.print(a[i] + " ");}
}

R7-7 两个一维数组相加求和

分数 10

全屏浏览题目

作者 Ami

单位 临沂大学

1.本题目要求得的两个向量的和,每一个向量通过一个一维数组表示,具体要求为:

1在Main类中.创建一个方法,方法功能为求两个一维数组之和得到求和数组并返回。方法声明为:

public static int[] add(int arr[],int []arr2)

2.在main方法中创建两个一维数组,一维数组的长度通过键盘得到,数组的元素通过键盘输入。

3.调用add方法得到两个一维数组之和,并输出这个一维数组的值。

输入格式:

第一行输入数组的元素个数
第二行输入第一个数组的各个元素 中间以空格隔开
第三行输入第二个数组的各个元素 中间以空格隔开

输出格式:

输出求和数组的各个元素,每行输出一个元素。

输入样例:

在这里给出一组输入。例如:

4
1 2 3 4
5 6 7 8

输出样例:

在这里给出相应的输出。例如:

6
8
10
12

代码长度限制

16 KB

时间限制

400 ms

内存限制

// package pta代码;import java.util.Scanner;public class Main {public static void main(String[] args) {@SuppressWarnings("resource")Scanner cin = new Scanner(System.in);int sum[];int n = cin.nextInt();int a[] = new int[n];int b[] = new int[n];for (int i = 0; i < n; i++) {a[i] = cin.nextInt();}for (int i = 0; i < n; i++) {b[i] = cin.nextInt();}sum = add(a, b);for (int i = 0; i < n; i++) {System.out.println(sum[i]);}}public static int[] add(int arr[], int arr2[]) {int[] tmp = new int[arr.length];for (int i = 0; i < arr.length; i++) {tmp[i] = arr[i] + arr2[i];}return tmp;}
}

R7-8 整数排序(降序)

分数 15

全屏浏览题目

作者 保明庚

单位 云南农业职业技术学院

输入5个整数,对所有整数进行排序,按照降序输出。

输入格式:

输入5个整数。

输出格式:

按照降序输出5个整数。

输入样例1:

1
3
5
2
6

输出样例1:

6
5
3
2
1

输入样例2:

18
23
5
92
78

输出样例2:

92
78
23
18
5

代码长度限制

16 KB

时间限制

400 ms

内存限制

// package pta代码;import java.util.Scanner;
import java.util.Arrays;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int[] a = new int[8];for (int i = 0; i < 5; i++) {int x = cin.nextInt();a[i] = x;}Arrays.sort(a, 0, 5);for (int i = 4; i >= 0; i--)System.out.println(a[i]);}
}

R7-9 sdut-array2-1-矩阵转置(I)

分数 10

全屏浏览题目

作者 周雪芹

单位 山东理工大学

从键盘输入矩阵的行数N,和一个N×N阶的矩阵,编程输出它的转置矩阵。

输入格式:

首行为矩阵的行数(列数)N;
然后是N行N列组成矩阵的数据。每行内数据之间用空格隔开。

输出格式:

矩阵格式输出,每行内非尾部的每个数据后跟一个空格,行尾数据后不加空格,为换行符。

输入样例:

4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

输出样例:

1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4

代码长度限制

16 KB

时间限制

400 ms

内存限制

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n, i, j;n = cin.nextInt();int a[][] = new int[n][n];for (i = 0; i < n; i++) {for (j = 0; j < n; j++) {a[i][j] = cin.nextInt();}}for (i = 0; i < n; i++) {for (j = 0; j < n; j++) {System.out.print(a[j][i]);if (j < n - 1) {System.out.print(" ");}}if (i < n - 1) {System.out.println();}}}}

R7-10 sdut-array2-3 二维方阵变变变

分数 10

全屏浏览题目

作者 周雪芹

单位 山东理工大学

有4行,4列的数据组成的矩阵。

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

它经过顺时针90度旋转后的效果为:(旋转角度值设为 90 )

13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4

顺时针180度旋转后的效果为:(旋转角度值设为 180 )

16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1

逆时针90度旋转后的结果为:(旋转角度值设为 -90 )

4 8 12 16
3 7 11 15
2 6 10 14
1 5 9 13

输入格式:

首行包括:(1)二维矩阵的行(列)数n,(2)矩阵旋转的角度,从90、180、-90中取一个;
接下来是n行n列的整数,数据之间以空格分隔,组成一个方阵。

输出格式:

矩阵按指定角度旋转后的结果。输出时按行、列进行组织。每行的数据之间有一个空格;行末尾数据后没有空格。

输入样例1:

4 90
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

输出样例1:

13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4

输入样例2:

4 180
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

输出样例2:

16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1

输入样例3:

4 -90
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

输出样例3:

4 8 12 16
3 7 11 15
2 6 10 14
1 5 9 13

代码长度限制

16 KB

时间限制

400 ms

内存限制

// package pta代码;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();int m = in.nextInt();int f[][] = new int[n][n];for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)f[i][j] = in.nextInt();if (m == 180) {for (int i = n - 1; i >= 0; i--) {for (int j = n - 1; j >= 0; j--) {if (j != 0)System.out.print(f[i][j] + " ");elseSystem.out.println(f[i][j]);}}} else if (m == 90) {for (int i = 0; i < n; i++) {for (int j = n - 1; j >= 0; j--) {if (j != 0)System.out.print(f[j][i] + " ");elseSystem.out.println(f[j][i]);}}} else if (m == -90) {for (int i = n - 1; i >= 0; i--) {for (int j = 0; j < n; j++) {if (j != n - 1)System.out.print(f[j][i] + " ");elseSystem.out.println(f[j][i]);}}}}
}

R7-11 sdut-array1-3 显示缺失的数

分数 10

全屏浏览题目

作者 周雪芹

单位 山东理工大学

输入一个数N,然后再输入若干个1到N中的自然数,以0结束。(N<=100)
打印1到N中未被输入的数,即缺失的数,每个数以后面跟1个空格,显示在一行中。

输入格式:

第一行为整数N。
第二行为若干个自然数,以0结束。数值之值以空格分隔。

输出格式:

打印1——N之间缺失的自然数。如果没有缺失的数,则打印:“FULL”。

输入样例1:

10
8 7 3 2 3 3 4 5 6 7 8 1 9 10 3 4 5 6 3 3 0

输出样例1:

FULL

输入样例2:

20
8 7 3 2 3 3 4 0

输出样例2:

1 5 6 9 10 11 12 13 14 15 16 17 18 19 20 

代码长度限制

16 KB

时间限制

400 ms

内存限制

// package pta代码;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n = cin.nextInt();int f[] = new int[n + 1];int t = 0;while (true) {int x = cin.nextInt();if (x == 0)break;f[x]++;}for (int i = 1; i <= n; i++)if (f[i] == 0) {System.out.print(i + " ");t = 1;}if (t == 0)System.out.println("FULL");}
}

R7-12 sdut-String+array1(Collection-Map)-1 读中国载人航天史,汇航天员数量,向航天员致敬(字符串+数组、LinkedMap )

分数 10

全屏浏览题目

作者 周雪芹

单位 山东理工大学

1986年,中国实施“863”计划,航天技术列入其中。以载人飞船开始起步,最终建成我国的空间站。
1992年9月21日,中国实施载人航天工程,并确定了三步走的发展战略:第一步,发射载人飞船,建成初步配套的试验性载人飞船工程。第二步,突破载人飞船和空间飞行器的交会对接技术,利用载人飞船技术改装、发射一个空间实验室。第三步,建造载人空间站。

在长期的奋斗中,我国航天工作者不仅创造了非凡的业绩,而且铸就了特别能吃苦、特别能战斗、特别能攻关、特别能奉献的载人航天精神。载人航天精神,是“两弹一星”精神在新时期的发扬光大,是我们伟大民族精神的生动体现,永远值得全党、全军和全国人民学习。


截至2021年4月,历任航天英雄名字如下:
杨利伟(神舟五号)
费俊龙、聂海胜(神舟六号)
翟志刚、景海鹏、刘伯明(神舟七号)
景海鹏、刘旺、刘洋(神舟九号)
聂海胜、张晓光、王亚平(神舟十号)
景海鹏、陈东(神舟十一号)

会编程的小伙伴们,请以他们出征太空的先后顺序,统计一下航天英雄们出征太空的次数,以实际行动向航天员们致敬!

输入格式:

每次航天飞船的编号为一行读入数据,分别读入每次飞上太空的航天英雄的姓名,名字中间有一个空格分隔。
最后一行为“end“,表示输入结束。提示:目前,中国航天员的数量小于20。

输出格式:

以出征太空的先后顺序,统计航天英雄们出征太空的次数。
每位航天员占一行,航天员姓名与出征次数中间有一个空格。

输入样例:

杨利伟
费俊龙 聂海胜
翟志刚 景海鹏 刘伯明
景海鹏 刘旺 刘洋
聂海胜 张晓光 王亚平
景海鹏 陈东
end

输出样例:

杨利伟 1
费俊龙 1
聂海胜 2
翟志刚 1
景海鹏 3
刘伯明 1
刘旺 1
刘洋 1
张晓光 1
王亚平 1
陈东 1

提示:

  • 对于Java语言,此题有两种解决方案:
    • (1)使用数组来解决;
    • (2)使用java.util.Map接口的实现类LinkedMap来解决。
      • LinkedHashMap是HashMap的子类,保证在遍历map元素时,可以按照添加的顺序实现遍历,对于频繁的遍历操作,它的执 行效率高于HashMap.
  • 对于Python语言,。。。。
  • 对于C语言,。。。。。。
// package pta代码;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);String[] c = new String[20];int i = 0, j;int[] t = new int[20];while (true) {int f = 0;String s = cin.next();if (s.equals("end"))break;for (j = 0; j < i; j++) {if (c[j].equals(s)) {f = 1;break;}}if (f == 1) {t[j]++;} else {t[i] = 1;c[i] = s;i++;}}for (j = 0; j < i; j++) {System.out.println(c[j] + " " + t[j]);}}}

R7-13 sdut-array1-2 RDMP音乐播放器(III)(一维数组)

分数 10

全屏浏览题目

作者 周雪芹

单位 山东理工大学

注意: 这是在使用数组的情况下完成的。RDMP音乐播放器将存储m首歌曲,它们的名称将是以字母'A'开始的歌曲。(m<=26)
例如:M=3,则歌曲名称将是:'A','B','C' 。M=7,则歌曲名称将是:'A','B','C', D','E','F','G' 。RDMP有3个按钮,用户可以按下这些按钮来重新排列播放列表并播放歌曲。
举例:
如果,最初RDMP播放列表是“A, B, C, D, E”。3个控制按钮做以下工作:按钮1: 将播放列表的第一首歌曲移动到播放列表的末尾。例如:“A, B, C, D, E”会变成“B, C, D, E, A”。按钮2: 将播放列表的最后一首歌移动到播放列表的开始。例如,“A, B, C, D, E”会变成“E, A, B, C, D”。按钮3: 交换播放列表的前两首歌。例如,“A, B, C, D, E”会变成“B, A, C, D, E”。你需要编写一个程序来模拟一个可以按下n次按钮的RD音乐播放器。(n>0)

输入格式:

输入有多行。
首行是两个整数,分别为歌曲的数量m和按下播放按钮的次数n。
后续有n行整数,表示按下按扭的不同的操作,均为1到3之间的数字,代表要采取的行动。

输出格式:

输出最终播放列表的正确顺序。
歌曲名称中间用逗号作分隔。最后一首歌名称之后没有逗号。

输入样例1:

5 2
1
2

输出样例1:

A,B,C,D,E

输入样例2:

5 2
3
3

输出样例2:

A,B,C,D,E

输入样例3:

10 5
1
2
3
3
1

输出样例3:

B,C,D,E,F,G,H,I,J,A

代码长度限制

16 KB

时间限制

400 ms

内存限制

// package pta代码;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int m = cin.nextInt();char songs[] = new char[m];char temp;int i, j;for (i = 0; i < m; i++) {songs[i] = (char) ('A' + i);}int n = cin.nextInt();int action;for (i = 1; i <= n; i++) {action = cin.nextInt();switch (action) {case 1:temp = songs[0];for (j = 0; j < m - 1; j++) {songs[j] = songs[j + 1];}songs[j] = temp;break;case 2:temp = songs[m - 1];for (j = m - 1; j > 0; j--) {songs[j] = songs[j - 1];}songs[j] = temp;break;case 3:temp = songs[0];songs[0] = songs[1];songs[1] = temp;break;}}for (i = 0; i < m - 1; i++) {System.out.print(songs[i] + ",");}System.out.println(songs[i]);}
}

Published by

风君子

独自遨游何稽首 揭天掀地慰生平