Môn học Kỹ thuật lập trình cơ sở IT01 tại EHOU sẽ là bước đặt nền móng vững chắc cho hành trình của bạn trong lĩnh vực công nghệ thông tin. Chúng ta sẽ cùng nhau khám phá những nguyên tắc cơ bản của lập trình, từ việc hiểu cấu trúc dữ liệu đơn giản đến việc xây dựng các chương trình đầu tiên một cách logic và hiệu quả.
Tư duy lập trình và cấu trúc cơ bản
Trong suốt khóa học, bạn sẽ được làm quen với tư duy lập trình, cách phân tích bài toán thành các bước nhỏ hơn và sử dụng logic để giải quyết. Chúng ta sẽ học về các khái niệm cốt lõi như biến, hằng số, kiểu dữ liệu, và các phép toán cơ bản. Bạn cũng sẽ được giới thiệu về cấu trúc điều khiển như câu lệnh rẽ nhánh (if-else, switch-case) và vòng lặp (for, while, do-while), giúp chương trình thực hiện các hành vi phức tạp dựa trên điều kiện.
Xử lý dữ liệu và hàm
Môn học sẽ đi sâu vào việc xử lý dữ liệu cơ bản, bao gồm mảng (arrays) để lưu trữ nhiều giá trị cùng loại, và chuỗi ký tự (strings) để làm việc với văn bản. Bạn sẽ học cách tổ chức mã nguồn thành các hàm (functions) hoặc thủ tục (procedures), giúp chương trình dễ đọc, dễ bảo trì và tái sử dụng. Việc này là một kỹ năng quan trọng để xây dựng các chương trình lớn và phức tạp hơn.
Thực hành và gỡ lỗi chương trình
Bên cạnh lý thuyết, thực hành sẽ là trọng tâm của môn học. Bạn sẽ được sử dụng một ngôn ngữ lập trình phổ biến (ví dụ: C/C++, Python hoặc Java tùy theo chương trình học) để viết các đoạn mã, giải quyết các bài toán từ đơn giản đến phức tạp hơn. Chúng ta cũng sẽ học về kỹ năng gỡ lỗi (debugging), cách tìm và sửa các lỗi sai trong chương trình, một kỹ năng không thể thiếu đối với bất kỳ lập trình viên nào.
Với sự hướng dẫn tận tâm của giảng viên và sự nỗ lực luyện tập, thử nghiệm của bạn, môn học Kỹ thuật lập trình cơ sở IT01 sẽ cung cấp cho bạn những kiến thức và kỹ năng nền tảng vững chắc để tự tin bước vào thế giới lập trình, làm cơ sở cho các môn học chuyên sâu hơn về sau. Chúc bạn có một hành trình học tập hiệu quả và đầy thú vị!
Mẹo Nhỏ Nên Đọc Qua
1. Để tìm kết quả nhanh thì nên sử dụng Máy Tính thay vì Điện Thoại.
2. Sau khi Sao chép (Copy) câu hỏi thì bấm “Ctrl + F” và Dán (Paste) câu hỏi vào ô tìm kiếm sẽ thấy câu cả lời. (Copy nguyên câu không ra thì thử vài từ để kiếm)
3. Trường hợp không tìm thấy câu hỏi. Lúc này vui lòng kéo xuống dưới cùng để đặt câu hỏi mục bình luận. Sẽ được trả lời sau ít phút.
4. Xem danh sách đáp án Trắc nghiệm EHOU
5. THAM GIA KHẢO SÁT VỀ CÂU HỎI (Khảo sát giúp chúng tôi biết sự trải nghiệm của Bạn, Bạn có thể đóng ý kiến giúp Chúng tôi tăng trải nghiệm của bạn. Đặc biệt chúng tôi chọn ra 1 người may mắn mỗi tuần để trao Mã Kích Hoạt LawPro 30 Miễn Phí)
6. Tham gia group Facebook Sinh Viên Luật để được hỗ trợ giải bài tập và Nhận Mã Kích hoạt tài khoản Pro Miễn Phí
7. Nếu đăng nhập mà không thấy đáp án thì làm như sau: Giữ Phím Ctrl sau đó bấm phím F5 trên bàn phím “Ctrl + F5” để trình duyệt xóa cache lúc chưa đăng nhập và tải lại nội dung.
Đáp Án Trắc Nghiệm Môn IT01 – EHOU
Chỉ Thành Viên MemberPro Mới xem được toàn bộ đáp án.
Click chọn vào hình ảnh để xem chi tiết gói MemberPro. Hoặc lựa chọn tùy chọn và cho vào giỏ hàng để mua ngay. Hoàn tiền 100% nếu không hài lòng.
MemberPro
Có thể mua gói Member Pro 100 ngày tương đương 1 kỳ học hoặc gói Member Pro 1000 ngày tương đương hết 3 năm học để xem và làm trắc nghiệm hết tất cả các môn, tải tài liệu về in ra với chi phí rẻ nhất và còn nhiều hỗ trợ cao cấp cho Member Pro .
Hoặc cũng có thể chỉ mua riêng lẻ môn này dưới đây
Môn IT01 EHOU
Xem được toàn bộ câu trắc nghiệm của môn này. Có 2 phiên bản là chỉ xem online và có thể tải tài liệu về để in ra
Mua xong xem đáp án Tại đây
ĐÁP ÁN TRẮC NGHIỆM KỸ THUẬT LẬP TRÌNH CƠ SỞ IT01_04 TÍN CHỈ – SOẠN NGÀY 17.05.2025 – THI TRẮC NGHIỆM
Ðúng✅=> Ghi chú là đáp án
Câu 1: lệnh ch=’A’. Vậy ch sẽ chứa bao nhiêu byte?
Ðúng✅=> a. 1
b. 4
c. 2
d. 3
Câu 2: lệnh để in giá trị biến x lên màn hình?
Ðúng✅=> a. cout<<x;
b. cin>>x;
c. cin<<x;
d. cout>>x;
Câu 3: lệnh để nhập họ tên cho SV a;
a. gets(a);
b. gets(hoten);
c. printf(“%15s”,a.hoten);
Ðúng✅=> d. gets(a.hoten);
Câu 4: lệnh dùng để in địa chỉ của biến x
int **p,*p1;
int x=5;
p1 = &x;
p=&p1;
a. printf(“%d”, &p)
b. printf(“%d”, p)
Ðúng✅=> c. printf(“%d”, *p)
d. printf(“%d”, **p)
Câu 5: lệnh đúng trong chương trình C/C++ là gì?
Ðúng✅=> a. (x+y)/(x-z)
b. (x+y)%(x-z)
c. x+y/x-z
d. (x+y)buồnx-z)
Câu 6: lệnh là gì?
a. f = fopen(“SoNguyen.dat”, “rt”);
b. f = fopen(“SoNguyen.dat”, “wt”);
c. f = fopen(“SoNguyen.dat”, “rb”);
d. f = fopen(“SoNguyen.dat”, “wb”);
Câu 7: 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++)
{ printf(“%d “,i);
i=i+2;
}
a. 0 1 2 3 4 5 6 7 8 9
b. 0 3 6 9
c. 2 4 6 8
d. 1 3 5 7 9
Câu 8: lệnh nào dưới đây sai:
a. if (a.diemLT>n) a.diemTH=8;
b. x=y;
c. if (x!=y) n++;
d. n=(a.diemLT+a.diemTH)/2;
Câu 9: lênh nào sau đây sẽ không hợp lệ
a. a = p;
b.
*(p+1) = a[2];
c. p = a;
d.
p = a[0];
Câu 10: lệnh rẽ nhánh if?
a. if(a<b&&a>c)
printf(“c – Min”);
printf(“b – Max”);
else
printf(“Khong xac dinh”);
b. if(a<b&&a>c)
{
printf(“c – Min”);
printf(“b – Max”);
}
c. if(a>b)
printf(“b be hon a”);
d. if(a>b)
printf( “a – max”) ;
else
printf(“b – max”) ;
Câu 11: lệnh sau là gì?
printf(“%5d”,a[0]);
a. 4
b. 6
c. 8
d. 2
Câu 12: lệnh sau:
fscanf(f,”%d”,&x);
fscanf(f,”%d”,&y);
fscanf(f,”%d”,&z);
fscanf(f,”%d”,&t);
s = x + y;
printf(“%5d”, s);
a. 30
b. 13
c. 7
d. 6
Câu 13: 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;
};
SV *p;
a. *p
b. p
c. p.Tuoi
d. p->Tuoi
Câu 14: lệnh) SAI?
a. a = b;
b. a => c;
c. b >= c;
d. a == c;
Câu 15: lệnh:
fscanf(f,”%d”,&x);
fscanf(f,”%d”,&y);
fscanf(f,”%d”,&z);
fscanf(f,”%d”,&t);
a. 6
b. 8
c. 9
d. 7
Câu 16: : Để tạo ra vùng nhớ động dùng để lưu trữ một xâu gồm 10 ký tự ta có thể dùng cách khai báo nào sau đây?
a. char *c;
c= realloc(char,10)
b. char *c; c = (char *)malloc(10, sizeof(char));
c. char c[10];
d. char *c; c = malloc(10);
Câu 17: anh/chị hãy cho biết cấu trúc lệnh lặp for nào sau đây viết sai?
a. for(int i=1,j=0;i<9,j<5;i++,j++)
cout<<i+j;
b. for(int j=0, j<10, j++)
cout<<j;
c. for(int i=0,j=1;i<9;i++)
cout<<i+j;
d. for(int i = 1; i<10; i++)
cout<< i;
Câu 18: Anh/chị hãy cho biết đoạn chương trình nào sau đây cho in kết quả là 10 lên màn hình?
a. int j=0;
while(j<10)
cout<<j+1;
b. int j=0;
while(j<10)
j++;
cout<<j+1;
c. int j;
for(j=0;j<10;j++)
j=j+1;
cout<<j;
d. int j;
for(j=0;j<10;j++)
cout<<j;
Câu 19: Anh/chị hãy cho biết kết quả của đoạn chương trình sau:
int n=1;
n+=2;
switch ( n ) {
case 1: cout<<“So Mot”; break;
case 2: cout<<“So Hai”; break;
case 3: cout<<“So Ba”; break;
default: cout<<“So n > 3”;
}
a. So Mot
b. So Ba
c. So n > 3
d. So Hai
Câu 20: Biên dịch chương trình là để?
a. Chuyển chương trình từ dạng mã máy hoặc mã nguồn về dạng nhị phân
b. Chuyển chương trình từ dạng mã máy sang dạng mã nguồn
c. Tất cả các phương án đều đúng
d. Chuyển chương trình từ dạng mã nguồn về dạng mã máy
Câu 21: Biến là gì?
a. Cả 2 phương án đều sai
b. Cả 2 phương án đều đúng
c. Một giá trị không đổi
d. Tên gọi của một vùng nhớ
Câu 22: Biến trỏ dùng để làm gì?
a. Lưu trữ các giá trị rỗng trong quá trình tính toán
b. Lưu trữ cấu trúc tổ chức của chương trình
c. Lưu trữ địa chỉ của biến
d. Lưu trữ dữ liệu để tính toán như một biến nhớ thông thường
Câu 23: Bộ nhớ trên máy tính được tổ chức như thế nào?
a. 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
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 tuyến tính dữ liệu được ghi tuần tự từ đầu đến cuối bộ nhớ.
d. Tổ chức ở dạng cây nhị phân để tăng tốc độ truy cập.
Câu 24: Các bước để thao tác với tập tin
a. Khai báo biến tập tin – Mở tập tin – Đóng tập tin – Xử lý dữ liệu
b. Khai báo biến tập tin – Mở tập tin – Xử lý dữ liệu – Đóng tập tin
c. Mở tập tin – Khai báo biến tập tin – Xử lý dữ liệu – Đóng tập tin
d. Khai báo biến tập tin – Xử lý dữ liệu – Mở tập tin – Đóng tập tin
Câu 25: 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?
a. Khảo sát bài toán
b. Mã hóa chương trình
c. Tất cả các phương án đều đúng
d. Phân tích và thiết kế
Câu 26: Các loại ngôn ngữ lập trình?
a. Ngôn ngữ bậc cao
b. Ngôn ngữ máy
c. Tất cả các phương án đều đúng
d. Ngôn ngữ bậc thấp
Câu 27: Các phần tử của mảng sau đây có chỉ số:
int a[100];
a. Từ 0 đến 99
b. Từ 1 đến 100
c. Từ 0 đến 100
d. Từ 1 đến 99
Câu 28: 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. 4 bytes
b. 1 byte
c. 8 bytes
d. Tùy theo kiểu dữ liệu của biến trỏ
Câu 29: Các yếu tố cơ bản để viết hàm gồm:
a. Đầu vào, thuật toán, đầu ra
b. Đầu vào, đầu ra, tên hàm
c. Tên hàm, thuật toán
d. Thuật toán
Câu 30: Cái gì làm thay đổi độ ưu tiên của toán tử trong biểu thức?
a. Cả 3 phương án đều đúng
b. Loại toán hạng
c. Loại toán tử
d. Cặp ngoặc đơn ()
Câu 31: 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. Cả 3 đáp án đều đúng
b. while
c. for
d. if
Câu 32: 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:
a. for
b. if
c. while
d. do..while
Câu 33: Cấu trúc lệnh rẽ nhánh để yêu cầu máy tính:
a. Thực hiện một nhóm lệnh theo điều kiện tương ứng
b. Thực hiện các lệnh từ dưới lên
c. Lặp lại thực hiện một nhóm lệnh
d. Bỏ qua thực hiện một nhóm lệnh
Câu 34: Chỉ ra tên đúng của các ngôn ngữ lập trình thông dụng?
a. C/C++, B/B++
b. Pascal, Turing
c. C/C++, Java, Newton
d. C/C++, Java, Pascal
Câu 35: Cho biết kết quả đoạn chương trình sau:
int F( int x)
{
int y = x*x;
return y;
}
void main trứng
{
int s=0, i;
for (i = 1; i <= 5; i=i+1)
s= s + F(i);
printf(“%5d”, s);
}
a. 15
b. 55
c. 16
d. 25
Câu 36: Cho cấu trúc:
struct SV{
char hoten[20];
int ns;
int diem;
};
Đâu là khai báo SAI?
a. SV ds[10];
b. struct SV b;
c. struct SV.a;
d. SV a;
Câu 37: Cho cấu trúc:
struct SV{
char hoten[20];
int ns;
int diem;
};
Và khai báo biến
SV a;
Đâu là câu
Câu 38: Cho chương trình sau :
#include <stdio.h>
void sum(int a){
int tc=0, tl=0;
for(int i=1;i<=a;i++)
if(i%2==1)
tl=tl+i;
else
tc+=i;
printf(“%d – %d”,tl,tc);
}
int maintrứng
{
int a=5;
sum(a);
}
Anh/chị hãy cho biết kết quả của chương trình?
a. 15 – 15
b. Chương trình lỗi
c. 9 – 6
d. 0 – 0
Câu 39: Cho chương trình sau:
#include <stdio.h>
int sum(int a, int b);
int main()
{
int a=5, b =9;
printf(“\Max: %d”, Max(a,-b));
}
int Max(int a, int b){
if(a>=b)
return a;
else
return b;
}
Anh/chị hãy cho biết kế quả của chương trình trên?
a. Max: 5
b. Max: -5
c. Max: -9
d. Max: 9
Câu 40: Cho chương trình sau:
#include<stdio.h>
int main(){
int n=5, tg;
int a[5]={1,2,3,4,5};
for(int i=0;i<n;i++);
printf(“%5d”,a[n-1]);
}
Anh/chị hãy cho biết kết quả của chương trình trên là bao nhiêu?
a. 5
b. Không in giá trị gì lên màn hình
c. 5 5 5 5 5
d. 1 2 3 4 5
Câu 41: Cho chương trình sau:
#include<stdio.h>
int main(){
int n=5, tg;
int a[5]={1,2,3,4,5};
tg = a[0];
a[0] = a[n-1];
a[n-1] = a[0];
for(int i=0;i<n;i++)
printf(“%5d”,a[i]);
}
Anh/chị hãy cho biết kết quả của chương trình trên là bao nhiêu?
a. 1 5
b. 1 2 3 4 5
c. 5 2 3 4 1
d. 2 3 4
Câu 42: Cho chương trình sau:
#include<stdio.h>
int main(){
int n=5;
int a[5]={1,2,3,4,5};
for(int i=0;i<n;i++)
a[i]++;
for(int i=n-1;i>=0;i–)
printf(“%5d”,a[i]);
}
Anh/chị hãy cho biết kết quả của chương trình trên là bao nhiêu?
a. 1 2 3 4 5
b. 6 5 4 3 2
c. 2 3 4 5 6
d. Không in giá trị gì ra màn hình
Câu 43: Cho chương trình:
#include <stdio.h>
int main()
{
int i;
for (i=1; i<5; i++)
printf(“%5d”,i);
}
Anh/chị hãy cho biết kết quả in ra màn hình của chương trình?
a. 1 2 3 4
b. 4 3 2 1
c. 2 4 6 8
d. 1 3 5 7
Câu 44: Cho chương trình:
#include <stdio.h>
int main()
{
int i;
for (i=2; ; i++)
printf(“%5d”,i);
}
Anh/chị hãy cho biết kết quả in ra màn hình của chương trình
a. 1 2
b. Chương trình lỗi
c. Chương trình lặp vô hạn
d. 2
Câu 45: Cho chương trình:
#include <stdio.h>
int main()
{
int i;
for (i=2; ; i++)
printf(“%5d”,i);
}
Anh/chị hãy cho biết kết quả in ra màn hình của chương trình
a. Chương trình lặp vô hạn
b. Chương trình lỗi
c. 2
d. 1 2
Câu 46: cho chương trình:
int a,b;
printf(“\nNhap a: “);
scanf(“%d”,&a);
printf(“\nNhap b: “);
scanf(“%d”,&b);
while(a!=b){
if(a>b)
a=a-b;
else
b=b-a;
}
printf(“%d”,a);
Anh/chị hãy cho biết kết quả hiện ra là gì?
a. Bội số chung nhỏ nhất của a và b được nhập vào
b. Số a được nhập vào
c. Số b được nhập vào
d. Ướ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
Câu 47: Cho đoạn chương trình như sau
enum Mau{xanh,vang,tim}
Mau m1,m2;
Gán dữ liệu nào sau đây sai:
a. m1=vang;
b. m2=2;
c. m1=xanh;
d. m2=Mau(2);
Câu 48: Cho đoạn chương trình như sau
struct SV
{
char ht[35];
int Tuoi;
float DTB;
};
void Function(SV ds[], int n)
{
for(int i=0;i<n;i++)
for(j=i+1;j<n;j++)
ff(ds[i].DTB>ds[j].DTB)
{
tg = ds[i];
ds[i] = ds[j];
ds[j] = tg;
}
}
Vậy đoạn CTC Function thực hiện thao tác gì?
a. Sắp xếp danh sách Sinh viên theo điểm trung bình (DTB) giảm dần
b. Sắp xếp danh sách Sinh viên theo tuổi (Tuoi) giảm dần
c. Sắp xếp danh sách Sinh viên theo điểm trung bình (DTB) tăng dần
d. Sắp xếp danh sách Sinh viên theo tuổi (Tuoi) tăng dần
Câu 49: Cho đoạn chương trình như sau
struct SV
{
char ht[35];
int Tuoi;
float DTB;
};
void Function(SV ds[], int n)
{
for(int i=0;i<n;i++)
for(j=i+1;j<n;j++)
ff(ds[i].DTB>ds[j].DTB)
{
tg = ds[i];
ds[i] = ds[j];
ds[j] = tg;
}
}
Vậy đoạn CTC Function thực hiện thao tác gì?
a. 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) giảm dần
c. Sắp xếp danh sách Sinh viên theo tuổi (Tuoi) tăng dần
d. Sắp xếp danh sách Sinh viên theo điểm trung bình (DTB) giảm dần
Câu 50: Cho đoạn chương trình như sau
struct SV
{
char ht[35];
int Tuoi;
float DTB;
};
void Function(SV ds[], int n)
{
for(int i=0;i<n;i++)
for(j=i+1;j<n;j++)
ff(ds[i].DTB>ds[j].DTB)
{
tg = ds[i];
ds[i] = ds[j];
ds[j] = tg;
}
}
Vậy đoạn CTC Function thực hiện thao tác gì?
a. Sắp xếp danh sách Sinh viên theo tuổi (Tuoi) tăng dần
b. Sắp xếp danh sách Sinh viên theo điểm trung bình (DTB) tăng dần
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
Câu 51: Cho đoạn chương trình như sau
typedef struct SV
{
char ht[35];
int tuoi;
char quequan[30];
};
SV a;
Khi gán vào chương trình lệnh nào sau đây không gây lỗi ?
a. a.ht = “Tuan”;
a.tuoi = 20;
a.quequan = “Thai Nguyen”;
b. a.ht = Tuan;
a.tuoi = 20;
a.quequan = Thai Nguyen;
c. a.ht = Tuan;
a.tuoi = “20”;
a.quequan = “Thai Nguyen”;
d. a.ht = “Tuan”;
a.tuoi = “20”;
a.quequan = “Thai Nguyen”;
Câu 52: Cho đoạn chương trình như sau:
…
typedef struct SV
{char hoten[35];
char quequan[30];
};
void main()
{SV *p;
strcpy(p.hoten,”Nguyen Van A”);
…
Dòng lệnh strcpy(p.hoten,”Nguyen Van A”); sai ở đâu?
a. Không sai
b. Hàm strcpy
c. Tên thành phần hoten
d. Toán tử “.”
Câu 53: Cho đoạn chương trình như sau:
typedef struct { int x;int y;} diem;
diem p = {6,11};
diem q;
q = p;
q.x = 9;
Lệnh nào không thể thực hiện trong cấu trúc lệnh trên:
a. q.x = 9;
b. Không lệnh nào
c. diem p = {6,11};
d. q = p;
Câu 54: Cho đoạn chương trình:
int n=0,i;
while(1)
{
printf(“\nNhap so nguyen: “);
scanf(“%d”,&i);
if(i<0)
{
continue;
}
else
n=n+i;
if(i==0)
break;
}
Để dừng vòng lặp anh/chị phải nhập giá trị i là bao nhiêu?
a. Nhập i là 0
b. Nhập i là 1
c. Nhập i là số dương
d. Nhập i là số âm
Câu 55: 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;
*p1 = b;
a. 1
b. 3
c. 4
d. 2
Câu 56: 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;
p=&p1;
printf(“\n %d”,**p);
}
a. **p
b. p
c. p
*d. *p
Câu 57: Cho đoạn mã sau:
int a=6, b=7, c=8, d=9;
f = fopen(“SoNguyen.txt”, “wt”);
fprintf(f, “\n%5d”,a);
fprintf(f, “\n%5d”,b);
fprintf(f, “\n%5d”,c);
fprintf(f, “\n%5d”,d);
Kết quả tệp “SoNguyen.txt” gồm các giá trị nào?
a. 6
8
7
9
b. 9
8
7
6
c. 6
7
8
9
d. 7
9
6
8
Câu 58: Cho khai báo các cấu trúc:
struct S1{
int ngay, thang, nam;
};
struct S2
{
char hoten[10];
struct S1 ngaysinh;
};
S1=(2, 1, 3);
S2={“Ly Ly”, {4, 5, 6}};
Trong các khởi tạo giá trị cho các cấu trúc, đâu là khởi tạo đúng?
a. S1 và S2 đều khởi tạo sai
b. S1 đúng
c. S1 và S2 đều được khởi tạo đúng
d. S2 đúng
Câu 59: Cho khai báo các cấu trúc:
struct S1{
int ngay, thang, nam;
};
struct S2
{
char hoten[10];
struct S1 ngaysinh;
};
S1=(2, 1, 3);
S2={“Ly Ly”, {4, 5, 6}};
Trong các khởi tạo giá trị cho các cấu trúc, đâu là khởi tạo đúng?
a. S2 đúng
b. S1 và S2 đều khởi tạo sai
c. S1 và S2 đều được khởi tạo đúng
d. S1 đúng
Câu 60: Cho khai báo như sau:
enum banbe
{Vy=1,
Oanh=2,
Nam=5,
Manh,
}
Vậy trong khai báo trên “Manh” được máy tính hiểu là đánh số nào?
a. 3
b. 6
c. 7
d. 4
Câu 61: Cho khai báo như sau:
struct SV
{char hoten[35];
float diem;
}SV1,SV2;
Trong đoạn cấu trúc trên SV1,SV2 là gì?
a. Hàm
b. Biến
c. Tên cấu trúc
d. Kiểu dữ liệu cấu trúc
Câu 62: Cho khai báo như sau:
typedef struct Diem1
{int toan;
int ly;
int hoa;
};
Diem1 a;
Có thể thực hiện phép gán a=b được không?
a. Không rõ
b. Không
c. Tùy từng thời điểm
d. Có
Câu 63: Cho khai báo như sau:
typedef struct Sach
{char Ten[40];
char Tacgia[35];
int Namxb;
}SACH;
SACH s[10],y;
int n;
Khối lệnh nào dưới đây sai:
a. Cả ba ý đều sai
b. for(n=0;n<10;n++)
printf(“%s”,s[n].Ten);
c. n=1;y=x[n];x[n]=x[n+1];
d. n=1;if(s[n]<>y) s[n]=y;
Câu 64: Cho khai báo như sau:
typedef struct Sach
{char Ten[40];
char Tacgia[35];
int Namxb;
}SACH;
SACH s[10],y;
int n;
Khối lệnh nào dưới đây sai:
a. n=1;if(s[n]<>y) s[n]=y;
b. for(n=0;n<10;n++)
printf(“%s”,s[n].Ten);
c. n=1;y=x[n];x[n]=x[n+1];
d. Cả ba ý đều sai
Câu 65: Cho khai báo như sau:
typedef struct SV
{char hoten[35];
float diem;
}SV1,SV2;
Trong đoạn cấu trúc trên SV1,SV2 là gì?
a. Biến
b. Hàm
c. Tên cấu trúc
d. Kiểu dữ liệu cấu trúc
Câu 66: Cho khai báo như sau:
typedef struct SV
{char hoten[35];
float diem;
}SV1,SV2;
Trong đoạn cấu trúc trên SV1,SV2 là gì?
a. Tên cấu trúc
b. Kiểu dữ liệu cấu trúc
c. Biến
d. Hàm
Câu 67: Cho khai báo:
float a[10][20];
Chọn phát biểu đúng?
a. Mảng a chứa tối đa 200 số thực
b. Mảng a chứa tối đa 10 số thực
c. Mảng a chứa tối đa 20 số thực
d. Mảng a chứa tối đa 30 số thực
Câu 68: Cho khai báo:
int a[ ] = {2, 4, 6, 8};
Mảng a có bao nhiêu phần tử?
a. Không xác định được số phần tử của mảng a
b. 1 phần tử
c. 4 phần tử
d. 2 phần tử
Câu 69: Chọn lệnh gọi hàm đúng nhất (với a là một biến) của khai báo sau:
int H( int *x , int y );
a. H( a, &5);
b. H(&a, 5);
c. H(&a, a*5);
d. H( a, 5);
Câu 70: Chúng ta có thể truyền cho tham biến gồm:
a. Biểu thức
b. Địa chỉ của biến (&biến)
c. Hằng
d. Biến
Câu 71: Chúng ta có thể truyền cho tham trị gồm:
a. Biểu thức
b. Hằng
c. Biến
d. Tất cả 3 phương án
Câu 72: Chương trình dạng mã máy là?
a. Chương trình sau khi biên dịch
b. Chương trình ngôn ngữ máy
c. Chương trình sau khi biên soạn
Câu 73: Chương trình dạng mã nguồn là?
a. Chương trình chạy được trên máy
b. Chương trình ngôn ngữ máy
c. Chương trình sau khi biên dịch
d. Chương trình sau khi biên soạn
Câu 74: Chương trình sau thực hiện nhiệm vụ gì?
#include <conio.h>
#include <stdio.h>
main()
{
int n;
FILE *f;
f=fopen(“OUT.txt”,”wt”);
scanf(“%d”,&n);
fprintf(f, “%5d”,n);
fclose(f);
}
a. Đọc một số nguyên từ tệp “OUT.txt” và lưu giá trị vào biến n
b. Nhập số nguyên từ bàn phím và lưu giá trị đó vào tệp “OUT.txt”
c. Nhập số nguyên từ bàn phím cho biến n
d. Thực hiện ghi một số nguyên bất kỳ vào tệp “OUT.txt”
Câu 75: Dấu chấm phẩy ở cuối trong khai báo kiểu cấu trúc có bắt buộc không?
a. Có
b. Không
c. Tùy từng thời điểm
d. Không rõ
Câu 76: Đâu là cú pháp khai báo biến trỏ trong ngôn ngữ C/C++
a. &Tên_biến_trỏ
b. *Tên_biến_trỏ
c. Tên_biến_trỏ
*d. Tên_biến_trỏ&
Câu 77: Đâu là cú pháp khai báo con trỏ hằng?
a. *const Tên_biến_trỏ;
b. Tên_biến_trỏ * const;
c. *Tên_biến_trỏ const;
d. const * Tên_biến_trỏ;
Câu 78: Đâu là khai báo hàm cho phép tính tổng các phần tử của mảng a gồm n số thực?
a. int sum(float a, int n[])
b. int sum(float a[], int n[])
c. int sum(float a[], int n)
d. int sum(float a, int n)
Câu 79: Đâu là khai báo thư viện đúng trong chương trình C/C++?
a. #include (tên thư viện)
b. include<tên thư viện>
c. #include<tên thư viện>
d. include (tên thư viện)
Câu 80: Đâu là phép toán lấy địa chỉ của một biến nhớ?
a. Tên_biến_trỏ = &Tên_biến_nhớ;
b. Tên_biến_nhớ = *Tên_biến_trỏ;
c. Tên_biến_trỏ = *Tên_biến_nhớ;
d. Tên_biến_trỏ = Tên_biến_nhớ;
Câu 81: Địa chỉ của biến nhớ được quy ước biểu diễn bằng hệ cơ số nào?
a. Hệ bát phân
b. Hệ thập phân
c. Hệ thập lục phân
d. Hệ nhị phân
Câu 82: Địa chỉ đầy đủ của một biến nhớ được tạo ra trong chương trình bao gồm những thành phần nào:
a. Địa chỉ Segment và địa chỉ của chương trình chứa biến đó.
b. Địa chỉ Segment, địa chỉ Offset và địa chỉ của chương trình chứa biến đó
c. Địa chỉ Segment và địa chỉ Offset của biến đó
d. Địa chỉ Offset và địa chỉ của chương trình chứa biến đó
Câu 83: Đ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; }
a. Đảo thứ tự viết của 2 lệnh lặp for
b. Không cần thay đổi
c. Thay đổi thứ tự các lệnh trong nhóm đổi chỗ a[i] với a[j] sau lệnh if
d. Thay đổi điều kiện so sánh của lệnh if là a[i] < a[j]
Câu 84: Đoạn chương trình sau đây in ra màn hình kết quả bao nhiêu?
int main()
{
float a,b;
a=11; b= 3;
printf(“%f”, a%b);
getch();}
a. 3.666667
b. 3
c. Chương trình báo lỗi
d. 2
Câu 85: Đoạn chương trình sau in ra màn hình S bằng bao nhiêu?
int i=1, S=0;
do {
if (i%2!=0) S+=i;
i += 2;
}while (i<10);
printf(“%d”,S);
a. 25
b. 50
c. 9
d. Một giá trị khác
Câu 86: Đoạn chương trình sau in ra màn hình T bằng bao nhiêu?
int i=5, T=10;
do {
if (i%2==0) T+=i;
i += 2;
}while (i<10);
printf(“%d”,T);
a. 50
b. 10
c. Một giá trị khác
d. 80
Câu 88: Đ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++)
{ tg = a[i];
a[i] = a[n-1-i];
a[n-1-i] = tg; }
a. Đảo ngược các phần tử trong mảng
b. Chuyển các phần tử nửa đầu xuống cuối
c. Cả 3 phương án đều sai
d. Chuyển các phần tử nửa cuối lên đầu
Câu 89: Đoạn chương trình sau thực hiện công việc gì?
#include <stdio.h>
void main()
{
FILE *file_pointer;
char file_character;
file_pointer = fopen(“MYFILE.DTA”,”r”);
while((file_character = getc(file_pointer)) != EOF)
printf(“%c”, file_character);
fclose(file_pointer);
}
a. Ghi kí tự vào file MYFILE.DTA
b. Đọc kí tự từ file MYFILE.DTA
c. Mở tệp MYFILE.DTA để ghi kí tự đọc được lên màn hình
d. Mở tệp MYFILE.DTA để đọc và hiện kí tự đọc được lên màn hình
Câu 90: Đ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;
a. 0
b. 1
c. 10
d. 11
Câu 91: Đoạn mã sau đây : for (;;) là :
a. Bị bỏ qua không được thực hiện, nhưng vẫn đúng cú pháp
b. Tất cả các phương án đều sai
c. Đoạn mã lệnh này không đúng cú pháp
d. Lặp lại mãi mãi không dừng
Câu 92: Đọc, ghi dữ liệu của tập tin nhị phân sử dụng các hàm nào sau đây
a. fread, fscanf
b. fwrite, fread, fscanf, fprintf
c. fwrite, fprintf
d. fread, fwrite
Câu 93: Dữ liệu kiểu kí tự bao gồm:
a. Các ký tự chữ số
b. Các ký tự chữ cái
c. Các ký tự đặc biệt
d. Cả 3 phương án đều đúng
Câu 94: Ghi dữ liệu của tập tin văn bản sử dụng các hàm nào sau đây
a. fwrite, fprintf, fputs, fputc
b. fscanf, fgets, fgetc
c. fprintf, fgets, fgetc
d. fprintf, fputc, fputs
Câu 95: 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)
{
a=a+5;
return a+b;
}
a. 5, 7
b. 17, 5
c. Cả 3 phương án đều sai
d. 10, 7
Câu 96: 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?
a. Có rất quan trọng
b. Không
c. Không rõ
d. Tùy từng trường hợp
Câu 97: Hai lệnh sau sẽ làm gì (s và t là 2 mảng chứa xâu ký tự):
strcpy( t, s ); strcat( t, s );
a. Chép xâu t vào s
b. Nhân đôi xâu s chứa vào t
c. Chép xâu s vào t
d. Nhân đôi xâu t chứa vào s
Câu 98: Hàm getch() được khai báo trong tập tin:
a. iostream.h
b. Tất cả các phương án đều sai
c. conio.h
d. stdio.h
Câu 99: Hàm sau cho kết quả (trả về) giá trị 28 với lời gọi nào sau đây:
int H( int x ){
if (x>0) return x+20;
else return x; }
a. H(7)
b. H(28)
c. H(8)
d. H(18);
Câu 100: Hãy chỉ ra phát biểu chính xác nhất về con trỏ kép?
a. Dùng để quản lý 1 mảng các con trỏ đơn
b. Dùng để quản lý địa chỉ bắt đầu và kết thúc của toàn bộ chương trình.
c. Dùng để quản lý mảng 2 chiều
d. Dùng để quản lý mảng 1 chiều
Câu 101: Hãy chỉ ra phát biểu sai.
a. 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 đó
b. Vùng nhớ tính không thể thay đổi kích thước trong quá trình thực thi chương trình
c. Vùng nhớ động được cấp phát ngay sau khi khởi động chương trình
d. Có thể xảy ra thiếu bộ nhớ trong quá trình tính toán khi sử dụng vùng nhớ tĩnh.
Câu 102: Hãy cho biết kết quả của đoạn chương trình sau:
int *p;
p = (int*)calloc(5,sizeof(int));
*(p+1)=5;
p = realloc(p,6);
printf(“\n p[1] = %d, size p=%d”, *(p+1), sizeof(p));
a. p[1] = 5, size p = 20;
b. p[1] = 5, size p = 24;
c. p[1] = 6, size p = 20;
d. p[1] = 6, size p = 24;
Câu 103: Hãy cho biết kết quả của đoạn mã lệnh sau:
int *p, a=3, b = 5;
p = &b;
*p = a;
printf(“\n %d”, *p);
a. 5
b. 3
c. 8
d.
15
Câu 104: 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. printf(“%d”,AB(5,6));
b. printf(“%d”, AB(5));
c. AB(5,6);
d. printf(“%d”,AB(6));
Câu 105: Hình bình hành để mô tả thao tác trong thuật toán là?
a. Bắt đầu hoặc kết thúc thuật toán
b. Nhập/xuất dữ liệu
c. Tính toán, xử lý
d. Lựa chọn theo điều kiện
Câu 106: Hình chữ nhật để mô tả thao tác trong thuật toán là?
a. Lựa chọn theo điều kiện
b. Bắt đầu hoặc kết thúc thuật toán
c. Nhập/xuất dữ liệu
d. Tính toán, xử lý
Câu 107: Hình elíp để mô tả thao tác trong thuật toán là?
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. Nhập/xuất dữ liệu
d. Tính toán, xử lý
Câu 108: Hình thoi để mô tả thao tác trong thuật toán là?
a. Bắt đầu hoặc kết thúc thuật toán
b. Tính toán, xử lý
c. Lựa chọn theo điều kiện
d. Nhập/xuất dữ liệu
Câu 109: Kết quả của biểu thức sau đây là bao nhiêu (10 – (8 – 2)*10)/ ( 5 – 5 *2)?
a. Có lỗi chia cho 0
b. 10
c. -10
d. 50
Câu 110: Kết quả của đoạn mã sau là bao nhiêu:
int a = 5;
a+=a;
a. 5
b. 11
c. 10
d. 6
Câu 111: Kết quả in ra màn hình của chương trình sau là gì?
int main()
{
int i;
for (i=2; i<=4; i+=2)
printf(“%3d”,i);
return 0;
}
a. 1 2 3 4
b. 2 4
c. Chương trình không chạy được
d. 2 3 4
Câu 112: Khai báo hàm sau sẽ có:
int A( int *x , int *y );
a. Hai tham trị
b. Tham trị x và tham biến y
c. Tham trị y và tham biến x
d. Hai tham biến
Câu 113: Khai báo mảng sau đây có thể chứa được:
float a[100][200];
a. Bảng số thực gồm 100 cột, 200 hàng
b. Bảng số thực tối đa 100 hàng, 200 cột
c. Tối đa 200 số thực
d. Tối đa 100 số thực
Câu 114: Khi gán giá trị mới cho một biến thì:
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
d. Giá trị cũ còn tồn tại
Câu 115: Kiểu dữ liệu cấu trúc có thể được dùng để khai báo cho kiểu dữ liệu cấu trúc khác
a. Có nhiều khi không được
b. Đúng
c. Tất cả các phương án trên đều đúng
d. Sai
Câu 116: Kiểu dữ liệu nào dưới đây được coi là kiểu dữ liệu cơ bản trong ngôn ngữ lập trình C?
a. Kiểu mảng
b. Kiểu con trỏ
c. Kiểu tập hợp
d. Kiểu double
Câu 117: Kiểu truy nhập “a+b” được dùng để làm gì?
a. Mở tập tin để đọc theo kiểu nhị phân, chưa có thì tạo mới
b. Mở tập tin để đọc/ghi bổ sung theo kiểu văn bả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 nhị phân, chưa có thì tạo mới
Câu 117: Kiểu truy nhập “wb” được dùng để làm gì?
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 để ghi theo kiểu văn bản, chưa có thì tạo mới
c. Mở tập tin để ghi theo kiểu nhị phâ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
Câu 118: Lập trình (programming) là?
a. Nhập một văn bản vào máy.
b. Đưa các phần mềm đã có lên máy
c. Nhập một bảng tính vào máy
d. Viết chương trình cho máy tính
Câu 119: Lập trình nhằm mục đích?
a. Tăng tốc độ cho máy tính
b. Ứng dụng máy tính trong thực tế
c. Tất cả các phương án đều đúng
d. Tạo ra máy tính
Câu 120: Lệnh khai báo sau đây khai báo mảng có bao nhiêu phần tử?
struct SV
{
char ht[35];
int Tuoi;
float DTB;
}ds[10];
a. 10
b. 9
c. Không khai báo được
d. 0
Câu 121: Mảng dùng để chứa cài gì là đúng nhất trong số:
a. Danh sách nhiều dữ liệu cùng kiểu
b. Duy nhất một dữ liệu
c. Các dữ liệu tùy ý
d. Dãy số nguyên
Câu 122: Mảng dùng để chứa cài gì là đúng nhất trong số:
a. Duy nhất một dữ liệu
b. Dãy số nguyên
c. Các dữ liệu tùy ý
d. Danh sách nhiều dữ liệu cùng kiểu
Câu 123: Nếu đoạn đoạn mã sau đây được thực thi, thì biến t có giá trị bao nhiêu?
int d=10, t ;
switch (d)
{
case 10: t=100;
case 7 : t=50; break;
default : t=0;
}
a. 100
b. 150
c. 0
d. 50
Câu 124: Nếu đoạn đoạn mã sau được thực thi, giá trị của S là gì?
int i=3, j=10 , S=0;
while (2*i+5*j<100)
{ S += i+j;
i+=2;
j += 5;
}
a. 33
b. 53
c. 43
d. 23
Câu 125: Nếu đoạn mã sau được thực thi, kết quả in ra màn hình sẽ là?
int i=0;
while (i<10)
{ printf(“%d “,i);
i=i+1;
if (i>5) break;
}
a. 0 1 2 3 4 5
b. 5
c. 0 1 2 3 4 5 6 7 8 9
d. 0
Câu 126: Nếu đoạn mã sau được thực thi, nhóm lệnh lặp sẽ lặp bao nhiêu lần?
int a=5, b=8;
while (a!=b)
{
if (a>b) a=a-b;
else b=b-a;
}
a. 1
b. 4
c. 3
d. 2
Câu 127: Nếu đoạn mã sau được thực thi, S sẽ có giá trị bao nhiêu?
int i= 1, S=1;
do{
S+= 5*i – 2;
i+=3;
}while (i<15);
a. 146
b. 186
c. 166
d. 126
Câu 128: Nếu đoạn mã sau được thực thi, S sẽ có giá trị bao nhiêu?
int i= 1, S=1;
while (i<=20)
{
S+= 2*i+2;
i+=4;
}
a. 101
b. 100
c. 99
d. 102
Câu 129: 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?
int x=10, y=20;
while (x<y)
{
printf (“Hello”);
x+=3;
}
a. 10
b. 4
c. Một giá trị khác
d. 5
Câu 130: 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++;
a. 20
b. 100
c. 10
d.
Câu 131: Ngôn ngữ lập trình C có chứa các thành phần?
a. Chỉ gồm 2 chữ số nhị phân 0, 1
b. Chữ cái tiếng anh, chữ số thập phân, một số dấu
c. Tập tất cả các ký tự ASCII
d. Không có phương án nào
Câu 132: Ngôn ngữ lập trình có chức năng chính?
a. Cung cấp quy tắc viết lệnh
b. Không phải ba trường hợp trên
c. Tạo cơ chế biên dịch chương trình
Câu 133: Những hàm nào sau đây được sử dụng trong việc cấp phát vùng nhớ động?
a. malloc(), calloc(), deadloc().
b. malloc(), calloc(), realloc().
c. alloc(), malloc(), calloc().
d. malloc(), calloc(), free().
Câu 134: 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?
a. _diemltC
b. -diemltC
c. diem ltC
d. 3diemltC
Câu 135: Phần mềm để chuyển nội dung chương trình từ mã nguồn về mã máy là?
a. Compiler
b. Translator
c. Word processor
d. System
Câu 136: Phát biểu nào sau đây là sai?
a. Chỉ có con trỏ mới được sử dụng làm tham số 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. 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âu 137: Phương pháp phân rã bài toán khi giải quyết bài toán là?
a. Chia nhỏ bài toán lớn thành các bài toán nhỏ
b. Tất cả các phương án
c. Tổng hợp các bài toán nhỏ thành bài toán lớn
d. Chia một bài toán thành 2 bài toán
Câu 138: Sản phẩm của lập trình trên máy tính là gì?
a. Các tài liệu, văn bản trên máy.
b. Hệ điều hành Windows
c. Chương trình phần mềm.
d. Phần cứng máy tính
Câu 139: Sau khi thực thi đoạn mã sau, giá trị của x là gì?
int i, x=0 ;
for (i=1 ; i<10 ; i++)
{
if ( i%2==1) x = x+i ;
else x++ ;
break;
}
printf (“%d “, x);
a. 0
b. 10
c. 1
d. Cả 3 phương án đều sai
Câu 140: 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
a. Đúng
b. Tất cả đều đúng
c. Sai
d. Tùy vào yêu cầu của bài toán
Câu 141: 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;”:
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
c. Tạo ra 2 cấu trúc khác nhau dù có cùng nội dung
d. 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 142: Tập tin được chia thành mấy loại
a. 1
b. 4
c. 3
d. 2
Câu 143: Tên kiểu cấu trúc có thể đặt bằng tiếng việt có dấu ví dụ: HỌC SINH
a. Đúng
b. Tùy vào môi trường lập trình
c. Tất cả đều sai
d. Sai
Câu 144: Tên kiểu cấu trúc có thể đặt có khoảng cách ví dụ là SINH VIEN
a. Đúng
b. Tất cả đều sai
c. Tùy vào môi trường lập trình
d. Sai
Câu 145: Tên kiểu cấu trúc có thể đặt trung với tên cấu trúc khác trong một chương trình
a. Đúng
b. Sai
c. Tùy vào môi trường lập trình
d. Tất cả đều đúng
Câu 146: Thế nào là hằng con trỏ?
a. Là con trỏ, tới địa chỉ của mảng là hằng.
b. Là con trỏ, trỏ tới địa chỉ đầu của mảng.
c. Là con trỏ, trỏ tới địa chỉ vùng nhớ là hằng
d. Là con trỏ, trỏ tới ô nhớ có dữ liệu là hằng
Câu 147: Thuật toán được mô tả bằng?
a. Ngôn ngữ tự nhiên
b. Mô tả từng bước, sơ đồ khối
c. Sơ đồ khối ngôn ngữ lập trình
d. Sơ đồ khối
Câu 148: Thuật toán là?
a. Trình tự các bước để thực hiện một bài toán bằng máy tính
b. Các bước để giải quyết một bài toán
c. Cách làm một bài toán
d. Ý tưởng để giải quyết một vấn đề bằng máy tính
Câu 149: Thuật toán phải có đặc trưng cơ bản?
a. Đúng đắn, phổ dụng, hiệu quả
b. Hữu hạn, đúng đắn, khả dụng, phổ dụng
c. Hữu hạn, khả dụng, đúng đắn, đơn giản
d. Hữu hạn, đúng đắn, nhanh gọn
Câu 150: Tính tuần tự của máy khi thực hiện chương trình là?
a. Từ trên xuống và phải sang trái
b. Từ trái sang phải
c. Từ trên xuống và trái sang phải
d. Từ trên xuống dưới
Câu 151: Trong C, các tác vụ xuất nhập chuẩn được khai báo trong tập tin:
a. math.h
b. conio.h
c. iostream.h
d. stdio.h
Câu 152: Trong C, chỉ thị #include đòi hỏi:
a. File phải tồn tại trong đĩa cứng
b. File phải tồn tại trong đĩa CD
c. File phải tồn tại trong thư mục include đã được thiết lập bởi người dùng
d. File phải tồn tại trong thư mục gốc ổ đĩa cứng C:
Câu 153: Trong một chương trình có thể chứa:
a. Không quá 2 hàm trừ chương trình chính
b. Nhiều hàm
c. Chỉ chứa hàm chương trình chính
d. Duy nhất một hàm ngoài chương trình chính
Câu 154: Xâu định dạng nào dưới đây dùng để in ra một số nguyên trong lệnh printf?
a. “%u”
b. “%d”
c. “%x”
d. “%i”
Câu 155: Xâu định dạng nào sau đây dùng để in ra một số thực có độ chính xác đơn (float)?
a. “%f”
b. “%c”
c. “%s”
d. “%u”
Câu 156: Ý nghĩa của phương pháp phân rã bài toán trong lập trình là:
a. Giảm thiểu sự lặp lại
b. Dễ dàng kiểm soát, nâng cấp
c. Giúp triển khai theo nhóm thuận lợi
d. Tất cả các phương án
Câu 157: Chọn phát biểu sai: Một tên bắt đầu bằng:
a. Ký tự chữ số
b. Ký tự gạch nối
c. Ký tự chữ cái – Ký tự gạch nối
d. Ký tự chữ cái
Câu 158: Đoạn chương trình sau đây cho kết quả như thế nào?
int main()
{
int n;
printf(“nhap n”);
scanf(“%d”, n);
getch();
}
a. Chương trình chạy bình thường
b. Chương trình báo lỗi
c. Chương trình chạy bình thường cho đến khi nhập n và nhấn enter thì chương trình bị ngắt do lỗi logic
d. Tất cả các phương án đều sai
Câu 159: Giả sử có câu lệnh ch=’A’. Vậy ch sẽ chứa bao nhiêu byte?
a. 4
b. 2
c. 1
d. 3
Câu 160: Đoạn chương trình sau đây in ra màn hình kết quả bao nhiêu?
int main()
{
int a, b;
a=10; b=4;
printf(“%f”,a/b);
getch();
}
a. 2
b. 1
c. 2.5
d. -1
Câu 161: Để thực hiện tính công thức:
thì câu lệnh đúng trong chương trình C/C++ là gì?
a. (x+y)%(x-z)
b. (x+y) x-z)
c. (x+y)/(x-z)
d. x+y/x-z
Câu 162: Đoạn chương trình sau đây in ra màn hình kết quả bao nhiêu?
int main()
{
int i=65;
printf(“%c”,i);
getch();
}
a. 65
b. A
c. Tất cả các phương án đều sai
d. a
Câu 163: Nếu nhóm lệnh lặp lồng nhau sau đây được thực hiện, thì k có giá trị bao nhiêu?
int i, j, k=0;
for (i=0; i<5; i++)
for (j=0; j<5; j++)
k++;
a. 5
b. 10
c. 50
d. 25
Câu 164: Đâu là đoạn mã SAI khi viết câu lệnh rẽ nhánh if?
Chọn một câu trả lời:
a. if(a>b)
printf( “a – max”) ;
else
printf(“b – max”) ;
b. if(a<b&&a>c)
printf(“c – Min”);
printf(“b – Max”);
else
printf(“Khong xac dinh”);
c. if(a>b)
printf(“b be hon a”);
d. if(a<b&&a>c)
{
printf(“c – Min”);
printf(“b – Max”);
}
Câu 165: Biến toàn cục là biến được khai báo ở đâu là đúng nhất?
a. Tùy ý
b. Đầu chương trình
c. Bên trong một hàm
d. Bên ngoài mọi hàm
Câu 166: Cần khai báo mảng một chiều a gồm tối đa 20 số thực thì đâu là khai báo đúng?
a. Không thể lưu trữ được 20 phần tử
b. float a[ ];
c. float a;
d. float a[20];
Câu 167: Khai báo mảng sau đây có thể chứa được:
int a[100];
a. Dãy số nguyên có giá trị không quá 100
b. Dãy tối đa 100 số nguyên
c. Dãy đúng 100 số nguyên
d. Dãy ít nhất có 100 số nguyên
Câu 168: Tại sao cần lệnh sau trước khi nhập xâu ký tự:
fflush(stdin);
a. 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
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 1 ký tự nhập còn sót trên máy
Câu 169: Đ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=n; i > 0; i–)
{ a[i] = a[i-1]; }
a[0] = a[n];
n = n+1;
a. Xóa các phần tử trong mảng
b. Chèn một phần tử trong mảng
c. Chèn thêm phần tử đầu vào cuối trong mảng
d. Chèn thêm phần tử cuối lên đầu mảng
Câu 170: Đ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;
a. Chuyển phần tử cuối lên đầu
b. Đổi chỗ phần tử đầu và cuối cho nhau
c. Cả 3 phương án đều sai
d. Chuyển phần tử đầu xuống cuối
Câu 171: Đ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] )
{ a[k]=a[i]; k++; }
}
a. Xóa các phần tử sau phần tử đầu nhưng khác phần tử đầu
b. Xóa các phần tử khác phần tử đầu
c. Xóa các phần tử sau phần tử đầu nhưng giống phần tử đầu
d. Xóa các phần tử giống phần tử đầu
Câu 172: Đ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]; }
a. Tính tổng các phần tử âm trên mảng
b. Tính tổng các phần tử có giá trị dương trên mảng
c. Tính tổng các phần tử không âm trên mảng
d. Tính tổng các phần tử trên mảng
Câu 173: Đâu là cú pháp khai báo con trỏ hằng?
a. const <Kiểu dữ liệu> * <Tên con trỏ>;
b. Tên_biến_trỏ * const;
c. const * Tên_biến_trỏ;
d. *Tên_biến_trỏ const;
Câu 174: Giả sử ta có: int a[5], *p. Câu lênh nào sau đây sẽ không hợp lệ
a. a = p;
b. *(p+1) = a[2];
c. p = a[0];
d. p = a;
Câu 175: Đọc, ghi dữ liệu của tập tin văn bản sử dụng các hàm nào sau đây
a. fread, fputs, fputc, fscanf, fgets, fgetc
b. fread, fputs, fputc, fprintf, fgets, fgetc
c. fscanf, fprintf, fputc, fputs, fgets, fgetc
d. fwrite, fread, fputs, fputc, fscanf, fgets
Câu 176: Đọc dữ liệu của tập tin văn bản sử dụng các hàm nào sau đây
a. fprintf, fgets, fgetc
b. fscanf, fprintf, fgets, fgetc
c. fscanf, fgets, fgetc
d. fscanf, fprintf, fgets, fputs