◕ Thông báo:Chuyển đổi trang WEB về địa chỉ mới https://theza2.blogspot.com (Cải thiện tốc độ truy cập, giao diện thân thiện hơn) Kính mời mọi người chuyển qua nhà mới
◕ Lời nhắn: ⊱ Mình học Bách Khoa nên ai đó ghét Bách Khoa thì có thể lặng lẽ đi ra ⊱ Mình là dân Thanh Hóa nên ai đó ghét Thanh Hóa cũng có thể lặng lẽ rời đi ⊱ Mình học cơ khí, trang này chỉ làm ra theo sở thích nên nếu thấy không hài lòng có thể nhẹ nhàng tắt trang ⊱ Mình hiện tại có những việc riêng phải bận cho cuộc sống của mình, sẽ không còn thường xuyên hồi đáp các bình luận, mong được lượng thứ..
◕ Dịch vụ: Nhận thiết kế Form mẫu Excel, Google Sheet: ⊱ Hỗ trợ quản lý, chiết xuất dữ liệu; Tạo bảng báo cáo, thống kê nhanh; ⊱ Tạo hệ thống thiết lập và quản lý tiến độ công việc một cách trực quan; Tạo bảng nhập liệu, tính toán hỗ trợ công việc.. ◕ Dùng thử: Chương trình phần mềm xếp thép tối ưu ⊱ Đây là chương trình mình viết ra để hỗ trợ công việc tính toán đầu vào vật tư thép hình dạng thanh (L, H, U, ...) (Nhắn tin trực tiếp tới fanpage Theza2 để trao đổi)
Câu 250: Cho biết kết quả hiển thị trên màn hình?
int a; for(a=1 ; a<=10 ; a++) {
printf("%i",a); if(a%3) a=a+2; }
a. 1 4 7
b. 1 3 5 7 9
c. 1 4 7 10
d. 1 4 8
a Sai
b Sai
c Đúng
Kiến thức cần lưu ý:
Nếu điều kiện của lệnh if không phải là một biểu thưc điều kiện mà chỉ là một biểu thức phép toán thì:
_Kết quả phép toán khác 0 : lệnh if được thực hiện
_Kết quả phép toán bằng 0 : lệnh if không được thực hiện
=========================
_Ban đầu a=1 (≤10) : thực hiện lệnh trong for:
+ in ra "a " (in ra "1 ")
+ a%3=1%3=1 : thực hiện lệnh if a=a+2=3
_Tiếp lệnh for a++ ⇒ a=4 (≤10) : thực hiện lệnh trong for:
+ in ra "a " (in ra "4 ")
+ a%3=4%3=1 : thực hiện lệnh if a=a+2=6
_Tiếp lệnh for a++ ⇒ a=7 (≤10) : thực hiện lệnh trong for:
+ in ra "a " (in ra "7 ")
+ a%3=7%3=1 : thực hiện lệnh if a=a+2=9
_Tiếp lệnh for a++ ⇒ a=10 (≤10) : thực hiện lệnh trong for:
+ in ra "a " (in ra "10 ")
+ a%3=10%3=1 : thực hiện lệnh if a=a+2=12
_Tiếp lệnh for a++ ⇒ a=13 (>10) : kết thúc vòng lặp for.
d Sai
Câu 251: Đoạn chương trình sau sẽ in những gì ra màn hình?
int i=0; char c='c';
for(i=0;i<6;i=i+2){
c=c+i; printf("%c",c);
}
a. c e i
b. c e i o
c. e i o
d. Tất cả đáp án đều sai
a Đúng
Kiến thức cần lưu ý:
_Khi một biến được gán bằng 1 kí tự, biến đó sẽ có giá trị tương ứng ở giá trị nguyên được quy ước trong bảng mã ASCII
==========
_Ban đầu i=0 (<6), thực hiện lệnh trong for:
c=c+i='c'+0='c'
in ra "c "
_Tiệp tục lệnh for i=i+2=2 (<6), thực hiện lệnh trong for:
c=c+i='c'+2='e'
in ra "e "
_Tiệp tục lệnh for i=i+2=4 (<6), thực hiện lệnh trong for:
c=c+i='e'+4='i'
in ra "i "
_Tiệp tục lệnh for i=i+2=6 (=6), kết thúc vòng lặp for:
b Sai
c Sai
d Sai
Câu 252: Khi thực hiện chương trình
#include <stdio.h>
void main(){
int x;
for(x=5;x>0;x--)
printf("%2d ",x--);
} Kết quả nhận được trên màn hình là
a. 5 3 1
b. 5 4 3 2 1
c. 4 3 2 1 0
d. 5 4 3 2 1 0
a Đúng
Kiến thức cần lưu ý: Phép toán hậu tố x--(hay x++) nếu có trong lệnh thì thực hiện lệnh trước rồi mới giảm (hay tăng) x 1 đơn vị
==============
_Ban đầu i=5 (>0), thực hiện lệnh trong for:
in ra x (in ra 5)
x-- ⇒ x=4
_Tiếp tục lệnh for x-- ⇒ x=3 (>0), thực hiện lệnh trong for:
in ra x (in ra 3)
x-- ⇒ x=2
_Tiếp tục lệnh for x-- ⇒ x=1 (>0), thực hiện lệnh trong for:
in ra x (in ra 1)
x-- ⇒ x=0
_Tiếp tục lệnh for x-- ⇒ x=-1 (<0), thoát lệnh for.
b Sai
c Sai
d Sai
Câu 253: Cho đoạn chương trình sau, sau khi thực hiện xong kết quả hiển thị ra màn hình là như thế nào?
int i;
for(i=0;i<5;i++);
printf("%d ",i);
a. 0
b. 0 1 2 3
c. 5
d. 0 1 2 3 4
a Sai
b Sai
c Đúng
Để ý bạn thấy sau for là dấu chấm phẩy ; nên xem như vòng lặp for không có lệnh thực hiện.
Vậy ở đây chỉ có i tăng lên sau mỗi vòng lặp cho đến khi điều kiện i<5 sai
Suy ra Kết thúc vòng lặp i=5
Sau vòng lặp có lệnh in ra i tức là in ra 5
d Sai
Câu 254: Cho biết kết quả thực hiện đoạn chương trình sau?
#include <stdio.h>
void main() {
int i=0;
for(i<=5;i++)
printf("%d ",i);
}
a. 0 1 2 3 4 5
b. 5
c. 0 1 2 3 4
d. Lỗi cú pháp vòng lặp for
a Sai
b Sai
c Sai
d Đúng
Vòng lặp for có cấu trúc for(lệnh 1;điều kiện;lệnh 2) lệnh 3;
Trong đó:
_lệnh 1 : là lệnh khởi đầu, chỉ thực hiện 1 lần duy nhất khi bắt đầu vòng lặp for. Lệnh này có thể bao gồm 1 tập lệnh ngăn cách nhau bởi dấu phẩy "," hoặc có thể để trống
_điều kiện : là điều kiện được kiểm tra trước mỗi lần vào thực lệnh 3.Điều kiện này có thể bao gồm 1 tập điều kiện ngăn cách nhau bởi dấu phẩy "," hoặc có thể để trống
_lệnh 2 : là lệnh thay cho lệnh 1 sau vòng lặp đầu tiên. Lệnh này có thể bao gồm 1 tập lệnh ngăn cách nhau bởi dấu phẩy "," hoặc có thể để trống
_lệnh 3 : là lệnh được thực hiện nếu điều kiện kiểm tra đúng. Lệnh này có thể bao gồm 1 tập lệnh ngăn cách nhau bởi dấu chấm phẩy ";" và được đặt trong cặp ngoặc nhọn {}, hoặc có thể để trống
Câu 255: Phát biểu nào sau đây là sai đối với vòng lặp for?
a. Vòng lặp for thực hiện nhanh hơn vòng lặp while
b. Mọi đoạn lệnh sử dụng vòng lặp for có thể thay thế bằng vòng lặp while và ngược lại
c. for(;;); là một vòng lặp vô tận
d. Các câu lệnh trong vòng lặp for có hể không được thực hiện lần nào
a Đúng
for và while có thể được sử dụng linh hoạt như nhau, không thể so sánh cái nào nhanh hơn cái nào được
b Sai
for(L1;ĐK;L2) {L3;}
Tương ứng với
L1;
while(ĐK) {L3;L2;}
===================
Ngược lại L1;while(ĐK) {L0;}
Tương ứng với
for (;ĐK;) {L0;}
c Sai
Vì ta thấy biểu thức điều kiện để kiểm tra for là trống nên nó sẽ luôn coi điều kiện là đúng và lặp vô tận (trừ trường hợp các lệnh for thực hiện có lệnh break; thì ta mới phải xem xét lại) :v
d Sai
Nếu điều kiện kiểm tra sai ngay từ đầu thì vòng for thoát luôn và không thực hiện lần nào
Câu 256: Mệnh đề nào dưới đây là đúng?
a. Lệnh do...while kiểm tra điều kiện vòng lặp trước rồi mới thực hiện lệnh
b. Lệnh while thực hiện lệnh trước rồi mới kiểm tra điều kiện vòng lặp
c. Cấu trúc while và do...while được dùng để thực hiện lặp đi lặp lại một công việc với số lần lặp xác định
d. Lệnh while kiểm tra điều kiện vòng lặp trước rồi mới thực hiện lệnh
a Sai
b Sai
c Sai
d Đúng
Câu 257: Trong ngôn ngữ lập trình C, khi đoạn chương trình sau được thực hiện, kết quả hiển thị ra màn hình là gì?
int i=5;
while(i-->=0) printf("%d,",i);
a. 5,4,3,2,1,0,
b. 5,4,3,2,1,0,-1,
c. 4,3,2,1,0,
d. 4,3,2,1,0,-1,
a Sai
b Sai
c Sai
d Đúng
Kiến thức cần nhớ: Nếu trong lệnh có phép toán tiền tố (++x,--x), hậu tố (x++,x--) ta thực hiện phép tiền tố trước, rồi thực hiện lệnh, xong mới thực hiện phép toán hậu tố.
==============
Chú ý: trong điều kiện lệnh while có phép toán hậu tố i--. Vậy sau khi so sánh để được kết quả biểu thức điều kiện xong ta giảm i đi 1 đơn vị.
Ban đầu i=5
_Vòng lặp 1: i=5>=0 (đúng) i=5--=4 thực hiện in ra "4,"
_Vòng lặp 2: i=4>=0 (đúng) i=4--=3 thực hiện in ra "3,"
_Vòng lặp 3: i=3>=0 (đúng) i=3--=2 thực hiện in ra "2,"
_Vòng lặp 4: i=2>=0 (đúng) i=2--=1 thực hiện in ra "1,"
_Vòng lặp 5: i=1>=0 (đúng) i=1--=0 thực hiện in ra "0,"
_Vòng lặp 6: i=0>=0 (đúng) i=0--=-1 thực hiện in ra "-1,"
_Vòng lặp 7: i=-1<0 không thực hiện vòng lặp này. i=(-1)--=-2
Câu 258: Trong 2 đoạn chương trình sau đoạn nào cho kết quả i=12?
(A) int i=6;do i++; while(i<12);
(B) int i=6;while(i<12)i++;
a. B
b. A
c. Cả A và B
d. Không có đoạn nào
a Sai
b Sai
c Đúng
Cả 2 đoạn lệnh để ngừng lặp thì i>=12. Môi vòng lặp tăng 1 lên 1 đơn vị.
Vậy i cứ tăng dần cho đến khi i=12 thì vòng lặp ngừng. i không tăng thêm nữa
d Sai
Câu 259: Trong ngôn ngữ lập trình C, cho biết kết quả hiển thị trên màn hình sau khi đoạn chương trình sau được thực hiện?
int i=0;
while(i<10) {
printf("%d ",i);
i=i+2;
}
a. %d %d %d %d %d
b. i i i i i
c. 0 2 4 6 8
d. 0 2 4 6 8 10
a Sai
b Sai
c Đúng
Ban đầu i=0
_Vòng lặp 1: i=0<10 (đúng) thực hiện in ra "0 " ,i=0+2=2
_Vòng lặp 2: i=2<10 (đúng) thực hiện in ra "2 " ,i=2+2=4
_Vòng lặp 3: i=4<10 (đúng) thực hiện in ra "4 " ,i=4+2=6
_Vòng lặp 4: i=6<10 (đúng) thực hiện in ra "6 " ,i=6+2=8
_Vòng lặp 5: i=8<10 (đúng) thực hiện in ra "8 " ,i=8+2=10
_Vòng lặp 6: i=10=10 không thực hiện vòng lặp này.
d Sai
Câu 260: Trong ngôn ngữ lập trình C, cho biết kết quả hiển thị trên màn hình sau khi đoạn chương trình sau được thực hiện?
int i=0;
while (i<10) {
i=i+2;
printf("%d ",i);
}
a. 2 4 6 8
b. 0 2 4 6 8
c. 2 4 6 8 10
d. 0 2 4 6 8 10
a Sai
b Sai
c Đúng
Ban đầu i=0
_Vòng lặp 1: i=0<10 (đúng) thực hiện lệnh i=0+2=2, in ra "2 "
_Vòng lặp 2: i=2<10 (đúng) thực hiện lệnh i=2+2=4, in ra "4 "
_Vòng lặp 3: i=4<10 (đúng) thực hiện lệnh i=4+2=6, in ra "6 "
_Vòng lặp 4: i=6<10 (đúng) thực hiện lệnh i=6+2=8, in ra "8 "
_Vòng lặp 5: i=8<10 (đúng) thực hiện lệnh i=8+2=10, in ra "10 "
_Vòng lặp 6: i=10=10 ngừng thực hiện vòng lặp
d Sai
Câu 261: Hãy cho biết đoạn chương trình sau kết quả in ra màn hình như thế nào?
void main() {
int a=1, n=0;
while (n<10) {a++;}
printf("a=%d",a);
}
a. a=1
b. Chương trình lặp vô hạn và không dừng
c. a=10
d. a=a
a Sai
b Đúng
Ban đầu n=0 nên điều kiện để thực hiện vòng while n<10 luôn đúng vì các lệnh trong while là a++; không làm thay đổi giá trị của n. (n luôn bé hơn 10, vòng lặp vô hạn)
c Sai
d Sai
Câu 262: Trong C, đoạn mã sau hiển thị gì trên màn hình?
int i=0;
while(++i+1<=5) printf("%d",i);
a. 12345
b. 01234
c. 123456
d. 1234
a Sai
b Sai
c Sai
d Đúng
Chú ý trong điều kiện của while có phép cộng tiền tố ++i, vậy ta phải tăng i lên 1 đơn vị rồi mới thực hiện so sánh kiểm tra điều kiện
Ban đầu i=0
_Vòng lặp 1: i=++0=1 ⇒ 1+1=2<=5 (đúng) in ra "1"
_Vòng lặp 2: i=++1=2 ⇒ 2+1=3<=5 (đúng) in ra "2"
_Vòng lặp 3: i=++2=3 ⇒ 3+1=2<=5 (đúng) in ra "3"
_Vòng lặp 4: i=++3=4 ⇒ 4+1=2<=5 (đúng) in ra "4"
_Vòng lặp 5: i=++4=5 ⇒ 5+1=6>5 ngừng vòng lặp
Câu 263: Trong ngôn ngữ lập trình C, khi đoạn chương trình sau được thực hiện, kết quả hiển thị trên màn hình là gì?
int i=0;
while (++i <=5)
printf("%d, "i);
a. 0, 1, 2, 3, 4, 5,
b. 1, 2, 3, 4, 5,
c. 1, 2, 3, 4, 5
d. 1, 2, 3, 4, 5, 6,
a Sai
b Đúng
Chú ý trong điều kiện của while có phép cộng tiền tố ++i, vậy ta phải tăng i lên 1 đơn vị rồi mới thực hiện so sánh kiểm tra điều kiện
Ban đầu i=0
_Vòng lặp 1: i=++0=1 ⇒ 1<=5 (đúng) in ra "1, "
_Vòng lặp 2: i=++1=2 ⇒ 2<=5 (đúng) in ra "2, "
_Vòng lặp 3: i=++2=3 ⇒ 3<=5 (đúng) in ra "3, "
_Vòng lặp 4: i=++3=4 ⇒ 4<=5 (đúng) in ra "4, "
_Vòng lặp 5: i=++4=5 ⇒ 5<=5 (đúng) in ra "5, "
_Vòng lặp 6: i=++5=6 ⇒ 6>5 ngừng vòng lặp
c Sai
d Sai
Câu 264: Cho biết kết quả thực hiện đoạn chương trình sau?
int S=0, d=0;
while (d<10) {
S+=d;
d+=2;
}
printf("%d",S); Hãy chỉ ra lỗi cú pháp của đoạn chương trình trên (nếu có)?
a. 0
b. 10
c. 20
d. 45
a Sai
b Sai
c Đúng
Ban đầu S=0, d=0
_Vòng lặp 1: d=0<10 (đúng) S=S+d=0+0=0 , d=d+2=0+2=2
_Vòng lặp 2: d=2<10 (đúng) S=S+d=0+2=2 , d=d+2=2+2=4
_Vòng lặp 3: d=4<10 (đúng) S=S+d=2+4=6 , d=d+2=4+2=6
_Vòng lặp 4: d=6<10 (đúng) S=S+d=6+6=12 , d=d+2=6+2=8
_Vòng lặp 5: d=8<10 (đúng) S=S+d=12+8=20 , d=8+2=6+2=10
_Vòng lặp 6: d=10=10 ngừng vòng lặp.
Thực hiện lệnh in ra S (in ra 20)
d Sai
Câu 265: Viết chương trình yêu cầu người dùng nhập vào một số n (0≤n≤100). Nếu người dùng nhập sai thì đưa ra thông báo và yêu cầu nhập lại cho đến khi nào đúng.
int n;
printf("Nhập gia tri n thoa man 0<=m<=100: ");
scanf("%d",&n);
..........
{
printf("Gia tri ban nhap vao khong dung, yeu cau nhap lai");
scanf("%d",&n);
}
Cần điền đáp án nào vào dấu (..........) để chương trình thực hiện như yêu cầu?
a. if((n>0)&&(n<100))
b. while((n>0)&&(n<100))
c. while (n<0||n>100)
d. if (n<0||n>100)
a Sai
b Sai
c Đúng
d Sai
Câu 266: Viết chương trình yêu cầu người dùng nhập vào một số n (0≤n≤100). Nếu người dùng nhập sai thì đưa ra thông báo và yêu cầu nhập lại cho đến khi nào đúng.
int n;
do{
printf("Nhap gia tri n thoa man 0<=m<=100: ");
scanf("%d",&n);
}..........
Cần điền đáp án nào vào dấu (..........) để chương trình thực hiện như yêu cầu?
a. while (n>=0||n<=100);
b. while (n>=0||n<=100)
c. while (n<0||n>100)
d. while (n<0||n>100);
a Sai
b Sai
c Sai
d Đúng
Câu 267: Cho đoạn chương trình nhập vào từ bàn phím một số nguyên lớn hơn hoặc bằng 0, nếu nhập sai yêu cầu nhập lại. Chọn câu trả lời đúng cho biểu thức A và B int n;
do { scanf("%d",&n);
if (A) printf("Nhap sai, nhap lai\n");
} while (B);
a. A: n<0 ; B: n<0
b. A: n>=0 ; B: n>=0
c. A: n<0 ; B: n>=0
d. A: n>=0 ; B: n<0
a Đúng
b Sai
c Sai
d Sai
Câu 268: Trong ngôn ngữ lập trình C, khi đoạn chương trình sau được thực hiện, biến A có giá trị bao nhiêu? int i, A=0;
for (i=1; i<100; i+=13) {
continue;
A = A + 1;
}
a. 0
b. 76
c. 77
d. 1000
a Đúng
Chú ý: Khi gặp lệnh continue; trong vòng lặp, các lệnh phía sau sẽ được bỏ qua không thực hiện nữa mà quay về đầu vòng lặp để kiểm tra điều kiện cho vòng lặp tiếp theo
Trong bài trên ta thấy lệnh A=A+1; nằm sau 1 lệnh continue; nên nó sẽ không bao giờ được thực hiện ⇒ A không bị thay đổi giá trị sau khi for chạy xong
b Sai
c Sai
d Sai
Câu 269: Trong ngôn ngữ lập trình C, khi đoạn chương trình sau được thực hiện, biến A có giá trị bao nhiêu? int i, A=0;
for (i=1; i<100; i+=13) {
A = A + 100;
break;
}
a. 0
b. 100
c. 760
d. 10000
a Sai
b Đúng
Chú ý khi gặp lệnh break; trong một vòng lặp, ta thoát vòng lặp ngay lập tức.
Ban đầu A=0
_Vòng lặp 1: i=0<100 (đúng) thực hiện các lệnh trong for:
A=A+100=0+100=100
break; ⇒ thoát vòng for
(Vậy vòng for này chỉ thực hiện lặp 1 lần)
c Sai
d Sai
Copyright : Theza
ღ Lưu ý: Mình chỉ sử dụng Fanpage Theza2 để bình luận. Mọi nick khác đều không phải mình. Mình hiện tại có những việc riêng phải bận cho cuộc sống của mình, sẽ không còn thường xuyên hồi đáp các bình luận, mong được lượng thứ..
Liên kết hay đáng ghe thăm: HocTapHay.com:Tổng hợp kiến thức, bải giảng các môn học Trung học cơ sở, Trung học phổ thông,... khá đầy đủ và chi tiết.