计算机科学:通用数据结构

学习计算机科学的概念,示例问题和解释

大学导师应用商店 大学导师安卓商店

例子问题

←之前 1 3. 4 5

例子问题1:字符串

考虑下面的代码:

Int [] val = {5,4,2};

字符串s = "Hervaeus";

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

For (int j = 0;J < vals[i % vals.length];j + +) {

s2 += s.charAt(i);

System.out.println (s2);

上面代码的输出是什么?

可能的答案:

Hervaeeeeeuuuuss

HHHHHeeeeerrrrrrvvvvvaaaaaeeeeeuuuuusssss

代码将注意执行。

HHHHHeeeerrvvvvvaaaaeeuuuuussss

HHHHHeeeerrvaeus

正确答案:

HHHHHeeeerrvvvvvaaaaeeuuuuussss

解释

对于这个问题,主要要看的是代码的主循环。这个循环首先遍历String中的每个字符史:

Int I = 0;I < s.length();我+ +

接下来,注意内部循环中的条件:

瓦尔斯瓦尔斯长度

上的模量将产生介于0和2之间的值(给定val的长度)。这意味着你将在内循环中循环以下时间序列:

5、4、2、5、4、2、5、4

这将复制索引()的初始字符串,使用5、4、2、5等作为复制计数。因此,你将复制“H”5次,“e”4次,等等。这给了你一个输出:

HHHHHeeeerrvvvvvaaaaeeuuuuussss

问题111:计算机科学

考虑下面的代码:

char[]值={'我',' ',' l ', ' o ', ' v ', ' e ', ' ', ' y ', ' o ', ' u ','!','!'};

字符串s = "";

For (int I = 0;I < values。长度/ 2; i++) {

Char temp = values[i];

Values [i] = Values[值]。长度- i-1];

值(值。长度-我-1]= temp;

For (int I = 0;I < values.length;我+ +){

S += values[i];

System.out.println(年代);

上面代码的输出是什么?

可能的答案:

我爱你!

其他的都没有

!!你爱我

!!我

uyeolI !o六世

正确答案:

!!我

解释

这是最容易想到的数组作为字符串:“我爱你!!”

现在,循环将运行for次了。注意它在每次迭代中都做了什么。它交换了at的值而且值。长度-我-1.因此,它将进行以下交换:

0和11

1和10

等等……

这一系列的交换将最终逆转数组。因此,你的输出是:

!!我

例子问题1:字符串

下列哪个代码块使字符串中的其他字符都是相同的年代大写,从第二个字符开始?

可能的答案:

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 1) {

c = Character.toUpperCase(c);

s2 + = c;

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

s2 + = c;

If (i % 2 == 0) {

c = Character.toUpperCase(c);

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 0) {

c = Character.toUpperCase(c);

s2 + = c;

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

charat (i);

If (i % 2 == 1) {

c = Character.toUpperCase(c);

s2 + = c;

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 3) {

c = Character.toUpperCase(c);

s2 + = c;

正确答案:

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 1) {

c = Character.toUpperCase(c);

s2 + = c;

解释

鉴于字符串不能在内部修改,您将不得不将结果存储在一个新的字符串中,即s2.现在,对于每一个字符年代,你将不得不使字符小写开始:

char c = Character.toLowerCase(s.charAt(i));

接下来,对于奇数值,您将需要使您的值为大写。模运算符很适合这个!您可以使用% 2查找奇数值。当一个数除以2的余数等于1时,你就知道这个数是奇数。因此,你有这样的条件:

If (i % 2 == 1){…

然后,一旦你适当地大写,你可以把你的角色s2

例子问题1:字符串

下列哪个代码块将字符数组转换为字符串?

可能的答案:

私有静态无效字符串(){

字符串s = "早上6点!";

Char [] vals = new Char [s.length()];

For (int I = 0;I < s.length();我+ +){

val [i] = s.charAt(i);

私有静态无效字符串(){

char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};

字符串年代;

For (int I = 0;I < val .length;我+ +){

S += vals[i];

私有静态无效字符串(){

char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};

字符串s = "";

For (int I = 0;I < val .length;我+ +){

S = val [i];

私有静态无效字符串(){

char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};

字符串s = "";

For (int I = 0;I < val .length;我+ +){

[i] = s;

私有静态无效字符串(){

char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};

字符串s = "";

For (int I = 0;I < val .length;我+ +){

S += vals[i];

正确答案:

私有静态无效字符串(){

char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};

字符串s = "";

For (int I = 0;I < val .length;我+ +){

S += vals[i];

解释

考虑这个问题最简单的方法是对正确答案进行评论。你必须从定义字符数组开始:

char [] vals = {' A ', ' t ', ' ', ' 6 ', ' ', ' ', ' m ', ' !”};

接下来,你必须初始化字符串值年代为空字符串。这是至关重要的。否则,你不能构建你的字符串!

字符串s = "";

接下来,你有一个循环。这将遍历字符并将值连接到变量年代.连接字符的操作是“+=”。这将为您提供字符数组的字符串值。

例子问题1:字符串

参见下面的代码:

字符串[]books = {

"De Secundis intent "

“利维坦”,

"阿威罗伊在亚里士多德《论世界与celo》中的大注释"

《白痴逻辑手册》

《大号手的逻辑学Utens》

};

字符串userInput;

//在这里删除的代码中,用户输入值“Logica Utens for Tuba Players”…

For (int I = 0;I < books.length;我+ +){

if(books[i] == userInput) {

system . out。println(“这是一本很棒的书!!”);

上面的代码有什么错误?

可能的答案:

它会溢出一个数组。

字符串比较。

在数组元素上使用if。

数组的声明方式。

的使用[]数组上的运算符。

正确答案:

字符串比较。

解释

的使用是这段代码的唯一主要问题==运算符来比较两个字符串。因为用户已经输入了这个值,所以在这个测试中不会有相等的值。你必须使用方法.equals为了检查两个字符串是否相等。代码应该是:

如果] .equals (userInput))

...

(在某些情况下,==将用于字符串比较,即涉及字面量时。但是,您应该避免依赖于此,并始终使用.equals ())。

例子问题1:字符串

字符串[]books = {

"理性的逻辑"

"Kritik der reinen Vernunft"

《托马斯哲学课程》,

“快乐的人说快乐的话”,

“疯狂的世界,疯狂的语言”

};

String str = "猫在车里";

ArrayList vals = new ArrayList();

For (int I = 0;I < books.length;我+ +){

if(books[i].compareTo(str) > 0) {

vals.add(书[我]);

System.out.println (val);

这个方法的输出是什么?

可能的答案:

[托马斯哲学课程,快乐的人的快乐话语,疯狂的世界的疯狂话语]

[]

[快乐的话给快乐的人,疯狂的话给疯狂的世界]

[逻辑学和理性的艺术,Kritik der reinen Vernunft]

[Kritik der reinen Vernunft,逻辑学和理性艺术]

正确答案:

[逻辑学和理性的艺术,Kritik der reinen Vernunft]

解释

compareTo方法与字符串对象进行比较,并返回:

  • 当它们相等时为0
  • 当给定的字符串按字母顺序(实际上是按字典顺序)晚于方法的参数时,则为正数。
  • 当给定的字符串按字母顺序(实际上是按字典顺序)位于方法的参数之前时,则为负值。

我们的字符串可以这样排列:

《托马斯哲学课程》

“快乐的人说快乐的话”

“疯狂的世界,疯狂的语言”

"Kritik der reinen Vernunft"

《理性的逻辑》

对于每一个,我们都要问:“它的顺序是否比‘小猫在车里’晚?”这是真实的“Kritik der reinen Vernunft”和“逻辑和理性的艺术”。因此,我们的输出是:

[逻辑学和理性的艺术,Kritik der reinen Vernunft]

注意顺序——这是由于原始数组中的顺序。

例子问题1:字符串

字符串greet = "Hello ";
字符串的子;
Int len = greet.length();
Sub =问候。年代ubstring(0, (len/2));
System.out.println(子);

打印的是什么?

可能的答案:

冥界

地狱

错误

你好

正确答案:

冥界

解释

问候语长度为6个字符,包括结尾空格。

问候。年代ubstring(0, (len/2)) is equal to greet.substring(0, 3)

greet的子串从第0个位置到第二个位置,而不是第三个位置。

例子问题1:字符串

考虑下面的代码:

Int [] val = {5,4,2};

字符串s = "Hervaeus";

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

For (int j = 0;J < vals[i % vals.length];j + +) {

s2 += s.charAt(i);

System.out.println (s2);

上面代码的输出是什么?

可能的答案:

Hervaeeeeeuuuuss

HHHHHeeeeerrrrrrvvvvvaaaaaeeeeeuuuuusssss

代码将注意执行。

HHHHHeeeerrvvvvvaaaaeeuuuuussss

HHHHHeeeerrvaeus

正确答案:

HHHHHeeeerrvvvvvaaaaeeuuuuussss

解释

对于这个问题,主要要看的是代码的主循环。这个循环首先遍历String中的每个字符史:

Int I = 0;I < s.length();我+ +

接下来,注意内部循环中的条件:

瓦尔斯瓦尔斯长度

上的模量将产生介于0和2之间的值(给定val的长度)。这意味着你将在内循环中循环以下时间序列:

5、4、2、5、4、2、5、4

这将复制索引()的初始字符串,使用5、4、2、5等作为复制计数。因此,你将复制“H”5次,“e”4次,等等。这给了你一个输出:

HHHHHeeeerrvvvvvaaaaeeuuuuussss

问题111:计算机科学

考虑下面的代码:

char[]值={'我',' ',' l ', ' o ', ' v ', ' e ', ' ', ' y ', ' o ', ' u ','!','!'};

字符串s = "";

For (int I = 0;I < values。长度/ 2; i++) {

Char temp = values[i];

Values [i] = Values[值]。长度- i-1];

值(值。长度-我-1]= temp;

For (int I = 0;I < values.length;我+ +){

S += values[i];

System.out.println(年代);

上面代码的输出是什么?

可能的答案:

我爱你!

其他的都没有

!!你爱我

!!我

uyeolI !o六世

正确答案:

!!我

解释

这是最容易想到的数组作为字符串:“我爱你!!”

现在,循环将运行for次了。注意它在每次迭代中都做了什么。它交换了at的值而且值。长度-我-1.因此,它将进行以下交换:

0和11

1和10

等等……

这一系列的交换将最终逆转数组。因此,你的输出是:

!!我

例子问题1:字符串

下列哪个代码块使字符串中的其他字符都是相同的年代大写,从第二个字符开始?

可能的答案:

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 1) {

c = Character.toUpperCase(c);

s2 + = c;

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

s2 + = c;

If (i % 2 == 0) {

c = Character.toUpperCase(c);

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 0) {

c = Character.toUpperCase(c);

s2 + = c;

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

charat (i);

If (i % 2 == 1) {

c = Character.toUpperCase(c);

s2 + = c;

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 3) {

c = Character.toUpperCase(c);

s2 + = c;

正确答案:

字符串=“这是一个伟大的字符串!”;

字符串s2 = "";

For (int I = 0;I < s.length();我+ +){

char c = Character.toLowerCase(s.charAt(i));

If (i % 2 == 1) {

c = Character.toUpperCase(c);

s2 + = c;

解释

鉴于字符串不能在内部修改,您将不得不将结果存储在一个新的字符串中,即s2.现在,对于每一个字符年代,你将不得不使字符小写开始:

char c = Character.toLowerCase(s.charAt(i));

接下来,对于奇数值,您将需要使您的值为大写。模运算符很适合这个!您可以使用% 2查找奇数值。当一个数除以2的余数等于1时,你就知道这个数是奇数。因此,你有这样的条件:

If (i % 2 == 1){…

然后,一旦你适当地大写,你可以把你的角色s2

←之前 1 3. 4 5
大学导师的学习工具