You are on page 1of 13

1)Màn hình sẽ hiển thị ra kết quả như thế nào nếu những câu lệnh sau được

thực hiện.

Biến x được gán giá trị 0


Biến y được gán giá trị 5
Thêm 1 vào x
Thêm 1 vào y
Cộng x và y, rồi lưu kết quả vào biến y
Hiển thị y ra màn hình
(2 Điểm)
1
6
5
7
0
2.Màn hình sẽ hiển thị ra kết quả như thế nào nếu những câu lệnh sau được thực hiện.
Biến j được gán giá trị 10
Biến k được gán giá trị 2
Biến l được gán giá trị 4
Lưu giá trị j*k vào j
Lưu giá trị k*l vào l
Cộng j và l, sau đó lưu kết quả vào k
Hiển thị giá trị k ra màn hình
(2 Điểm)
28
24
16
26
14
3.Màn hình sẽ hiển thị ra kết quả như thế nào nếu những câu lệnh sau được thực hiện.
Biến a được gán giá trị 1
Biến b được gán giá trị 10
Biến c được gán giá trị 100
Biến x được gán giá trị 0
Lưu kết quả 3*c vào x
Công thêm 6*b vào giá trị hiện tại của biến x
Cộng thêm 5*a vào giá trị hiện tại của biến x
Hiện thị x ra màn hình
(2 Điểm)
360
356
366
365
300
4.Cho đoạn giả code sau. Chương trình này sẽ hỏi người dùng nhập vào chiều dài và chiều rộng
của hình chữ nhật, sau đó in ra diện tích của hình chữ nhật đó.

1. area = length * width


2. Hiển thị "Chiều dài của hình chữ nhật là bao nhiêu?"
3. Nhập chiều dài.
4. Hiển thị "Chiều rộng của hình chữ nhật là bao nhiêu?"
5. Nhập chiều rộng.
6. Hiển thị diện tích.

Đoạn code trên có cho ra đúng diện tích của hình chữ nhật không?
(2 Điểm)
Không đúng vì tính diện tích trước khi nhập giá trị chiều dài và chiều rộng.
Không đúng vì cách tính diện tích hình chữ nhật sai. Phải là area = length + width.
Không đúng vì chưa khởi tạo giá trị ban đầu cho chiều dài và chiều rộng.
Đúng kết quả.
5.Đoạn chương trình sau khi biên dịch rồi thực thi thì cho ra kết quả gì?

#include<stdio.h>
int main() {
int number;
number = 712;
printf("The value is ");
printf("number");
return 0;
}
(2 Điểm)
The value is number
The value is 712
Không biên dịch được do chương trình lỗi
The value is \n number
The value is \n 712

6.Trong C, biến Sales và biến sales được xem là một.


(2 Điểm)
True
False

7.Nếu một biến có giá trị trong khoảng 32 tới 6,000 thì kiểu dữ liệu nào lưu trữ tốt nhất?
(2 Điểm)
long
long long
short
int
8.Nếu một biến có giá trị nguyên trong khoảng -40,000 đến +40,000 thì kiểu dữ liệu nào tốt
nhất?
(2 Điểm)
int
float
short
long long
9.Trong 2 kiểu dữ liệu số nguyên (int) và số nguyên không dấu (unsigned int) thì kiểu dữ liệu nào
tốn bộ nhớ hơn?
(2 Điểm)
Không có gì để so sánh 2 đứa này
Chúng chiếm bộ nhớ như nhau
int
unsigned int
10.Mã ASCII cho kí tự 'C' là gì?
(2 Điểm)
65
97
69
99
67
11.Câu lệnh sau đúng hay sai?
char letter = "Z";
(2 Điểm)
False
True
12.Kích thước của kiểu dữ liệu float?
(2 Điểm)
8 bytes
10 bytes
2 bytes
4 bytes
13.Các kiểu số nguyên đều tồn tại kiểu số nguyên không dấu như unsigned short, unsigned int,
unsigned long, unsigned long long. Vậy có tồn tại kiểu số thực không dấu (unsigned float)
không?
(2 Điểm)
Không

14.Kết quả hiển thị lên màn hình của chương trình này là gì:
#include <stdio.h>
int main() {
float x = 5/2;
printf("%f", x);
return 0;
}
(2 Điểm)
2.000000
x = 2.5
2.5
2.500000
2
15.Câu lệnh sau đúng hay sai?
72 = amount;
(2 Điểm)
False
True
16.Kết quả hiển thị ra màn hình của chương trình sau là gì:
#include <stdio.h>
int main() {
int freeze = 32, boil = 212;
freeze = 0;
boil = 100;
printf("%d-%d", freeze, boil);
return 0;
}
(2 Điểm)
Chương trình bị lỗi không biên dịch được
0 100
32 212
0-100
32-212
17.Kết quả hiển thị của chương trình sau ra màn hình là gì?
#include <stdio.h>
int main() {
int x = 0, y = 2;
x = y * 4;
printf("%d %d", x, y);
return 0;
}
(2 Điểm)
24
82
02
Chương trình bị lỗi không biên dịch được
80
18.Kết quả hiển thị ra màn hình của chương trình sau là gì?
#include <stdio.h>
int main () {
int a, x = 23;
a = x % 2;
printf("%d %d", x, a);
return 0;
}
(2 Điểm)
23 11
0 23
23 0
Chương trình bị lỗi không biên dịch được
23 1
11 23
1 23
19.Mỗi khi kết thúc 1 câu lệnh trong C thì sử dụng:
(2 Điểm)
Dấu đóng ngoặc tròn )
Dấu đóng ngoặc móc }
Dấu đóng ngoặc vuông ]
Enter xuống dòng
Dấu chấm phẩy ;
20.Câu lệnh nào sau đây đúng?
(2 Điểm)
#include {stdio.h}
#include <stdio.h>
Tất cả các câu đều đúng
#include (stdio.h)
#include [stdio.h]
21.Mỗi chương trình C bắt buộc phải có:
(2 Điểm)
Hàm main
Câu lệnh #include
Câu lệnh printf
Tất cả các ý đều đúng
22.Một khối lệnh được bọc bởi:
(2 Điểm)
Dấu ngoặc nhọn < >
Dấu ngoặc móc { }
Tất cả các ý đều đúng
Dấu ngoặc tròn ( )
23.Câu lệnh gán nào sau đây không hợp lệ?
(2 Điểm)
letter = 'W';
total = 9;
72 = amount;
profit = 129
24.Một hằng số được đặt tên giống như biến, nhưng giá trị của nó chỉ được đọc (read-only) và
không thể thay đổi giá trị trong suốt quá trình thực thi chương trình.
(2 Điểm)
True
False
25.Có nhiều lỗi xuất hiện trong đoạn chương trình sau. Chọn các lỗi xảy ra ở:
1. */ Chuong trinh gi build hoai ko duoc? /*
2. #include stdio.h
3. int main();
4. }
5. int a, b, c \\ 3 so nguyen
6. a = 3
7. b = 4
8. c = a + b
9. Printf("Gia tri cua c la", c);
10. return 0;
11. {
(2 Điểm)
Không có hàm nhập scanf
Dòng 1
Dòng 2
Dòng 3
Dòng 4
Dòng 5
Dòng 6
Dòng 7
Dòng 8
Dòng 9
Dòng 10
Dòng 11
26.File header phải thêm vào (include) chương trình khi sử dụng printf và scanf là gì?
(2 Điểm)
stdio.h
Không cần thêm gì, chương trình mặc định có sẵn
studio.h
math.h
conio.h
27.Giá trị biến value là một biến số nguyên. Nếu người dùng nhập vào 3.14 theo câu
lệnh scanf("%d", &value); thì giá trị được lưu trong biến value là gì?
(2 Điểm)
Chương trình báo lỗi.
0
3
3.14
28.Kết quả của phép tính sau là gì?
4 + 17 % 2 - 1
(2 Điểm)
9
11
0
4
3
29.Biểu thức sau tương đương với:
ketqua *= x + 5;
(2 Điểm)
ketqua = ketqua * x + 5;
Không cái nào đúng.
ketqua = ketqua * (x + 5);
30.Những cách thể hiện giá trị nào sau đây cùng có giá trị là 720.
(2 Điểm)
720.4444
7.20+e2
7.20 * 10
7.2e+2
(int) 720.4444
(float) 7.20
720.000000
720.0
+720.0
31.Câu lệnh nào sau đây cho khuôn in số thực float x với 8 khoảng để viết phần nguyên và 2
khoảng để viết phần thực?
(2 Điểm)
printf("%11.2f", x);
printf("%10f", x);
printf("%8.2f", x);
printf("%10.2f", x);
32.2 câu lệnh if/else sau cho ra cùng kết quả.

A.
if (x > y)
printf("x lon hon y.\n");
else
printf("x khong lon hon y.\n");

B.
if (y <= x)
printf("x khong lon hon y.\n");
else
printf("x lon hon y.\n");
(2 Điểm)
True
False
33.Kết quả hiện thị ra màn hình của chương trình sau là gì?
#include <stdio.h>
int main() {
int x = 0, y = 10;
printf("x = %d va y = %d\n", x, y);
if (x > y);
printf("x lon hon y");
return 0;
}
(2 Điểm)
x = 0 va y = 10
Chương trình lỗi không biên dịch được
x = 0 va y = 10
34.2 câu lệnh sau có như nhau không?

if (value == 20)
rate *= 0.5;

if (value = 20)
rate = rate * 0.5;

(2 Điểm)
False
True
35.Kết quả của chương trình sau là gì?
#include<stdio.h>
int main(){
float diem = 9.5;
if(diem > 8.5)
printf("Diem theo thang 4 là 4.0");
printf("Phan loai diem A");
return 0;
}
(2 Điểm)
Diem theo thang 4 là 4.0
Chương trình lỗi không biên dịch được
Diem theo thang 4 là 4.0Phan loai diem A
36.Đoạn code sau hiển thị kết quả như thế nào?
int x = 7, y = 15;
x = y % 2;
if (x != 1)
{
x = 0;
y = 0;
} else if (x == 2)
{
x = 10;
y = 10;
}
else
{
x = 1;
y = 1;
}
printf("%d%d", x, y);
(2 Điểm)
11
11
1010
00
715
00
1 15
7 15
115
37.Có thể chuyển đổi đoạn code sau từ if/else sang switch case

if (temp == 100)
x = 0;
else if (population > 1000)
x = 1;
else if (rate < .1)
x = −1;
(2 Điểm)
True
False
38.Nếu temp = -16 thì kết quả đoạn chương trình như thế nào?
switch (temp)
{
case temp < 0 : printf("Temp la so am."); break;
case temp == 0: printf("Temp la so khong."); break;
case temp > 0 : printf("Temp la so duong."); break;
}
(2 Điểm)
Temp la so am.Temp la so khong.Temp la so duong.
Temp la so am.
Đoạn chương trình switch case lỗi.

39.Kết quả của đoạn chương trình sau là gì?


x = 2;
y = x++;
printf("%d %d", x y);
(2 Điểm)
33
23
32
22

40.Một sinh viên chuyển đổi đoạn code sử dụng vòng lặp while sang vòng lặp do-while sau
đúng hay không?
Đoạn code ban đầu:
int x=1;
while (x>0){
printf("Nhap 1 so nguyen: ");
scanf("%d", &x);
}

Đoạn code của sinh viên sau khi chuyển:


int x;
do {
printf("Nhap 1 so nguyen: ");
scanf("%d", &x);
} while (x>0);

(2 Điểm)
True
False

41.Số 2021 ở dạng thập phân khi chuyển sang thập lục phân có giá trị là bao nhiêu?
(2 Điểm)
7F5
7E5
8E5
7E6

42.Kết quả của chương trình sau ntn?


# include <stdio.h>
void fun(int *ptr)
{
*ptr = 30;
}
int main()
{
int y = 20;
fun(&y);
printf("%d", y);
return 0;
}

(2 Điểm)
Biên dịch được nhưng gặp lỗi trong quá trình chạy
20
Biên dịch lỗi
30

43.Kết quả của chương trình này ntn?


# include <stdio.h>
void fun(int x)
{
x = 30;
}
int main()
{
int y = 20;
fun(y);
printf("%d", y);
return 0;
}

(2 Điểm)
20
30
Biên dịch chạy được nhưng gặp lỗi trong quá trình chạy
Biên dịch lỗi

44.Cờ nào được sử dụng truyền vào hàm fopen để ghi thêm vào cuối file đã tồn tại thay vì tạo
mới file?
(2 Điểm)
r
w
W+
a

45.Làm thế nào để ghi 1 chuỗi ký tự vào một file?


(2 Điểm)
Mở file và sử dụng hàm fputc nhiều lần.
Sử dụng hàm fread để đọc dữ liệu vào trong file.
Mở file và sử dụng hàm printf, output sẽ xuất vào file chứ ko in ra ngoài màn hình
Mở file và sử dụng hàm fprintf

46.Trước khi đọc hoặc ghi file trong C, bạn cần làm gì?
(2 Điểm)
Sử dụng hàm fprintf
Tạo file
Gọi hàm fopen cho file
Gọi hàm fclose cho file

47.Sử dụng đối tượng nào sau đây để biểu diễn một file trong C?
(2 Điểm)
fopen
printf
fprintf
FILE *

48.Kết quả của đoạn code sau ra gì?


char p[20];
char *s = "string";
int length = strlen(s);
int i;
for (i = 0; i < length; i++)
p[i] = s[length — i];
printf("%s", p);

(2 Điểm)
gnirts
gnirt
string
Không in ra gì hết

49.Trong đoạn chương trình dưới, cần thay chỗ dấu chấm hỏi "?" thành gì để chương trình in ra
được "BachKhoa";
#include <stdio.h>
int main()
{
char arr[] = "DaiHocBachKhoa";
printf("%s", ?);
return 0;
}
(2 Điểm)
arr
(arr+5)
Không thể được, nên không có câu nào đúng
(arr+6)

50.Kết quả đoạn chương trình sau ntn?


#include<stdio.h>
void swap(char *str1, char *str2)
{
char *temp = str1;
str1 = str2;
str2 = temp;
}
int main()
{
char *str1 = "DaiHoc";
char *str2 = "BachKhoa";
swap(str1, str2);
printf("str1 la %s, str2 la %s", str1, str2);
return 0;
}

(2 Điểm)
str1 la DaiHoc, str2 la DaiHoc
str1 la DaiHoc, str2 la BachKhoa
str1 la BachKhoa, str2 la BachKhoa
str1 la BachKhoa, str2 la DaiHoc

51.Kết quả chương trình sau ra gì?


# include <stdio.h>
int main()
{
char str1[] = "DHBK";
char str2[] = {'D', 'H', 'B', 'K'};
int n1 = sizeof(str1)/sizeof(str1[0]);
int n2 = sizeof(str2)/sizeof(str2[0]);
printf("n1 = %d, n2 = %d", n1, n2);
return 0;
}
(2 Điểm)
n1 = 4, n2 = 4
n1 = 4, n2 = 5
n1 = 5, n2 = 4
n1 = 5, n2 = 5

52.Cho đoạn code sau. Hàm myStrCat sẽ nối 2 chuỗi ký tự, tức là nối chuỗi b vào cuối chuỗi a.
Kết quả mong đợi của chương trình là "Dai Hoc Bach Khoa". Chương trình sau biên dịch được
nhưng khi chạy thì bị lỗi (return giá trị khác 0). Thay đổi nào sau đây có thể sửa đúng để chương
trình có thể in ra "Dai Hoc Bach Khoa".
#include <stdio.h>
void myStrcat(char *a, char *b) {
int m = strlen(a);
int n = strlen(b);
int i;
for (i = 0; i <= n; i++)
a[m+i] = b[i];
}
int main() {
char *str1 = "Dai Hoc ";
char *str2 = "Bach Khoa";
myStrcat(str1, str2);
printf("%s ", str1);
return 0;
}

(2 Điểm)
char *str1 = "Dai Hoc "; có thể sửa thành char str1[100] = "Dai Hoc";
Thêm một dòng code a[m+n-1] = '\0'; vào cuối hàm myStrcat
Thêm một dòng code a = (char *)malloc(sizeof(char)*(strlen(a) + strlen(b) + 1)); vào đầu hàm
myStrcat
char *str1 = "Dai Hoc "; có thể sửa thành char str1[100] = "Dai Hoc "; và thêm một dòng code
a[m+n-1] = '\0'; vào cuối hàm myStrcat
53.
Kích thước dữ liệu của 'Q' và "Q" là khác nhau. Trong khi 'Q' có kích thước 1 byte thì "Q" lại có
kích thước 2 bytes.
(2 Điểm)
True
False
54
.Đoạn chương trình sau làm gì?
int table[10], x;
for (x = 0; x < 20; x++) {
printf("Nhap phan tu tiep theo: ");
scanf("%d", &x[i]);
}
(2 Điểm)
Đoạn chương trình lỗi không biên dịch được
Xuất các phần tử của mảng table
Đoạn chương trình biên dịch chạy được nhưng bị lỗi trong quá trình chạy
Nhập các phần tử của mảng table
55.
Đoạn code sau cộng tổng của 2 mảng numberArray1 và numberArray2. Cả 2 mảng đều có 25
phần tử. Đoạn code sau có in ra chính xác tổng của 2 mảng không?
int total = 0;
int count;
for (count = 0; count < 24; count++)
total += numberArray1[count];
printf("Tong cac phan tu cua mang numberArray1 la: %d", total);

for (count = 0; count < 24; count++)


total += numberArray2[count];
printf("Tong cac phan tu cua mang numberArray2 la: %d", total);
(2 Điểm)
False
True

You might also like