Last Updated on October 18, 2019 by InfraExam

CLA – Programming Essentials in C Quizzes Chapter 5 Assessment Exam Answers Full 100%

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

        #include <stdio.h> 
        int main(void) { 
            char s[10] = "ABCDE", *p = s + 3; 
    
            printf("%d", p[1] - p[-1]); 
            return 0; 
        }
    • the program outputs 1
    • the program outputs 4
    • the program outputs 2
    • the program outputs 3
  2. What happens if you try to compile and run this program?

        #include <stdio.h> 
        int main(void) { 
            char s[] = "ABCDE", *p = s + 5; 
        
            printf("%d", p[-1] - *(p - 4)); 
            return 0; 
        }

     

    • the program outputs 3
    • the program outputs 1
    • the program outputs 4
    • the program outputs 2
  3. What happens if you try to compile and run this program?

        #include <stdio.h> 
        int main(void) { 
            char *p = "12345", *q = p - 10; 
    
            printf("%d", q[14] - q[13]); 
            return 0; 
        }

     

    • the program outputs 2
    • the program outputs 1
    • the program outputs 3
    • the program outputs 4
  4. What happens if you try to compile and run this program?

        #include <stdio.h> 
        int main(void) { 
            int t[] = { 1, 2, 3, 4, 5 }, *p = t; 
    
            *p++; 
            (*p)++; 
            *p++; 
            printf("%d",p[-1]); 
            return 0; 
        }

     

    • the program outputs 1
    • the program outputs 4
    • the program outputs 2
    • the program outputs 3
  5. What happens if you try to compile and run this program?

        #include <stdio.h> 
        int main(void) { 
            int t[2][2] = { 1, 2, 4, 8 }; 
            int s = 0, i, j; 
    
            for(i = 2; i; i -= 2) 
            	for(j = 1; j < 2; j += 2) 
            		s += t[i - 1][j]; 
            printf("%d",s); 
            return 0; 
        }

     

    • the program outputs 8
    • the program outputs 2
    • the program outputs 1
    • the program outputs 4
  6. What happens if you try to compile and run this program?

        #include <stdio.h> 
        int main(void) { 
            int t[1][2][2] = { { { 1, 2 }, { 3, 4 } } }; 
            int s = 0, i, j, k; 
    
            for(i = 1; i > 0; i -= 2) 
            	for(j = 1; j < 2; j += 2) 
            		for(k = 0; k < 3; k += 3) 
            		s += t[k][i - 1][j]; 
            printf("%d",s); 
            return 0; 
        }

     

    • the program outputs 2
    • the program outputs 3
    • the program outputs 4
    • the program outputs 1
  7. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <stdlib.h> 
        int main(void) { 
            int *p = (int *)malloc(2 * sizeof(int)); 
            *p = 2; 
            *(p + 1) = *(p) - 1; 
            *p = p[1]; 
            printf("%d",*p); 
            free(p); 
            return 0; 
        }
    • the program outputs 3
    • the program outputs 1
    • the program outputs 2
    • the program outputs 4
  8. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <stdlib.h> 
        int main(void) { 
            int t[] = { 8, 4, 2, 1 }; 
            int *p = (int *)malloc(sizeof(t)); 
            int i; 
            for(i = 0; i < 4; i++) 
            	p[3 - i] = t[i]; 
            printf("%d",*(p + 2)); 
            free(p); 
            return 0; 
        }
    • the program outputs 3
    • the program outputs 1
    • the program outputs 2
    • the program outputs 4
  9. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <stdlib.h> 
        int main(void) { 
            int i,j; 
            int **p = (int **)malloc(2 * sizeof(int *)); 
            p[0] = (int *)malloc(2 * sizeof(int)); 
            p[1] = p[0]; 
            for(i = 0; i < 2; i++) 
            	for(j = 0; j < 2; j++) 
            		p[i][j] = i + j; 
            printf("%d",p[0][0]); 
            return 0; 
        }
    • the program outputs 1
    • the program outputs 4
    • the program outputs 2
    • the program outputs 3
  10. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <stdlib.h> 
        int main(void) { 
            int i,j; 
            int **p = (int **)malloc(2 * sizeof(int *)); 
            p[0] = (int *)malloc(2 * sizeof(int)); 
            p[1] = (int *)malloc(2 * sizeof(int)); 
            for(i = 0; i < 2; i++) 
            	for(j = 0; j < 2; j++) 
            		p[i][j] = i + j; 
            printf("%d",p[0][0]); 
            return 0; 
        }
    • the program outputs 0
    • the program outputs 2
    • the program outputs 3
    • the program outputs 1
  11. What happens if you try to compile and run this program?

        #include <stdio.h> 
        int main(void) { 
            int *t[10]; 
            int (*u)[10]; 
            printf("%d",sizeof(t) != sizeof(u)); 
            return 0; 
        }
    • the program outputs 0
    • the program outputs 4
    • the program outputs 1
    • the program outputs 16
  12. What happens if you try to compile and run this program?

        #include <stdio.h> 
        int main(void) { 
            int *(t[10]); 
            int *u[10]; 
            printf("%d",sizeof(t) != sizeof(u)); 
            return 0; 
        }
    • the program outputs 3
    • the program outputs 0
    • the program outputs 1
    • the program outputs 2
  13. What happens if you try to compile and run this program?

        #include <stdio.h> 
        struct S { 
            int S; 
        }; 
        int main(void) { 
            struct S S; 
            S.S = sizeof(struct S) / sizeof(S); 
            printf("%d",S.S); 
            return 0; 
        }
    • the program outputs 3
    • the program outputs 1
    • the program outputs 4
    • the program outputs 2
  14. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <string.h> 
        struct Q { 
            char S[3]; 
        }; 
        struct S { 
            struct Q Q; 
        }; 
        int main(void) { 
            struct S S = { '\0', '\0','\0' }; 
            S.Q.S[0] = 'A'; 
            S.Q.S[1] = 'B'; 
            printf("%d",strlen(S.Q.S)); 
            return 0; 
        }
    • the program outputs 4
    • the program outputs 1
    • the program outputs 2
    • the program outputs 3
  15. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <string.h> 
        struct Q { 
            char S[3]; 
        }; 
        struct S { 
            struct Q Q; 
        }; 
        int main(void) { 
            struct S S = { '\0', '\0','\0' }; 
            S.Q.S[0] = 'A'; 
            S.Q.S[2] = 'B'; 
            printf("%d",strlen(S.Q.S)); 
            return 0; 
        }
    • the program outputs 3
    • the program outputs 4
    • the program outputs 2
    • the program outputs 1
  16. What happens if you try to compile and run this program?

        #include <stdio.h> 
        struct Q { 
            int a,b,c; 
        }; 
        struct S { 
            int a,b,c; 
            struct Q Q; 
        }; 
        int main(void) { 
            struct Q Q = { 3,2,1 }; 
            struct S S = { 4,5,6 }; 
            S.Q = Q; 
            printf("%d",S.b - S.Q.b); 
            return 0; 
        }
    • the program outputs 1
    • the program outputs 4
    • the program outputs 2
    • the program outputs 3
  17. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <stdlib.h> 
        struct S { 
            int 	  a; 
            struct S *b; 
        }; 
        int main(void) { 
            struct S *x = (struct S*) malloc(sizeof(struct S)); 
            struct S *y = (struct S*) malloc(sizeof(struct S)); 
            x->a = 2; 
            x->b = y; 
            y->a = 4; 
            y->b = x; 
            printf("%d",x->b->b->b->a); 
            free(x); free(y);
            return 0; 
        }
    • the program outputs 1
    • the program outputs 4
    • the program outputs 3
    • the program outputs 2
  18. What happens if you try to compile and run this program?

        #include <stdio.h> 
        #include <stdlib.h> 
        struct S { 
            int 	  a; 
            struct S *b; 
        }; 
        int main(void) { 
            struct S *x = (struct S*) malloc(sizeof(struct S)); 
            struct S *y = (struct S*) malloc(sizeof(struct S)); 
            struct S *p; 
            x->a = 2; x->b = y; 
            y->a = 4; y->b = x; 
            p = x; 
            p = p->b->b->b->b; 
            printf("%d",p->a); 
            return 0; 
        }
    • the program outputs 2
    • the program outputs 4
    • the program outputs 3
    • the program outputs 1
  19. What happens if you try to compile and run this program?

        #include <stdio.h> 
        struct S { 
            int a[2]; 
        }; 
        int main(void) { 
            struct S S[2]; 
            int i; 
            for(i = 0; i < 2; i++) 
            	S[i].a[1-i] = 4 * !i; 
            printf("%d",S[0].a[1]); 
            return 0; 
        }
    • the program outputs 2
    • the program outputs 4
    • the program outputs 1
    • the program outputs 3
  20. What happens if you try to compile and run this program?

        #include <stdio.h> 
        struct S { 
            char *p; 
        }; 
        int main(void) { 
            char *p = "abcd"; 
            struct S S[2]; 
            int i; 
            for(i = 0; i < 2; i++) 
            	S[i].p = p + i; 
            printf("%c",S[1].p[0]); 
            return 0; 
        }
    • the program outputs a
    • the program outputs d
    • the program outputs b
    • the program outputs c