Programming Essentials in C: Mock Test (CLA) Exam Answers

How to find: Press “Ctrl + F” in the browser and fill in whatever wording is in the question to find that question/answer. If the question is not here, find it in Questions Bank.

NOTE: If you have the new question on this test, please comment Question and Multiple-Choice list in form below this article. We will update answers for you in the shortest time. Thank you! We truly value your contribution to the website.

1. What is the value of the following integer literal?

017
  • 17
  • 15
  • 23
  • the literal is invalid

2. What is the value of the following integer literal?

0x17
  • 15
  • 17
  • the literal is invalid
  • 23

3. Which of the following strings is a valid variable name?

  • none of these
  • anti_world
  • anti:world
  • anti-world

4. Which of the following declarations is valid?

  • float float;
  • float int;
  • float long;
  • float floating;

5. What is the value of the X variable at the end of the following snippet?

    int X = 8;
    X = X - X / 2;
    X = X * X / 4;
    X = X + 2 * X;
  • 14
  • 16
  • 12
  • 10

6. What is the value of the X variable at the end of the following snippet?

    float X = 2.0;
    X = X + X * 4;
    X = X / X * X;
    X = X / X + X;
  • 11.000000
  • 0.500000
  • 1.000000
  • 110.000000

7. Which of the following strings is a proper floating-point number (in the “C” language sense)?

  • 3E8
  • 3,0×10^8
  • 300,000,000
  • 3.0×10^8

8. What is the value of the Y variable at the end of the following snippet?

    int X = 1, Y = X + 2, Z = Y++;

    Z = X / Y * --X * Y--;
  • 5
  • 3
  • 1
  • 7

9. What is the value of the X variable at the end of the following snippet?

    int X;

    X = ('r' - 's') * ('A' / 'Z');
  • 1
  • the snippet is invalid and will cause a compilation error
  • 2
  • 0

10. What happens if you try to compile and run this program?

    #include <stdio.h>
    int main(void) {
        int x = 1, y = 1;
        float k = -1e0, m = 2e1;
        printf("%d\n", (x >= y) + (x >= y) + (k >= y) + (m >= k) + ('q' <= 'z'));
        return 0;
    }
  • the program outputs 4
  • the program outputs 1
  • the program outputs 3
  • the program outputs 2

11. What happens if you try to compile and run this program?

    #include <stdio.h>
    int main(void) {
        int i = 1;
        if(i = 0)
        	i = 2;
        else
        	i = 3;
        printf("%d\n",i);
        return 0;
    }
  • the program outputs 4
  • the program outputs 2
  • the program outputs 1
  • the program outputs 3

12. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i = 1, j = 0;
        do {
        	i *= 2;
        	j += i / 2;
        } while(j < 1);
        printf("%d",i + j); 
        return 0; 
    }
  • the program outputs 3
  • the program outputs 1
  • the program enters an infinite loop and does not output anything
  • the program outputs 2

13. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i = 5, j = 16;
        while(j >= 0) {
        	i /= 2;
        	j -= i / 2;
        } 
        printf("%d",i + j); 
        return 0; 
    }
  • the program enters an infinite loop and does not output anything
  • the program outputs 1
  • the program outputs 3
  • the program outputs 2

14. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i = 1, j;
        for(j = 0; j ; j--) 
        	i *= 2;
        printf("%d",i + j); 
        return 0; 
    }
  • the program outputs 1
  • the program enters an infinite loop and does not output anything
  • the program outputs 2
  • the program outputs 3

15. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i = -1, j = 1;
        for(i++; i++; i++) 
        	j++;
        printf("%d",i + j); 
        return 0; 
    }
  • the program outputs 3
  • the program enters an infinite loop and does not output anything
  • the program outputs 1
  • the program outputs 2

16. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i = 1, j = 0, k;
        k = (i >> j) + (j >> i) + (i >> i) + (j >> j);
        k <<= i;
        printf("%d", k); 
        return 0; 
    }
  • the program outputs 0
  • the program outputs 1
  • the program outputs 4
  • the program outputs 2

17. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i = 3, j = i - 2 * i;
        switch(i - j) {
        	case  1: j++;
        	case  2: j--;
        	case  0: j++; break;
        	default: j = 0;
        }
        printf("%d", ++j); 
        return 0; 
    }
  • the program outputs 1
  • the program outputs 4
  • the program outputs 2
  • the program outputs 0

18. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i = 5, j = i - 4 * i;
        switch(j) {
        	default: j = 2;
        	case  1: j--; break;
        	case  2: j++;
        	case  0: j--; break;
        }
        printf("%d", j++); 
        return 0; 
    }
  • the program outputs 4
  • the program outputs 0
  • the program outputs 2
  • the program outputs 1

19. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i, t[4];
        for(i = 0; i < 3; i++) {
        	t[i] = 4 - i;
        	t[i + 1] = 2 * t[i];
        }
        printf("%d\n", t[2]);
        return 0; 
    }
  • the program outputs 1
  • the program outputs 4
  • the program outputs 0
  • the program outputs 2

20. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        int i, s = 0, t[] = {16, 8, 4, 2, 1, 0};
        for(i = 5; t[i] > 2; i /= 2) 
        	s += t[i];
        printf("%d\n", s);
        return 0; 
    }
  • the program outputs 0
  • the program outputs 4
  • the program outputs 2
  • the program outputs 1

21. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        char t[] = { 'x', 'z', 'Y', 'Z', '2' , '0'};
        printf("%d\n", t[t[1] - t[0] - t[3] + t[2] + 3] - t[5]);
        return 0; 
    }
  • the program outputs 0
  • the program outputs 2
  • the program outputs 4
  • the program outputs 1

22. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        float a = 3.14E0, *b = &a, **c = &b;
        **c = a + (a == *b);
        printf("%f", a);
        return 0; 
    }
  • the program outputs 4.140000
  • the program outputs NULL
  • the program outputs 2.140000
  • the program outputs 3.140000

23. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        char t[4][4];
        printf("%d\n",sizeof(t) / sizeof(t[0]) / sizeof(t[0][0]));
        return 0; 
    }
  • the program outputs 8
  • the program outputs 1
  • the program outputs 2
  • the program outputs 4

24. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        char *p = "\0\2\1\3\4";
        printf("%d\n", p[p[2]] + *(p + 1) + p[0]);
        return 0; 
    }
  • the program outputs 8
  • the program outputs 1
  • the program outputs 4
  • the program outputs 2

25. What happens if you try to compile and run this program?

    #include <stdio.h> 
    #include <string.h>
    int main(void) { 
        char tt[20] = "9081726354";
        strcpy(tt, tt + 3);
        printf("%d\n", strlen(tt) - tt[9] + '5');
        return 0; 
    }
  • the program outputs 8
  • the program outputs 1
  • the program outputs 2
  • the program outputs 4

26. What happens if you try to compile and run this program?

    #include <stdio.h> 
    #include <string.h>
    int main(void) { 
        char tt[20] = "0123456789";
        strcat(tt + 11, "123");
        printf("%d\n", strlen(tt) - tt[8] + '0');
        return 0; 
    }
  • the program outputs 2
  • the program outputs 1
  • the program outputs 8
  • the program outputs 4

27. What happens if you try to compile and run this program?

    #include <stdio.h> 
    #include <stdlib.h>
    int main(void) { 
        float *t = 1 + (float *) malloc(sizeof(float) * sizeof(float));
        t--;
        *t = 8.0;
        t[1] = *t / 4.0;
        t++;
        t[-1] = *t / 2.0;
        printf("%f\n",*t);
        free(--t);
        return 0; 
    }
  • the program outputs 1.000000
  • the program outputs 8.000000
  • the program outputs 4.000000
  • the program outputs 2.000000

28. What happens if you try to compile and run this program?

    #include <stdio.h> 
    #include <string.h>
    struct S {
        char S[8];
    };
    int main(void) { 
        struct S S = { 'a', 'b', 'c', 'd' };
        printf("%d", sizeof(S.S) - strlen(S.S) + S.S[4]); 
        return 0; 
    }
  • the program outputs 4
  • the program outputs 8
  • the program outputs 1
  • the program outputs 2

29. What happens if you try to compile and run this program?

    #include <stdio.h> 
    #include <string.h>
    #include <stdlib.h>
    struct S {
        char *S;
    };

    int main(void) { 
        struct S *S = (struct S *) malloc(sizeof(struct S));
        S -> S = "123\0""45678";
        printf("%d", strlen(S -> S + 5) + S -> S[3]); 
        free(S);
        return 0; 
    }
  • the program outputs 2
  • the program outputs 8
  • the program outputs 4
  • the program outputs 1

