1. Select the most appropriate option(s) for each of the following. There
could be more than one option which is correct for a question. You
will score complete marks only if all the correct options for a
question are selected, otherwise 0:
1)
[0.5 Mark]
Vòng lặp while kiểm tra điều kiện lặp tại lúc bắt đầu vòng lặp (Chọn
một)
A) Sai
B) Đúng
2)
[0.5 Mark]
Khi module hóa một chương lớn trình thành nhiều module thì
chương trình sẽ phức tạp hơn và khó tìm lỗi của chương trình.
(Chọn một)
A) Đúng
B) Sai
3)
[0.5 Mark]
Dấu chấm phẩy được sử dụng ở cuố dòng lệnh khi hàm được gọi,
nhưng không phải sau định nghĩa hàm (Chọn một)
A) Sai
B) Đúng
4)
[1.5 Mark]
Một hàm cho trước khi thực hiện không nhận tham số và cũng không
trả về bất cứ giá trị nào. Hãy chọn ra các cách khai báo phù hợp với
hàm này (Chọn ba)
2. A) Tên hàm (void) { }
B) Tên hàm { }
C) void tên hàm (void ) { }
D) void tên hàm { }
E) void tên hàm ( ) { }
5)
[1 Mark]
Nếu một hàm đựoc gọi trước khi no được định nghĩa thì điều kiện là
gì ? (Chọn một)
A) Kiểu trả về của hàm phải là kiểu void
B) Kiểu đầu vào của hàm phải là kiểu void.
C) Trước khi gọi hàm nó phải được khai báo
D) Hàm chỉ có thể trả về kiểu dữ liệu boolean.
6)
[1.5 Mark]
#include <stdio.h>
display(int k) {
int j;
printf("hello");
}
main()
{ int s;
display(s);
}
Điều nào sau đây đúng về chương trình trên (Chọn một)
A) Chương trình gặp lỗi biên dịch vì hai biến s, k không giống nhau
B) Chương trình biên dịch thành công và kết quả khi chạy là: Hello
C) Chương trình gặp lỗi biên dịch vì hai biến s k không được khởi tạo trước khi
truyền cho hàm
D) Chương trình biên dịch thành công nhưng gặp lỗi khi chạy vì hai biến s, k
không giống nhau
7)
[1 Mark]
Những tên biến nào sau đây là hợp lệ trong C (Chọn hai)
3. A) -myvariable
B) MyVariable
C) While
D) Do
E) My$$Variable
8)
[1 Mark]
Những tên hàm nào sau đây là hợp lệ trong C (Chọn ba)
A) while()
B) While()
C) Main()
D) dowhile()
E) int()
9)
[0.5 Mark]
Chúng ta có thể dùng hàm getch() để đọc một xâu kí tự lần lượt từng
kí tự một (Chọn một)
A) Sai
B) Đúng
10)
[1 Mark]
Để định giá trị biểu thức, kiểu float được chuyển thành _____ (Chọn
một)
A) unsigned float
B) Double
C) Long
D) unsigned double
4. 11)
[2 Mark]
Cho đoạn mã sau: (Chọn một)
int x=4, y, z, a;
y = x++;
z = ++x;
a = z++/--y;
printf (“a=%d, x=%d, y=%d, z=%d”, a, x, y, z);
Kết quả sẽ là ___________ (Chọn 1)
A) a=1, x=5, y=3, z=7
B) a=2, x=6, y=3, z=7
C) a=2, x=6, y=4, z=7
D) a=2, x=7, y=3, z=7
12)
[1 Mark]
Kết quả của đoạn mã chương trình sau là gì (Chọn một)
# include <stdio.h>
void main(){
short j=10;
printf(“%d”,++var1);
}
A) 10
B) 11
C) Chương trình biên dịch bị lỗi
D) Biểu thức trong lệnh printf không đúng
13)
[2 Mark]
#include <stdio.h>
main() {
struct book
{
5. unsigned available:2;
unsigned id:3;
int count;
}shelf[2],*ptr;
ptr=shelf;
ptr->available=1;
ptr->count=200;
ptr->id=1;
ptr->available=1;
ptr->count=300;
ptr->id=7;
for (ptr=shelf;ptr<shelf+2;ptr++)
printf("%d,%d,%dn",ptr->available,ptr->count,ptr->id);
}
Kết quả của đoạn mã chương trình trên là gì khi biên dịch và chạy?
(Chọn một)
A) Lỗi biên dịch do khai báo cấu trúc không hợp lệ
B) Biên dich thành công và chạy ra kết quả:
0,0,0
1,300,7
C) Biên dich thành công và chạy ra kết quả:
1,200,1
1,300,7
D) Biên dich thành công và chạy ra kết quả:
1,300,7
0,0,0
E) Lỗi biên dich do con trỏ khởi tạo thành phần cấu trúc không đúng
14)
[0.5 Mark]
Câu lệnh continue phải được viết ở cuối vòng lặp ? (Chọn một)
A) Đúng
B) Sai
6. 15)
[1 Mark]
int strlen(char []);
Điều gì sau đây đúng về đoạn mã trên (Chọn một)
A) Hàm gặp lỗi biên dịch vì kết thúc hàm là dấu chấm phẩy chưs không phải là
ngoặc nhọn
B) Đây là khai báo của một hàm mà trả về giá trị nguyên, và nhận vào một xâu kí
tự.
C) Hàm được định nghĩa mà không có thân hàm
D) Hàm sẽ có lỗi khi chạy vì không có lệnh return
16)
[1 Mark]
Các khai báo nào sau đây dùng để kha báo biến con trỏ pt trỏ tới biến
nguyên var (Chọn hai)
A) int var, *pt;
B) int *pt,var;
C) int* pt, var;
D) int pt, var;
E) int* pt, * var;
17)
[1 Mark]
Chọn các phát biểu đúng trong các phát biểu sau (Chọn hai)
A) Con trỏ không thể được sử dụng như một biến chính qui trong khai báo hàm
B) Một số nguyên có thể cộng được với biến con trỏ
C) Khi cần truyền một mảng là một tham số của hàm ta phải truyền con trỏ trỏ tới
mảng đó
D) Một biến con trỏ không thể thực hiện phép trừ với một biến con trỏ
E) Giá trị của biến địa phương trong hàm có thể bị thay đổi bởi hàm khác
18)
[1.5 Mark]
7. Kết quả của đoạn mã chương trình sau là gì khi biên dịch và chạy ?
#include <stdio.h>
main() {
int oranges=10,mangoes=30;
int *fruits=&(oranges+mangoes);
printf("Total number of fruits are %d",*fruits);
}
(Chọn một)
A) Total number of fruits are 30
B) Total number of fruits are 40
C) Khi biên dịch chương trình bị lỗi
D) The code will generate a runtime error.
19)
[1 Mark]
Cho đoạn mã chương trình :
float home , first,second;
home= & first;
Câu lệnh nào sau đây không đúng? (Chọn một)
A) home = & second;
B) first++; home --;
C) home = second;
20)
[1.5 Mark]
Kết quả của đoạn mã chương trình sau là gì khi chạy và biên dịch?
#include<stdio.h>
main( ) {
int List[10];
int *Head, *Tail;
Head = List;
Tail = (List+10);
printf("%d", Head-Tail);
}
(Chọn một)
8. A) Biên dịch bị lỗi
B) Biên dịch thành công và kết quả là
100
C) Biên dịch thành công và kết quả là
10
D) Biên dịch thành công và kết quả là
-10
E) Biên dịch thành công và kết quả là
655467
ở đó 655467 là địa chỉ bộ nhớ
21)
[0.5 Mark]
Cấu trúc là một tập hợp các phần tử cùng kiểu dữ liệu ? (Chọn một)
A) Đúng
B) Sai
22)
[1 Mark]
struct acc{ int ID; int bal};
Câu lệnh nào sau đây khai báo một mảng saving gồm 50 phần tử cấu
trúc acc trên (Chọn một)
A) acc[50] saving;
B) struct acc saving[50];
C) acc saving[50];
D) struct acc[50] saving;
23)
[1.5 Mark]
Các câu lệnh nào dưới đây khai báo một mảng con trỏ cấu trúc ?
(Chọn hai)
A) struct *sample
{ int i;
float f; } ptr;
9. B) struct sample
{ int i;
float f ;
} *ptr;
C) struct sample
{ int i; float f; }* ptr;
D) struct sample
{ int i; float f ; }ptr;
24)
[0.5 Mark]
sizeof() là toán tử một ngôi (Chọn một)
A) Sai
B) Đúng
10. B) struct sample
{ int i;
float f ;
} *ptr;
C) struct sample
{ int i; float f; }* ptr;
D) struct sample
{ int i; float f ; }ptr;
24)
[0.5 Mark]
sizeof() là toán tử một ngôi (Chọn một)
A) Sai
B) Đúng