Trắc nghiệm Bài 5: Từ bài toán đến chương trình có đáp án
14 câu hỏi
Quá trình giải bài toán trên máy tính gồm mấy bước?
Hướng dẫn giải
Đáp án đúng là: C
Quá trình giải bài toán trên máy tính gồm 3 bước
+ B1: Xác định bài toán, bao gồm xác định điều kiện cho trước và xác định kết quả cần đạt được
+ B2: Mô tả thuật toán, liệt kê các thao tác cần thực hiện.
+ B3: Viết chương trình, dùng thuật toán vừa viết ra chuyển thành chương trình để máy tính có thể hiểu và thực hiện.
Thuật toán tốt là thuật toán:
Thời gian chạy nhanh
Tốn ít bộ nhớ
Cả A và B đều đúng
Tất cả các phương án đều sai
Đáp án đúng là: C
Thuật toán tốt là thuật toán tốn ít bộ nhớ và thời gian giúp máy tính hiểu và giải quyết một bài toán nhanh, chính xác.
Hãy xác định bài toán: “Nhập vào 3 số A, B, C tìm giá trị lớn nhất trong 3 số đó.”
INPUT: 3 số A, B, C. OUTPUT: Số lớn nhất trong 3 số A, B, C.
INPUT: 3 số A, B, C. OUTPUT: Số các số lớn nhất trong 3 số.
INPUT: Số lớn nhất trong 3 số. OUTPUT: 3 số .
INPUT: Số các số lớn nhất trong 3 số. OUTPUT: 3 số A, B, C.
Đáp án đúng là: A
Trong bài toán thì Input là giá trị đề bài đã cho, Output là giá trị cần tìm. Vậy trong bài toán trên INPUT là 3 số A, B, C. OUTPUT là số lớn nhất trong 3 số đó.
Hàm tính lũy thừa bậc n của số a trong C++ là pow(a,n), vậy muốn viết câu lệnh tính P=54thì câu lệnh nào sau đây là đúng?
P=pow(4,5);
P=pow(5,4);
p=Pow(5,4);
P=POW(5,4);
Đáp án đúng là: B
Lũy thừa bậc n của số a là pow(a,n), nên lũy thừa bậc 4 của 5 là pow(5,4), trong C++ lại phân biệt chữ hoa và chữ thường nên P=54được viết là P=pow(5,4);
Để in ra giá trị lớn nhất của 4 số a, b, c, d trong C++ thì câu lệnh nào sau đây là chính xác?
cout<<max(a,b,c,d);
cout<<max(a;b;c;d);
cout<<max(max(a,b),max(c,d));
cout<<max(max(a,b);max(c,d));
Đáp án đúng là: C
Trong C++, hàm tính giá trị lớn nhất của 2 số a, b có cú pháp max(a,b). Vậy muốn tìm giá trị lớn nhất của 4 số a, b, c, d ta tìm max(a,b) và max(c,d) sau đó ta tìm giá trị lớn nhất trong 2 giá trị lớn nhất vừa tìm tức là max(max(a,b),max(c,d)).
Thứ tự các bước giải bài toán trên máy tính:
Xác định bài toán → Viết chương trình → Mô tả thuật toán
Xác định bài toán → Mô tả thuật toán → Viết chương trình
Mô tả thuật toán → Xác định bài toán → Viết chương trình
Viết chương trình → Xác định bài toán → Mô tả thuật toán
Đáp án đúng là: B
Các bước giải bài toán trên máy tính là: Xác định bài toán (xác định Input, Output) → Mô tả thuật toán (các bước giải bài toán) → Viết chương trình (dùng ngôn ngữ lập trình để viết chương trình giúp máy tính hiểu và thực hiện được).
Thuật toán là:
Một thao tác cần thực hiện để thu được kết quả cần thiết từ những điều kiện cho trước.
Dãy các thao tác cần thực hiện theo 1 trình tự xác định để thu được kết quả cần thiết từ những điều kiện cho trước.
Dãy các thao tác cần thực hiện để thu được kết quả cần thiết từ những điều kiện cho trước.
Tất cả đều sai
Đáp án đúng là: B
Thuật toán là dãy các thao tác cần thực hiện theo 1 trình tự xác định để thu được kết quả cần thiết từ những điều kiện cho trước.
Mô tả thuật toán là:
Liệt kê các cách thực hiện công việc.
Liệt kê các bước thực hiện công việc.
Liệt kê một bước thực hiện công việc.
Tất cả đều đúng
Đáp án đúng là: B
Mô tả thuật toán là việc liệt kê các bước thực hiện công việc. Các bước của thuật toán thực hiện tuần tự từ trên xuống dưới.
Trong tin học, sơ đồ khối là:
Ngôn ngữ lập trình bậc cao
Sơ đồ mô tả thuật toán
Sơ đồ về cấu trúc máy tính
Sơ đồ thiết kế vi điện tử
Đáp án đúng là: B
Để mô tả thuật toán ngoài cách liệt kê các bước ta cũng có thể dùng sơ đồ khối. Sơ đồ khối là một bản vẽ minh họa của một hệ thống có các bộ phận hoặc thành phần chính được biểu diễn bằng các khối. Các khối này được nối với nhau bằng các dòng để hiển thị mối quan hệ giữa các khối tiếp theo.
Để biểu diễn thuật toán bằng sơ đồ khối, người ta thường phân biệt hai loại thao tác chính trong thuật toán:
1) Thao tác chọn lựa theo một điều kiện nào đó (được biểu diễn bằng khối hình thoi); 2) Các thao tác không thuộc loại chọn lựa được xếp vào loại hành động (được biểu diễn bằng khối hình chữ nhật).
Ngoài ra, người ta còn thường dùng các khối hình bình hành để biểu diễn thao tác nhập/ xuất dữ liệu và khối elip để biểu diễn khối bắt đầu và kết thúc thuật toán.

