Skip to content

Latest commit

 

History

History
1410 lines (1063 loc) · 26.1 KB

c-(programming-language)-quiz.md

File metadata and controls

1410 lines (1063 loc) · 26.1 KB

C (Programming Language)

Q1. Which Code sample will eventually cause the computer to run out of memory?

  • :
while(1)
{
    char *smallString = (char *) malloc(10);
}
  • :
long long number = 1;
    while(1)
    number *= 2;
  • :
while(1)
{
    char hugeString[1000000L];
    memset(hugeString, 0, 1000000L);
}
  • :
while(1)
{
    long *bigArray = (long *) malloc(sizeof(long) * 1000);
    memset(bigArray, 1000000, 1000);

    (bigArray);
}

Q2. What will be the output of the code below?

int f1 (int a, int b)
{
    if (a > b)
    {
        printf("A is greater than B\n");
        return 1;
    }
    else
    {
        printf("B is greater than A");
        return 0;
    }
}

main()
{
    if (f1(20,10) || f1(10,20))
        printf("C is fun!\n");
}
  • :
A is greater than B
C is fun!
  • :
A is greater than B
B is greater than A
C is fun!
  • :
A is greater than B
B is greater than A
  • Nothing is printed on Screen

Q3. What is the name for calling a function inside the same function?

  • recursion
  • subfunction
  • inner call
  • infinite loop

Reference

Q4. What does the declaration of variable c2 demonstrate?

main(){
    char c1 ='a';
    char c2 = c1+10;
}
  • character arithmetic
  • undefined assignment
  • type conversion
  • invalid declaration

Reference

Q5. What is this declaration an example of?

struct s {
    int i;
    struct s *s1;
    struct s *s2;
};
  • a node
  • a linked list
  • a stack
  • a binary tree

Q6. Header files are listed using the preprocessing directive #include, and can have one of the following formats: #include <fileA> or #include "fileB". What is the difference between these two formats?

  • The preprocessor will try to locate fileA in the same directory as the source file, and the fileB in a predetermined directory path.
  • The preprocessor will try to locate fileA in the fixed system directory. It will try to locate fileB in the directory path designated by the -I option added to the command line while compiling the source code.
  • The file using the fileA syntax must be system files, of unlimited number; fileB must be a user file at a maximum of one per source file.
  • The preprocessor will try to locate fileA in a predetermined directory path. It will try to locate fileB in the same directory as the source file along with a custom directory path.

Reference

Q7. Using a for loop, how could you write a C code to count down from 10 to 1 and display each number on its own line?

  • :
for (int i = 0; i>=0, i--){
    printf("%d\n", i);
}//end of loop
  • :
int i;
for (i=1; i<=10; i++){
    printf("%d", i);
}
  • :
int i = 10;
while (i>0){
    printf("%d\n", i);
    i--;
}
  • :
int i;
for (i= 10; i>0; i--){
    printf("%d\n", i);
}// end of loop

Q8. What is not one of the reserved words in standard C?

  • volatile
  • typeof
  • register
  • typedef

Reference

Q9. What does the program shown below return?

int main(){
    int a=1, b=2, c=3, d=4;
    int x = a;
    if (a>b)
    if (b<c) x=b;
    else x=c;
    return(x);
}
  • 1
  • 3
  • 2
  • 0

Q10. Using the Union declaration below, how many bytes of memory space will the data of this type occupy?

union Cars {
    char make[20];
    char model[30];
    short year;
} car;
  • 32
  • 54
  • 30
  • 52

Q11. In this code sample, what is not a problem for C compiler?

main(){
    constant int PI = 3.14;
    printf("%f\n", pi);
}
  • The value of PI needs to be set to 3.141593, not 3.14
  • The declaration of PI needs to say const, not constant.
  • The data type of PI needs to be float, not int.
  • The printf statement needs to use PI, not pi.

Q12. Which is the smallest program to compile and run without errors?

  • main()
  • int main() {return 0;}
  • main() { }
  • main() { ; }

