1. Which of the following strings is a proper integer number (in the “C” language sense)?
- 3141592
- 3,141592
- 3_141_592
- 3.141592
2. What is the value of the following integer literal?
012
- 10
- 12
- the literal is invalid
- 18
3. What is the value of the following integer literal?
0x12
- the literal is invalid
- 10
- 18
- 12
4. Which of the following strings is a valid variable name?
- Alpha:Omega
- [email protected]
- none of these
- Alpha-Omega
5. Which of the following strings is an invalid variable name?
- _R2D2_
- R2D2
- 2R2D
- _2R2D_
6. Which of the following declarations is valid?
- int float;
- int int;
- int longint;
- int long;
7. What is the value of the X variable at the end of the following snippet?
int X = 1;
X = X + 2 * X;
X = X / 2 * X;
X = X + 2 + X;- 4
- 2
- 1
- 8
8. What is the value of the X variable at the end of the following snippet?
int X = 1;
X = X * X + 2;
X = X / X * 2;
X = X + 2 + X;- 6
- 8
- 4
- 2
9. Which of the following strings is a correct floating-point number (in the “C” language sense)?
- 3.1415F92
- 3.1415M92
- 3.1415X92
- 3.1415E92
10. What is the value of the following floating-point literal?
- -0.01
- -1.0
- the literal is invalid
- -0.1
11. What is the value of the X variable at the end of the following snippet?
int X = 1, Y = 2, Z;
Z = X / Y * --X * Y++;- 0
- 4
- 1
- 2
12. What is the value of the X variable at the end of the following snippet?
int X;
X = 'b' - 'a' * ('\' / '\');- 0
- the snippet is invalid and will cause a compilation error
- 2
- 1
13. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int a = -1, b = 1;
float i = 2.0, j = -2.0;
printf("%d\n", (a > b) + (b > a) + (i > j) + (j > i) + ('z' > 'a'));
return 0;
}- the program outputs 3
- the program outputs 4
- the program outputs 1
- the program outputs 2
14. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i = 0;
if(i = 1)
i = 2;
else
i = 3;
printf("%d\n",i);
return 0;
}- the program outputs 1
- the program outputs 3
- the program outputs 2
- the program outputs 4
15. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
float x = 3.0, y = 2.0;
int i = 1, j = 2;
x = (int)x / y + (float)i / j;
printf("%f",x);
return 0;
}- the program outputs 3.000000
- the program outputs 0.000000
- the program outputs 1.000000
- the program outputs 2.000000
16. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i = 16, j = 8;
do {
i /= 2;
j -= i / 2;
} while(j > 0);
printf("%d",i + j);
return 0;
}- the program outputs 2
- the program outputs 1
- the program enters an infinite loop and does not output anything
- the program outputs 4
17. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i = 16, j = 6;
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 4
- the program outputs 1
- the program outputs 2
18. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i = 2, j;
for(j = 0; j < 0; j -= i)
i /= 2;
printf("%d",i + j);
return 0;
}- the program outputs 2
- the program enters an infinite loop and does not output anything
- the program outputs 1
- the program outputs 4
19. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i = 5, j = 4;
for(i--; i--; i--)
j--;
printf("%d",i + j);
return 0;
}- the program outputs 2
- the program outputs 4
- the program outputs 1
- the program enters an infinite loop and does not output anything
20. 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) + (i | j) + (i ^ j) + !i + j;
printf("%d", k);
return 0;
}- the program outputs 4
- the program outputs 2
- the program outputs 1
- the program outputs 0
21. 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 2
- the program outputs 4
- the program outputs 0
- the program outputs 1
22. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i = 1, j = i + 2 * i;
switch(j - i) {
case 1: j++;
case 2: j--;
case 0: j++; break;
default: j = 0;
}
printf("%d", ++j);
return 0;
}- the program outputs 0
- the program outputs 2
- the program outputs 4
- the program outputs 1
23. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i = 1, j = i + 2 * i;
switch(j) {
default: j = 0;
case 1: j++; break;
case 2: j--;
case 0: j++; break;
}
printf("%d", ++j);
return 0;
}- the program outputs 0
- the program outputs 1
- the program outputs 4
- the program outputs 2
24. 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] = i;
t[i + 1] = 2 * t[i];
}
printf("%d\n", t[3]);
return 0;
}- the program outputs 4
- the program outputs 1
- the program outputs 2
- the program outputs 0
25. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i, t[4];
for(i = 3; i; i--) {
t[i] = i - 1;
t[t[i]] = t[i];
}
printf("%d\n", t[0]);
return 0;
}- the program outputs 1
- the program outputs 2
- the program outputs 0
- the program outputs 4
26. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int i, s = 0, t[] = {0, 1, 2, 4, 8, 16};
for(i = 2; t[i] < 8; i *= 2)
s += t[i];
printf("%d\n", s);
return 0;
}- the program outputs 1
- the program outputs 0
- the program outputs 2
- the program outputs 4
27. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
char t[] = { 'a', 'z', 'B', 'Z', '0' };
printf("%d\n", t[t[1] - t[0] - t[3] + t[2] + 3] - t[4]);
return 0;
}- the program outputs 0
- the program outputs 4
- the program outputs 1
- the program outputs 2
28. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
char a = 'A', *b = &a, **c = &b;
**c = a + (a == *b);
printf("%c", a);
return 0;
}- the program outputs C
- the program outputs A
- the program outputs B
- the program outputs NULL
29. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int t[4][4];
printf("%d\n",sizeof(t) / sizeof(t[0]) / sizeof(t[0][0]));
return 0;
}- the program outputs 8
- the program outputs 2
- the program outputs 1
- the program outputs 4
30. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
int t[4] = { 0, -1, -2, -3 }, *p = t + 3;
printf("%d\n", p[*p] - t[2]);
return 0;
}- the program outputs 2
- the program outputs 1
- the program outputs 8
- the program outputs 4
31. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
char *p = "\0\4\1\3\2";
printf("%d\n", p[p[1]] + *(p + 1) + p[4]);
return 0;
}- the program outputs 1
- the program outputs 2
- the program outputs 8
- the program outputs 4
32. What happens if you try to compile and run this program?
#include <stdio.h>
#include <string.h>
int main(void) {
char tt[20] = "0123456789";
strcpy(tt, tt + 2);
printf("%d\n", strlen(tt) - tt[9] + '5');
return 0;
}- the program outputs 4
- the program outputs 8
- the program outputs 1
- the program outputs 2
33. 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 + 2, "987");
printf("%d\n", strlen(tt) - tt[5] + '0');
return 0;
}- the program outputs 4
- the program outputs 1
- the program outputs 8
- the program outputs 2
34. What happens if you try to compile and run this program?
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int *t = (int *) malloc(sizeof(int) + sizeof(int));
t++;
*t = 8;
t[-1] = *t / 2;
t--;
t[1] = *t / 2;
printf("%d\n",*t);
free(t);
return 0;
}- the program outputs 1
- the program outputs 8
- the program outputs 4
- the program outputs 2
35. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
char *t1 [10];
char (*t2)[10];
printf("%d",(sizeof(t1) == sizeof(t2)) + sizeof(t1[0]));
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>
#include <string.h>
struct S {
char S[4];
};
int main(void) {
struct S S = { 'a', 'b' };
printf("%d", sizeof(S.S) - strlen(S.S) + S.S[3]);
return 0;
}- the program outputs 4
- the program outputs 1
- the program outputs 2
- the program outputs 8
37. 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 = "abc";
printf("%d", strlen(S -> S + 2) + S -> S[3]);
free(S);
return 0;
}- the program outputs 1
- the program outputs 2
- the program outputs 4
- the program outputs 8
38. 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 8
- the program outputs 4
- the program outputs 2
- the program outputs 1
39. What happens if you try to compile and run this program?
#include <stdio.h>
int fun(int *t) {
return *(++t);
}
int main(void) {
int arr[] = { 8, 4, 2, 1 };
printf("%d\n", fun(arr + 2));
return 0;
}- the program outputs 8
- the program outputs 2
- the program outputs 4
- the program outputs 1
40. What happens if you try to compile and run this program?
#include <stdio.h>
int fun(int t) {
return ++t;
}
int main(void) {
int arr[] = { 8, 4, 2, 1 };
printf("%d\n", fun(arr[3]) + arr[2]);
return 0;
}- the program outputs 8
- the program outputs 2
- the program outputs 1
- the program outputs 4
41. What happens if you try to compile and run this program?
#include <stdio.h>
int f(int v) {
v = 2 * v;
return v * v;
}
int main(void) {
int i = 2;
f(i);
printf("%d",i);
return 0;
}- the program outputs 8
- the program outputs 2
- the program outputs 1
- the program outputs 4
42. What happens if you try to compile and run this program?
#include <stdio.h>
char *f(char *p) {
return p++;
}
char *g(char *p) {
return p += 2;
}
int main(void) {
char *s = "ABCDEFGHIJ";
char p = *f(g(f(s + 6)));
printf("%d",p - 'A');
return 0;
}- the program outputs 8
- the program outputs 4
- the program outputs 1
- the program outputs 2
43. What happens if you try to compile and run this program?
#include <stdio.h>
struct S {
int S[2];
};
void f(struct S S) {
S.S[0] = S.S[1] + 4;
}
int main(void) {
struct S S = { { 4, 8 } };
f(S);
printf("%d",S.S[1] / S.S[0]);
return 0;
}- the program outputs 8
- the program outputs 4
- the program outputs 1
- the program outputs 2
44. What happens if you try to compile and run this program?
#include <stdio.h>
struct S {
int S[2];
};
void f(struct S *S) {
S->S[1] = S->S[0] + 2;
}
int main(void) {
struct S S = { { 4, 8 } }, *P = &S;
f(P);
printf("%d",S.S[1] / S.S[0]);
return 0;
}- the program outputs 2
- the program outputs 1
- the program outputs 4
- the program outputs 8
45. What happens if you try to compile and run this program?
#include <stdio.h>
int f(int t[][2]) {
return t[0][0] + t[0][1];
}
int main(void) {
int i,t[2][2] = { {0,4},{4,2} };
i = f(t);
printf("%d",i);
return 0;
}- the program outputs 2
- the program outputs 8
- the program outputs 4
- the program outputs 1
46. 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 + 1] = '\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 8
- the program outputs 4
- the program outputs 2
- the program outputs 1
47. What happens if you try to compile and run this program?
#include <stdio.h>
int main(void) {
char s[20];
FILE *f = fopen("data","w");
int i = fputs("1248",f);
fclose(f);
f = fopen("data","r");
fgets(s + 2,4,f);
putchar(s[4]);
fclose(f);
return 0;- the program outputs 8
- the program outputs 2
- the program outputs 1
- the program outputs 4
48. What happens if you try to compile and run this program?
#include <stdio.h>
#define ABC 10
#define XYZ ABC - 1
int main(void) {
int i = 19;
i = i - XYZ;
printf("%d\n", i);
return 0;
}- the program outputs 2
- the program outputs 8
- the program outputs 4
- the program outputs 1
49. What is the meaning of the following declaration?
void (*f)(int);
- f is a pointer to function (int) returning void;
- the declaration is incorrect
- f is a function (int) returning pointer to void;
- f is a pointer to function (int) returning int;
50. Select the correct form for the following declaration:
ptr is a pointer to pointer to void
- void **ptr;
- void *ptr;
- the declaration is invalid and cannot be coded in C
- void ptr;
