Online C Programming Test - C Programming Test 1


Loading...  Loading Test...

Instruction:

  • Total number of questions : 20.
  • Time alloted : 30 minutes.
  • Each question carry 1 mark, no negative marks.
  • DO NOT refresh the page.
  • All the best :-).

1.

Which of the following statements are correct about the below C-program?

#include<stdio.h>
int main()
{
    int x = 10, y = 100%90, i;
    for(i=1; i<10; i++)
    if(x != y);
        printf("x = %d y = %d\n", x, y);
    return 0;
}
1 : The printf() function is called 10 times.
2 : The program will produce the output x = 10 y = 10
3 : The ; after the if(x!=y) will NOT produce an error.
4 : The program will not produce output.

A.
1
B.
2, 3
C.
3, 4
D.
4

Your Answer: Option (Not Answered)

Correct Answer: Option B

Learn more problems on : Control Instructions

Discuss about this problem : Discuss in Forum

2.

What will be the output of the program?

#include<stdio.h>
int main()
{
    int k, num=30;
    k = (num>5 ? (num <=10 ? 100 : 200): 500);
    printf("%d\n", num);
    return 0;
}

A.
200
B.
30
C.
100
D.
500

Your Answer: Option (Not Answered)

Correct Answer: Option B

Explanation:

Step 1: int k, num=30; here variable k and num are declared as an integer type and variable num is initialized to '30'.
Step 2: k = (num>5 ? (num <=10 ? 100 : 200): 500); This statement does not affect the output of the program. Because we are going to print the variable num in the next statement. So, we skip this statement.
Step 3: printf("%d\n", num); It prints the value of variable num '30'
Step 3: Hence the output of the program is '30'

Learn more problems on : Expressions

Discuss about this problem : Discuss in Forum

3.

Point out the error in the following program.

#include<stdio.h>
int main()
{
    struct emp
    {
        char name[20];
        float sal;
    };
    struct emp e[10];
    int i;
    for(i=0; i<=9; i++)
        scanf("%s %f", e[i].name, &e[i].sal);
    return 0;
}

A.
Suspicious pointer conversion
B.
Floating point formats not linked (Run time error)
C.
Cannot use scanf() for structures
D.
Strings cannot be nested inside structures

Your Answer: Option (Not Answered)

Correct Answer: Option B

Explanation:

Compile and Run the above program in Turbo C:

C:\>myprogram.exe
Sundar
2555.50
scanf : floating point formats not linked
Abnormal program termination

The program terminates abnormally at the time of entering the float value for e[i].sal.

Solution:

Just add the following function in your program. It will force the compiler to include required libraries for handling floating point linkages.

static void force_fpf() /* A dummy function */
{
    float x, *y; /* Just declares two variables */
    y = &x;      /* Forces linkage of FP formats */
    x = *y;      /* Suppress warning message about x */
}

Learn more problems on : Floating Point Issues

Discuss about this problem : Discuss in Forum

4.

The keyword used to transfer control from a function back to the calling function is

A.
switch
B.
goto
C.
go back
D.
return

Your Answer: Option (Not Answered)

Correct Answer: Option D

Explanation:

The keyword return is used to transfer control from a function back to the calling function.

Example:


#include<stdio.h>
int add(int, int); /* Function prototype */

int main()
{
    int a = 4, b = 3, c;
    c = add(a, b);
    printf("c = %d\n", c);
    return 0;
}
int add(int a, int b)
{
/* returns the value and control back to main() function */
   return (a+b);
}

Output:
c = 7

Learn more problems on : Functions

Discuss about this problem : Discuss in Forum

5.

Which of the following statements are correct about the function?

long fun(int num)
{
    int i;
    long f=1;
    for(i=1; i<=num; i++)
        f = f * i;
    return f;
}

A.
The function calculates the value of 1 raised to power num.
B.
The function calculates the square root of an integer
C.
The function calculates the factorial value of an integer
D.
None of above

Your Answer: Option (Not Answered)

Correct Answer: Option C

Explanation:

Yes, this function calculates and return the factorial value of an given integer num.

Learn more problems on : Functions

Discuss about this problem : Discuss in Forum

6.

Which of the statements is correct about the program?

#include<stdio.h>

int main()
{
    float a=3.14;
    char *j;
    j = (char*)&a;
    printf("%d\n", *j);
    return 0;
}

A.
It prints ASCII value of the binary number present in the first byte of a float variable a.
B.
It prints character equivalent of the binary number present in the first byte of a float variable a.
C.
It will print 3
D.
It will print a garbage value

Your Answer: Option (Not Answered)

Correct Answer: Option A

Learn more problems on : Pointers

Discuss about this problem : Discuss in Forum

7.

Will the program compile in Turbo C?

#include<stdio.h>
int main()
{
    int a=10, *j;
    void *k;
    j=k=&a;
    j++;
    k++;
    printf("%u %u\n", j, k);
    return 0;
}

A.
Yes
B.
No

Your Answer: Option (Not Answered)

Correct Answer: Option B

Explanation:

Error in statement k++. We cannot perform arithmetic on void pointers.

The following error will be displayed while compiling above program in TurboC.

Compiling PROGRAM.C:
Error PROGRAM.C 8: Size of the type is unknown or zero.

Learn more problems on : Pointers

Discuss about this problem : Discuss in Forum

8.

Which of the following statements are correct about an array?
1: The array int num[26]; can store 26 elements.
2: The expression num[1] designates the very first element in the array.
3: It is necessary to initialize the array at the time of declaration.
4: The declaration num[SIZE] is allowed if SIZE is a macro.

A.
1
B.
1,4
C.
2,3
D.
2,4

Your Answer: Option (Not Answered)

Correct Answer: Option B

Explanation:

1. The array int num[26]; can store 26 elements. This statement is true.

2. The expression num[1] designates the very first element in the array. This statement is false, because it designates the second element of the array.

3. It is necessary to initialize the array at the time of declaration. This statement is false.

4. The declaration num[SIZE] is allowed if SIZE is a macro. This statement is true, because the MACRO just replaces the symbol SIZE with given value.

Hence the statements '1' and '4' are correct statements.

Learn more problems on : Arrays

Discuss about this problem : Discuss in Forum

9.

The library function used to find the last occurrence of a character in a string is

A.
strnstr()
B.
laststr()
C.
strrchr()
D.
strstr()

Your Answer: Option (Not Answered)

Correct Answer: Option C

Explanation:

Declaration: char *strrchr(const char *s, int c);

It scans a string s in the reverse direction, looking for a specific character c.

Example:

#include <string.h>
#include <stdio.h>

int main(void)
{
   char text[] = "I learn through IndiaBIX.com";
   char *ptr, c = 'i';

   ptr = strrchr(text, c);
   if (ptr)
      printf("The position of '%c' is: %d\n", c, ptr-text);
   else
      printf("The character was not found\n");
   return 0;
}

Output:

The position of 'i' is: 19

Learn more problems on : Strings

Discuss about this problem : Discuss in Forum

10.

If char=1, int=4, and float=4 bytes size, What will be the output of the program ?

#include<stdio.h>

int main()
{
    char ch = 'A';
    printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14f));
    return 0;
}

A.
1, 2, 4
B.
1, 4, 4
C.
2, 2, 4
D.
2, 4, 8

Your Answer: Option (Not Answered)

Correct Answer: Option B

Explanation:

Step 1: char ch = 'A'; The variable ch is declared as an character type and initialized with value 'A'.

Step 2:

printf("%d, %d, %d", sizeof(ch), sizeof('A'), sizeof(3.14));

The sizeof function returns the size of the given expression.

sizeof(ch) becomes sizeof(char). The size of char is 1 byte.

sizeof('A') becomes sizeof(65). The size of int is 4 bytes (as mentioned in the question).

sizeof(3.14f). The size of float is 4 bytes.

Hence the output of the program is 1, 4, 4

Learn more problems on : Strings

Discuss about this problem : Discuss in Forum

11.

What will be the output of the program ?

#include<stdio.h>

int main()
{
    char str[] = "Nagpur";
    str[0]='K';
    printf("%s, ", str);
    str = "Kanpur";
    printf("%s", str+1);
    return 0;
}

A.
Kagpur, Kanpur
B.
Nagpur, Kanpur
C.
Kagpur, anpur
D.
Error

Your Answer: Option (Not Answered)

Correct Answer: Option D

Explanation:

The statement str = "Kanpur"; generates the LVALUE required error. We have to use strcpy function to copy a string.

To remove error we have to change this statement str = "Kanpur"; to strcpy(str, "Kanpur");

The program prints the string "anpur"

Learn more problems on : Strings