Reference

Q13. What is optional in a function declaration?

  • data type of parameters
  • return type of function
  • parameter names
  • number of parameters

Reference

Q14. C treats all devices, such as the display and the keyboard, as files. Which file opens automatically when a program executes?

  • stdout
  • stdio.h
  • default.h
  • string.h

Q15. In which segment does dynamic memory allocation take place?

  • BSS Segment
  • stack
  • heap
  • data segment

Reference

Q16. Which function do you use to deallocate memory?

  • dalloc()
  • dealloc()
  • release()
  • free()

Reference

Reference

Q17. In C language what are the basic building blocks that are constructed together to write a program?

  • keywords
  • identifiers
  • tokens
  • functions

Reference

Q18. When is memory for a variable allocated?

  • during the assignment of the variable
  • during the initialization of the variable
  • during the declaration of the variable
  • during the definition of the variable

Reference

Q19. C uses the call by value method to pass arguments to functions. How can you invoke the call by reference method?

  • by using pointers
  • by declaring functions separately from defining them
  • by using recursive functions
  • by using global variables

Reference

Q20. A union allows you to store different ___ in the same ___.

  • Objects; Structure
  • Variables; Declaration
  • Data types; Memory space
  • Arrays; Header file

Q21. What is the output of this program?

main() {
    char c1='a' , c2='A';
    int i=c2-c1;
    printf("%d", i);
}
  • 32
  • Runtime error
  • -32
  • 0

Q22. What is the difference between scanf() and sscanf() functions?

  • The scanf() function reads data formatted as a string; The sscanf() function reads string input from the screen.
  • The scanf() function reads formatted data from the keyboard; The sscanf() function reads formatted input from a string.
  • The scanf() function reads string data from the keyboard; The sscanf() function reads string data from a string.
  • The scanf() function reads formatted data from a file; The sscanf() function reads input from a selected string

Q23. What is not a valid command with this declaration?

char *string[20] = { "one", "two", "three"};
  • printf("%c", string[1][2]);
  • printf("%s", string[1][2]);
  • printf("%s", string[1]);
  • printf(string[1]);

Q24. What is the expression player->name equivalent to?

  • player.name
  • (*player).name
  • *player.name
  • player.*name

Q25. Which program will compile and run without errors?

  • :
main() {
    for(i=0; i<10; i++) ;
}
  • :
main() {
int i=0;
    for(; i<10; i++) ;
}
  • :
main() {
    int i;
    for(i=0; i<j; i++) ;
}
  • :
main() {
int i;
    for (i= 10; i<10; i++)
}

Q26. What does this function call return?

1 main() { float x = f1(10, 5); }
2 float f1(int a, int b) { return (a/b); }
  • 2
  • 2.000000
  • a runtime error
  • a compiler error

Q27. What does this program create?

#include <stdio.h>
int main() {
    int *p = NULL;
    return 0;
}
  • a runtime error
  • a NULL pointer
  • a compile error
  • a void pointer

Q28. What is an alternative way to write the expression (*x).y?

  • There is no equivalent.
  • x->y
  • *x->y
  • y->x

Q29. Compile time errors are static errors that can be found in the code.

  • in declarations and definitions
  • in functions and expressions
  • in syntax and semantics
  • in objects and statements

Q30. File input and output (I/O) in C is heavily based on the way it is done ___?

  • in Unix
  • in C++
  • in C#
  • in DOS

Q31. What does the strcmp(str1, str2); function return?

  • 0 if str1 and str2 are the same, a negative number if str1 is less than str2, a positive number if str1 is greater than str2
  • true (1) if str1 and str2 are the same, false (0) if str1 and str2 are not the same
  • true (1) if str1 and str2 are the same, NULL if str1 and str2 are not the same
  • 0 if str1 and str2 are the same, a negative number if str2 is less than str1, a positive number if str2 is greater than str1

Q32. What is the output of this program?

int a=10, b=20;
int f1(a) { return(a*b); }
main() {
printf("%d", f1(5));
}
  • 100
  • 200
  • 5
  • 50

Q33. Which is not a correct way to declare a string variable?

  • char *string = "Hello World";
  • char string = "Hello World";
  • char string[20] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'};
  • char string[] = "Hello World";

Q34. Which choice is an include guard for the header file mylib.h?

  • :
#ifdef MYLIB_H
#undef MYLIB_H

// mylib.h content

#endif /* MYLIB_H */
  • :
#ifndef MYLIB_H
#define MYLIB_H

// mylib.h content

#endif /* MYLIB_H */
  • :
#define MYLIB_H
#include "mylib.h"

#undef MYLIB_H
  • :
#ifdef MYLIB_H
#define MYLIB_H

// mylib.h content

#endif /* MYLIB_H */

Q35. How many times does the code inside the while loop get executed in this program?

main(){
 int x=1;
 while(x++<100){
    x*=x;
    if(x<10) continue;
    if(x>50) break;
 }
}
  • 100
  • 3
  • 5
  • 50

Q36. File input and output (I/O) in C is done through what?

  • syntax-driven components
  • native interfaces
  • system objects
  • function calls

Q37. Directives are translated by the?

  • Pre-processor
  • Compiler
  • Linker
  • Editor

Q38. The main loop structures in C programming are the for loop, the while loop, and which other loop?

  • do...while
  • for...in
  • repeat...until
  • do...until

Q39. By default, C Functions are what type of functions?

  • global
  • static
  • library
  • system

Q40. You have written a function that you want to include as a member of structure 'a'. How is such as structure member defined?

  • :
struct a {
    void *f1;
};
  • :
struct a {
    void (*f1)();
};
  • :
struct a {
    *(void *f1)();
};
  • :
struct a {
    void *f1();
};

Q41. A Stack data structure allows all data operations at one end only, making it what kind of an implementation?

  • FIFO
  • LIFO
  • LILO
  • LOLI

Q42. What does this program display?

main(){
    char *p = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i;
    for (i=0;i<5;i++) *p++; *p++;
    printf("%c",*p++);
}
  • K
  • M
  • H
  • G

Q43. Describe the relationship between lvalue and rvalue.

  • An lvalue may appear only on the left-hand side of an assignment; an rvalue may appear only on the right-hand side.
  • An lvalue may appear only on the left-hand side of an assignment; an rvalue may appear on either the left-hand or right-hand side.
  • An lvalue and an rvalue may appear on either the left-hand or right-hand side of an assignment.
  • An lvalue may appear on the left-hand or right-hand side of an assignment; an rvalue may appear only on the right-hand side.

Q44. Which operator is used to access the address of a variable?

  • %
  • **
  • *
  • &

Q45. Which add function properly returns the updated value of the result?

  • :
void add (int a, int b, int *result)
{
    *result = a+b;
}

main()
{
    int a = 10;
    int b = 20;
    int result = 0;

    add(a,b,&result);
}
  • :
void add (int a, int b, int result)
{
    result = a+b;
}

main()
{
    int a = 10;
    int b = 20;
    int result = 0;

    add(a,b,result);
}
  • :
void add (int a, int b, int *result)
{
    result = a+b;
}

main()
{
    int a = 10;
    int b = 20;
    int result = 0;

    add(a,b,result);
}
  • :
void add (int *a, int *b, int *result)
{
    result = a+b;
}

main()
{
    int a = 10;
    int b = 20;
    int result = 0;

    add(*a,*b,*result);
}

Q46. Consider the number of the Fibonacci series below 100: 0,1,1,2,3,5,8,13,21,34,55,89. Which piece of code outputs the sequence?

  • :
void fibonacci(int a, int b)
{
    int c = a+b;

    if(a>100)
       return;

    printf("%d", a);

    fibonacci(a,b);
}

int main()
{
    fibonacci(0,1);
}
  • :
void fibonacci(int a, int b)
{
    int c = a+b;

    if(a>100)
       return;

    printf("%d", b);

    fibonacci(a,c);
}

int main()
{
    fibonacci(0,1);
}
  • :
void fibonacci(int a, int b)
{
    int c = a+b;

    if(a>100)
       return;

    printf("%d", a);

    fibonacci(b,c);
}

int main()
{
    fibonacci(0,1);
}
  • :
void fibonacci(int a, int b)
{
    int c = a+b;

    if(a>100)
       return;

    printf("%d", c);

    fibonacci(b,c);
}

int main()
{
    fibonacci(0,1);
}

Q47. Which is not a storage class specifier?

  • intern
  • extern
  • register
  • static

Reference

Q48. Which line of code, after execution, results in i having the value of 1?

  • for(i=1; i<=1; i++);
  • for(i=1; i=10; i++);
  • for(i=1; i==10; i++);
  • for(i=10; i>=1; i--);

Q49. What is the value of variable c at the end of this program?

1 main() {
2   int a, b, c;
3   a=10; b=50;
4   c=a * b % a;
5 }
  • 50
  • 5
  • 0
  • 500

Q50. What is not one of the basic data types in C

  • long double
  • unsigned char
  • array
  • float

Q51. What is the member access operator for a structure?

  • ,
  • []
  • .
  • :

Q52. What standard data type provides the smallest storage size and can be used in computations?

  • char
  • float
  • int
  • short

Q53. what does the ctype tolower() function do?

  • It returns TRUE for lowercase letters of the alphabet.
  • It ensures that text output uses only ASCII values (0 through 127).
  • It returns FALSE for lowercase letters of the alphabet.
  • It converts an uppercase letter of the alphabet to lowercase.

Q54. Void pointer vptr is assigned the address of float variable g. What is a valid way to dereference vptr to assign its pointed value to a float variable named f later in the program?

float g;
void *vptr=&g;
  • f=(float *)vptr;
  • f=*(float *)vptr;
  • f=*(float)vptr;
  • f=(float)*vptr;

Q55. The dynamic memory allocation functions are defined in which system header file?

  • stdio.h
  • stdlib.h
  • limits.h
  • stddef.h

Q56. A function is a set of _.

  • declarations
  • statements
  • variables
  • objects

Q57. How are static functions different from global functions?

  • Static functions must be declared in advance of being defined.
  • Static functions must be declared in a separate header file.
  • Static functions always return the same value.
  • Static functions can be accessed only in the file where they are declared.

Q58. Which code example creates the string "Hello Mars" in storage buffer hello.

  • :
    char hello[25];
    strcpy(hello, "Hello ");
    strcpy(hello, "Mars");
  • :
    char hello[25];
    char *p;
    strcpy(hello, "Hello World");
    p = hello;
    p +=6;
    strcpy(p, "Mars");
  • :
    char *hello;
    strcpy(hello, "Hello World");
    hello+=6;
    strcpy(hello, "Mars");
  • :
    char hello[25];
    strcpy(hello, "Hello World");
    strcpy(*hello[6], "Mars");

Q59. If you use the fopen() function with the "a" mode, what happens if the named file doesn't exist?

  • The file is created and opened for reading.
  • The file is created and opened for writing.
  • The fopen() function returns a NULL indicating that the operation has failed.
  • The file is created and opened for both writing and reading

Reference

Q60. What does this function return?

int fl(int a, int b) { return(a>b?a:b); }
  • compiler error
  • the smaller value of the two passed parameters
  • runtime error
  • the greater value of the two passed parameters

Q61. Which option is a valid function name?

  • draw_star()
  • 5times()
  • upper-limit()
  • auto()

Q62. What is not a valid type definition of a structure that contains x and y coordinates as integers, and that can be used as shown for the variable named point?

coord point;
point.x = 9;
point.y = 3;
  • :
struct coord{
    int x;
    int y;
};
typedef struct coord coord;
  • :
typedef struct coord{
    int x;
    int y;
};
  • :
typedef struct coord{
    int x;
    int y;
} coord;
  • :
typedef struct{
    int x;
    int y;
} coord;

Q63. What is the output of the below program?

#include <stdio.h>
#if X == 3
    #define Y 3
#else
    #define Y 5
#endif

int main()
{
    printf("%d", Y);
    return 0;
}
  • 3
  • 5
  • 3 or 5 depending on input
  • Compile time error

Q64. What do the functions malloc() and calloc() allocate?

  • reallocated memory
  • static memory
  • dynamic memory
  • fragmented memory

Calloc Malloc

Q65. You need to determine if a string variable is a substring of another string. Which standard C library function do you use?

  • substr(str1, str2);
  • strstr(str1, str2);
  • substring(str1, str2);
  • strspn(str1, str2);

Reference

Q66. Find the output of the program.

#include <stdio.h>

#define L 10
int main(){
    int a =10;
    switch (a,a<<2){
        case L:printf("a==L");     break;
        case L*2 : printf("a = L* 2\n");     break;
        case L*4 : printf("a = L* 4\n");    break;
        default: printf("Error\n");
    }
}
  • a=L*2
  • a=L
  • Error
  • a=L*4

Reference

Q67. Predict the output of the following code when the integer variables x is initialized to 10,y to 2, and z to 0.

z = x + y * x + 10 / 2 * x;
printf("value is =%d",z);
  • 80
  • 170
  • 31.5
  • 6

Reference

Q68. What will be the output of the following code snippet?

#include <stdio.h>
void solve() {
    int x = 2;
    printf("%d", (x << 1) + (x >> 1));
}
int main() {
    solve();
	return 0;
}
  • 5
  • 4
  • 2
  • 1

Q69. What is the output of this program?

int a=20, b=10;
int f1(a) {
    return(a*b);
}
main() {
    printf("%d", f1(5));
}
  • 100
  • 200
  • 5
  • 50

Q70. What is /0 character?

  • String
  • NULL Character
  • ZERO
  • Variable

Reference

Q71. What is the correct output for the following code?

#include&lt;stdio.h&gt;
#include&lt;conio.h&gt;
main()
{
     int a=10, b=20;
     clrscr();
     printf("Before swapping a=%d b=%d",a,b);
     a=a+b;
     b=a-b;
     a=a-b;
     printf("nAfter swapping a=%d b=%d",a,b);
     getch();
}
  • Before a=10 b=20 , After a=10 b=10
  • Before a=10 b=10 , After a=20 b=10
  • Before a=10 b=20 , After a=20 b=20
  • Before a=10 b=20 , After a=20 b=10

Q72. What is the Incorrect option that explains # pragma directive ?

  • #pragma exit allows us to specify functions called upon program exit.
  • This is a preprocessor directive that can be used to turn on or off certain features.
  • #pragma startup doesn't allow us to specify functions called upon program startup.
  • It is of two types #pragma startup, #pragma exit and pragma warn.

Q73. What will be the output of the following code snippet?

#include <stdio.h>
union School {
    int age, rollNo;
    double marks;
};
void solve() {
    union School sc;
    sc.age = 19;
    sc.rollNo = 82;
    sc.marks = 19.04;
    printf("%d", (int)sizeof(sc));
}
int main() {
    solve();
	return 0;
}
  • 2
  • 4
  • 8
  • 10

Q74. What will be the output of the following code snippet?

#include <stdio.h>
struct School {
    int age, rollNo;
};
void solve() {
    struct School sc;
    sc.age = 19;
    sc.rollNo = 82;
    printf("%d %d", sc.age, sc.rollNo);
}
int main() {
    solve();
	return 0;
}
  • 19 82
  • Compilation Error
  • 82 19
  • None of these

Q75. What is the output of the following code snippet?

int main() {
	int sum = 2 + 4 / 2 + 6 * 2;
	printf("%d", sum);
	return 0;
}
  • 2
  • 15
  • 16
  • 18

Q76. What does the following declaration mean?

int (*ptr)[10];
  • ptr is an array of pointers to 10 integers
  • ptr is a pointer to an array of 10 integers
  • ptr is an array of 10 integers
  • ptr is a pointer to an array

Q77. What will be the output of the following code snippet?

#include <stdio.h>
void change(int,int);
int main()
{
   int a=10,b=20;
   change(a,b); //calling a function by passing the values of variables.
   printf("Value of a is: %d",a);
   printf("\n");
   printf("Value of b is: %d",b);
   return 0;
}
void change(int x,int y)
{
   x=13;
   y=17;
}
  • 10,20
  • 10,10
  • 20,20
  • 20,10

Explanation: The function "change" will change the value of x and y only within its own scope, so a and is unaffected.

Q78. Choose true or false. When a variable is created in C, a memory address is assigned to the variable.

  • True
  • False

Q79. What does the following fragment of C-program print?

#include <stdio.h>

int main()
{
    char c[] = "GATE2011";

    char *p = c;

    printf("%s", p + p[3] -p[1]);

    return 0;
}
  • GATE 2011
  • E2011
  • 2011
  • 01

Explanation: char c[ ] = "GATE2011"; since char *p =c it means p represents the base address of string “GATE2011” SO p[3] is 'E' and p[1] is 'A'. Value of Sub expression p[3] – p[1] = ASCII value of ‘E’ – ASCII value of ‘A’ = 4. So the expression p + p[3] – p[1] becomes ( p + 4) And (p+4) represent to base address of string “2011” printf(“%s”, p + p[3] – p[1]) ; So it will print 2011

Q80. What is the output of the following code snippet?

int main() {
	int a = 5, b = 6, c;
	c = a++ + ++b;
	printf("%d %d %d", a, b, c);
	return 0;
}
  • 5 6 11
  • 6 7 12
  • 5 6 12
  • 6 6 12

Q81. What will be the output of the following C program segment?

char inchar = 'A';
switch (inchar)
{
case 'A' :
	printf ("choice A \n") ;
case 'B' :
	printf ("choice B ") ;
case 'C' :
case 'D' :
case 'E' :
default:
	printf ("No Choice") ;
}
  • No choice
  • Choice A
  • Choice A Choice B No choice
  • Program gives no output as it is erroneous

Q82. String variable str1 has the value of "abc", and string variable str2 has the value "xyz". What are the values of str1 and str2 after this statement is executed?

strcpy(str1, str2);
  • str1: "xyz" ; str2: "xyz"
  • str1: "abc" ; str2: "xyz"
  • str1: "xyz" ; str2: "abc"
  • str1: "abc" ; str2: "abc"

Q83. Which is not one of the basic data types in C?

  • array
  • float
  • long double
  • unsigned char

Q84. You have written a function that you want to include as a member of structure a. How is such as structure member defined?

  • :
struct a {
    void *f1;
};
  • :
struct a {
    void (*f1)();
};
  • :
struct a {
    *(void *f1)();
};
  • :
struct a {
    void *f1();
};

Q85. You need to determine if a string variable is a substring of another string. Which standard C library function do you use?

  • substr(str1, str2);
  • strstr(str1, str2);
  • substring(str1, str2);
  • strspn(str1, str2);

Q86. How are static functions different from global functions?

  • Static functions must be declared in advance of being defined.
  • Static functions must be declared in a separate header file.
  • Static functions always return the same value.
  • Static functions can be accessed only in the file where they are declared.

Q87. What does this program display?

main(){
    char *p = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i;
    for (i=0;i<5;i++) *p++; *p++;
    printf("%c",*p++);
}
  • K
  • M
  • H
  • G

Q88. What is not a valid command with this declaration?

char *string[20] = { "one", "two", "three"};
  • printf("%c", string[1][2]);
  • printf("%s", string[1][2]);
  • printf("%s", string[1]);
  • printf(string[1]);