C Quiz : Part-I

1. What is the correct value to return to the operating system upon the successful completion of a program? 
A. -1
B. 1
C. 0
D. Programs do not return a value.


2. What is the only function all C programs must contain?
A. start()
B. system()
C. main()
D. program()


3. What punctuation is used to signal the beginning and end of code blocks? 
A. { }
B. -> and <-
D. ( and )


4. What punctuation ends most lines of C code?
A. . 

B. ;
C. :
D. '


5. Which of the following is a correct comment?
A. */ Comments */
B. ** Comment **
C. /* Comment */
D. { Comment }


6. Which of the following is not a correct variable type?
A. float
B. real
C. int
D. double


7. Which of the following is the correct operator to compare two variables?
A. :=
B. =
C. equal
D. ==

8. Which of the following is true?
A. 1
B. 66
C. .1
D. -1
E. All of the above

9. Which of the following is the boolean operator for logical-and?
A. &
B. &&
C. |
D. |&


10. Evaluate !(1 && !(0 || 1)).  
A. True
B. False
C. Unevaluatable


11. Which of the following shows the correct syntax for an if statement?
A. if expression
B. if { expression
C. if ( expression )
D. expression if

12. What is the final value of x when the code int x; for(x=0; x<10; x++) {} is run?  
A. 10
B. 9
C. 0
D. 1

13. When does the code block following while(x<100) execute?
A. When x is less than one hundred
B. When x is greater than one hundred
C. When x is equal to one hundred
D. While it wishes


14. Which is not a loop structure?
A. For
B. Do while
C. While
D. Repeat Until

15. How many times is a do while loop guaranteed to loop?
A. 0
B. Infinitely
C. 1
D. Variable

16. Which is not a proper prototype?
A. int funct(char x, char y);  
B. double funct(char x)
C. void funct();
D. char x();


17. What is the return type of the function with prototype: "int func(char x, float v, double t);"
A. char
B. int
C. float
D. double


18. Which of the following is a valid function call (assuming the function exists)?
A. funct;
B. funct x, y;
C. funct();
D. int funct();


19. Which of the following is a complete function?
A. int funct();
B. int funct(int x) {return x=x+1;}
C. void funct(int) { printf( "Hello");
D. void funct(x) { printf( "Hello"); }

20. Which follows the case statement?
A. :
B. ;
C. -
D. A newline

21. What is required to avoid falling through from one case to the next?
A. end;
B. break;
C. Stop;
D. A semicolon.

22. What keyword covers unhandled possibilities?
A. all
B. contingency
C. default
D. other

23. What is the result of the following code?
int x=0;



  case 1: printf( "One" );

  case 0: printf( "Zero" );

  case 2: printf( "Hello World" );

A. One
B. Zero
C. Hello World
D. ZeroHello World

24. Which of the following is the proper declaration of a pointer?
A. int x;
B. int &x;
C. ptr x;
D. int *x;

25. Which of the following gives the memory address of integer variable a?
A. *a;
B. a;
C. &a;
D. address(a);

26. Which of the following gives the memory address of a variable pointed to by pointer a?
A. a;
B. *a;
C. &a;
D. address(a);

27. Which of the following gives the value stored at the address pointed to by pointer a?
A. a;
B. val(a);
C. *a;
D. &a;

28. Which of the following is the proper keyword to allocate memory in C?
A. new
B. malloc
C. create
D. value

29. Which of the following is the proper keyword to deallocate memory?
A. free
B. delete
C. clear
D. remove

30. Which of the following accesses a variable in structure b?
A. b->var;
B. b.var;
C. b-var;
D. b>var;


31. Which of the following accesses a variable in structure *b?  
A. b->var;
B. b.var;
C. b-var;
D. b>var;


32. Which of the following is a properly defined struct?

A. struct {int a;}
B. struct a_struct {int a;}
C. struct a_struct int a;

D. struct a_struct {int a;};

33. Which properly declares a variable of struct foo?

A. struct foo;  
B. struct foo var;
C. foo;
D. int foo;

34. Which of the following correctly declares an array?
A. int anarray[10];
B. int anarray;
C. anarray{10};
D. array anarray[10];

35. What is the index number of the last element of an array with 29 elements?
A. 29
B. 28
C. 0
D. Programmer-defined

36. Which of the following is a two-dimensional array?
A. array anarray[20][20];
B. int anarray[20][20];
C. int array[20, 20];
D. char array[20];

37. Which of the following correctly accesses the seventh element stored in foo, an array with 100 elements?
A. foo[6];
B. foo[7];
C. foo(7);
D. foo;

38. Which of the following gives the memory address of the first element in array foo, an array with 100 elements?
A. foo[0];
B. foo;
C. &foo;
D. foo[1];

39. Which of the following is a static string?
A. Static String
B. "Static String"
C. 'Static String'
D. char string[100];


40. What character ends all strings?
A. '.'
B. ' '
C. '\0'
D. '\n'

41. Which of the following reads in a string named x with one hundred characters?
A fgets(x, 101, stdin);
B. fgets(x, 100, stdin);
C. readline(x, 100, '\n');
D. read(x);


42. Which of the following functions compares two strings? 
A. compare();
B. stringcompare();
C. cmp();
D. strcmp();

43. Which of the following adds one string to the end of another?
A. append();
B. stringadd();
C. strcat();
D. stradd();
44. What object do you use to represent a file in C? 
B. fopen
C. printf
D. fprintf

45. Before you can read or write to a file in C, what do you need to do? 
A. Call fopen on the file
B. Create the file
C. Call fclose on the file
D. Use fprintf

46. How do you write a string of text into a file?  
A. Open file and use fprintf.
B. Open a file and use printf, the output will go to the file instead of the screen.
C. Open a file, and use fputc repeatedly.
D. Use fread to read data into the file.

47. What flag do you need to pass to fopen to append to an existing file instead of recreating the file?
A. a
B. r
C. w
D. W+

48. How do you open a file for binary IO?  
A. Use the "b" flag to fopen
B. Files are opened for binary IO by default
C. Use fread and fwrite
D. You need to use a special file type, BINARYFILE*

49. Which header file do you need to include to use typecasting?
A. stdin.h
B. ctype.h
C. math.h
D. None

50. Which is a valid typecast?
A. a(char);
B. char:a;
C. (char)a;
D. to(char, a);

51. Why can typecasting be dangerous?
A. Some conversions are not defined, such as char to int.
B. You might permanently change the value of the variable.
C. You might temporarily lose part of the data - such as truncating a float when typecasting to an int.
D. There are no dangers.

52. Which is a good use for typecasting?
A. To allow division of two integers to return a decimal value.
B. To allow your program to use nothing but integers.
C. To change the return type of a function.
D. To swap variables rapidly.

53. Which conversion is not possible?
A. int to float
B. float to int
C. char to float
D. All are possible

54. What variables stores the number of arguments to a program?  
A. argc
B. argv
C count
D. arglen

55. What is argv[0]?
A. The number of arguments to the program
B. The name of the program
C. The first argument to the program
D. This syntax is illegal

56. What type is argv?
A. char *
B. int
C. char **
D. It's not a variable

57. In what order do the two command line variables appear in the definition of main?  
A. Count then argument array
B. Argument array then count
C. They don't appear in the definition of main
D. There is only one argument.

58. What does the argument count variable store?
A. the number of arguments
B. the number of arguments plus one
C. the number of arguments minus one
D. The total size of the argument array

String functions in C

1. C Program to Find the Frequency of Characters in a String

2. C Program to Reverse a String by Passing it to Function

Source Code


#include <stdio.h>
int main(){
   char c[1000],ch;
   int i,count=0;
   printf("Enter a string: ");
   printf("Enter a characeter to find frequency: ");
   printf("Frequency of %c = %d", ch, count);
   return 0;
Enter a string: md. ahsan arif
Enter a frequency to find frequency: a
Frequency of a = 3

void Reverse(char str[]);
int main(){
    char str[100];
    printf("Enter a string to reverse: ");
    printf("Reversed string: ");
 return 0;
void Reverse(char str[]){
    int i,j;
    char temp[100];
    for(i=strlen(str)-1,j=0; i+1!=0; --i,++j)
Enter a string to reverse: fira
Reversed string: arif