Upwork/oDesk C Programming Test



1. What does the argv[0] represent?
Answers:
• The first command line parameter has been passed to the program
• The program name
• The number of command line arguments
• None of the above

2. Read the following two declaration statements.


1. #include <stdio.h>

2. #include "stdio.h"


Which of the following statements pertaining to the above two statements are correct?
Answers:
• For statement 1, the header file will be searched first in the local directory and then in the standard system directories such as "/usr/include"
• For statement 1, the header file will be searched in the standard system directories such as "/usr/include"
• For statement 2, the header file will be searched first in the local directory and then in the standard system directories such as "/usr/include"
• For statement 2, the header file will be searched in the standard system directories such as "/usr/include"
• None of the above
3. Is the following statement correct? If not, why not? If yes, what is the size of the array? 

int array[][3] = { {1,2}, {2,3}, {3,4,2} };
Answers:
• Yes, the size is three columns by two rows
• Yes, the size is two columns by two rows
• No, the first dimension is omitted
• No, one of the three initializer sets contains too many numbers
• Yes, the size is three columns by three rows
4. What will be printed on the standard output as a result of the following code snippet?


void func()

{

    static int i = 1;

    int j = 1;

    i++;

    j++;

    printf("%d %d ",i,j);

}


void main()

{

    func();

    func();

    func();

}
Answers:
• 2 2 2 2 2 2
• 2 2 3 2 4 2
• 2 2 2 3 2 4
• 2 2 3 3 4 4
• None of these
5. Which standard function is used to clear memory allocated by the malloc() function?
Answers:
• free
• calloc
• delete
• elease
• destroy
6. What is the function to concatenate two strings?
Answers:
• strcmp()
• strcpy()
• strcat()
• strlen()
• catstr()
7. Which of the following is not a valid mode for opening a file?
Answers:
• r
• w
• a
• +
• i
8. What will be printed on the standard output as a result of the following code snippet?

void main()
{
        int num1 = 30, num2 = 4;
        float result;
        result = (float)(num1/num2);
        printf("%.2f", result);
        return 0;
}
Answers:
• 7
• 7.00
• 7.000000
• 7.5
• 7.50
9. Study the following code:


    int n = 2;

    int a[n];


What is the error in the above code?
Answers:
• There is no error
• The minimum limit of an array is 5
• The second statement should be placed before the first
• A constant value has to be given in place of a variable for array declaration
10. What is the output of the following program ?


main()

{


int u = 1, v = 3;

printf("%d %d",u,v);

funct1(&u,&v);

printf(" %d %d\n",u,v);

}


void funct1(int *pu, int *pv)

{

*pu=0;

*pv=0;
return;

}
Answers:
• 1 3 1 3
• 1 3 1 1
• 1 3 0 0
• 1 1 1 1
• 3 1 3 1
11. What is wrong with the following statement?

int func();
Answers:
• The function definition {...} is missing
• While calling a function, the type int is not needed
• No parameter has been passed
• The semicolon should not be there
• There is nothing wrong with the statement
12. Suppose there is a file a.dat which has to be opened in the read mode using the FILE pointer ptr1, what will be the correct syntax?
Answers:
• ptr1 = open("a.dat");
• ptr1 = fileopen("a.dat");
• ptr1 = fopen("a.dat","r");
• ptr1 = open("a.dat","r");
• ptr1 = fileopen("a.dat","r");
13. Study the following code where num is an integer array and n is the length of the array:

        for(i=0;i<n-1;i++)
        {
                for(j=i+1;j<n;j++)
                {
                        if(num[i] > num[j])
                        {
                                var=num[i];
                                num[i]=num[j];
                                num[j]=var;
                        }
                }
        }
What does the above code do?
Answers:
• It prints the elements of the array in the ascending orde
• It calculates the sum of the elements of the array
• It sorts the array in the ascending orde
• It sorts the array in the descending orde
• It calculates the average of the elements of the array
14. What will be printed on the standard output as a result of the following code snippet?

void main()
{
        char arr[] = {'R','A','M'};
        printf("%d",strlen(arr));
}
Answers:
• 1
• 3
• 4
• Cannot be determined
15. What will be printed on the standard output as a result of the following code snippet?

void main()
{
    int i,j,k;
    i=4;
    j=30;
    k=0;
    k=j++/i++;
    ++k;
    printf("%d %d %d",i,j,k);
}
Answers:
• 5 31 8
• 5 31 7
• 5 31 6
• 4 30 7
16. Identify the incorrect statement.
Answers:
• Records can be defined in C by using structures
• Structure members can be of the same/different data types
• Memory is reserved when a structure label is defined
• A pointer to a structure can be used to pass a structure to a function
• Arrays of structures can be defined and initialized
17. Given the following array:

int a[8] = {1,2,3,4,5,6,7,0};
what would be the output of
        printf("%d",a[4]); ?
Answers:
• 3
• 4
• 5
• 6
• 7
18. Which function will convert a string into an integer?
Answers:
• int()
• number()
• atoi()
• val()
• tonum()
19. From which of the following loop or conditional constructs, is "break" used for an early exit?
Answers:
• switch
• fo
• while
• do-while
• All of the above
20. What would be printed on the standard output as a result of the following code snippet?

char i = 'A';
char *j;
j = & i;
*j = *j + 32;
printf("%c",i);
Answers:
• An error will occur
• a
• A
• c
21. What would be printed on the standard output as a result of the following code snippet?

