AP Computer Science Principles Programming (Khan Academy)

0.0(0)
studied byStudied by 54 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/113

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 10:45 PM on 9/26/23
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

114 Terms

1
New cards

Which of the following is a benefit of procedures for programmers?

Programmers can more easily understand programs with procedures, since procedures give names to complex pieces of code.

2
New cards

Aarush is writing a program to help him calculate how much exercise he does at the gym.

The procedure calcSwimYards returns the number of yards swum for a given number of laps in a pool of a given length.

PROCEDURE calcSwimYards(poolLength, numLaps)

{

lapLength ← poolLength * 2

RETURN lapLength * numLaps

}

Aarush then runs this line of code:

yardsSwum ← calcSwimYards(25, 10)

What value is stored in yardsSwum?

500

3
New cards

At that distance, the code should give the player a 30% chance of making the goal.

RANDOM(1, 100)

4
New cards

discount ← 0

IF (quantity 150)

{

discount ← 10

} ELSE

{

IF (quantity 75)

{

discount ← 7

}

ELSE {

IF (quantity 10)

{

discount ← 5

}

}

}

Which operator could replace so that the code snippet works as expected?

5
New cards

IF (ironLevel < 10)

{

diagnosis ← "anemic"

}

ELSE

{

diagnosis ← "normal"

}

Which of these tables shows the expected values of diagnosis for the given values of ironLevel?

Choose 1 answer:

4.5 "anemic"

8.2 "anemic"

9.9 "anemic"

10.0 "normal"

22.5 "normal"

6
New cards

NOT ( calendar = "user" AND rsvp = "yes" )

calendar ≠ "user" OR rsvp ≠ "yes"

7
New cards

This graph contains a line with unknown slope, going through the points [2, 1][2,1]open bracket, 2, comma, 1, close bracket and [4, 3][4,3]open bracket, 4, comma, 3, close bracket:

(2, 1, 4, 3)

8
New cards

Program 1:

totalCalories ← 0

loggedMeals ← [700, 800, 600, 300]

FOR EACH loggedMeal IN loggedMeals

{

totalCalories ← totalCalories + loggedMeal

}

IF (totalCalories > 2000) {

excessCalories ← totalCalories - 2000

DISPLAY(excessCalories)

}

Program 2:

totalCalories ← 0

loggedMeals ← [700, 800, 600, 300]

FOR EACH loggedMeal IN loggedMeals

{

totalCalories ← totalCalories + loggedMeal

IF (totalCalories > 2000) {

excessCalories ← totalCalories - 2000

}

}

DISPLAY(excessCalories)

Program 1 and Program 2 display the same output, but Program 2 requires more computations.

9
New cards

REPEAT UNTIL ( canTakeCheese() )

{

}

There are many ways for him to reach the cheese. Of the options below, which will require the most repetitions of the loop?

IF (facingWall())

{

turnRight()

}

ELSE

{

walkForward(2)

}

10
New cards

sentence ← ""

word1 ← "Hello"

firstLetter1 ← SUBSTRING(word1, 1, 1)

otherLetters1 ← SUBSTRING(word1, 2, LENGTH(word1) - 1)

pigLatin1 ← CONCAT(otherLetters1, firstLetter1, "ay")

sentence ← CONCAT(sentence, pigLatin1, " ")

word2 ← "Mister"

firstLetter2 ← SUBSTRING(word2, 1, 1)

otherLetters2 ← SUBSTRING(word2, 2, LENGTH(word2) - 1)

pigLatin2 ← CONCAT(otherLetters2, firstLetter2, "ay")

sentence ← CONCAT(sentence, pigLatin2, " ")

word3 ← "Rogers"

firstLetter3 ← SUBSTRING(word3, 1, 1)

otherLetters3 ← SUBSTRING(word3, 2, LENGTH(word3) - 1)

pigLatin3 ← CONCAT(otherLetters3, firstLetter3, "ay")

sentence ← CONCAT(sentence, pigLatin3, " ")

DISPLAY(sentence)

Which of these is the best refactor of the code?

words ← ["Hello", "Mister", "Rogers"]

sentence ← ""

FOR EACH word IN words

{

firstLetter ← SUBSTRING(word, 1, 1)

otherLetters ← SUBSTRING(word, 2, LENGTH(word) - 1)

pigLatin ← CONCAT(otherLetters, firstLetter, "ay")

sentence ← CONCAT(sentence, pigLatin, " ")

}

DISPLAY(sentence)

11
New cards

filledWater ← 0

tankCapacity ← 50

fillAmount ← 10

waterHeight ← measureHeight()

REPEAT UNTIL (waterHeight ≥ 30 OR filledWater ≥ tankCapacity)

{

fillTub(fillAmount)

filledWater ← filledWater + fillAmount

waterHeight ← measureHeight()

}

Part 1: In what situations will the computer execute the code inside the REPEAT loop?

Part 2: What is the maximum times the computer will execute the code inside the REPEAT loop?

When waterHeight is 0 and filledWater is 25

The computer wouldn't execute the code more than 5 times.

12
New cards

This list represents the horses leading in a race:

leadHorses ← ["Justify", "Bravazo", "Good Magic", "Tenfold", "Lone Sailor", "Sporting Chance", "Diamond King", "Quip"]

This code snippet updates the list:

tempHorse ← leadHorses[3]

leadHorses[3] ← leadHorses[4]

leadHorses[4] ← tempHorse

What does the leadHorses variable store after that code runs?

"Justify", "Bravazo", "Tenfold", "Good Magic", "Lone Sailor", "Sporting Chance", "Diamond King", "Quip"

13
New cards

rowNum ← 1

REPEAT 4 TIMES

{

colNum ← rowNum + 4

REPEAT (5 - rowNum) TIMES

{

fillPixel(rowNum, colNum, "blue")

colNum ← colNum + 1

}

rowNum ← rowNum + 1

}

top right corner

14
New cards

words ← ["cab", "lab", "cable", "cables", "bales", "bale"]

wordScore ← 0

