Câu hỏi: PRF192 - Phần 3: Cấu trúc điều khiển - rẽ nhánh và vòng lặp
40 câu trắc nghiệm kèm lời giải của môn PRF192 - Cơ sở lập trình, xếp theo thứ tự nhập vào ngân hàng. Trang 2/2 — câu 21–40.
Danh sách câu hỏi
#include<stdio.h>
int main()
{
const int a=5;
if(a>3)
a++;
break;
else
a--;
printf("%d",a);
return 0;
}int n;
do {
printf("Enter a number:");
scanf("%d", &n);
} while (n < 1 || n > 5);Đáp án đúng: "
for (initialization; condition; increment) {
statements;
}". Vòng for trong C có ba phần đặt trong một cặp ngoặc tròn và phân cách bằng đúng hai dấu chấm phẩy: khởi tạo chạy một lần, điều kiện kiểm trước mỗi lượt, phần cập nhật chạy sau mỗi lượt; thân vốn là một lệnh, muốn nhiều lệnh thì gom trong cặp ngoặc nhọn. Khuôn "
for (initialization, condition, increment) {
statements;
}" dùng dấu phẩy nên cả ngoặc thành một biểu thức duy nhất và vòng lặp mất chỗ kiểm điều kiện. Khuôn "
for {
initialization;
condition;
increment;
}(statements;)" đảo vai hai loại ngoặc: phần điều khiển phải nằm trong ngoặc tròn còn thân phải nằm trong ngoặc nhọn. Khuôn "
for: (initialization; condition; increment) {
statements;
}" thêm dấu hai chấm sau từ khoá, mà dấu hai chấm trong C chỉ dùng cho nhãn, và nhãn thì không được trùng từ khoá.
#include <stdio.h>
int main()
{
int x = 5, y = 10;
while(x++ < y--)
{
printf("%d %d\n", x, y);
}
return 0;
}double result;
char op = '*';
int num1 = 5, num2 = 4;
switch (op) {
case '+': result = num1 + num2; break;
case '-': result = num1 - num2; break;
case '*': result = num1 * num2; break;
case '/': if (num2 != 0) result = num1 / num2; break;
default: printf("Invalid Operator");
}
printf("%d", result);#include <stdio.h>
int main()
{
int x=7;
for(;x>3;)
printf("Yes");
x--;
return 0;
}#include <stdio.h>
int main() {
int arr[] = {3, 6, 9, 12};
for (int i = 3; i >= 0; i -= 2)
printf("%d ", arr[i]);
return 0;
}#include <stdio.h>
void main()
{
int i = 0;
while (i < 5)
{
i++;
printf("Hi-");
while (i < 4)
{
i++;
printf("Hello-");
}
}
}for (int i = 0; i < 5; i++) {
if (i == 2) continue;
printf("%d ", i);
}#include <stdio.h>
void main()
{
int total=0;
for(int s=1; s<15; s++)
total=total+s;
printf("%d",total);
}Đáp án đúng: "
while (condition) {
statements;
}". Vòng while chuẩn gồm từ khoá while, điều kiện trong ngoặc tròn, rồi một câu lệnh làm thân; thân là cả khối khi bọc trong ngoặc nhọn, và mỗi câu lệnh bên trong khối phải kết thúc bằng dấu chấm phẩy. Sau ngoặc nhọn đóng không cần dấu chấm phẩy vì khối đã là một câu lệnh hoàn chỉnh. Dạng "(condition){ statements ;}" thiếu hẳn từ khoá while nên trình dịch chỉ thấy một biểu thức rồi một khối rời rạc. Dạng "
while (condition) {
statements
};" đặt dấu chấm phẩy sai chỗ: lệnh bên trong khối bị bỏ dấu kết thúc, còn dấu chấm phẩy lại nằm sau ngoặc nhọn đóng. Dạng "{ statements } while (condition); " là do while nhưng mất từ khoá do mở đầu, nên khối và phần while thành hai mảnh không gắn với nhau.
for (i = 2; i <= n; i++) {
S *= i;
}
printf("%d", S);Đáp án đúng: "(condition) ? True_Value : False_Value". Đây là toán tử điều kiện ba toán hạng: nó tính điều kiện rồi cho ra một trong hai giá trị, tức là một biểu thức trả về giá trị, chạy đúng một lần và không có cơ chế quay lại, nên không phải cấu trúc lặp. Dạng "for ( InitBlock; Condition; Task2) Task1; " là for chuẩn với ba phần khởi tạo, điều kiện, cập nhật, còn thân chỉ là một lệnh nên không cần ngoặc nhọn. Dạng "do{ statements;} while (condition) ; " là do while, chạy thân trước rồi mới kiểm điều kiện nên thân luôn chạy ít nhất một lần, và dấu chấm phẩy cuối là bắt buộc. Dạng "
while (condition){
statements;
}" là while chuẩn, kiểm điều kiện trước mỗi nhịp. Ba dạng này đều lặp được, chỉ toán tử điều kiện là không.