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]
0 Comments