FOR EACH word IN words {

IF (LEN(word) ≥ 5) {

wordScore ← wordScore + 3

} ELSE {

IF (LEN(word) ≥ 4) {

wordScore ← wordScore + 2

} ELSE {

IF (LEN(word) ≥ 3) {

wordScore ← wordScore + 1

}

}

}

}

DISPLAY(wordScore)

13

15
New cards

Mr. Pink:

moveAmount ← 1

REPEAT UNTIL ( reachedFinish() )

{

moveForward(moveAmount)

moveAmount ← moveAmount + 1

}

Purple Pi:

moveAmount ← 1

REPEAT UNTIL ( reachedFinish() )

{

moveForward(moveAmount)

moveAmount ← moveAmount * 2

}

Hopper:

moveAmount ← 4

REPEAT UNTIL ( reachedFinish() )

{

moveForward(moveAmount)

moveAmount ← moveAmount / 2

}

Spunky Sam:

moveAmount ← 4

REPEAT UNTIL ( reachedFinish() )

{

moveForward(moveAmount)

moveAmount ← moveAmount - 2

}

After the first 3 repetitions of each loop, which avatar will be ahead?

Two avatars will be tied for the lead.

16
New cards

1: player1Misses ← 0

2: player2Misses ← 0

3: REPEAT UNTIL (player1Misses = 5 OR player2Misses = 5)

4: {

5: player1Shot ← RANDOM(1, 2)

6: player2Shot ← RANDOM(1, 2)

7: IF (player1Shot = 2)

8: {

9: DISPLAY("Player 1 missed! ☹")

10: }

11: IF (player2Shot = 2)

12: {

13: DISPLAY("Player 2 missed! ☹")

14: }

15: IF (player1Shot = 1 AND player2Shot = 1)

16: {

17: DISPLAY("No misses! ☺")

18: }

19: }

9 and 10

13 and 14

17
New cards

APPEND(localFavs, "Udupi")

APPEND(localFavs, "The Flying Falafel")

APPEND(localFavs, "Rojbas Grill")

APPEND(localFavs, "Cha-Ya")

APPEND(localFavs, "Platano")

APPEND(localFavs, "Cafe Nostos")

INSERT(localFavs, 3, "Gaumenkitzel")

REMOVE(localFavs, 5)

"Udupi", "The Flying Falafel", "Gaumenkitzel", "Rojbas Grill", "Platano", "Cafe Nostos"

18
New cards

result ← 0

i ← 8

REPEAT 7 TIMES

{

result ← result + i

i ← i - 1

}

This program sums up the integers from 2 to 8 (inclusive).

19
New cards

words ← ["See", "Jane", "run", "swiftly", "towards", "home"]

bigWords ← []

FOR EACH word IN words

{

IF (LEN(word) > 5)

{

}

}

APPEND(bigWords, word)

20
New cards

strings ← ["A", "b", "C", "d", "e"]

numFound ← 0

FOR EACH string IN strings

{

IF (UPPER(string) != string)

{

numFound ← numFound + 1

}

}