#define func(t, a, b) { t temp; temp=a; a=b; b=temp; }
main()
{
        int a=3, b=4;
        float c=4.5, d = 5.99;
        func(int, a, b);
        func(float, c, d);
        printf("%d %d ", a, b);
        printf("%.2f %.2f\n", c, d);
}
Answers:
• Results in Compilation Error
• 3 4 5.99 4.50
• 3 4 4.50 5.99
• 4 3 5.99 4.50
• None of the above
22. Given the following array:

        char books[][40]={
                         "The Little World of Don Camillo",
                         "To Kill a Mockingbird",
                         "My Family and Other Animals",
                         "Birds, Beasts and Relatives"
                          };
what would be the output of printf("%c",books[2][5]);?
Answers:
• m
• M
• F
• i
• L
23. Given the following array declaration:

        int a[2][3][4]
what would be the number of elements in array a?
Answers:
• 24
• 22
• 20
• 12
• 36
24. Which function will convert a string into a double precision quantity?
Answers:
• atoi()
• atof()
• atol()
• atan()
• acos()
25. What will be the output of following code?

int main()
   {
      int i;
      i = 0;
      for (i = 1; i <2; i++)
      {
          i++;
          printf( "%d", i );
          continue;
          printf( "%d", i );
      }
      return 0;
   }
Answers:
• 22
• 2,2
• 2
• none of the above
26. What would be printed on the standard output as a result of the following code snippet?


main()

{



int u = 1, v = 3;

printf("%d %d",u,v);

funct1(&u,&v);

printf("%d %d\n",u,v);

}


void funct1(int *pu, int *pv)

{

*pu=0;

*pv=0;

return;

}
Answers:
• 1 31 3
• 1 3 1 1
• 1 30 0
• 1 1 1 1
• 3 1 3 1
27. Which of the following is not a file related function?
Answers:
• fgetc()
• puts()
• fputc()
• fscanf()
• fprintf()
28. What would be printed on the standard output as a result of the following code snippet?

#include<stdio.h>
main()
{
        unsigned char a=255;
        a = a+1;
        printf("%d",a);
        return 0;
}
Answers:
• Undefined value
• 256
• 1
• -1
29. What would be printed on the standard output as a result of the following code snippet?


main()

{

char *pmessage = "asdfgh";

*pmessage++;

printf("%s", pmessage);

return 0;

}
Answers:
• Will result in Compilation Error
• Undefined string
• sdfgh
• asdfgh
30. What would be printed on the standard output as a result of the following code snippet?

#define max(a, b) ((a) > (b)?(a):(b))
main()
{
        int a=4;
        float b=4.5;
        printf("%.2f\n",max(a, b));
}
Answers:
• Results in Compilation Error
• Undefined value
• 4.50
• 4.0
• None of the above
31. What will be the output of the following program?


#include <assert.h>

main()

{

int n = 5;

assert(n > 3); //statement 1

n = n+2;

assert(n > 7);//statement 2

return 0;

}
Answers:
• Assertion 'n > 3' failed; Program aborts at statement 1
• Assertion 'n > 7' failed; Program aborts at statement 2
• Program returns 0 with the value of n as 7
• Compilation Error
32. What would be printed on the standard output as a result of the following code snippet?


main()

{

enum {red, green, blue = 6, white};

printf("%d %d %d %d", red, green, blue, white);

return 0;

}
Answers:
• 0 1 6 2
• 0 1 6 7
• Will result in Compilation Error
• None of the above
33. Which file header is to be included for file handling in a C program?
Answers:
• string.h
• file.h
• stdio.h
• stdlib.h
• ctype.h
34. Which function will you use to write a formatted output to the file?
Answers:
• fputc()
• fputs()
• fprintf()
• fseek()
• ftell()
35. Which function returns the current pointer position within a file?
Answers:
• ftell()
• fseek()
• fgetc()
• fread()
• fscanf()
36. Which of the following is not a string function?
Answers:
• strlen()
• strcmp()
• strcpy()
• strrev()
• strcomp()
37. Which of the following declarations of structures is/are valid?

        1)
                struct node {
                int count;
                char *word;
                struct node next;
                }Node;
        2)
                struct node {
                int count;
                char *word;
                struct node *next;
                }Node;
        3)
                struct node {
                int count;
                char *word;
                union u1 {
                        int n1;
                        float f1;
                }U;
                }Node;
Answers:
• 123
• 12
• 23
• 2
• None of the above
38. What would be printed on the standard output as a result of the following code snippet?


main()

{

int arr[10];

int a = sizeof(arr);

printf("%d\n",a);

return 0;

}
Answers:
• Compilation Error
• 10
• 4
• 40
39. Which of the following is a function for formatting data in memory?
Answers:
• sprintf()
• printf()
• scanf()
• free()
• atol()
40. Which function allocates memory and initializes elements to 0?
Answers:
• assign()
• calloc()
• malloc()
• swab()
• allocate()
41. Given the operators:


1) *

2) /

3) %


What would be the order of precedence?
Answers:
• 1,2,3
• 1,3,2
• 3,2,1
• All have the same precedence
• 1 and 2 have the same precedence, 3 is of lower precedence
42. Which of the following sets of conversion statements may result in the loss of data?
Answers:
• int i; char c; i=c; c=i;
• int i; char c; c=i; i=c;
• int i; float f; i=f; f=i;
• None of the above
43. Which of the following standard functions is used to close a file?
Answers:
• fileclose()
• closefile()
• fclose()
• Any of the above