Advanced operations on arrays and pointers, memory management, and the basics of functions M5 Test
-
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",'1[14] - q[13]); return 0; }
- the program outputs
1
- the program outputs
2
- the program outputs
3
- the program outputs
4
- the program outputs
-
What happens if you try to compile and run this program?
#include <stdio.h> int main(void) { int i = 0; i = f(f(i)); printf("%d",i); return 0; }
- the program outputs
2
- the program outputs
1
- the program outputs
0
- the compilation fails
- the program outputs
-
What happens if you try to compile and run this program?
#include <stdio.h> int f(int 1) { ++i; return i; } int main(void) { int i = 1; i = f(i); printf("%d",i); return 0; }
- the program outputs
2
- the program outputs
1
- the program outputs an unpredictable value
- the compilation fails
- the program outputs
-
What happens if you try to compile and run this program?
#include <stdio.h> int main(void) { int i = 0; i = f(f(i)); printf("%d",i); return 0; }
- the compilation fails
- the program outputs
nul
- the program outputs
NULL
- the program outputs
0
-
What happens if you try to compile and run the program?
#include <stdio.h> int main(void) { int i = 0; { int i = 1; main.i = i; } printf("%d",i); return 0; }
- the compilations fails
- the program outputs
1
- the program outputs
2
- the program outputs
0
-
What happens if you try to compile and run program?
#include <stdio.h> int f(int i) { return ++i; } int main(void) { int i = 0; i = f(f(i)); printf("%d", i); return 0; }
- the program outputs
2
- the program outputs
1
- the program outputs
0
- the compilations fails
- the program outputs
-
What happens if you try to compile and run 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
4
- the program outputs
2
- the program outputs
3
- the program outputs
1
- the program outputs
-
What happens if you try to compile and run 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
3
- the program outputs
1
- the program outputs
2
- the program outputs
4
- the program outputs
-
What happens if you try to compile and run 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
3
- the program outputs
4
- the program outputs
2
- the program outputs
-
What happens if you try to compile and run 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
1
- the program outputs
2
- the program outputs
3
- the program outputs
4
- the program outputs
-
What happens if you try to compile and run program?
# include <stdio.h> int main(void) { int *t [10]; int (*u) [10]; printf("%d", sizeof(t) != sizeof(u)); return 0; }
- the program outputs
1
- the program outputs
0
- the program outputs
4
- the program outputs
16
- the program outputs
-
What happens if you try to compile and run program?
#include <stdio.h> int f(int i){ i++; } int main(void) { int i = 1; f(i); printf("%d", i); return 0; }
- the program outputs
1
- the program outputs
2
- the program outputs an unpredictable value
- the compilation fails
- the program outputs
-
What happens if you try to compile and run 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
4
- the program outputs
2
- the program outputs
1
- the program outputs
-
What happens if you try to compile and run program?
#include <stdio.h> int f(void){ } int main(void){ int i; i = f(); printf("%d", i); return 0; }
- the program outputs an unpredictable value
- the program outputs
0
- the program outputs
NULL
- the compilation fails
-
What happens if you try to compile and run program?
#include <stdio.h> #include <stdlib.h> int main(void) { int i,j; int **p = (int **)malloc(2 * sizeof(int *)); p[0] = (iny *)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
1
- the program outputs
2
- the program outputs
3
- the program outputs
-
What happens if you try to compile and run program?
#include <stdio.h> void f(int i){ i++; } int main(void) { int i = 1; f(i); printf("%d", 1); return 0; }
- the program outputs
1
- the program outputs
2
- the program outputs an unpredictable value
- the compilation fails
- the program outputs
-
What happens if you try to compile and run 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
4
- the program outputs
1
- the program outputs
-
What happens if you try to compile and run 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
1
- the program outputs
3
- the program outputs
2
- the program outputs
-
What happens if you try to compile and run 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
2
- the program outputs
1
- the program outputs
3
- the program outputs
4
- the program outputs
-
What happens if you try to compile and run program?
#include <stdio.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
1
- the program outputs
2
- the program outputs
3
- the program outputs
4
- the program outputs
Subscribe
0 Comments
Newest