DISPLAY(numFound)`

3

21
New cards

The following numbers are displayed by a program:

4 8 12 16

The program code is shown below, but it is missing three values: , , and .

i ←

REPEAT TIMES

{

DISPLAY(i * 2)

i ← i +

}

Given the displayed output, what must the missing values be?

Choose 1 answer:

= 2, = 4, = 2

22
New cards

playingCards ← ["3", "5", "6", "7", "9", "J", "A"]

DISPLAY(playingCards[4])

REMOVE(playingCards, 1)

INSERT(playingCards, 4, "8")

REMOVE(playingCards, 1)

INSERT(playingCards, 1, "3")

DISPLAY(playingCards[4])

7 8

23
New cards

1: startPlayer ← 0

2: REPEAT UNTIL (startPlayer ≠ 0)

3: {

4: player1Roll ← RANDOM(1, 6)

5: player2Roll ← RANDOM(1, 6)

6: IF (player1Roll > player2Roll)

7: {

8: DISPLAY("Player 1 starts")

9: }

10: ELSE IF (player2Roll > player1Roll)

11: {

12: DISPLAY("Player 2 starts")

13: }

14: ELSE

15: {

16: DISPLAY("Roll again")

17: }

18: }

Unfortunately, this code is incorrect; the REPEAT UNTIL loop never stops repeating.

Where would you add code so that the game starts when expected?

Between line 8 and 9

Between line 12 and 13

24
New cards

APPEND(favMovies, "The Lion King")

APPEND(favMovies, "Toy Story")

APPEND(favMovies, "The Matrix")

APPEND(favMovies, "Shrek")

APPEND(favMovies, "Spider-Man")

REMOVE(favMovies, 2)

INSERT(favMovies, 3, "Lord of the Rings")

What does the favMovies variable store after that code runs?

"The Lion King", "The Matrix", "Lord of the Rings", "Shrek", "Spider-Man"

25
New cards

We want to program KittyBot so that she pounces on both of the MouseyBots, walking exactly into the squares where they're hiding.

Which of these code segments accomplishes that goal?

REPEAT 2 TIMES

{

walkForward()

turnRight()

walkForward()

turnLeft()

turnLeft()

}

26
New cards

An audio engineer is writing code to display the durations of various songs.

This is what they have so far:

totalDuration ← 0

dur1 ← 72

DISPLAY(dur1/60)

totalDuration ← totalDuration + dur1

dur2 ← 112

DISPLAY(dur2/60)

totalDuration ← totalDuration + dur2

dur3 ← 144

DISPLAY(dur3/60)

totalDuration ← totalDuration + dur3

DISPLAY(totalDuration)

A friend points out that they can reduce the complexity of their code by using the abstractions of lists and loops.

The engineer decides to "refactor" the code, to rewrite it so that it produces the same output but is structured better.

Which of these is the best refactor of the code?

durations ← [72, 112, 144]

totalDuration ← 0

FOR EACH duration in durations

{

DISPLAY(duration/60)

totalDuration ← totalDuration + duration

}

DISPLAY(totalDuration)

27
New cards

Each of the creatures is controlled by a different program.

Frog:

moveAmount ← 0.5

REPEAT UNTIL ( reachedFinish() )

{

moveAmount ← moveAmount * 2

moveForward(moveAmount)

}

Fox:

moveAmount ← 1

REPEAT UNTIL ( reachedFinish() )

{

moveForward(moveAmount)

moveAmount ← moveAmount + 2

}

Dog:

moveAmount ← 1

REPEAT UNTIL ( reachedFinish() )

{

moveForward(moveAmount)

}

Alien:

moveAmount ← 4

REPEAT UNTIL ( reachedFinish() )

{

moveForward(moveAmount)

moveAmount ← moveAmount / 2

}

After 3 repetitions of each loop, which creature will be ahead?

The fox will be ahead.

28
New cards

Kash is writing code to calculate formulas from his physics class. He's currently working on a procedure to calculate acceleration, based on this formula:

\text{Acceleration} = \dfrac{\text{Force}}{\text{Mass}}Acceleration=

Mass

Force

​ A, c, c, e, l, e, r, a, t, i, o, n, equals, start fraction, F, o, r, c, e, divided by, M, a, s, s, end fraction

Which of these is the best procedure for calculating and displaying acceleration?

PROCEDURE calcAcceleration (force, mass) {

DISPLAY (force/mass)

}

29
New cards

Emanuel is writing a program to decide which fairgoers can ride on the rollercoaster, based on their height.

The rollercoaster has a sign posted that states: "RIDERS MUST BE AT LEAST 48" TALL TO RIDE"

The variable riderHeight represents a potential rider's height (in inches), and his program needs to set canRide to either true or false.

Which of these code segments correctly sets the value of canRide?

IF (riderHeight < 48) {

canRide ← false

}

ELSE {

canRide ← true

}

IF (riderHeight ≥ 48) {

canRide ← true

}

ELSE {

canRide ← false

}

30
New cards

A digital artist is writing a program to draw a landscape with a randomly generated mountain range.

This code draws a single mountain:

xPos ← RANDOM(4, 240)

height ← RANDOM(70, 120)

drawMountain(xPos, 80, height)

The code relies on the drawMountain() procedure, which accepts three parameters for the mountain's x position, y position, and height.

Here's what's drawn from one run of the program:

Graphic of landscape with mountain 210 pixels from the left side.

Which of these describes mountains that might be drawn from this program?

A mountain at an x position of 4 and a height of 120

A mountain at an x position of 180 and a height of 110

31
New cards

A chemistry student is writing a program to help classify the results of experiments.

solutionType ← "unknown"

IF (phLevel = 7)

{

solutionType ← "neutral"

}

ELSE {

IF (phLevel > 7)

{

solutionType ← "basic"

}

ELSE

{

solutionType ← "acidic"

}

}

Which of these tables shows the expected values of solutionType for the given values of phLevel?

Choose 1 answer:

phLevel solutionType

-0.4 "acidic"

4.7 "acidic"

6.9 "acidic"

7 "neutral"

7.4 "basic"

14.2 "basic"

32
New cards

Lillie is writing a program that calculates geometry formulas.

Her procedure calcDistance should return the distance between two points, based on the Pythagorean distance formula:

d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}d=

(x

2

​ −x

1

​ )

2

+(y

2

​ −y

1

​ )

2

​ d, equals, square root of, left parenthesis, x, start subscript, 2, end subscript, minus, x, start subscript, 1, end subscript, right parenthesis, start superscript, 2, end superscript, plus, left parenthesis, y, start subscript, 2, end subscript, minus, y, start subscript, 1, end subscript, right parenthesis, start superscript, 2, end superscript, end square root

This is the code of the procedure with line numbers:

PROCEDURE calcDistance (x1, y1, x2, y2)

{

xDiff ← x2 - x1

yDiff ← y2 - y1

sum ← POW(xDiff, 2) + POW(yDiff, 2)

distance ← SQRT(sum)

}

The procedure relies on two provided functions, POW which returns a number raised to an exponent, and SQRT which returns the square root of a number.

This procedure is missing a return statement, however.

Part 1: Which line of code should the return statement be placed after?

Part 2: Which of these return statements is the best for this procedure?

After line 6

RETURN distance

33
New cards

topCities ← ["Kyoto", "Florianopolis", "Wellington", "Puerto Viejo", "Sevilla"]

topCities[2] ← "Ankara"

topCities[4] ← "Taipei"

"Kyoto", "Ankara", "Wellington", "Taipei", "Sevilla"

34
New cards

MouseyBot is currently positioned inside a grid environment, facing left in the fifth row, fourth column. A wedge of DigiCheese is located in the second row, first column.

A 4x5 grid of squares. A cheese is located in the first column and second row. A mouse is located in the fourth column and fifth row.

MouseyBot would like to reach the DigiCheese. Here's the start of a program that uses a loop to program his journey:

REPEAT UNTIL ( canTakeCheese() )

{

}

There are many ways for him to reach the cheese. Of the options below, which will require the least repetitions of the loop?

walkForward(3)

turnRight()

35
New cards

mgAmounts ← [50, 230, 63, 98, 80, 120, 71, 158, 41]

bestAmounts ← []

mgPerDay ← 360

mgMin ← mgPerDay * 0.3

FOR EACH mgAmount IN mgAmounts

{

IF (mgAmount ≥ mgMin)

{

}

}

APPEND(bestAmounts, mgAmount)

36
New cards

rowNum ← 1

numPixels ← 1

REPEAT 3 TIMES

{

colNum ← 5 - rowNum

REPEAT (numPixels) TIMES

{

fillPixel(rowNum, colNum, "green")

colNum ← colNum + 1

}

numPixels ← numPixels + 2

rowNum ← rowNum + 1

}

Middle pyramid hanging on the top and not touching sides

37
New cards

KittyBot is a programmable robot that obeys the following commands:

Name Description

walkForward() Walks forward one space in the grid.

turnLeft() Rotates left 90 degrees (without moving forward).

turnRight() Rotates right 90 degrees (without moving forward).

KittyBot is currently positioned in the second row and second column of the grid, and is facing the right side of the grid.

6x6 grid of squares. Cat is shown in the square in the second row and second column. Yarn is shown in the square in the fifth row and fifth column.

We want to program KittyBot to reach the ball of yarn, located in the fifth row and fifth column.

REPEAT 3 TIMES

{

walkForward()

turnRight()

walkForward()

turnLeft()

}

38
New cards

This list represents the top runners in a marathon, using their bib numbers as identifiers:

frontRunners ← [308, 147, 93, 125, 412, 219, 73, 34, 252, 78]

This code snippet updates the list:

tempRunner ← frontRunners[3]

frontRunners[3] ← frontRunners[2]

frontRunners[2] ← tempRunner

What does the frontRunners variable store after that code runs?

308, 93, 147, 125, 412, 219, 73, 34, 252, 78

39
New cards

This program attempts to automate the process of giving fluids to a hospital patient to stabilize their blood pressure:

ivFluid ← 0

meanPressure ← measureBP()

REPEAT UNTIL (meanPressure > 65 OR ivFluid > 2000)

{

injectFluid(500)

ivFluid ← ivFluid + 500

meanPressure ← measureBP()

}

The program relies on two methods built-in to the IV machine:

Name Description

injectFluid(amountML) Injects the given amount of fluid (in milliliters).

measureBP() Returns a number representing the patient's mean arterial pressure.

Part 1: When will the computer stop executing the code inside the REPEAT loop?

👁️Note that there may be multiple answers to this question.

When meanPressure is greater than 65

When ivFluid is greater than 2000

When ivFluid is greater than 2000

40
New cards

The two programs below are both intended to display the total number of hours from a list of durations in minutes.

Program 1:

totalMins ← 0

durations ← [32, 56, 28, 27]

FOR EACH duration IN durations

{

totalMins ← totalMins + duration

}

totalHours ← totalMins / 60

DISPLAY(totalHours)

Program 2:

totalMins ← 0

durations ← [32, 56, 28, 27]

FOR EACH duration IN durations

{

totalMins ← totalMins + duration

totalHours ← totalMins / 60

}

DISPLAY(totalHours)

Both programs display the correct total number of hours, but Program 2 unnecessarily repeats arithmetic operations.

41
New cards

A javelin thrower is writing code to track the distance of their throws and how far they are from their target distance.

This is what they have so far:

totalDistance ← 0

targetDistance ← 90

throw1 ← 85.2

DISPLAY(targetDistance - throw1)

totalDistance ← totalDistance + throw1

throw2 ← 82.8

DISPLAY(targetDistance - throw2)

totalDistance ← totalDistance + throw2

throw3 ← 87.3

DISPLAY(targetDistance - throw3)

totalDistance ← totalDistance + throw3

avgDistance ← totalDistance / 3

DISPLAY(avgDistance)

A friend points out that they can reduce the complexity of their code by using the abstractions of lists and loops.

The programmer decides to "refactor" the code, to rewrite it so that it produces the same output but is structured better.

targetDistance ← 90

throws ← [85.2, 82.8, 87.3]

totalDistance ← 0

FOR EACH throw IN throws

{

DISPLAY(targetDistance - throw)

totalDistance ← totalDistance + throw

}

avgDistance ← totalDistance / LENGTH(throws)

DISPLAY(avgDistance)

42
New cards

This code snippet stores and updates a list of high scores for a video game:

highScores ← [750, 737, 714, 672, 655, 634, 629, 618, 615, 610]

DISPLAY(highScores[5])

INSERT(highScores, 5, 668)

INSERT(highScores, 2, 747)

REMOVE(highScores, 12)

REMOVE(highScores, 11)

DISPLAY(highScores[5])

What does this program output to the display?

655 672

43
New cards

MouseyBot is a programmable robot that can be programmed using the following procedures:

Name Description

walkForward(numSpaces) Walks forward the given number of spaces in the grid.

turnLeft() Rotates left 90 degrees (without moving forward).

turnRight() Rotates right 90 degrees (without moving forward).

facingWall() Returns true if robot is facing a wall (in the space in front).

canTakeCheese() Returns true if robot is on a space with cheese.

MouseyBot is currently positioned inside a grid environment, facing the top in the fifth row, first column. A wedge of DigiCheese is located in the first row, fifth column.

5x5 grid of squares. Cheese is shown in the first row, fifth column. Mouse is shown in the fifth row, first column, facing the top edge of the grid.

MouseyBot would like to reach the DigiCheese. Here's the start of a program that uses a loop to program his journey:

REPEAT UNTIL ( canTakeCheese() )

{

}

There are many ways for him to reach the cheese. Of the options below, which will require the most repetitions of the loop?

IF (facingWall())

{

turnRight()

}

ELSE

{

walkForward(2)

}

44
New cards

sevenWonders ← ["Aurora", "Grand Canyon", "Great Barrier Reef", "Guanabara Bay", "Mount Everest", "Parícutin", "Victoria Falls"]

sevenWonders[4] ← "Komodo"

sevenWonders[6] ← "Table Mountain"

"Aurora", "Grand Canyon", "Great Barrier Reef", "Komodo", "Mount Everest", "Table Mountain", "Victoria Falls"

45
New cards

The following numbers are displayed by a program:

2 4 6 8

The program code is shown below, but it is missing three values: , , and .

i ←

REPEAT TIMES

{

DISPLAY(i * 2)

i ← i +

}

Given the displayed output, what must the missing values be?

= 1, = 4, = 1

46
New cards

A vending machine manufacturer is writing code to determine the optimal prices for their products.

The program below processes a list of costs (in dollars and cents). The goal of the program is to create a new list that contains only the costs that can be paid entirely in quarters.

costs ← [1.15, 1.25, 2.50, 2.45, 3.75, 2.00]

quarterCosts ← []

FOR EACH cost IN costs

{

costInCents ← cost * 100

IF (costInCents MOD 25 = 0)

{

}

}

A line of code is missing, however.

What can replace so that this program will work as expected?

APPEND(quarterCosts, cost)

47
New cards

The following code snippet processes a list of strings with a loop and conditionals:

words ← ["belly", "rub", "kitty", "pet", "cat", "water"]

counter ← 0

FOR EACH word IN words

{

IF (FIND(word, "e") = -1 AND FIND(word, "a") = -1)

{

counter ← counter + 1

}

}

DISPLAY(counter)

The code relies on one string procedure, FIND(source, target), which returns the first index of the string target inside of the string source, and returns -1 if target is not found.

2

48
New cards

This list represents the leading cars in a race, according to the car numbers:

raceCars ← [18, 2, 42, 10, 4, 1, 6, 3]

This code snippet updates the list:

tempCar ← raceCars[6]

raceCars[6] ← raceCars[5]

raceCars[5] ← tempCar

18, 2, 42, 10, 1, 4, 6, 3

49
New cards

The two programs below are both intended to display the total number of overtime hours worked, based on a list of logged hours for each day of a week.

Program 1:

totalHours ← 0

loggedTimes ← [12, 8, 11, 10, 8]

FOR EACH loggedTime IN loggedTimes

{

totalHours ← totalHours + loggedTime

}

IF (totalHours > 40) {

overtimeHours ← totalHours - 40

DISPLAY(overtimeHours)

}

Program 2:

totalHours ← 0

loggedTimes ← [12, 8, 11, 10, 8]

FOR EACH loggedTime IN loggedTimes

{

totalHours ← totalHours + loggedTime

IF (totalHours > 40) {

overtimeHours ← totalHours - 40

DISPLAY(overtimeHours)

}

}

Which of these statements best describes these two programs?

Choose 1 answer:

Program 1 displays the expected output, while Program 2 displays more output than necessary.

50
New cards

A visual artist is programming an 8x8 LED display:

8x8 grid of squares.

8x8 grid of squares.

This is their program so far:

rowNum ← 0

REPEAT 5 TIMES

{

colNum ← 0

REPEAT (5 - rowNum) TIMES

{

fillPixel(rowNum, colNum, "red")

colNum ← colNum + 1

}

rowNum ← rowNum + 1

}

The code relies on this procedure:

fillPixel(row, column, color) : Lights up the pixel at the given row and column with the given color (specified as a string). The top row is row 0 and the left-most column is column 0.

What will the output of their program look like?

top left corner

51
New cards

This program prompts a user to enter a secret code. Once they type the right code, it lets them continue. But if they make more than 3 bad attempts, it doesn't let them keep guessing.

1: badAttempts ← 0

2: passwordCorrect ← false

3: secretCode ← "banana"

4: REPEAT UNTIL (codeCorrect = true OR badAttempts > 3)

5: {

6: DISPLAY("Enter the secret code")

7: guessedCode ← INPUT()

8: IF (guessedCode = secretCode)

9: {

10: DISPLAY("You're in!")

11: }

12: ELSE

13: {

14: DISPLAY("Beeeep! Try again!")

15: }

16: }

This code is incorrect, however: the loop in the code never stops repeating.

Where would you add code so that the loop ends when expected?

Between line 10 and 11

Between line 14 and 15

52
New cards

KittyBot is a programmable robot that obeys the following commands:

Name Description

walkForward() Walks forward one space in the grid.

turnLeft() Rotates left 90 degrees (without moving forward).

turnRight() Rotates right 90 degrees (without moving forward).

KittyBot is currently positioned in the second row and third column of the grid, and is facing the bottom edge of the grid.

5x5 grid of squares. Cat is shown in the square in the second row and third column. One mouse is shown in the square in the third row and second column, another mouse is shown in the square in the fourth row and third column.

We want to program KittyBot so that she pounces on both of the MouseyBots, walking exactly into the squares where they're hiding.

Which of these code segments accomplishes that goal?

Choose 1 answer:

Choose 1 answer:

(Choice A, Incorrect)

INCORRECT

REPEAT 2 TIMES

{

walkForward()

turnRight()

walkForward()

turnLeft()

}

(Choice B, Checked, Correct)

CORRECT (SELECTED)

REPEAT 2 TIMES

{

walkForward()

turnRight()

walkForward()

turnLeft()

turnLeft()

}

(Choice C, Incorrect)

INCORRECT

REPEAT 2 TIMES

{

walkForward()

turnRight()

walkForward()

turnRight()

}

(Choice D, Incorrect)

INCORRECT

REPEAT 2 TIMES

{

walkForward()

turnLeft()

walkForward()

turnRight()

}

REPEAT 2 TIMES

{

walkForward()

turnRight()

walkForward()

turnLeft()

turnLeft()

}

53
New cards

An embedded systems engineer is working on an automated popcorn-cooking program for a smart microwave:

cookingSeconds ← 400

elapsedSeconds ← 0

numKernels ← countKernels()

REPEAT UNTIL (numKernels = 0 OR elapsedSeconds > 700)

{

cookFor(cookingSeconds)

elapsedSeconds ← elapsedSeconds + cookingSeconds

cookingSeconds ← cookingSeconds/2

numKernels ← countKernels()

}

The program relies on two methods provided by the microwave software:

Name Description

cookFor(numSeconds) Turns the microwave on for the given number of seconds.

countKernels() Returns the number of unpopped kernels.

Part 1: When will the computer stop executing the code inside the REPEAT loop?

👁️Note that there may be multiple answers to this question.

When numKernels is equal to 0

When elapsedSeconds is greater than 700

The computer wouldn't execute the code more than 4 times.

54
New cards

This code snippet stores and updates a list that represents files in a folder:

fileNames ← ["cow.mov", "dog.wav", "cat.jpg", "bird.avi", "fly.gif"]

DISPLAY(fileNames[3])

INSERT(fileNames, 2, "goat.tif")

INSERT(fileNames, 6, "spider.html")

DISPLAY(fileNames[3])

What does this program output to the display?

Choose 1 answer:

cat.jpg dog.wav

55
New cards

sum ← 0

i ← 10

REPEAT 11 TIMES

{

sum ← sum + i

i ← i + 1

}

This program sums up the integers from 10 to 20 (inclusive).

56
New cards

The following numbers are displayed by a program:

4 5 5 6

The program code is shown below, but it is missing three values: , , and .

i ←

REPEAT TIMES

{

DISPLAY(i)

DISPLAY(i + 1)

i ← i +

}

Given the displayed output, what must the missing values be?

= 4, = 2, = 1

57
New cards

A board games website includes a feature for users to list their favorite board games.

When the user first starts their list, the website runs this code to create an empty list:

bestGames ← []

The user can then insert and remove items from the list.

Here's the code that was executed from one user's session:

APPEND(bestGames, "Dixit")

APPEND(bestGames, "Codenames")

APPEND(bestGames, "Mysterium")

APPEND(bestGames, "Scrabble")

APPEND(bestGames, "Catchphrase")

APPEND(bestGames, "Lost Cities")

INSERT(bestGames, 2, "Carcassonne")

REMOVE(bestGames, 4)

What does the bestGames variable store after that code runs?

"Dixit", "Carcassonne", "Codenames", "Scrabble", "Catchphrase", "Lost Cities"

58
New cards

KittyBot is a programmable robot that obeys the following commands:

Name Description

walkForward() Walks forward one space in the grid.

turnLeft() Rotates left 90 degrees (without moving forward).

turnRight() Rotates right 90 degrees (without moving forward).

KittyBot is currently positioned in the fourth row and second column of the grid, and is facing the right side of the grid.

5x5 grid of squares. Cat is shown in the square in the fourth row and second column. Water bowl is shown in the square in the first row and fifth column. Water puddle is shown in the square in the second row and third column.

We want to program KittyBot to reach the bowl of RoboWater, located in the first row and fifth column, while making sure that she avoids the puddle of water along the way.

Which of these code segments accomplishes that goal?

REPEAT 3 TIMES

{

walkForward()

turnLeft()

walkForward()

turnRight()

}

59
New cards

coolDinos ← ["Triceratops", "Stegosaurus", "Ankylosaurus", "Ultrasauros", "Therizinosaurus"]

coolDinos[1] ← "Torosaurus"

coolDinos[4] ← "Supersaurus"

"Torosaurus", "Stegosaurus", "Ankylosaurus", "Supersaurus", "Therizinosaurus"

60
New cards

a ← 3

b ← 8

c ← 5

result ← min( max(a, b), c)

5

61
New cards

costs ← [1.15, 1.25, 2.50, 2.45, 3.75, 2.00]

quarterCosts ← []

FOR EACH cost IN costs

{

costInCents ← cost * 100

IF (costInCents MOD 25 = 0)

{

}

}

(Choice F, Checked)

F

APPEND(quarterCosts, cost)

62
New cards

PROCEDURE sayA () {

DISPLAY ("Alfa")

}

PROCEDURE sayB () {

DISPLAY ("Bravo")

}

PROCEDURE sayC () {

DISPLAY ("Charlie")

}

PROCEDURE sayD () {

DISPLAY ("Delta")

}

PROCEDURE sayE () {

DISPLAY ("Echo")

}

sayC ()

sayA ()

sayB ()

sayB ()

sayE ()

sayD ()

6

63
New cards

PROCEDURE lineSlope (x1, y1, x2, y2) {

result ← (y2 - y1) / (x2 - x1)

DISPLAY (result)

}

lineSlope(1, 1, 3, 4)

64
New cards

Problem

What is a benefit to using pseudocode?

(Choice C, Checked)

C

Pseudocode can represent coding concepts common to all programming languages.

65
New cards

The area of the trapezoid is equal to the sum of the length of its bases, multiplied by the half of the height.

The program starts with this code:

base1 ← 23

base2 ← 42

height ← 7

area ← height / 2 * (base1 + base2)

area ← (height / 2) * (base1 + base2)

66
New cards

result ← 1

i ← 6

REPEAT 6 TIMES

{

result ← result * i

i ← i + 3

}

This program multiplies together the multiples of 3 from 6 to 21 (inclusive).

67
New cards

title ← "Mashed parsnips"

prepTime ← 10

cookTime ← 30

rating ← 4.5

category ← "veggies"

2

68
New cards

A computer uses 5 bits to represent positive integers, using all 5 bits to represent the value.

Which of the following operations would result in integer overflow?

18 + 14

8 * 4

69
New cards

IF (today = "Monday")

{

activity ← "swimming"

}

ELSE

{

IF (today = "Tuesday")

{

activity ← "jogging"

}

ELSE

{

IF (today = "Thursday")

{

activity ← "juggling"

}

ELSE

{

IF (today = "Saturday")

{

activity ← "gardening"

}

ELSE

{

activity ← "none"

}

}

}

}

today activity

"Sunday" "none"

"Monday" "swimming"

"Tuesday" "jogging"

"Wednesday" "none"

"Thursday" "juggling"

"Friday" "none"

"Saturday" "gardening"

70
New cards

IF (mouseX < 200 AND mouseY < 200) {

currentSquare ← 1

} ELSE {

IF (mouseX > 200 AND mouseY < 200) {

currentSquare ← 4

} ELSE {

IF (mouseX < 200 AND mouseY > 200) {

currentSquare ← 2

} ELSE {

IF (mouseX > 200 AND mouseY > 200) {

currentSquare ← 3

}

}

}

}

When mouseX is 173 and mouseY is 271, what will be the value of currentSquare?

2

71
New cards

PROCEDURE pacifyName(fullName)

{

heartified ← REPLACE(fullName, " ", "♥")

florified ← REPLACE(heartified, "o", "❀")

RETURN LOWER(florified)

}

Nothing will be displayed

72
New cards

eggsInBatch ← 3

numBatches ←9

neededEggs ← eggsInBatch * numBatches

leftoverEggs ← 12 - (neededEggs MOD 12)

73
New cards

strings ← ["A", "b", "C", "d", "e"]

numFound ← 0

FOR EACH string IN strings

{

IF (UPPER(string) != string)

{

numFound ← numFound + 1

}

}

DISPLAY(numFound)

The code relies on one string operation, UPPER(string), which returns string in uppercase.

3

74
New cards

DISPLAY ("Schoolie")

DISPLAY ("McSchoolFace")

Schoolie McSchoolFace

75
New cards

IF ()

{

DISPLAY("meow!")

}

RANDOM(1, 100)

76
New cards

A scientist is running a program to calculate the volume of a cone:

radius ← 17.24

height ← 5.24

volume ← PI (radius radius) * (height / 3)

The code relies on the built-in constant PI. After running the code, the variable volume stores 1630.9266447568566.

Their supervisor checks their results by running the same calculation on their own computer. Their program results in a volume of 1630.9266447564448.

The two values are very close, but not quite the same.

Which of these is the most likely explanation for the difference?

The two computers represent the constant PI with a different level of precision, due to their rounding strategy or size limitations.

77
New cards

a ← 89

a ← 97

a ← 93

93

78
New cards

A digital artist is programming a natural simulation of waves. They plan to calculate the y position of the wave using this wave equation:

y = Acos(\dfrac{2\pi}{\lambda}x)y=Acos(

λ

​ x)y, equals, A, c, o, s, left parenthesis, start fraction, 2, pi, divided by, lambda, end fraction, x, right parenthesis

The environment provides the built-in procedure cos(angle) which returns the cosine of angle. The built-in constant PI stores an approximation of PI.

In the artist's code, the variable x represents the x position (xxx), wL represents the wavelength (\lambdaλlambda), and amp represents the amplitude (AAA).

amp cos( ((2 PI)/wL) * x)

79
New cards

Michaela is working with a game designer on an online role playing game. The designer sends them this flow chart:

Flow chart that starts with diamond and branches into two rectangles.

* Diamond contains question, "Is dice roll at least 15?"

* Arrow marked "true" leads to rectangle with text "Action succeeds"

* Arrow marked "false" leads to rectangle with text "Action fails"

Flow chart that starts with diamond and branches into two rectangles. Diamond contains question, "Is dice roll at least 15?" Arrow marked "true" leads to rectangle with text "Action succeeds" * Arrow marked "false" leads to rectangle with text "Action fails"

[How do you read a flowchart?]

She must implement that logic in code, using the variables diceRoll and action.

Which of these code snippets correctly implements the logic in that flow chart?

IF (diceRoll ≥ 15)

{

action ← "success"

}

ELSE

{

action ← "failure"

}

80
New cards

Jack is creating a text-based card game.

He starts off with this code that deals 3 cards:

DISPLAY ("Ace of clubs\n")

DISPLAY (" ___ \n")

DISPLAY ("|A |\n")

DISPLAY ("| O |\n")

DISPLAY ("|OxO|\n")

DISPLAY ("7 of diamonds\n")

DISPLAY (" ___ \n")

DISPLAY ("|7 |\n")

DISPLAY ("| /\|\n")

DISPLAY ("|_\/|\n")

DISPLAY ("5 of clubs\n")

DISPLAY (" ___ \n")

DISPLAY ("|5 |\n")

DISPLAY ("| O |\n")

DISPLAY ("|OxO|\n")

After writing that code, Jack decides to use a different way to draw the bottom line of the clubs cards:

DISPLAY ("|O,O|\n")

2

1

If he has to update multiple places in the code, the program will run slower.

81
New cards

The following procedure calculates the area of a trapezoid and takes three parameters: the width of the first base, the width of the second base, and the height of the trapezoid.

PROCEDURE trapezoidArea (b1, b2, h) {

result ← ((b1 + b2) * h) / 2

DISPLAY (result)

}

Here is a trapezoid with an unknown area:

Trapezoid diagram with upper base width of 5 meters, lower base width of 3 meters, and height of 4 meters.

Trapezoid diagram with upper base width of 5 meters, lower base width of 3 meters, and height of 4 meters.

Which of these lines of code correctly calls the procedure to calculate the area of this trapezoid?

trapezoidArea (5, 3, 4)

trapezoidArea (3, 5, 4)

82
New cards

userBday ← "03/31/84"

DISPLAY (SUBSTRING (userBday, 7, 2))

83
New cards

certification ← "none"

IF (albumsSold 10000000)

{

certification ← "diamond"

} ELSE

{

IF (albumsSold 1000000)

{

certification ← "platinum"

}

ELSE {

IF (albumsSold 500000)

{

certification ← "gold"

}

}

84
New cards

numSold ← 10

pricePer ← 2

moneyMade ← numSold * pricePer

DISPLAY(CONCAT(numSold, CONCAT(" x ", pricePer)))

DISPLAY(CONCAT(" = ", moneyMade))

numSold ← 20

pricePer ← 1.5

moneyMade ← numSold * pricePer

DISPLAY(CONCAT(numSold, CONCAT(" x ", pricePer)))

DISPLAY(CONCAT(" = ", moneyMade))

numSold ← 30

pricePer ← 1.25

moneyMade ← numSold * pricePer

DISPLAY(CONCAT(numSold, CONCAT(" x ", pricePer)))

DISPLAY(CONCAT(" = ", moneyMade))

PROCEDURE calcProfit(numSold, pricePer) {

moneyMade ← numSold * pricePer

DISPLAY(CONCAT(numSold, CONCAT(" x ", pricePer)))

DISPLAY(CONCAT(" = ", moneyMade))

}

85
New cards

Which line of code would store the string "one-third"?

frac ← concatenate(concatenate(num1, "-"), denom))

86
New cards

DISPLAY (":")

DISPLAY ("-")

DISPLAY ("O")

: - O

87
New cards

Landry is writing a program to help her calculate how long it will take to read the books she received for Christmas.

The procedure calcReadingHours returns the number of hours it will take her to read a given number of pages, if each page takes a given number of minutes to read.

PROCEDURE calcReadingHours(numPages, minPerPage)

{

totalMin ← numPages * minPerPage

RETURN totalMin / 60

}

Landry then runs this line of code:

hoursNeeded ← calcReadingHours(180, 2)

6

88
New cards

IF (currentNum > expectedNum)

{

status ← "Elevated error rate"

}

ELSE

{

status ← "All is well"

}

currentNum expectedNum status

2 5 "All is well"

5 5 "All is well"

6 5 "Elevated error rate"

9 10 "All is well"

10 10 "All is well"

15 10 "Elevated error rate"

89
New cards

A game developer is working on a basketball playing game.

This incomplete code segment simulates a player attempting a 3-pointer shot:

shotMade ← false

IF ()

{

shotMade ← true

score ← score + 3

DISPLAY("Score!")

}

ELSE

{

DISPLAY("Miss!")

}

The code should give the player a 40% chance of making the shot.

Which of these can replace so that the code works as intended?

RANDOM(1, 100)

90
New cards

In the classic arcade game Donkey Kong, the code calculates the time allowed per level by multiplying the current level and adding 40. On level 22, that calculated time is 260. However, the game displays a time of 4 instead of 260.

It is impossible for anyone to complete the level in just 4 seconds, so no player ever makes it past level 22.

What is the most likely cause of the level 22 bug?

Integer overflow error

91
New cards

NOT ( state = "loading" OR result = "error" )

NOT ( state = "loading" OR result = "error" )

92
New cards

Volume=πr

2

3

h

PI (radius radius) * (height / 3)

93
New cards

Kash is writing code to calculate formulas from his physics class. He's currently working on a procedure to calculate average speed, based on this formula:

\text{Average speed} = \dfrac{\text{Total Distance}}{\text{Total Time}}Average speed=

Total Time

Total Distance

​ A, v, e, r, a, g, e, space, s, p, e, e, d, equals, start fraction, T, o, t, a, l, space, D, i, s, t, a, n, c, e, divided by, T, o, t, a, l, space, T, i, m, e, end fraction

Which of these is the best procedure for calculating and displaying average speed?

Choose 1 answer:

PROCEDURE calcAvgSpeed (distance, time) {

DISPLAY (distance/time)

}

94
New cards

A digital artist is writing a program to draw a face.

This is the part of the code that draws the eyes and pupils:

eyeSize ← RANDOM(5, 20)

CIRCLE("white", 20, 20, eyeSize)

CIRCLE("white", 40, 20, eyeSize)

pupilSize ← RANDOM(2, 5)

CIRCLE("black", 20, 20, pupilSize)

CIRCLE("black", 40, 20, pupilSize)

The code relies on the CIRCLE() procedure from a drawing library, which accepts four parameters for the circle's fill color, x position, y position, and diameter.

Here's what's drawn from one run of the program:

Two circles with two black circles inside them.

Which of these best describes what his program can draw?

Two equally-sized eyes ranging in size, with a minimum size of 5 pixels and a maximum size of 20 pixels. Each eye has a black pupil that ranges in size from a minimum of 2 pixels to a max of 5 pixels.

95
New cards

This program uses a conditional to predict how a baby will be affected by an X-linked disease.

IF (motherGene = "mutated" AND babySex = "XY")

{

babyStatus ← "affected"

}

ELSE {

IF (motherGene = "mutated" AND babySex = "XX")

{

babyStatus ← "carrier"

}

ELSE

{

babyStatus ← "unaffected"

}

}

In which situations will babyStatus be "unaffected"?

When motherGene is "normal" and babySex is "XX"

When motherGene is "normal" and babySex is "XY"

96
New cards

Charlee is developing a program to calculate shipping costs for an online clothing store.

The clothing store has this shipping policy:

Purchase cost Shipping cost

Lower than $50 $15

$50 and above $0 (FREE)

The variable purchaseCost represents a customer's purchase cost and her program needs to set shippingCost to the appropriate value.

Which of these code segments correctly sets the value of shippingCost?

IF (purchaseCost ≥ 50)

{

shippingCost ← 0

}

ELSE

{

shippingCost ← 15

}

IF (purchaseCost < 50)

{

shippingCost ← 15

}

ELSE

{

shippingCost ← 0

}

97
New cards

start ← "Bibbidi Bobbidi"

end ← "Boo"

spell ← CONCAT(start, UPPER(end))

What value does the spell variable store?

"Bibbidi BobbidiBOO"

98
New cards

A gardener is writing a program to detect whether the soils for their citrus trees are the optimal level of acidity.

IF (measuredPH > 6.5)

{

soilState ← "high"

}

ELSE {

IF (measuredPH < 5.5)

{

soilState ← "low"

}

ELSE

{

soilState ← "optimal"

}

}

Which of these tables shows the expected values of soilState for the given values of measuredPH?

measuredPH soilState

4.7 "low"

5.4 "low"

5.5 "optimal"

6.2 "optimal"

6.5 "optimal"

6.7 "high"

7.2 "high"

99
New cards

An astronomer is writing a program demonstrating Kepler's three laws of planetary motion, including this ratio of orbital period compared to average orbital radius:

\text{Constant} = T^2/R^3Constant=T

2

/R

3

C, o, n, s, t, a, n, t, equals, T, start superscript, 2, end superscript, slash, R, start superscript, 3, end superscript

This is their code for computing that ratio:

keplerRatio ← (period period) / (radius radius * radius)

They then discover that the coding environment offers a number of useful mathematical procedures:

keplerRatio ← pow(period, 2) / pow(radius, 3)

keplerRatio ← square(period) / cube(radius)

100
New cards

Nikki read that it's healthy to take 10,000 steps every day. She's curious how many steps that'd be per minute, walking from 10AM to 10PM, and is writing a program to figure it out.

The program starts with this code:

stepsPerDay ← 10000

hoursAwake ← 12

Which lines of code successfully calculate and store the steps per minute?

👁️

stepsPerMin ← (stepsPerDay / hoursAwake) / 60

stepsPerMin ← stepsPerDay / hoursAwake / 60