CLA-11-03 Exam Questions & Answers
CLA - C Certified Associate Programmer • C++ Institute
100% money-back guarantee
Sample CLA-11-03 Questions
Practice with real exam-style questions, each with the verified correct answer and explanation.
What happens when you compile and run the following program?
#include
int fun(void) {
static int i = 1;
i++;
return i;
}
int main (void) {
int k, l;
k = fun ();
l = fun () ;
printf("%d",l + k);
return 0;
}
Choose the right answer:
The program defines a function fun with a static variable i. The main function declares two variables k and 1 (Note: The second variable has an invalid name, it should be changed to a valid identifier).
The fun function is called twice, and each time it increments the static variable i by 1. The values assigned to k and 1 become 2 and 3, respectively. The printf statement then prints the result of 1 + k, which is 3 + 2 equal to 5.
Therefore, the correct answer is 'The program outputs 5.'
Assume that ints are 32-bit wide.
What happens if you try to compile and run this program?
#include
typedef union {
int i;
int j;
int k;
} uni;
int main (int argc, char *argv[]) {
uni s;
s.i = 3;
s.j = 2;
s.k = 1;
printf("%d",s.k * (s.i - s.j));
return 0;
}
Choose the right answer:
The program defines a union named uni with three members: i, j, and k. The members share the same memory location. The values are assigned to s.i, s.j, and s.k, but since they share the same memory, the value of s.i will overwrite the values of s.j and s.k.
So, s.i will be 3, and both s.j and s.k will be 3. Then, the expression s.k * (s.i - s.j) be-comes 3 * (3 - 3), which equals 0. The printf statement prints the result, and the pro-gram outputs 0.
The program is a valid C program that can be compiled and run without errors. The program defines a union type named uni that contains three int members: i, j, and k. Then it creates a variable of type uni named s and assigns values to its members. However, since a union can only hold one member value at a time, the last assignment (s.k = 1) overwrites the previous values of s.i and s.j. Therefore, all the members of s have the same value of 1. The program then prints the value of s.k * (s.i - s.j), which is 1 * (1 - 1) = 0. Therefore, the program outputs 0. Reference = C Unions - GeeksforGeeks, C Unions (With Examples) - Programiz, C - Unions - Online Tutorials Library
What happens if you try to compile and run this program?
#include
int main (int argc, char *argv[]) {
char *p = "John" " " "Bean";
printf("[%s]", p) ;
return 0;
}
Choose the right answer:
The string literal 'John' ' ' 'Bean' is effectively concatenated into a single string by the compiler during compilation. Therefore, the value of p becomes a pointer to the string 'John Bean'. The printf statement then prints the string enclosed within square brackets, resulting in the output [John Bean].
What happens if you try to compile and run this program?
#include
int main (int argc, char *argv[]) {
char *p = "World";
int i = 2;
switch (p[i]) {
case 'W' :i++; break ;
case 'o' :i += 2; break ;
case 'r' :i += 3; break ;
case '1' :i += 4; break ;
case 'd' :i += 5; break ;
default :i += 4;
}
printf("%d", i);
return 0;
}
-
Choose the right answer:
* The program defines a pointer p that points to the string literal 'World'.
* The program also defines an integer variable i and assigns it the value 2.
* The program uses a switch statement to check the value of p[i], which is the third character of the string 'World', i.e. 'r'.
* The program finds a matching case for 'r' and executes the statement i += 3;, which adds 3 to the value of i. Then it breaks out of the switch statement.
* The program prints the value of i, which is now 5, using the printf function.
* The program returns 0 and exits.
What happens if you try to compile and run this program?
#include
int main (int argc, char *argv[]) {
int i = 2;
int d= i << 2;
d /= 2;
printf ("%d", d) ;
return 0;
}
Choose the right answer:
The program outputs 4 because the expression i << 2 performs a left shift operation on the binary representation of i, which is 00000010, by two bits, resulting in 00001000, which is equivalent to 8 in decimal. Then, the expression d /= 2 performs a division assignment operation, which divides d by 2 and assigns the result back to d, resulting in 4. The printf function then prints the value of d as a decimal integer using the %d format specifier.
Reference = CLA -- C Certified Associate Programmer Certification, [C Essentials 2 - (Intermediate)], C Bitwise Operators, C Assignment Operators
Get access to all 40 verified questions with detailed answers.
Unlock All CLA-11-03 Questions