1. What value is returned by function func()?
float func() { int r = 0, d = 0, i = 0; for (i; i < 2; i++) { r += 5 / d; } return r; }
A. 5
B. 0
C. Exception
D. Another
C
2. What will be output when you will execute following c code?
void main() { char s[] = "man"; int i; for(i = 0; s[i]; i++) printf("%c%c%c%c\t", s[i], *(s+i), *(i+s), i[s]); getch(); }
A. mmmm aaaa nnnn
B. mmm aaa nnn
C. mmmm aaa nnn
D. Another
A
Giải thích: Vòng for() sẽ bắt đầu với i = 0, vòng for() sẽ kết thúc khi s[i] = NULL (kết thúc chuỗi s).
s[i] = *(s+i) = *(i+s) = i[s] : kí tự thứ i của mảng s.
3. What will be output when you will execute following c code?
void main() { int i = 0; char ch = 'A'; do { putchar(ch); } while(i++ < 5 || ++ch <= 'F'); getch(); }
A. AAAAAABCDEF
B. AAAAAABCDE
C. ABCDEF
D. Another
A Giải thích: Vòng lặp do while(). Vòng lặp này kết thúc khi biểu thức trong while là FALSE. i = 0 ---> in ra kí tự: A , i++ < 5 ---> giá trị i sẽ được so sánh với 5 trước. Sau đó, i++ mới được thực hiện. Vì i = 0 nên biểu thức i++ < 5 là TRUE nên biếu thức ++ch <= 'F' sẽ không được thực hiện. i = 1 ---> in ra kí tự: AA ... i = 4 ---> in ra kí tự :AAAAA i = 5 ---> in ra kí tự :AAAAAA, thì i++ < 5 là FALSE. Biểu thức ++ch <= 'F' sẽ được thực hiện. Vòng lặp sẽ tiếp tục in ra: BCDEF.
4. What gets printed?
void main() { int array[2][2] = {0, 1, 2, 3}; int i; int sum = 0; for (i = 0; i < 4; ++i) { int x, y; x = i % 2; if (x) { y = 0; } else { y = 1; } sum += array[x][y]; } printf("%d\n", sum); getch(); }
A. 4
B. 5
C. 6
D. 3
C i = 0 → x = 0,y = 1 → array[0][1] = 1 i = 1 → x = 1,y = 0 → array[1][0] = 2 i = 2 → x = 0,y = 1 → array[0][1] = 1 i = 3 → x = 1,y = 0 → array[1][0] = 2
5. What is output?
#include <stdio.h> #include <conio.h> void main() { int k; for (k = -3; k < -5; k++) printf("Hello"); getch(); }
A. Hello
B. Nothing
C. Complier Error
D. Run time error
B Giải thích: Ở trên là cách viết tắt của vòng lặp for. Dạng đầy đủ là:
for (k = -3; k < -5; k++){ printf("Hello");}
Với k = -3 ( k > -5) nên các lệnh trong vòng for không được thực hiện.
6. What is output?
void main() { double k = 0; for (k = 0.0; k < 3.0; k++); printf("%lf", k); getch(); }
A. 012
B. Run time error
C. 3
D. 2
C Giải thích: cách viết for (k = 0.0; k < 3.0; k++); tương đương với cách viết đầy đủ: for (k = 0.0; k < 3.0; k++) {} khi vòng for kết thúc, lệnh printf("%lf", k) mới được thực hiện.
7. What is output?
#include <stdio.h> int main() { int i = 0; for (; ; ; ) printf("In for loop\n"); printf("After loop\n"); }
A. Complie time error
B. Infinite Loop
C. Nothing
A
Giải thích: Vòng lặp for() không có biểu thức khởi tạo.
8. What is output?
#include <conio.h> #include <stdio.h> int foo(); void main() { int i = 0; for (foo(); i == 1; i = 2) printf("In for loop\n"); printf("After loop\n"); getch(); } int foo() { return 1; }
A. In for loop
B. After loop
C. Complie error
B
Giải thích: biến i = 0, giá trị logic của biểu thức “i == 1” = FALSE → vòng for kết thúc. Lệnh printf(“In for loop\n”) không được thực hiện.
9. What is output?
#include <conio.h> #include <stdio.h> int main() { int i = 0; while (i = 0) printf("True\n"); printf("False\n"); getch(); }
A.True
B. False
C. Complie Error
D. Another
Đáp ánB
Giải thích: Vòng while sẽ kết thúc khi biểu thức trong while là FALSE. Biểu thức i = 0 chỉ là phép gán. Giá trị của biểu thức này là 0 tương đương với FALSE. Lệnh printf(“True\n”) sẽ không được thực hiện.
10. What is output ?
#include <conio.h> #include <stdio.h> int main() { int i = 0, j = 0; while (i < 5, j < 10) { i++; j++; } printf("%d, %d\n", i, j); getch(); }
A. 5, 5
B. 10, 10
C. Syntax error
B
Giải thích: Biểu thức của vòng lặp while có thể là nhiều biểu thức và vòng lặp while sẽ chỉ quan tâm đến biểu thức cuối cùng.
11. What is output?
#include <conio.h> #include <stdio.h> int main() { int a = 0, i = 0, b = 0 ; for (i = 0; i < 5; i++) { a++; continue; b++; } printf("\n a = %d,b =%d", a, b); getch(); }
A. a = 5,b = 5
B. a = 4,b = 4
C. a = 5,b = 0
D. Another
C
Giải thích: Gặp lệnh continue, complier sẽ bỏ qua các câu lệnh tiếp theo và thực hiện hiện 1 vòng lặp mới. Như vậy, câu lệnh b++ sẽ không bao giờ được thực hiện.
12. What is output ?
void main() { int i = 0; for (i = 0; i < 5; i++) if (i < 4) { printf("Hello"); break; } getch(); }
A. Hello
B. Hello is printed 3 times
C. Hello is prined 4 times
D. Hello is printed 5 times
A
Giải thích: Khi gặp lệnh break chương trình sẽ thoát khỏi vòng lặp gần nhất với nó.
13. What is output?
#include <stdio.h> #include <conio.h> void main() { int i = 0; for(; i <= 2; ) printf(" %d", ++i); getch(); }
A. 1 2 3
B. 0 1 2 3
C. 0 1 2
A
14. What is output ?
#include <stdio.h> #include <conio.h> void main() { int x; for(x = 1; x <= 5; x++); printf("%d", x); getch(); }
A.12345
B. 123456
C. 6
D. 1234
C
15. What is output?
#include <stdio.h> #include <conio.h> int main() { int i = 3; while (i--) { int i = 100; i--; printf("%d ", i); } getch(); }
A. 99 99 99
B. Complier Error
C. 1
A
Giải thích: Nếu chương trình được biên dịch bằng trình biên dịch C, chương trình biên dịch báo lỗi vì biến chỉ được khai báo đầu hàm.
Chương trình được biên dịch C++, không xảy ra lỗi
– Câu lệnh int i = 3 là biến global. Giá trị i trong biểu thức while có giá trị khởi tạo là 3.
– Câu lệnh int i = 100 là biến local. Câu lệnh trong vòng lặp lấy giá trị i = 100.
16. How many times will “vncoding” is printed on screen?
#include <stdio.h> #include <conio.h> int main() { int i = 1024; for (; i; i >>= 1) printf("\nvncoding"); getch(); }
A. 10
B. 11
C. Infinite
A Giải thích: i >>=1 -> i = i >> 1 = i/2. Mà 1024 = 2^10 = 1000000000 -> "vncoding" sẽ được in ra 10 lần.
17. What is output?
#include <stdio.h> #include <conio.h> void main() { int i = 2, j = 2; while(i+1? --i : j++) printf("%d", i); getch(); }
A. 1
B. 2
C. Complier Error
A Giải thích: i+1 = 3 (trong ngôn ngữ C, 3 có nghĩa là TRUE) -> lệnh --i = 1 được thực hiện. Trong ngôn ngữ C, 1 có nghĩa là TRUE -> in 1 ra màn hình.
18. What is output?
#include <stdio.h> #include <conio.h> void main() { int i, j; i = j = 2; while(--i&&j++) printf("%d %d", i, j); getch(); }
A. 1 3
B. 1 2
C. Không in ra kí tự nào
A Giải thích: --i&&j++ = 1&&2 = 1 (TRUE), sau lệnh này i = 1 và j = 3 -> in 1 3 ra màn hình.(chú ý: trong ngôn ngữ C, vớitoán tử && cả hai toán hạng khác không thì kết quả sẽ bằng 1) --i&&j++ = 0&&3 = 0 (FALSE) -> thoát khỏi vòng lặp
19. What is output?
#include <stdio.h> #include <conio.h> int main() { int x = 011, i; for(i = 0; i < x; i += 3) { printf("Start "); continue; printf("End"); } getch(); }
A. Start End Start End
B. Start Start Start
C. Start Start Start Start
B Giải thích: 011 là số octal = 9. Lệnh printf("Start"); sẽ thực hiện 3 lần.
20. What is output of the following code?
#include <stdio.h> #include <conio.h> void main() { int s = 0; while (s++ < 10) { if (s < 4 && s < 9) continue; printf(" %d ", s); } getch(); }
A. 1 2 3 4 5 6 7 8 9
B. 3 4 5 6 7 8 9
C. 4 5 6 7 8 9
D. 4 5 6 7 8 9 10
D
Giải thích: xét biểu thức (s++ < 10). Giá trị của biến s được tăng sau khi so sánh s < 10. Do vậy, giá trị của biến s trong vòng while từ 1 đến 10. Khi s = 1 → 3, biểu thức logic (s < 4 && s < 9) = TRUE, lệnh continue được thực hiện và câu lệnh printf bị bỏ qua. Kết quả: 4 5 6 7 8 9 10 được in ra.
21. What is output?
#include <stdio.h> #include <conio.h> void main() { int i = 6; while(i) { if (i > 5) { i--; } i = i + 5; if (i > 34) { break; } } printf("%d", i); getch(); }
A. Infinite loop
B. 35
C. 38
D. 39
22. What is output?
#include <stdio.h> #include <conio.h> int print(int i); void main() { int i = 6; while(print(i) || --i); getch(); } int print(int i) { printf("%d, ", i); return 0; }
A. 6, 5, 4, 3, 2, 1,
B. 6, 5, 4, 3, 2, 1, 0,
C. Complier Error
D. Infinite loop
23. What is output?
#include <stdio.h> #include <conio.h> int func(int* i); void main() { int i = 15; while(func(&i) && i++ > 0); printf("%d", i); getch(); } int func(int* i) { *i -= 5; return(*i); }
A. 0
B. -1
C. -2
D. -3
24. What is output?
#include <stdio.h> #include <conio.h> void main() { static int i; int j; for(j = 0; j <= 5; j++) switch(j) { case 1: i++; break; case 2: i+=2; case 4: i /= 1; j += 1; continue; default: --i; continue; } printf ("%d", i); getch(); }
A. 0
B. 2
C. 3
D. -4
25. What is output?
#include <stdio.h> #include <conio.h> void main() { int i, j; for(i = 0, j = 0; i < 5, j < 6; i++, j++) { printf("i = %d \t j = %d\n", i, j); } getch(); }
A. print i and j from 0 till 4
B. print i and j from 0 till 5
C. print i from 0 to 4, print j from 0 to 5
D. Complier Error
Leave a Reply
You must be logged in to post a comment.