Tổng hợp hơn 100 câu hỏi trắc nghiệm môn Kỹ thuật lập trình cơ sở ĐH Mở Hà Nội, có ôn tập lấy điểm giữa kì, gồm các bài trắc nghiệm của: Bài 2. Giới thiệu về ngôn ngữ lập trình CC++ Bài 3. Cấu trúc điều khiển trong lập trình Bài 4. Phương pháp lập trình có cấu trúc Bài 5. Cấu trúc dữ liệu mảng và thuật toán xử lý Bài 6. Con trỏ và các vấn đề liên quan Bài 7. Phương pháp gói dữ liệu bằng struct Bài 8. Phương pháp xử lý lưu dữ liệu trên tệp tin
Trang 1Kỹ thuật lập trình cơ sở - ĐH Mở Hà Nội
Bài 2 Giới thiệu về ngôn ngữ lập trình C/C++
1.Hình thoi để mô tả thao tác trong thuật toán là?
Chọn một câu trả lời:
a Nhập/xuất dữ liệu
b Tính toán, xử lý
c Bắt đầu hoặc kết thúc thuật toán
d Lựa chọn theo điều kiện Câu trả lời đúng
2 Chương trình dạng mã nguồn là?
Chọn một câu trả lời:
a Chương trình ngôn ngữ máy
b Chương trình sau khi biên dịch
c Chương trình chạy được trên máy
d Chương trình sau khi biên soạn
3.Các giai đoạn cơ bản của việc xây dựng một sản phẩm phần mềm?
Chọn một câu trả lời:
a Phân tích và thiết kế
b Tất cả các phương án đều đúng Câu trả lời đúng
c Khảo sát bài toán
d Mã hóa chương trình
4.Hình elíp để mô tả thao tác trong thuật toán là?
Chọn một câu trả lời:
a Bắt đầu hoặc kết thúc thuật toán
b Lựa chọn theo điều kiện
c Tính toán, xử lý
Trang 2d Nhập/xuất dữ liệu Câu trả lời không đúng
5.Phần mềm để chuyển nội dung chương trình từ mã nguồn về mã máy là?
Chọn một câu trả lời:
a System
b Translator
c Word processor
d Compiler Câu trả lời đúng
6.Những tên biến nào dưới đây được viết đúng theo quy tắc đặt tên của ngôn ngữ lập trình C?
Trang 3b Chữ cái tiếng anh, chữ số thập phân, một số dấu
c Không có phương án nào
d Tập tất cả các ký tự ASCII Câu trả lời đúng
10.Cho biến x, đâu là câu lệnh để in giá trị biến x lên màn hình?
b Tất cả các phương án đều đúng Câu trả lời đúng
c Khảo sát bài toán
d Phân tích và thiết kế
12.Ngôn ngữ lập trình có chức năng chính?
Chọn một câu trả lời:
a Không phải ba trường hợp trên
b Tạo cơ chế biên dịch chương trình Câu trả lời không đúng
c Cung cấp quy tắc viết lệnh
Trang 413.Sản phẩm của lập trình trên máy tính là gì?
a Cách làm một bài toán Câu trả lời không đúng
b Trình tự các bước để thực hiện một bài toán bằng máy tính
c Các bước để giải quyết một bài toán
d Ý tưởng để giải quyết một vấn đề bằng máy tính
16.Dữ liệu kiểu kí tự bao gồm:
Chọn một câu trả lời:
a Các ký tự chữ cái
b Các ký tự đặc biệt
c Các ký tự chữ số
d Cả 3 phương án đều đúng Câu trả lời đúng
17.Xâu định dạng nào dưới đây dùng để in ra một số nguyên trong lệnh printf?
Chọn một câu trả lời:
a “%x”
b “%d” Câu trả lời đúng
c “%i”
Trang 5a Đưa các phần mềm đã có lên máy
b Viết chương trình cho máy tính Câu trả lời đúng
c Nhập một văn bản vào máy
d Nhập một bảng tính vào máy
22.Chỉ ra tên đúng của các ngôn ngữ lập trình thông dụng?
Chọn một câu trả lời:
a C/C++, B/B++
Trang 6b C/C++, Java, Pascal Câu trả lời đúng
b Khối lệnh Đoạn văn Câu trả lời đúng
c Không có phương án nào
d Chương trình Câu văn
24.Giả sử có câu lệnh ch=’A’ Vậy ch sẽ chứa bao nhiêu byte?
Trang 8a Chương trình sau khi biên dịch Câu trả lời đúng
b Chương trình ngôn ngữ máy
c Chương trình sau khi biên soạn
33 Trong C, chỉ thị #include đòi hỏi:
Chọn một câu trả lời:
a File phải tồn tại trong đĩa CD
b File phải tồn tại trong đĩa cứng
Trang 9c File phải tồn tại trong thư mục include đã được thiết lập bởi người dùng Câu trả lời đúng
d File phải tồn tại trong thư mục gốc ổ đĩa cứng C:
34.Cho khai báo:
c Tùy thuộc vào người sử dụng có sao lưu hay không
d Giá trị cũ tạm thời mất đi
36.Kết quả của đoạn mã sau là bao nhiêu:
Trang 10c Mô tả từng bước, sơ đồ khối Câu trả lời đúng
d Sơ đồ khối ngôn ngữ lập trình
39 Chỉ ra tên đúng của các ngôn ngữ lập trình thông dụng?
Trang 11-Bài 3 Cấu trúc điều khiển trong lập trình
1.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 Câu trả lời đúng
b Từ trái sang phải
c Từ trên xuống và phải sang trái
d Từ trên xuống dưới
2.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ì?int i;
for (i=0; i<10; i++)
Trang 14Chọn một câu trả lời:
a Ước số chung lớn nhất của a và b với a, b được nhập vào từ bàn phím
b Số a được nhập vào Câu trả lời không đúng
c Bội số chung nhỏ nhất của a và b được nhập vào
a Bị bỏ qua không được thực hiện, nhưng vẫn đúng cú pháp
b Đoạn mã lệnh này không đúng cú pháp
c Lặp lại mãi mãi không dừng Câu trả lời đúng
Trang 15d Tất cả các phương án đều sai
10.Cho đoạn chương trình:
Trang 1611.Nếu đoạn đoạn mã sau đây được thực thi, thì biến t có giá trị bao
Trang 2120.Nếu đoạn mã sau được thực thi, số chuỗi "Hello" được xuất ra trên mànhình là bao nhiêu lần?
Trang 2323.Đoạn đoạn mã sau cho kết quả cuối cùng của S là bao nhiêu?int i= 10, S=0;
for ( ; i<2 ; i++ ) S+= i;
Trang 24Anh/chị hãy cho biết kết quả in ra màn hình của chương trình?
Trang 2630.Đ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 Bị bỏ qua không được thực hiện, nhưng vẫn đúng cú pháp
c Lặp lại mãi mãi không dừng Câu trả lời đúng
d Đoạn mã lệnh này không đúng cú pháp
31.Sau khi thực thi đoạn mã sau, giá trị của x là gì?
Trang 27a Thực hiện một nhóm lệnh theo điều kiện tương ứng Câu trả lời đúng
b Thực hiện các lệnh từ dưới lên
Trang 28quan -int x=5;
Trang 30Chọn một câu trả lời:
a Địa chỉ Segment, địa chỉ Offset và địa chỉ của chương trình chứa biến đó
b Địa chỉ Segment và địa chỉ của chương trình chứa biến đó
c Địa chỉ Offset và địa chỉ của chương trình chứa biến đó
d Địa chỉ Segment và địa chỉ Offset của biến đó
b Lưu trữ dữ liệu để tính toán như một biến nhớ thông thường
c Lưu trữ cấu trúc tổ chức của chương trình
d Lưu trữ các giá trị rỗng trong quá trình tính toán
6.Bộ nhớ trên máy tính được tổ chức như thế nào?
Trang 31int *const p1 = &a;
int const *p2 = &b;
Trang 32c Vùng nhớ động được cấp phát ngay sau khi khởi động chương trìnhCâu trả lời đúng
d Vùng nhớ động có thể được định nghĩa lại kích thước mà không ảnh hưởng đến các giá trị trước đó
11.Bộ nhớ trên máy tính được tổ chức như thế nào?
Chọn một câu trả lời:
a Tổ chức ở dạng cây nhị phân để tăng tốc độ truy cập
b Tổ chức dạng phân cấp, mỗi cấp độ lại bao gồm các cấp độ thấp hơn
c Tổ chức dạng các phân đoạn, mỗi phân đoạn làm 1 nhiệm vụ riêng Câu trả lời đúng
d Tổ chức ở dạng tuyến tính dữ liệu được ghi tuần tự từ đầu đến cuối bộ nhớ
12.Những hàm nào sau đây được sử dụng trong việc cấp phát vùng nhớ động?
Chọn một câu trả lời:
a malloc(), calloc(), deadloc()
b malloc(), calloc(), free()
c malloc(), calloc(), realloc()
Câu trả lời đúng
d alloc(), malloc(), calloc()
13.Các toán tử tăng (++) giảm ( ) sẽ dịch chuyển biến trỏ đi 1 bước nhảy
có độ lớn là bao nhiêu bytes?
Trang 33int *const p1 = &a;
int const *p2 = &b;
a Con trỏ có thể được sử dụng làm tham số cho hàm
b Khi gọi hàm địa chỉ của biến nhớ hoặc con trỏ được truyền vào cho hàm
c Hàm có thể nhận tham số là con trỏ hoặc biến
d Chỉ có con trỏ mới được sử dụng làm tham số cho hàm
17.Cho đoạn mã lệnh sau Yêu cầu hãy hiện nội dung của biến x đang được trỏ bởi p ra màn hình thì trong dấu … Ta sẽ điền cú pháp như thế nào?
int main(){
int **p,*p1;
int x=5;
p1 = &x;
Trang 3520 Cho đoạn mã lệnh sau Yêu cầu hãy hiện nội dung của biến x đang được trỏ bởi p ra màn hình thì trong dấu … Ta sẽ điền cú pháp như thế nào?
Trang 3622.Cho đoạn mã lệnh sau Yêu cầu hãy hiện nội dung của biến x đang được trỏ bởi p ra màn hình thì trong dấu … Ta sẽ điền cú pháp như thế nào?
Trang 37a Là con trỏ, trỏ tới địa chỉ vùng nhớ là hằng
b Là con trỏ, tới địa chỉ của mảng là hằng
c Là con trỏ, trỏ tới địa chỉ đầu của mảng
d Là con trỏ, trỏ tới ô nhớ có dữ liệu là hằng
Trang 38a Sai Câu trả lời đúng
b Tùy vào môi trường lập trình
Trang 39b a={Tuan,20,Thai Nguyen};
c a={“Ngoc”,”27”,”Vinh Phuc”};
d a={“Duy”,34,”Ha Noi”}; Câu trả lời đúng
3.Cho khai báo như sau:
typedef struct Diem1
d Tùy từng thời điểm
4.Cho khai báo như sau:
Trang 40d Tùy từng thời điểm
7.Sự khác nhau giữa 2 kiểu khai báo “struct tênkiểu{…};” và “typedef struct tênkiểu{…}tênsửdụng;”:
Chọn một câu trả lời:
a Khác biệt trong cách truy suất các thành phần của kiểu cấu trúc
b Không khác biệt
Trang 41c Khác biệt về cách khai báo biến theo kiểu cấu trúc trong chương trình Câu trả lời đúng
d Tạo ra 2 cấu trúc khác nhau dù có cùng nội dung
d gets(a.hoten); Câu trả lời đúng
9.Đâu là câu lệnh truy xuất thành phần Tuoi của biến con trỏ cấu trúc?struct SV
{
char ht[35];
int Tuoi;
float DTB;
Trang 42a Sai Câu trả lời đúng
b Tùy vào môi trường lập trình
c Tất cả các phương án trên đều đúng
d Có nhiều khi không được
12.Lệnh khai báo sau đây khai báo mảng có bao nhiêu phần tử?
Trang 44c S1 và S2 đều khởi tạo sai
d S1 và S2 đều được khởi tạo đúng
15.Cho khai báo như sau:
d Biến Câu trả lời đúng
16.Lệnh khai báo sau đây khai báo mảng có bao nhiêu phần tử?
Trang 4519.Cho khai báo sau:
typedef struct SinhVien
{char Maso[10];
Trang 4723.Cho đoạn chương trình như sau:
typedef struct { int x;int y;} diem;
diem p = {6,11};
diem q;
Trang 4926.Số lượng các thuộc tính trong một cấu trúc có giới hạn, không được quá 7
Trang 50a.quequan = “Thai Nguyen”;
28.Cho đoạn chương trình như sau:
typedef struct { int x;int y;} diem;
Trang 51-Bài kiểm tra trắc nghiệm 01
-1.Hình chữ nhật để mô tả thao tác trong thuật toán là?
Chọn một câu trả lời:
a Tính toán, xử lý Câu trả lời đúng
b Lựa chọn theo điều kiện
c Bắt đầu hoặc kết thúc thuật toán
d Chuyển chương trình từ dạng mã máy sang dạng mã nguồn
4.Sản phẩm của lập trình trên máy tính là gì?
Chọn một câu trả lời:
Trang 52a Hệ điều hành Windows
b Chương trình phần mềm
Câu trả lời đúng
c Phần cứng máy tính
d Các tài liệu, văn bản trên máy
5.Sự tương ứng () của thành phần trong C và trong tiếng Việt là?
Chọn một câu trả lời:
a Câu lệnh Văn bản
b Chương trình Câu văn
c Khối lệnh Đoạn văn Câu trả lời đúng
d Không có phương án nào
6.Biến là gì?
Chọn một câu trả lời:
a Cả 2 phương án đều sai
b Một giá trị không đổi
c Tên gọi của một vùng nhớ Câu trả lời đúng
Trang 5411.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:
a Dễ dàng kiểm soát, nâng cấp
b Tất cả các phương án Câu trả lời đúng
c Giúp triển khai theo nhóm thuận lợi
d Giảm thiểu sự lặp lại
13.Hàm sau cho kết quả (trả về) gì với lời gọi là XYZ(5):
int XYZ( int x )
{ if (x>0) return x+XYZ(x-1); else return x; }
Trang 55d Cả 3 phương án đều sai.
15.Hãy cho biết lời gọi đúng nhất đối với hàm sau:
int AB( int x, int y ){ return x+y; }
a Các bước để giải quyết một bài toán Câu trả lời đúng
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
17.Lập trình (programming) là?
Chọn một câu trả lời:
a Nhập một bảng tính vào máy
b Đưa các phần mềm đã có lên máy
c Nhập một văn bản vào máy
d Viết chương trình cho máy tính
18.Sản phẩm của lập trình trên máy tính là gì?
Chọn một câu trả lời:
a Chương trình phần mềm
Câu trả lời đúng
Trang 56b Các tài liệu, văn bản trên máy.
Trang 57Chọn một câu trả lời:
a Giá trị cũ tạm thời mất đi
b Tùy thuộc vào người sử dụng có sao lưu hay không
c Giá trị cũ bị mất đi Câu trả lời đúng
Trang 5825.Khai báo hàm sau sẽ có:
int A( int x , int *y );
Chọn một câu trả lời:
Trang 59a Hai tham biến
b Tham trị x và tham biến y Câu trả lời đúng
c Tham trị y và tham biến x
d Hai tham trị
26.Khai báo hàm sau sẽ có:
int A( int *x , int *y );
Chọn một câu trả lời:
a Hai tham trị
b Tham trị y và tham biến x
c Tham trị x và tham biến y
d Hai tham biến Câu trả lời đúng
27.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)
28.Cho khai báo hàm như sau:
int F( int *a , int *b );
Đầu là lời gọi hàm đúng?
Trang 60d Lựa chọn theo điều kiện Câu trả lời đúng
31.Phần mềm để chuyển nội dung chương trình từ mã nguồn về mã máy là?
a File phải tồn tại trong thư mục gốc ổ đĩa cứng C:
b File phải tồn tại trong đĩa CD
Trang 61c File phải tồn tại trong đĩa cứng
d File phải tồn tại trong thư mục include đã được thiết lập bởi người dùng Câu trả lời đúng
33.Cho biến x, đâu là câu lệnh để nhập giá trị cho biến x?
b Không có phương án nào
c Tập tất cả các ký tự ASCII Câu trả lời đúng
d Chữ cái tiếng anh, chữ số thập phân, một số dấu
35.Kết quả in ra màn hình của chương trình sau là gì?
Trang 6238.Khai báo hàm sau sẽ có:
int A( int x , int *y );
Chọn một câu trả lời:
a Tham trị x và tham biến y Câu trả lời đúng
Trang 63b Hai tham biến
c Tham trị y và tham biến x
d Hai tham trị
39
40
-Bài kiểm tra trắc nghiệm
02 -1.Đoạn chương trình sau sẽ làm gì trên mảng (a là mảng số nguyên, n là
c Cả 3 phương án đều sai
d Hiện các số từ mảng ra màn hình theo thứ tự ngược với mảng Câu trả lời đúng
2.Cho khai báo:
Trang 64a Xóa 1 ký tự nhập còn sót trên máy
b Xóa bộ đệm (dòng vào) của bàn phím
c Xóa bộ đệm (dòng ra) của màn hình
d Xóa bộ đệm (dòng vào) của bàn phím để nhập dữ liệu hoàn toàn mới
5.Đâu là cú pháp khai báo con trỏ hằng?
Chọn một câu trả lời:
Trang 657.Các toán tử tăng (++) giảm ( ) sẽ dịch chuyển biến trỏ đi 1 bước nhảy có
độ lớn là bao nhiêu bytes?
a fscanf, fprintf, fgets, fputs
b fscanf, fprintf, fgets, fgetc
c fprintf, fgets, fgetc
d fscanf, fgets, fgetc Câu trả lời đúng
9.Đoạn chương trình sau thực hiện công việc gì?
#include <stdio.h>
void main()
{
Trang 66a 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 Câu trả lời đúng
b Chèn thêm phần tử cuối lên đầu mảng Câu trả lời đúng
c Chèn thêm phần tử đầu vào cuối trong mảng
d Xóa các phần tử trong mảng
11.Đ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=0; i < n/2; i++)
Trang 67{ tg = a[i];
a[i] = a[n-1-i];
a[n-1-i] = tg; }
Chọn một câu trả lời:
a Cả 3 phương án đều sai
b Chuyển các phần tử nửa cuối lên đầu
c Đảo ngược các phần tử trong mảng Câu trả lời đúng
d Chuyển các phần tử nửa đầu xuống cuối
12.Cho khai báo:
Trang 68a Tạo ra 2 cấu trúc khác nhau dù có cùng nội dung
b Khác biệt trong cách truy suất các thành phần của kiểu cấu trúc
Trang 69d struct SV.a; Câu trả lời đúng
16.Chương trình sau có bị lỗi biên dịch không và nếu có lỗi thì lỗi tại dòng
Trang 70d Bảng số thực tối đa 100 hàng, 200 cột Câu trả lời đúng
19.Để biết độ dài của xâu s ta sử dụng lệnh?
Trang 71for( i=0; i < n/2; i++)
{ tg = a[i];
a[i] = a[n-1-i];
a[n-1-i] = tg; }
Chọn một câu trả lời:
a Đảo ngược các phần tử trong mảng Câu trả lời đúng
b Chuyển các phần tử nửa đầu xuống cuối
c Chuyển các phần tử nửa cuối lên đầu
d Cả 3 phương án đều sai
21.Cho chương trình sau:
Trang 72b Là con trỏ, trỏ tới địa chỉ vùng nhớ là hằng
c Là con trỏ, tới địa chỉ của mảng là hằng
d Là con trỏ, trỏ tới địa chỉ đầu của mảng
23.Cho đoạn mã lệnh sau Dòng lệnh nào là dòng lệnh sai?
int a = 12, b=14;
int *const p1 = &a;
int const *p2 = &b;
Trang 73c Nhân đôi xâu t chứa vào s
d Nhân đôi xâu s chứa vào t Câu trả lời đúng
27.Đoạn chương trình sau làm gì (a là mảng số nguyên, n là số phần tử):for( tong=0, i=0; i < n-1; i++)
if( a[i] > 0 ) { tong = tong + a[i]; }
Trang 7428.Cho đoạn chương trình như sau
Trang 75a Sắp xếp danh sách Sinh viên theo điểm trung bình (DTB) tăng dần
b Sắp xếp danh sách Sinh viên theo tuổi (Tuoi) tăng dần Câu trả lời đúng
c Sắp xếp danh sách Sinh viên theo tuổi (Tuoi) giảm dần
d Sắp xếp danh sách Sinh viên theo điểm trung bình (DTB) giảm dần
29.Để mở file “SoNguyen.txt” dưới dạng tệp Văn bản và cho phép ghi nội dung vào thì câu lệnh là gì?