30. What happens if you try to compile and run this program?

    #include <stdio.h> 
    struct S {
        int Var;
        struct S *Str;
    };
    int main(void) { 
        struct S S[] = { { 8, NULL }, { 4, &S[0] }, { 2, &S[1] } };
        printf("%d", S[2].Str->Str->Var);
        return 0; 
    }
  • the program outputs 1
  • the program outputs 2
  • the program outputs 4
  • the program outputs 8

31. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int fun(int *t) {
        return *(t + 3);
    }
    int main(void) { 
        int arr[] = { 3, 2, 1, 0 };
        printf("%d\n", fun(arr - 2));
        return 0; 
    }
  • the program outputs 1
  • the program outputs 2
  • the program outputs 8
  • the program outputs 4

31. What happens if you try to compile and run this program?

    #include <stdio.h> 
    float f(float v) { 
        	v = v / 2.0;
        return v + v;
    } 
    int main(void) { 
        float x = 4; 
        f(x); 
        printf("%f",x); 
        return 0; 
    }
  • the program outputs 8.000000
  • the program outputs 1.000000
  • the program outputs 4.000000
  • the program outputs 2.000000

32. What happens if you try to compile and run this program?

    #include <stdio.h> 
    char *f(char *p) { 
        return p += 2;
    } 
    char *g(char *p) {
        return --p;
    }
    int main(void) { 
        char *s = "ABCDEFGHIJ";
        char  p = *f(g(f(s + 1)));
        printf("%d",p - 'A'); 
        return 0; 
    }
  • the program outputs 1
  • the program outputs 2
  • the program outputs 8
  • the program outputs 4

33. What happens if you try to compile and run this program?

    #include <stdio.h> 
    struct S {
        int S[3];
    };
    void f(struct S S) { 
        S.S[0] = S.S[1] + S.S[2] - 4;
    } 
    int main(void) { 
        struct S S = { { 1, 4, 2 } };
        f(S);
        printf("%d",S.S[1] * S.S[0]); 
        return 0; 
    }
  • the program outputs 8
  • the program outputs 1
  • the program outputs 2
  • the program outputs 4

34. What happens if you try to compile and run this program?

    #include <stdio.h> 
    struct S {
        int S[3];
    };
    void f(struct S *S) { 
        S->S[2] = 6 * S->S[0] + S -> S[1];
    } 
    int main(void) { 
        struct S S = { { 1, 2 } }, *P = &S;
        f(P);
        printf("%d",S.S[2] / S.S[0]); 
        return 0; 
    }
  • the program outputs 2
  • the program outputs 1
  • the program outputs 4
  • the program outputs 8

35. What happens if you try to compile and run this program?

    #include <stdio.h> 
    #include <string.h>
    char *f(int p, char *s) { 
        s[p + 2] = '\0';
        return s - 1;
    } 
    int main(void) { 
        char s[] = "ABCDEF";
        int i = strlen(f(1,s + 2));
        printf("%d\n",i); 
        return 0; 
    }
  • the program outputs 4
  • the program outputs 8
  • the program outputs 1
  • the program outputs 2

36. What happens if you try to compile and run this program?

    #include <stdio.h> 
    int main(void) { 
        char s[20] = "?"; 
        FILE *f = fopen("fopen","w"); 
        int i = fputs("789",f); 
        fclose(f); 
        f = fopen("fopen","r"); 
        fgets(s + 1,3,f); 
        printf("%c\n", s[2] - s[3]); 
        fclose(f); 
        return 0; 
    }
  • the program outputs 1
  • the program outputs 8
  • the program outputs 4
  • the program outputs 2

37. What happens if you try to compile and run this program?

    #include <stdio.h> 
    #define  ONE    1
    #define  TWO 	ONE + ONE
    int main(void) { 
        int i = 2;
        i = i - 2 * TWO;
        printf("%d\n", i);
        return 0; 
    }
  • the program outputs 4
  • the program outputs 2
  • the program outputs 1
  • the program outputs 0

38. What is the meaning of the following declaration?

    float *f(int);
  • f is a pointer to function (int) returning float;
  • f is a function (int) returning pointer to float;
  • f is a pointer to function (float) returning int;
  • the declaration is incorrect

39. Select the proper form for the following declaration:
ptr is a pointer to pointer to pointer to double

  • double **ptr;
  • double ***ptr;
  • double *ptr;
  • the declaration is invalid and cannot be coded in C

Related Articles

guest
1 Comment
Inline Feedbacks
View all comments
Indu
Indu
1 year ago

French is a programmable language