Examveda
Examveda

Which of the following statements are correct about the program below?
#include<stdio.h>
void main()
{
    int size, i;
    scanf("%d", &size);
    int arr[size];
    for(i=1; i<=size; i++)
    {
        scanf("%d", arr[i]);
        printf("%d", arr[i]);
    }
}

A. The code is erroneous since the statement declaring array is invalid.

B. The code is erroneous since the subscript for array used in for loop is in the range 1 to size.

C. The code is correct and runs successfully.

D. The code is erroneous since the values of array are getting scanned through the loop.

E. None of these

Answer: Option A

Solution(By Examveda Team)

The statement int arr[size]; produces an error, because we cannot initialize the size of array dynamically. Constant expression is required here.
Example: int arr[10];
One more point is there, that is, usually declaration is not allowed after calling any function in a current block of code. In the given program the declaration int arr[10]; is placed after a function call scanf().


This Question Belongs to C Program >> Arrays And Strings

Join The Discussion

Comments ( 5 )

  1. Golam Muktadir
    Golam Muktadir :
    2 years ago

    No error, It works on Code block 20.03.

  2. Important Not
    Important Not :
    5 years ago

    It has no error

  3. Gopal Krishna
    Gopal Krishna :
    7 years ago

    No,those statements work without even generating warnings

  4. Amar Raikwade
    Amar Raikwade :
    8 years ago

    & sign is also missing.

  5. SHUBHAM SHASTRI
    SHUBHAM SHASTRI :
    8 years ago

    HERE WE WILL GET GARBAGE, AS VALUES OF ARRAY ARE NOT SCANNED BY &.......SO NO USE OF IT.

Related Questions on Arrays and Strings