C MCQ Questions and Answers on Strings, Char Arrays and Pointers 2

Image
C MCQ Questions and Answers

Study C MCQ Questions and Answers on Strings, Character Arrays, String Pointers and Char Pointers. Easily attend technical job interviews after practising the Multiple Choice Questions.

Go through C Theory Notes on Strings before studying questions.



1) What is the ASCII value of NULL or \0.?
A) 0
B) 1
C) 10
D) 49
Answer [=]
A
Explanation:

ASCII value of NULL character is ZERO 0.

2) A character constant is enclosed by.?
A) Left Single Quotes
B) Right Single Quotes
C) Double Quotes
D) None of the above
Answer [=]
B
Explanation:

char ary[] = {'a','b','\0'}.

char bry[] = {`a`,`b`,`c`}; is wrong as it uses Left Single Quotes.

3) Choose a correct statement about C String.
A) A string is a group of characters enclosed by double quotes.
B) If a string is defined with double quotes, NULL is automatically added at the end.
C) Size of a string is without counting NULL character at the end
D) All the above
Answer [=]
D
4) A C string elements are always stored in.?
A) Random memory locations
B) Alternate memory locations
C) Sequential memory locations
D) None of the above
Answer [=]
C
5) What is the output of C program with strings.?
int main()
{
    char var='b';
    printf("%d ", sizeof("a"));
    printf("%d ", sizeof('b'));
    printf("%d ", sizeof(10));
    printf("%d ", sizeof(var));
}
//int size is 2 bytes
A) 1 1 1 1
B) 2 1 2 1
C) 2 2 2 1
D) 2 2 2 2
Answer [=]
C
Explanation:

sizeof('b') is 2 because 'b' is converted to ASCII number which is integer. sizeof(var) is printed as expected. size("a") is two because NULL occupies 1 byte.

6) What is the output of C program with strings.?
int main()
{
    char str[]="JACKIE CHAN";
    int i=0;
    while(str[i] != 0)
    {
        printf("%c",str[i]);
        i++;
    }
    return 0;
}
A) JJJJJJ JJJJ
B) JACKIE CHAN
C) Compiler error
D) None of the above
Answer [=]
B
Explanation:

Yes. You can check for end of a string with ASCII ZERO 0. ASCII value of NULL or \0 is ZERO.

7) What is the output of C program with strings.?
int main()
{
    char str[]="ANDAMAN";
    int i=0;
    while(str[i] != '\0')
    {
        printf("%c",str[i]);
        i++;
    }
    return 0;
}
A) AAAAAAA
B) ANDAMAN
C) Compiler error
D) None of the above
Answer [=]
B


8) What is the output of C program with strings.?
int main()
{
    char str[]="MALDIVES";
    printf("%s ",str);
    puts(str);
    return 0;
}
A) MALDIVES
B) MALDIVES MALDIVES
C) M MALDIVES
D) None of the above
Answer [=]
B
Explanation:

PUTS prints strings without any format specifier like %s.

9) What is the output of C program with strings.?
int main()
{
    char str[3]="SUNDAY";
    printf("%s",str);
}
A) SUN
B) SUNgarbagevalues
C) compiler error
D) None of the above
Answer [=]
B
Explanation:

You get C warning.

warning: initializer-string for array of chars is too long
10) Choose a correct C statement about String functions.?
A) int n=strlen("abc") returns 3.
B) strupr("abc") returns ABC
C) strlwr("Abc") returns abc
D) All the above
Answer [=]
D
11) Choose a correct C statement about String functions.?
A) strrev("abcD") returns Dcba.
B) strcmp("abc", "bcd") returns a negative number
C) strcmp("234","123") returns a positive number
D) All the above
Answer [=]
D
12) Choose a correct C statement about String functions.?
A) toupper('a') returns A
B) tolower('D') returns d.
C) strcmp("123","12345") returns a negative number
D) All the above
Answer [=]
D
13) What is the output of C program.?
int main()
{
    char str1[]="JAMES,";
    char str2[15]="BOND ";
    strcat(str2,str1);
    printf("%s",str2);
    printf("%s",str1);
}
A) JAMES BOND,JAMES,
B) JAMES,JAMES,
C) BOND JAMES,JAMES,
D) None of the above
Answer [=]
C
Explanation:

Here str1 is not affected by strcat function. STRCAT(destination, source).

14) What is the output of C program.?
int main()
{
    printf("%c","HUMPTY"[2]);
}
A) U
B) M
C) HUMPTY
D) None of the above
Answer [=]
B


15) What is the output of C program.?
int main()
{
    char str1[] = "FIRST";
    char str2[20];
    strcpy(str2,str1);
    printf("%s %s ",str1,str2);
    printf("%d", (str1!=str2));
    printf("%d", strcmp(str1,str2));
    return 0;
}
A) FIRST FIRST 0 0
B) FIRST FIRST 1 1
C) FIRST FIRST 1 0
D) FIRST FIRST 0 1
Answer [=]
C
Explanation:

STRCPY copies STR1 value to another memory location pointed by STR2. Only STR1 and STR2 values are same but not memory locations.

16) What is the output of C program with array of pointers to strings.?
int main()
{
    char *code[]={"IN","USA","K"};
    printf("%s", code[1]);
    return 0;
}
A) IN
B) U
C) USA
D) Compiler error
Answer [=]
C
Explanation:

It is an array of arrays. Using an array of pointers to strings, we can save memory. Different strings can have different lengths. Other wise, max length of any element should be the length of all elements. It wastes space.

17) What is the output of C program with String arrays.?
int main()
{
    char code[3][4]={"IN","USA","K"};
    printf("%s", code[1]);
    return 0;
}
A) IN
B) USA
C) K
D) Compiler error
Answer [=]
B
Explanation:

Here, we have not used pointers to strings. So a total of 3x4=12 bytes is allocated. Using a pointers to strings, we can allocate just 3+4+2=9 bytes. Extra byte stores NULL or \0. USA+null = 4 characters.

18) What is the output of C program with array of pointers to strings.?
int main()
{
    char *code[2];
    code[0]= (char *)malloc(4);
    strcpy(code[0], "IND");
    printf("%s", code[0]);
    return 0;
}
A) I
B) IN
C) IND
D) Compiler error
Answer [=]
C
Explanation:

If you use a pointer to string instead of char str[], you should use malloc() or calloc() to allocate memory and then write some data like "IND" into it. Otherwise, your output will be unexpected.

19) What is actually passed to PRINTF or SCANF functions.?
A) Value of String
B) Address of String
C) End address of String
D) Integer equivalent value of String
Answer [=]
B
Explanation:

printf("Hello") takes the address of "Hello" and processes till it reaches NULL or \0.

20) What is the output of C program with strings.?
int main()
{
    char *code="JUMPER";
    if(code[6]=='\o')
    {
        printf("SUMMER");
    }
    else
    {
        printf("WINTER");
    }
    return 0;
}
A) SUMMER
B) WINTER
C) Compiler error
D) None of the above
Answer [=]
B
Explanation:

SLASH O is different from SLASH ZERO. Use '\0' to get end of string.