Thuật toán có tính:
Tính xác định, tính liên kết, tính đúng đắn
Tính dừng, tính liên kết, tính xác định
Tính dừng, tính xác định, tính đúng đắn
Tính tuần tự: Từ input cho ra output
Đáp án đúng là: C
+ Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các thao tác → tính dừng.
+ Sau khi thực hiện một thao tác thì hoặc là thuật toán kết thúc hoặc có đúng 1 thao tác xác định để thực hiện tiếp theo → tính xác định.
+ Sau khi thuật toán kết thúc, ta phải nhận được Output của bài toán cần tìm → Tính đúng đắn.
Chọn phát biểu đúng khi nói về bài toán và thuật toán:
Trong phạm vi Tin học, ta có thể quan niệm bài toán là việc nào đó mà ta muốn máy tính thực hiện
Thuật toán (giải thuật) để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác đó, từ Input của bài toán này, ta nhận được Output cần tìm
Sơ đồ khối là sơ đồ mô tả thuật toán
Cả ba câu trên đều đúng
Đáp án đúng là: D
+ Bài toán là việc nào đó mà ta muốn máy tính thực hiện.
+ Thuật toán (giải thuật) để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác đó, từ Input của bài toán này, ta nhận được Output cần tìm.
+ Sơ đồ khối là sơ đồ mô tả thuật toán.
Cho bài toán kiểm tra tính nguyên tố của một số nguyên dương N. Hãy xác định Output của bài toán này?
N là số nguyên tố
N không là số nguyên tố
N là số nguyên tố hoặc N không là số nguyên tố
Tất cả các ý trên đều sai
Đáp án đúng là: C
Output là các thông tin cần tìm vì vậy bài toán kiểm tra tính nguyên tố của một số nguyên dương N, Output của bài toán này là N là số nguyên tố hoặc N không là số nguyên tố.
"…(1) là một dãy hữu hạn các …(2) được sắp xếp theo một trình tự xác định sao cho khi thực hiện dãy các thao tác ấy, từ …(3) của bài toán, ta nhận được …(4) cần tìm". Các cụm từ còn thiếu lần lượt là?
Input – Output - thuật toán – thao tác
Thuật toán – thao tác – Input – Output
Thuật toán – thao tác – Output – Input
Thao tác - Thuật toán– Input – Output
Đáp án đúng là: B
Thuật toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho khi thực hiện dãy các thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm.
Hàm tìm UCLN(a,b) trong C++ là __gcd(a,b) vậy câu lệnh in ra UCLN(a,b,c,d) nào sau đây là đúng?
cout<<__gcd(a,b,c,d);
<__gcd(a,b,c,d);
cout<< “__gcd(a,b,c,d)”;
<>
cout<<__gcd(__gcd(a,b),__gcd(c,d));
<__gcd(__gcd(a,b),__gcd(c,d));
cout<< “__gcd(__gcd(a,b),__gcd(c,d))”;
<>
Đáp án đúng là: D
Muốn tìm UCLN(a,b,c,d) ta tìm UCLN(a,b), UCLN(c,d) sau đó tìm UCLN(UCLN(a,b),UCLN(c,d)), khi đó ta viết trong C++ sẽ là:
__gcd (__gcd (a,b), __gcd (c,d)). Sau đó muốn in kết quả ra màn hình thì kết hợp với lệnh cout nữa là hoàn thành.
⇒ Câu lệnh đúng là:
cout<< “__gcd(__gcd(a,b),__gcd(c,d))”;
