Bị bỏ qua không được thực hiện, nhưng vẫn đúng cú pháp Phản hồi Đáp án đúng là: Lặp lại mãi mãi không dừng vì biểu thức điều kiện không có nên máy xem như biểu thức điều kiện luôn luôn đ
Trang 1Câu hỏi 1
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Mảng dùng để chứa cài gì là đúng nhất trong số:
Đáp án đúng là: Danh sách nhiều dữ liệu cùng kiểu
Tham khảo: Bài 5 – Cấu trúc dữ liệu mảng và thuật toán xử lý, mục 5.1a, trang 1,2 Bản Text Câu trả lời đúng là:
Câu hỏi 2
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Trong C, các tác vụ xuất nhập chuẩn được khai báo trong tập tin:
Chọn một câu trả lời:
a stdio.h
b math.h
Trang 2Mô tả câu hỏi
Các phần tử của mảng sau đây có chỉ số:
Trang 3Đánh dấu để làm sau
Mô tả câu hỏi
Đoạn mã sau đây : for (;;) là :
Chọn một câu trả lời:
a Tất cả các phương án đều sai
b Lặp lại mãi mãi không dừng
c Đoạn mã lệnh này không đúng cú pháp
d Bị bỏ qua không được thực hiện, nhưng vẫn đúng cú pháp
Phản hồi
Đáp án đúng là: Lặp lại mãi mãi không dừng
vì biểu thức điều kiện không có nên máy xem như biểu thức điều kiện luôn luôn đúng.Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.1, trang 7,8,9, Bản TextCâu trả lời đúng là:
Câu hỏi 5
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Kết quả in ra màn hình của chương trình sau là gì?
Trang 4- i ban đầu có giá trị là 2 , 2<=4 nên giá trị i=2 được in ra màn hình
- Câu lệnh i+=2 được thực hiện, i=4<=4 nên giá trị i=4 được in ra màn hình
- Câu lệnh i+=2 được thực hiện i=6 không <=4 nên câu lệnh lặp for dừng
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.1, trang 7,8,9, Bản Text Câu trả lời đúng là:
Câu hỏi 6
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Cho đoạn chương trình như sau
typedef struct SV
{char ht[35];
int tuoi;
char quequan[30];
Trang 5Mô tả câu hỏi
Đoạn chương trình sắp xếp mảng tăng dần dưới đây sẽ cần thay đổi gì để được sắp xếp giảm dần (a là mảng số nguyên, n là số phần tử):
for( i=0; i < n-1; i++)
for( j=i+1; j < n; j++)
if( a[i] > a[j] )
{ tg = a[i]; a[i] = a[j]; a[j] = tg; }
Chọn một câu trả lời:
a Thay đổi thứ tự các lệnh trong nhóm đổi chỗ a[i] với a[j] sau lệnh if
b Không cần thay đổi
c Thay đổi điều kiện so sánh của lệnh if là a[i] < a[j]
Trang 6d Đảo thứ tự viết của 2 lệnh lặp for
Phản hồi
Đáp án đúng là: Thay đổi điều kiện so sánh của lệnh if là a[i] < a[j]
Tham khảo: Bài 5 – Cấu trúc dữ liệu mảng và thuật toán xử lý, mục 5.1.2c, trang 8,9 Bản Text Câu trả lời đúng là:
Câu hỏi 8
Câu trả lời không đúng
Điểm 0,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Cho đoạn chương trình như sau:
typedef struct { int x;int y;} diem;
Trang 7Đánh dấu để làm sau
Mô tả câu hỏi
Sản phẩm của lập trình trên máy tính là gì?
Mô tả câu hỏi
Hình bình hành để mô tả thao tác trong thuật toán là?
Trang 8Mô tả câu hỏi
Cấu trúc lệnh nào sau đây thực hiện kiểm tra điều kiện sau khi thực hiện nhóm lệnh lặp:Chọn một câu trả lời:
Mô tả câu hỏi
Hàm sau cho kết quả (trả về) gì với lời gọi là XYZ(5):
int XYZ( int x )
Trang 9{ if (x>0) return x+XYZ(x-1); else return x; }
Vậy hàm cho kết quả 15
Tham khảo: Bài 4 – Phương pháp lập trình có cấu trúc mục 4.3.3, phần b, trang 12, Bản Text
Câu trả lời đúng là:
Câu hỏi 13
Câu trả lời không đúng
Trang 10Điểm 0,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Hình thoi để mô tả thao tác trong thuật toán là?
a Ý tưởng để giải quyết một vấn đề bằng máy tính
b Các bước để giải quyết một bài toán
c Trình tự các bước để thực hiện một bài toán bằng máy tính
d Cách làm một bài toán
Phản hồi
Đáp án đúng là: Các bước để giải quyết một bài toán
Tham khảo: Bài 1 – Giới thiệu tổng quan về lập trình, mục 1.2.1, trang 3, Bản Text
Trang 11Mô tả câu hỏi
Phát biểu nào sau đây là sai?
Chọn một câu trả lời:
a Khi gọi hàm địa chỉ của biến nhớ hoặc con trỏ được truyền vào cho hàm
b Hàm có thể nhận tham số là con trỏ hoặc biến
c Con trỏ có thể được sử dụng làm tham số cho hàm
d Chỉ có con trỏ mới được sử dụng làm tham số cho hàm
Mô tả câu hỏi
Chọn phát biểu sai: Một tên bắt đầu bằng:
Chọn một câu trả lời:
a Ký tự chữ cái - Ký tự gạch nối
b Ký tự gạch nối
c Ký tự chữ cái
Trang 12Mô tả câu hỏi
Cho biết chỗ sai của hàm sau
void A@B( int x, y ){ return x+y; }
Đáp án đúng là: Sai tên hàm, kiểu hàm và khai báo tham số
Tham khảo: Bài 4 – Phương pháp lập trình có cấu trúc, mục 4.2.1, trang 4, Bản Text Câu trả lời đúng là:
Câu hỏi 18
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Trang 13Đánh dấu để làm sau
Mô tả câu hỏi
Tính tuần tự của máy khi thực hiện chương trình là?
Chọn một câu trả lời:
a Từ trên xuống và trái sang phải
b Từ trên xuống và phải sang trái
c Từ trái sang phải
d Từ trên xuống dưới
Phản hồi
Đáp án đúng là: Từ trên xuống và trái sang phải
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.1, trang 1, Bản TextCâu trả lời đúng là:
Câu hỏi 19
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Thuật toán phải có đặc trưng cơ bản?
Trang 14Đáp án đúng là: Hữu hạn, khả dụng, đúng đắn, đơn giản
Tham khảo: Bài 1 – Giới thiệu tổng quan về lập trình, mục 1.2.2, trang 3, Bản TextCâu trả lời đúng là:
Câu hỏi 20
Câu trả lời không đúng
Điểm 0,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Đoạn chương trình sau làm gì (a là mảng số nguyên, n là số phần tử):
for( i=k=1; i<n; i++ )
{ if( a[i] != a[0] )
c Xóa các phần tử sau phần tử đầu nhưng khác phần tử đầu
d Xóa các phần tử sau phần tử đầu nhưng giống phần tử đầu
Trang 15Chương trình dạng mã máy là?
Chọn một câu trả lời:
a Chương trình sau khi biên soạn
b Chương trình sau khi biên dịch
c Chương trình ngôn ngữ máy
Phản hồi
Đáp án đúng là: Chương trình sau khi biên dịch
Tham khảo: Bài 1 – Giới thiệu tổng quan về lập trình, mục 1.1.2, trang 3, Bản TextCâu trả lời đúng là:
Câu hỏi 22
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Nếu đoạn đoạn mã sau được thực thi, giá trị của S là gì?
Trang 16- 2*i+5*j= 14+ 100>100 nên vòng lặp while dừng, vậy S có giá trị là 33
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.2, trang 9, 10, Bản Text Câu trả lời đúng là:
Câu hỏi 23
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Chúng ta có thể truyền cho tham trị gồm:
Trang 17Tham khảo: Bài 4 – Phương pháp lập trình có cấu trúc, mục 4.2.1, trang 4, Bản Text Câu trả lời đúng là:
Câu hỏi 24
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Ý nghĩa của phương pháp phân rã bài toán trong lập trình là:
Chọn một câu trả lời:
a Dễ dàng kiểm soát, nâng cấp
b Giúp triển khai theo nhóm thuận lợi
Mô tả câu hỏi
Giả sử ta có: int a[5], *p Câu lênh nào sau đây sẽ không hợp lệ
Chọn một câu trả lời:
a
Trang 18Mô tả câu hỏi
Cho đoạn chương trình như sau
Trang 19Câu trả lời đúng là:
Câu hỏi 27
Câu trả lời không đúng
Điểm 0,00 ngoài khoảng 1,00
Mô tả câu hỏi
Nếu nhóm lệnh lặp lồng nhau sau đây được thực hiện, thì d có giá trị bao nhiêu?int i, j, d=0;
for (i=0; i<10; i++)
for (j=0; j<10; j++)
d++;
Chọn một câu trả lời:
Trang 20Mô tả câu hỏi
Cho đoạn chương trình như sau:
Trang 21strcpy(p.hoten,"Nguyen Van A");
Mô tả câu hỏi
Giá trị ban đầu của a là 5, b là 7 Sau khi thực hiện xong hàm sum(int a, int b) thì a, b có giá trị bao nhiêu?
int sum (int *a, int b)
Trang 22b Cả 3 phương án đều sai
Mô tả câu hỏi
Nếu nhóm lệnh lặp lồng nhau sau đây được thực hiện, thì d có giá trị bao nhiêu?
Trang 23Trong vòng lặp for thứ nhất ta có i ban đầu là 0, i chạy từ 0 đến 9 nên số lần lặp là 10Trong vòng lặp for thứ hai ta có j ban đầu là 0, j chạy từ 0 đến 9 nên số lần lặp là 10Vậy số lần lặp của vòng for lồng nhau là:
10*10=100
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.1, trang 7,8,9, Bản TextCâu trả lời đúng là:
Câu hỏi 2
Câu trả lời không đúng
Điểm 0,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Hai con trỏ Head và Tail trong lập trình danh sách móc nối đơn có thực sự cần thiết?Chọn một câu trả lời:
Trang 24Cho khai báo như sau:
Câu trả lời không đúng
Điểm 0,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Cho khai báo như sau:
Trang 25Mô tả câu hỏi
Đoạn chương trình sau làm gì (a là mảng số nguyên, n là số phần tử):
tg = a[0];
a[0] = a[n-1];
a[n-1] = tg;
Chọn một câu trả lời:
a Chuyển phần tử cuối lên đầu
b Đổi chỗ phần tử đầu và cuối cho nhau
c Chuyển phần tử đầu xuống cuối
d Cả 3 phương án đều sai
Phản hồi
Đáp án đúng là: Đổi chỗ phần tử đầu và cuối cho nhau
Vì: a[0] là phần tử đầu, a[n-1] là phần tử cuối
Ban đầu ta chuyển giá trị a[0] sang ô trung gian, sau đó chuyển giá trị trong ô a[n-1] sang ô a[0], sau
đó chuyển giá trị a[0] trong ô trung gian vào ô a[n-1]
Tham khảo: Bài 5 – Cấu trúc dữ liệu mảng và thuật toán xử lý, mục 5.1.2c, trang 8,9 Bản TextCâu trả lời đúng là:
Câu hỏi 6
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Trang 26Đánh dấu để làm sau
Mô tả câu hỏi
Nếu câu lệnh lặp sau được thực hiện thì kết quả in ra màn hình là gì?
- Vì i=3<10 nên in i=3 ra màn hình Thực hiện lệnh i=i+2=5 Sau đó thực hiện lệnh i++, i có giá trị là 6
- Vì i=6<10 nên in i=3 ra màn hình Thực hiện lệnh i=i+2=5 Sau đó thực hiện lệnh i++, i có giá trị là 6Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.1, trang 7,8,9, Bản Text
Trang 27Đánh dấu để làm sau
Mô tả câu hỏi
Nếu đoạn mã sau được thực thi, S sẽ có giá trị bao nhiêu?
- Ban đầu i=1, s=1;
- Câu lệnh lặp do while sẽ thực hiện công việc trước khi kiểm tra điều kiện
- S+=5*i-2 cho kết quả: 1+5*1-2=4, i+=3 cho kết quả 4
- Vì i=4<15 nên quay lại tính S
- S+=5*i-2 cho kết quả 4+5*4-2=22, i+=3 cho kết quả 7
- Vì i=7<15 nên quay lại tính S
- S+=5*i-2 cho kết quả 22+5*7-2=35, i+=3 cho kết quả 10
- Vì i=10<15 nên quay lại tính S
- S+=5*i-2 cho kết quả 55+5*10-2=103, i+=3 cho kết quả 13
- Vì i=13<15 nên quay lại tính S
Trang 28- S+=5*i-2 cho kết quả 103+5*13-2=166, i+=3 cho kết quả 16.
- Vì i=16 không <15 nên vòng lặp do while dừng và cho kết quả là 166
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.3, trang 10, 11, Bản Text Câu trả lời đúng là:
Câu hỏi 8
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Chúng ta có thể truyền cho tham trị gồm:
Trang 29a Các bước để giải quyết một bài toán
b Ý tưởng để giải quyết một vấn đề bằng máy tính
c Trình tự các bước để thực hiện một bài toán bằng máy tính
d Cách làm một bài toán
Phản hồi
Đáp án đúng là: Các bước để giải quyết một bài toán
Tham khảo: Bài 1 – Giới thiệu tổng quan về lập trình, mục 1.2.1, trang 3, Bản TextCâu trả lời đúng là:
Câu hỏi 10
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Ý nghĩa của phương pháp phân rã bài toán trong lập trình là:
Chọn một câu trả lời:
a Tất cả các phương án
b Dễ dàng kiểm soát, nâng cấp
c Giảm thiểu sự lặp lại
d Giúp triển khai theo nhóm thuận lợi
Trang 30Đánh dấu để làm sau
Mô tả câu hỏi
Cấu trúc lệnh nào sau đây sẽ không thực hiện nhóm lệnh lặp nếu ngay lần đầu tiên biểu thức điều kiện sai:
Mô tả câu hỏi
Đoạn đoạn mã sau cho kết quả cuối cùng của S là bao nhiêu?
Trang 31- i=0; j=0 (i+j)%2==0 nên S=9;
- i=0; j=1 (i+j)%2==1 nên S=11;
- i=0; j=2 (i+j)%2==0 nên S=10;
- i=0; j=3 không <3 nên vòng lặp trong dừng
- i=1; j=0 (i+j)%2==1 nên S=12;
- i=1; j=1 (i+j)%2==0 nên S=11;
- i=1; j=2 (i+j)%2==1 nên S=13;
- i=1; j=3 không <3 nên vòng lặp trong dừng
- i=2; j=0 (i+j)%2==0 nên S=12;
- i=2; j=1 (i+j)%2==1 nên S=14;
- i=2; j=2 (i+j)%2==0 nên S=13;
- i=2; j=3 không <3 nên vòng lặp trong dừng
- i=3 không <3 nên vòng lặp for dừng
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.1, trang 7,8,9, Bản Text.Câu trả lời đúng là:
Câu hỏi 13
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Trang 32Đánh dấu để làm sau
Mô tả câu hỏi
Kết quả của biểu thức sau đây là bao nhiêu (10 - (8 - 2)*10)/ ( 5 - 5 *2)?
Mô tả câu hỏi
Kết quả in ra màn hình của chương trình sau là gì?
Trang 33- i ban đầu có giá trị là 2 , 2<=4 nên giá trị i=2 được in ra màn hình
- Câu lệnh i+=2 được thực hiện, i=4<=4 nên giá trị i=4 được in ra màn hình
- Câu lệnh i+=2 được thực hiện i=6 không <=4 nên câu lệnh lặp for dừng
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.1, trang 7,8,9, Bản Text Câu trả lời đúng là:
a Chương trình ngôn ngữ máy
b Chương trình sau khi biên soạn
c Chương trình sau khi biên dịch
Phản hồi
Đáp án đúng là: Chương trình sau khi biên dịch
Trang 34Tham khảo: Bài 1 – Giới thiệu tổng quan về lập trình, mục 1.1.2, trang 3, Bản Text
Mô tả câu hỏi
Nếu đoạn mã sau được thực thi, số chuỗi "Hello" được xuất ra trên màn hình là bao nhiêu lần?
- x=13<y=20, nên chương trình sẽ in ra dòng chữ “Hello” Sau đó tăng x thêm 3 đơn vị: x=16
- x=16<y=20, nên chương trình sẽ in ra dòng chữ “Hello” Sau đó tăng x thêm 3 đơn vị: x=19
- x=19<y=20, nên chương trình sẽ in ra dòng chữ “Hello” Sau đó tăng x thêm 3 đơn vị: x=22
Trang 35- x=22 >y=20 nên câu lệnh lặp while dừng Như vậy dòng chữ “Hello” được in 4 lần
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.3, trang 9, 10, 11, Bản Text Câu trả lời đúng là:
Câu hỏi 17
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Cho đoạn chương trình như sau
Trang 36Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Chọn phát biểu sai: Một tên bắt đầu bằng:
Mô tả câu hỏi
Đâu là cú pháp khai báo con trỏ hằng?
Trang 37Mô tả câu hỏi
Các yếu tố cơ bản để viết hàm gồm:
Chọn một câu trả lời:
a Đầu vào, đầu ra, tên hàm
b Đầu vào, thuật toán, đầu ra
c Thuật toán
d Tên hàm, thuật toán
Phản hồi
Đáp án đúng là: Đầu vào, thuật toán, đầu ra
Tham khảo: Bài 4 – Phương pháp lập trình có cấu trúc, mục 4.2, trang 3, Bản Text Câu trả lời đúng là:
Câu hỏi 21
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Hãy chỉ ra phát biểu chính xác nhất về con trỏ kép?
Chọn một câu trả lời:
a Dùng để quản lý mảng 2 chiều
Trang 38b Dùng để quản lý mảng 1 chiều
c Dùng để quản lý địa chỉ bắt đầu và kết thúc của toàn bộ chương trình
d Dùng để quản lý 1 mảng các con trỏ đơn
Mô tả câu hỏi
Kiểu truy nhập “a+b” được dùng để làm gì?
Chọn một câu trả lời:
a Mở tập tin để đọc/ghi bổ sung theo kiểu nhị phân, chưa có thì tạo mới
b Mở tập tin để đọc theo kiểu nhị phân, chưa có thì tạo mới
c Mở tập tin để đọc theo kiểu văn bản, chưa có thì tạo mới
d Mở tập tin để đọc/ghi bổ sung theo kiểu văn bản, chưa có thì tạo mới
Trang 39Đánh dấu để làm sau
Mô tả câu hỏi
Sau khi thực thi đoạn mã sau, giá trị của x là gì?
Vì: i=1 <10, nên câu lệnh if được thực hiện
Vì i%2 nên x=x+i=0+1=1;
Sau đó chương trình thực hiện lệnh break, nên vòng lặp for bị dừng ngay lập tức
Lúc này câu lệnh printf in giá trị x=1 ra màn hình
Tham khảo: Bài 3 – Cấu trúc điều khiển trong lập trình, mục 3.2.1, và mục 3.2.4 Bản Text Câu trả lời đúng là:
Câu hỏi 24
Câu trả lời đúng
Trang 40Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Hình thoi để mô tả thao tác trong thuật toán là?
Đáp án đúng là: Lựa chọn theo điều kiện
Tham khảo: Bài 1 – Giới thiệu tổng quan về lập trình, mục 1.2.3, trang 4, Bản TextCâu trả lời đúng là:
Câu hỏi 25 (Chú ý)
Câu trả lời đúng
Điểm 1,00 ngoài khoảng 1,00
Đánh dấu để làm sau
Mô tả câu hỏi
Đoạn chương trình sau thực hiện công việc gì?
Trang 41while((file_character = getc(file_pointer)) != EOF)
printf("%c", file_character);
fclose(file_pointer);
}
Chọn một câu trả lời:
a Mở tệp MYFILE.DTA để ghi kí tự đọc được lên màn hình
b Ghi kí tự vào file MYFILE.DTA
c Mở tệp MYFILE.DTA để đọc và hiện kí tự đọc được lên màn hình
d Đọc kí tự từ file MYFILE.DTA
Phản hồi
Đáp án đúng là: Mở tệp MYFILE.DTA để đọc và hiện kí tự đọc được lên màn hình
Tham khảo Bài 8 – Làm việc với file;
Mô tả câu hỏi
Các phần tử của mảng sau đây có chỉ số: