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
I did not get answers here
same here