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

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 a String in C Language.?
A) String is a new Data Type in C
B) String is an array of Characters with null character as the last element of array.
C) String is an array of Characters with null character as the first element of array
D) String is an array of Integers with 0 as the last element of array.
Answer [=]
B
2) Choose a correct statement about C String.
char ary[]="Hello..!";
A) Character array, ary is a string.
B) ary has no Null character at the end
C) String size is not mentioned
D) String can not contain special characters.
Answer [=]
A
Explanation:

It is a simple way of creating a C String. You can also define it like the below. \0 is mandatory in this version. char ary[] = {'h','e','l','l','o','\0'};

3) What is the Format specifier used to print a String or Character array in C Printf or Scanf function.?
A) %c
B) %C
C) %s
D) %w
Answer [=]
C
Explanation:
char ary[]="Hello..!";
printf("%s",ary);
4) What is the output of C Program with Strings.?
int main()
{
    char ary[]="Discovery Channel";
    printf("%s",ary);
    return 0;
}
A) D
B) Discovery Channel
C) Discovery
D) Compiler error
Answer [=]
B
Explanation:

%s prints the while character array in one go.

5) What is the output of C Program with Strings.?
int main()
{
    char str[]={'g','l','o','b','e'};
    printf("%s",str);
    return 0;
}
A) g
B) globe
C) globe\0
D) None of the above
Answer [=]
D
Explanation:

Notice that you have not added the last character \0 in the char array. So it is not a string. It can not know the end of string. So it may print string with some garbage values at the end.

6) What is the output of C Program with Strings.?
int main()
{
    char str[]={'g','l','o','b','y','\0'};
    printf("%s",str);
    return 0;
}
A) g
B) globe
C) globe\0
D) Compiler error
Answer [=]
B
Explanation:

Adding a NULL or \0 at the end is a correct way of representing a C string. You can simple use char str[]="globy". It is same as above.

7) How do you convert this char array to string.?
char str[]={'g','l','o','b','y'};
A) str[5] = 0;
B) str[5] = '\0'
C) str[]={'g','l','o','b','y','\0'};
D) All the above
Answer [=]
D


8) What is the output of C Program.?
int main()
{
    int str[]={'g','l','o','b','y'};
    printf("A%c ",str);
    printf("A%s ",str);
    printf("A%c ",str[0]);
    return 0;
}
A) A A A
B) A Ag Ag
C) A*randomchar* Ag Ag
D) Compiler error
Answer [=]
C
Explanation:

Notice that STR is not a string as it is not a char array with null at the end. So STR is the address of array which is converted to Char by %c. If you use %s, it prints the first number converted to char.

9) What is the output of C Program with arrays.?
int main()
{
    char str[]={"C","A","T","\0"};
    printf("%s",str);
    return 0;
}
A) C
B) CAT
C) CAT\0
D) Compiler error
Answer [=]
D
Explanation:

Yes. You can not use Double Quotes " to represent a single character. Correct way is 'C' not "C". You should use Single Quotes around a single character constant.

10) What is the maximum length of a C String.?
A) 32 characters
B) 64 characters
C) 256 characters
D) None of the above
Answer [=]
D
Explanation:

Maximum size of a C String is dependent on implemented PC memory. C does not restrict C array size or String Length.

11) What is the output of C program with strings.?
int main()
{
    char str1[]="JOHN";
    char str2[20];
    str2= str1;
    printf("%s",str2);
    return 0;
}
A) JOHN
B) J
C) JOHN\0
D) Compiler error
Answer [=]
D
Explanation:

You can not assign one string to the other. It is an error. "

error: assignment to expression with array type
12) What is the output of C Program with arrays.?
int main()
{
    char str[25];
    scanf("%s", str);
    printf("%s",str);
    return 0;
}
//input: South Africa
A) South
B) South Africa
C) S
D) Compiler error
Answer [=]
A
Explanation:

SCANF can not accept a string with spaces or tabs. So SCANF takes only South into STR.

13) What is the output of C program with strings.?
int main()
{
    char str[2];
    scanf("%s", str);
    printf("%s",str);
    return 0;
}
//Input: South
A) So
B) South
C) Compiler error
D) None of the above
Answer [=]
B
Explanation:

In C Arrays, Overflow or Out of Bounds is not checked properly. It is your responsibility to check.

14) What is the output of C Program with strings.?
int main()
{
    char str[2];
    int i=0;
    scanf("%s", str);
    while(str[i] != '\0')
    {
        printf("%c", str[i]);
        i++;
    }
    return 0;
}
//Input: KLMN
A) KL
B) KLMN
C) Compiler error
D) None of the above
Answer [=]
B
Explanation:

It always overwrites the next memory locations of the array. It is your responsibility to check bounds. Scanf automatically adds a '\0' at the end of entered string.



15) What is the output of C Program with String Pointer.?
int main()
{
    char country[]="BRAZIL";
    char *ptr;
    ptr=country;
    while(*ptr != '\0')
    {
        printf("%c", *ptr);
        ptr++;
    }
    return 0;
}
A) B
B) BRAZIL
C) Compiler error
D) None of the above
Answer [=]
B
Explanation:

*ptr != '\0' is the main part of traversing a C String.

16) How do you accept a Multi Word Input in C Language.?
A) SCANF
B) GETS
C) GETC
D) FINDS
Answer [=]
B
Explanation:

Yes. gets(str) fills the array str with the input given by the user.

17) Choose a correct C Statement about Strings.
A) PRINTF is capable of printing a multi word string.
B) PUTS is capable of printing a multi word string.
C) GETS is capable of accepting a multi word string from console or command prompt
D) All the above
Answer [=]
D
18) What is the output of C Program with String Pointers.?
int main()
{
    char *p1 = "GOAT";
    char *p2;
    p2 = p1;
    printf("%s", p2);
}
A) G
B) GOAT
C) Compiler error
D) None of the above
Answer [=]
B
Explanation:

Yes. You can assign one String pointer to another. But you can not assign a normal character array variable to other like STR2 = STR1. It is an error.

19) What is the output of C Program with String arrays.?
int main()
{
    char *p1 = "GOAT";
    char *p2;
    p2 = p1;
    p2="ANT";
    printf("%s", p1);
}
A) ANT
B) GOAT
C) G
D) A
Answer [=]
B
Explanation:

*p1 and *p2 are completely pointing different memory locations. So, p1 value is not touched.

20) What is the output of C Program with String Arrays.?
int main()
{
    char p[] = "GODZILLA";
    int i=0;
    while(p[i] != '\0')
    {
        printf("%c",*(p+i));
        i++;
    }
}
A) G
B) GODZILLA
C) Compiler error
D) None of the above
Answer [=]
B
Explanation:

Notice the usage of *(p+i). Remember that, p[i] == *(p+i) == *(i+p) == i[p]