AP计算机科学A:迭代

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

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

例子问题

例子问题1:迭代

int var = 0;

int数组[4];

For (int j=0;j < = 4; + +)

var = var + 1;

var的值是多少?

可能的答案:

8

5

4

10

6

正确答案:

5

解释

for循环只是简单地把0到3的数字加起来,结果是6。

循环的第一次迭代,j=0:

var = 0 + 1 = 1

第二次迭代,j=1:

var = 1 + 1 = 2

第三次迭代,j=2:

var = 2 + 1 = 3

第四次迭代,j=3:

var = 3 + 1 = 4

第五次迭代,j=4:

var = 4 + 1 = 5

问题41:程序的实现

删除Boolean (int[] arr, int val) {

Boolean found = false;

int我;

For (i = 0;我< arr。长度&& !我+ +){

如果(arr[i] == val) {

Found = true;

/ /开始

如果(发现){

For (int j = i;J < arr.length;j++) {

Arr [j - 1] = Arr [j];

arr (arr)。长度- 1]= 0;

/ /结束

返回发现;

代码在什么之间/ /开始而且/ /结束做什么?

可能的答案:

将删除的索引值设置为0

移位数组的内容

删除数组中的值

用默认值覆盖数组值

没有其他选择

正确答案:

移位数组的内容

解释

处理这个问题最简单的方法是逐行注释。注意,只有在找到给定值时,条件才有效。(这是布尔的用法发现)。如果确实找到了所需的值,那么代码将遍历数组,仅在索引位置之后拾取。(此时,是要删除的值的索引的后一位。)然后,它遍历代码并向后移动每个索引处的值。实际上,这将向后移动内容,使其看起来像是执行了删除操作。这是在线上完成的Arr [j - 1] = Arr [j];.最后,最后的索引值设置为默认值,即0。(这是在线完成的arr (arr)。长度- 1]= 0;)。

例子问题1:迭代

# include < iostream >

使用命名空间std;

int main ()

int i = 0;

Int sum =0;

(我;我< 4,+ = 2)

和=和+ i;

我,;

返回0;

i和和的值是多少?

可能的答案:

我= 5,金额= 7

我= 4,金额= 6

我= 3 = 6

我= 3 = 8

我= 4,金额= 4

正确答案:

我= 3 = 6

解释

让我们看一下foor循环的声明。只要整数i小于4,它就会运行。在每次迭代之后,它也会增加2。I +=2等价于I = I +2。

现在让我们看看循环本身的内容。整数“sum”从0开始,并在每次迭代时添加到i。在此之后,我们看到,每次迭代后,i减去1个数字。现在,在检查了循环的结构之后,让我们开始计算每个迭代。

迭代1:i=0, sum=0,然后i=-1。

迭代2:i=1, sum=1,然后i=0。

迭代3:i=2, sum=3,那么i=1,

迭代4:i=3, sum =6,那么i=3。

没有迭代5,因为“i”只能小于4才能进入循环,所以程序到此结束。

我= 3 = 6

例子问题1:迭代

对或错。

这个代码片段将迭代5次。

ArrayList arrList = new ArrayList();

arrList.add(“string0”);

arrList.add(“string1”);

arrList.add(“string2相等”);

arrList.add(“string3”);

arrList.add(“沙漠西部边缘一溜排开”);

For (int I = 0;i < arrList.size();我+ +){

System.out.println (arrList.get (i));

可能的答案:

真正的

正确答案:

真正的

解释

数组列表由5个字符串填充。for循环将从0到4遍历数组列表,因为一旦i到达5,循环就会退出。0到4是5次迭代。所以答案是正确的。

问题42:程序的实现

假设你有以下代码:

public static void main(String[] args) {

Int a =2;

如果(% 2 = = 0)

system . out。println(“Hello World”);

其他的

System.out.println(“嗨”);

如果调用main方法,将打印什么?

可能的答案:

将抛出一个错误

你好,世界,你好

你好世界

你好世界

正确答案:

你好世界

解释

"Hello World"将被打印出来,因为第一个条件为真:2%2=0,或者相当于2是一个偶数。一旦if块中的条件被执行,if块就会被退出。这意味着任何其他elseif或else子句都不会被执行。如果%2==0为False,则将打印"Hi"。在任何情况下,都不可能同时打印“Hello World”和“Hi”。此外,不会抛出错误,因为语法是正确的,也不会发生运行时错误。

例子问题2:迭代

假设你有以下几行代码(x是某个初始化的整数):

Int k = arrr .length;

For (int I = -1;我< k-2;我+ +)

如果(arr[i+2] < x)

System.out.print(“Hello”);

“Hello”打印的最大次数是多少?

可能的答案:

k

k - 1

0

将抛出一个ArrayIndexOutOfBoundsException异常

k-2

正确答案:

k - 1

解释

答案是k-1, k是数组的长度。

这道题测试学生对循环迭代的理解。循环计数器从-1开始,但arr中要访问的第一个元素是index=1。同样,当i

由于arr的(k-1)个元素被访问(最后一个元素),而arr的第0个元素被跳过(第一个要访问的元素在index=1时,数组被索引为0),因此有k-1次循环迭代。如果arr中的所有值都不超过x,则“Hello”将打印k-1次。

大学导师的学习工具