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