Discuss about this problem : Discuss in Forum

12.

What will be the output of the program ?

#include<stdio.h>

int main()
{
    int i=4, j=8;
    printf("%d, %d, %d\n", i|j&j|i, i|j&j|i, i^j);
    return 0;
}

A.
12, 12, 12
B.
112, 1, 12
C.
32, 1, 12
D.
-64, 1, 12

Your Answer: Option (Not Answered)

Correct Answer: Option A

Learn more problems on : Structures, Unions, Enums

Discuss about this problem : Discuss in Forum

13.

Bit fields CANNOT be used in union.

A.
True
B.
False

Your Answer: Option (Not Answered)

Correct Answer: Option B

Explanation:

The following is the example program to explain "using bit fields inside an union".

#include<stdio.h>

union Point
{
  unsigned int x:4;
  unsigned int y:4;
  int res;
};

int main()
{
   union  Point pt;

   pt.x = 2;
   pt.y = 3;
   pt.res = pt.y;

   printf("\n The value of res = %d" , pt.res);

   return 0;
}
// Output: The value of res = 3

Learn more problems on : Structures, Unions, Enums

Discuss about this problem : Discuss in Forum

14.

Which of the following statement is correct about the program?

#include<stdio.h>

int main()
{
    FILE *fp;
    char ch;
    int i=1;
    fp = fopen("myfile.c", "r");
    while((ch=getc(fp))!=EOF)
    {
        if(ch == '\n')
            i++;
    }
    fclose(fp);
    return 0;
}

A.
The code counts number of characters in the file
B.
The code counts number of words in the file
C.
The code counts number of blank lines in the file
D.
The code counts number of lines in the file

Your Answer: Option (Not Answered)

Correct Answer: Option D

Explanation:

This program counts the number of lines in the file myfile.c by counting the character '\n' in that file.

Learn more problems on : Input / Output

Discuss about this problem : Discuss in Forum

15.

The first argument to be supplied at command-line must always be count of total arguments.

A.
True
B.
False

Your Answer: Option (Not Answered)

Correct Answer: Option B

Learn more problems on : Command Line Arguments

Discuss about this problem : Discuss in Forum

16.

What will be the output of the program?

#include<stdio.h>

int main()
{
    char c=48;
    int i, mask=01;
    for(i=1; i<=5; i++)
    {
        printf("%c", c|mask);
        mask = mask<<1;
    }
    return 0;
}

A.
12400
B.
12480
C.
12500
D.
12556

Your Answer: Option (Not Answered)

Correct Answer: Option B

Learn more problems on : Bitwise Operators

Discuss about this problem : Discuss in Forum

17.

What is the output of the program?

typedef struct data;
{
    int x;
    sdata *b;
}sdata;

A.
Error: Declaration missing ';'
B.
Error: in typedef
C.
No error
D.
None of above

Your Answer: Option (Not Answered)

Correct Answer: Option A

Explanation:

since the type 'sdata' is not known at the point of declaring the structure

Learn more problems on : Typedef

Discuss about this problem : Discuss in Forum

18.

Which header file should you include, if you are going to develop a function, which can accept variable number of arguments?

A.
varagrg.h
B.
stdlib.h
C.
stdio.h
D.
stdarg.h

Your Answer: Option (Not Answered)

Correct Answer: Option D

Learn more problems on : Variable Number of Arguments

Discuss about this problem : Discuss in Forum

19.

Point out the error in the following program.

#include<stdio.h>
#include<stdarg.h>
void varfun(int n, ...);

int main()
{
    varfun(3, 7, -11.2, 0.66);
    return 0;
}
void varfun(int n, ...)
{
    float *ptr;
    int num;
    va_start(ptr, n);
    num = va_arg(ptr, int);
    printf("%d", num);
}

A.
Error: too many parameters
B.
Error: invalid access to list member
C.
Error: ptr must be type of va_list
D.
No error

Your Answer: Option (Not Answered)

Correct Answer: Option C

Learn more problems on : Variable Number of Arguments

Discuss about this problem : Discuss in Forum

20.

va_list is an array that holds information needed by va_arg and va_end

A.
True
B.
False

Your Answer: Option (Not Answered)

Correct Answer: Option A

Learn more problems on : Variable Number of Arguments

Discuss about this problem : Discuss in Forum

Submit your test now to view the Results and Statistics with answer explanation.