Bird
0
0

Which of the following C functions correctly returns the first prime number found in an integer array, or -1 if none is found, using return inside a loop?

hard📝 Application Q8 of 15
C - Loop Control Statements
Which of the following C functions correctly returns the first prime number found in an integer array, or -1 if none is found, using return inside a loop?
A<pre>int firstPrime(int arr[], int n) { int prime = -1; for(int i = 0; i < n; i++) { if(isPrime(arr[i])) prime = arr[i]; } return prime; }</pre>
B<pre>int firstPrime(int arr[], int n) { for(int i = 0; i < n; i++) { if(isPrime(arr[i])) return arr[i]; } return -1; }</pre>
C<pre>int firstPrime(int arr[], int n) { for(int i = 0; i < n; i++) { if(isPrime(arr[i])) break; } return arr[i]; }</pre>
D<pre>int firstPrime(int arr[], int n) { for(int i = 0; i < n; i++) { if(isPrime(arr[i])) return i; } return 0; }</pre>
Step-by-Step Solution
Solution:
  1. Step 1: Analyze
    int firstPrime(int arr[], int n) {
      for(int i = 0; i < n; i++) {
        if(isPrime(arr[i]))
          return arr[i];
      }
      return -1;
    }

    It loops through the array, returns the first prime number immediately when found, else returns -1 after loop.
  2. Step 2: Analyze
    int firstPrime(int arr[], int n) {
      int prime = -1;
      for(int i = 0; i < n; i++) {
        if(isPrime(arr[i]))
          prime = arr[i];
      }
      return prime;
    }

    It updates prime but does not return immediately, so it returns the last prime found, not the first.
  3. Step 3: Analyze
    int firstPrime(int arr[], int n) {
      for(int i = 0; i < n; i++) {
        if(isPrime(arr[i]))
          break;
      }
      return arr[i];
    }

    Uses break but then returns arr[i] outside loop; i is out of scope or undefined here.
  4. Step 4: Analyze
    int firstPrime(int arr[], int n) {
      for(int i = 0; i < n; i++) {
        if(isPrime(arr[i]))
          return i;
      }
      return 0;
    }

    Returns index of prime, not the prime number itself, and returns 0 if none found which is incorrect.
  5. Final Answer:

    int firstPrime(int arr[], int n) {
      for(int i = 0; i < n; i++) {
        if(isPrime(arr[i]))
          return arr[i];
      }
      return -1;
    }
    correctly returns the first prime number or -1 if none found.
  6. Quick Check:

    Return inside loop immediately returns first prime [OK]
Quick Trick: Return inside loop returns first match immediately [OK]
Common Mistakes:
  • Returning index instead of value
  • Not returning immediately inside loop
  • Using break without proper return

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More C Quizzes