Đề thi thử cuối kì 1 năm 2022 môn Kỹ thuật lập trình | Đại học Bách Khoa, Đại học Đà Nẵng

Đề thi thử cuối kì 1 năm 2022 môn Ki thuật lập trình | Đại học Bách Khoa, Đại học Đà Nẵng giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học

Correct
2/2 Points
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
0
6
5
1
7
Correct
2/2 Points
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
26
24
16
28
14
Correct
2/2 Points
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
300
360
366
365
356
Correct
2/2 Points
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 đó.J
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?
Không đúng vì cách tính diện tích hình chữ nhật sai. Phải là area = length + width.
Đúng kết quả.
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ì chưa khởi tạo giá trị ban đầu cho chiều dài và chiều rộng.
Correct
2/2 Points
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() {
J J int number;
J J number = 712;
J J printf("The value is ");
J J printf("number");
J J return 0;
}
The value is number
The value is \n 712
The value is \n number
The value is 712
Không biên dịch được do chương trình lỗi
Correct
2/2 Points
6.Trong C, biến Sales và biến sales được xem là một.J
False
True
Correct
2/2 Points
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ữJ ?tốt nhất
long long
long
short
int
Correct
2/2 Points
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?
float
int
short
long long
Correct
2/2 Points
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?J
unsigned int
int
Chúng chiếm bộ nhớ như nhau
Không có gì để so sánh 2 đứa này
Incorrect
0/2 Points
10.Mã ASCII cho kí tự 'C' là gì?
99
97
69
67
65
Incorrect
0/2 Points
11.Câu lệnh sau đúng hay sai?
char letter = "Z";
False
True
Correct
2/2 Points
12.Kích thước của kiểu dữ liệuJ ?float
10 bytes
4 bytes
2 bytes
8 bytes
Correct
2/2 Points
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?J
Không
Incorrect
0/2 Points
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() {
J J float x = 5/2;
J J printf("%f", x);
J J return 0;
}
2.5
x = 2.5
2.000000
2.500000
2
Correct
2/2 Points
15.Câu lệnh sau đúng hay sai?
72 = amount;
True
False
Correct
2/2 Points
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() {
J J int freeze = 32, boil = 212;
J J freeze = 0;
J J boil = 100;
J J printf("%d-%d", freeze, boil);
J J return 0;
}
0-100
0 100J
Chương trình bị lỗi không biên dịch được
32-212
32 212
Correct
2/2 Points
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() {
J J int x = 0, y = 2;
J J x = y * 4;
J J printf("%d %d", x, y);
J J return 0;
}
2 4
Chương trình bị lỗi không biên dịch được
8 0
0 2
8 2
Correct
2/2 Points
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 () {
J J int a, x = 23;
J J a = x % 2;
J J printf("%d %d", x, a);
J J return 0;
}
23 0
0 23
23 1
23 11
1 23
11 23
Chương trình bị lỗi không biên dịch được
Correct
2/2 Points
19.Mỗi khi kết thúc 1 câu lệnh trong C thì sử dụng:
Dấu đóng ngoặc tròn )
Enter xuống dòng
Dấu đóng ngoặc vuông ]
Dấu chấm phẩy ;
Dấu đóng ngoặc móc }
Correct
2/2 Points
20.Câu lệnh nào sau đây đúng?
#include {stdio.h}
#include [stdio.h]
#include <stdio.h>
#include (stdio.h)
Tất cả các câu đều đúng
Correct
2/2 Points
21.Mỗi chương trình C bắt buộc phải có:
Hàm main
Câu lệnh #include
Câu lệnh printf
Tất cả các ý đều đúng
Correct
2/2 Points
22.Một khối lệnh được bọc bởi:
Dấu ngoặc móc { }
Tất cả các ý đều đúng
Dấu ngoặc tròn ( )
Dấu ngoặc nhọn < >
Correct
2/2 Points
23.Câu lệnh gán nào sau đâyJ Jhợp lệ?không
total = 9;
profit = 129
letter = 'W';
72 = amount;
Incorrect
0/2 Points
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.
True
False
Incorrect
0/2 Points
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.J J Jint a, b, c \\ 3 so nguyen
6.J J Ja = 3
7.J J Jb = 4
8.J J Jc = a + b
9.J J JPrintf("Gia tri cua c la", c);
10.J Jreturn 0;
11. {
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
Correct
2/2 Points
26.File header phải thêm vào (include) chương trình khi sử dụng printf và scanf là gì?
studio.h
stdio.h
conio.h
Không cần thêm gì, chương trình mặc định có sẵn
math.h
Correct
2/2 Points
27.Giá trị biếnJ Jlà một biến số nguyên. Nếu người dùng nhập vào 3.14 theo câu value
lệnhJscanf("%d", &value);Jthì giá trị được lưu trong biếnJvalueJlà gì?
0
Chương trình báo lỗi.
3.14
3
Correct
2/2 Points
28.Kết quả của phép tính sau là gì?
4 + 17 % 2 - 1
3
9
11
4
0
Correct
2/2 Points
29.Biểu thức sau tương đương với:
ketqua *= x + 5;
ketqua = ketqua * x + 5;
Không cái nào đúng.
ketqua = ketqua * (x + 5);
Correct
2/2 Points
30.Những cách thể hiện giá trị nào sau đây cùng có giá trị là 720.
720.000000
(int) 720.4444
720.4444
720.0
7.2e+2
7.20 * 10
(float) 7.20
7.20+e2
+720.0
Incorrect
0/2 Points
31.Câu lệnh nào sau đây cho khuôn in số thực float x vớiJ8 khoảng để viết phần nguyênJvàJ2
khoảng để viết phần thực?
printf("%10.2f", x);
printf("%8.2f", x);
printf("%10f", x);
printf("%11.2f", x);
Incorrect
0/2 Points
32.2 câu lệnh if/else sau cho ra cùng kết quả.J
A.J
if (x > y)J
J J printf("x lon hon y.\n");
elseJ
J J printf("x khong lon hon y.\n");
B.
if (y <= x)
J J printf("x khong lon hon y.\n");
else
J J printf("x lon hon y.\n");
False
True
Incorrect
0/2 Points
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() {
JJJ int x = 0, y = 10;
JJJ printf("x = %d va y = %d\n", x, y);
JJJ if (x > y);
JJJJJJJ printf("x lon hon y");
JJJ return 0;
}
Chương trình lỗi không biên dịch được
x = 0 va y = 10
x = 0 va y = 10
Correct
2/2 Points
34.2 câu lệnh sau có như nhau không?
if (value == 20)
J J rate *= 0.5;
if (value = 20)
J J rate = rate * 0.5;
False
True
Correct
2/2 Points
35.Kết quả của chương trình sau là gì?
#include<stdio.h>
int main(){
J J float diem = 9.5;
J J if(diem > 8.5)
J J J J printf("Diem theo thang 4 là 4.0");
J J printf("Phan loai diem A");
J J return 0;
}
Chương trình lỗi không biên dịch được
Diem theo thang 4 là 4.0
Diem theo thang 4 là 4.0Phan loai diem A
Correct
2/2 Points
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)
{
J J x = 0;
J J y = 0;
} else if (x == 2)
{
J J x = 10;
J J y = 10;
}
else
{
J J x = 1;
J J y = 1;
}
printf("%d%d", x, y);
1010
1 1
7 15
1 15
0 0
11
00
115
715
Correct
2/2 Points
37.Có thể chuyển đổi đoạn code sau từ if/else sang switch case
if (temp == 100)J
J J Jx = 0;J
else if (population > 1000)J
J J Jx = 1;J
else if (rate < .1)J
J J Jx = −1;
False
True
Correct
2/2 Points
38.Nếu temp = -16 thì kết quả đoạn chương trình như thế nào?
switch (temp)
J{J
Jcase temp < 0 : printf("Temp la so am."); break;J
Jcase temp == 0: printf("Temp la so khong."); break;J
Jcase temp > 0 : printf("Temp la so duong."); break;
J}
Đoạn chương trình switch case lỗi.
Temp la so am.Temp la so khong.Temp la so duong.
Temp la so am.
Incorrect
0/2 Points
39.Kết quả của đoạn chương trình sau là gì?
x = 2;J
y = x++;J
printf("%d %d", x y);
3 3
2 2
2 3
3 2
Correct
2/2 Points
40.Một sinh viên chuyển đổi đoạn code sử dụng vòng lặpJ Jsang vòng lặpJ Jsau đúng hay while do-while
không?
Đoạn code ban đầu:
int x=1;
while (x>0){
J J printf("Nhap 1 so nguyen: ");
J J scanf("%d", &x);
}
Đoạn code của sinh viên sau khi chuyển:
int x;
do {
J J printf("Nhap 1 so nguyen: ");
J J scanf("%d", &x);
} while (x>0);
True
False
Correct
2/2 Points
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?
7E5
7F5
7E6
8E5
Correct
2/2 Points
42.Kết quả của chương trình sau ntn?
# include <stdio.h>
voidJfun(intJ*ptr)
{
JJJJ*ptr = 30;
}
intJmain()
{
JJintJy = 20;
JJfun(&y);
JJprintf("%d", y);
JJreturnJ0;
}
20
Biên dịch lỗi
Biên dịch được nhưng gặp lỗi trong quá trình chạy
30
Correct
2/2 Points
43.Kết quả của chương trình này ntn?
# include <stdio.h>
voidJfun(intJx)
{
JJJJx = 30;
}
intJmain()
{
JJintJy = 20;
JJfun(y);
JJprintf("%d", y);
JJreturnJ0;
}
Biên dịch chạy được nhưng gặp lỗi trong quá trình chạy
20
Biên dịch lỗi
30
Correct
2/2 Points
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?
a
r
W+
w
Correct
2/2 Points
45.Làm thế nào để ghi 1 chuỗi ký tự vào một 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 fputc nhiều lần.
Mở file và sử dụng hàm fprintf
Sử dụng hàm fread để đọc dữ liệu vào trong file.
Correct
2/2 Points
46.Trước khi đọc hoặc ghi file trong C, bạn cần làm gì?
Gọi hàm fopen cho file
Gọi hàm fclose cho file
Tạo file
Sử dụng hàm fprintf
Correct
2/2 Points
47.Sử dụng đối tượng nào sau đây để biểu diễn một file trong C?
FILE *
printf
fopen
fprintf
Incorrect
0/2 Points
48.Kết quả của đoạn code sau ra gì?
charJp[20];
charJ*s =J"string";
intJlength =Jstrlen(s);
intJi;
forJ(i = 0; i < length; i++)
JJJJp[i] = s[length — i];
printf("%s", p);
Không in ra gì hết
string
gnirt
gnirts
Correct
2/2 Points
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>
intJmain()
{
JJcharJarr[] =J"DaiHocBachKhoa";
JJprintf("%s", ?);
JJreturnJ0;
}
arr
(arr+6)
(arr+5)
Không thể được, nên không có câu nào đúng
Correct
2/2 Points
50.Kết quả đoạn chương trình sau ntn?
#include<stdio.h>
voidJswap(charJ*str1,JcharJ*str2)
{
JJcharJ*temp = str1;
JJstr1 = str2;
JJstr2 = temp;
}J
intJmain()
{
JJcharJ*str1 =J"DaiHoc";
JJcharJ*str2 =J"BachKhoa";
JJswap(str1, str2);
JJprintf("str1 la %s, str2 la %s", str1, str2);
JJreturnJ0;
}
str1 la BachKhoa, str2 la DaiHoc
str1 la DaiHoc, str2 la BachKhoa
str1 la DaiHoc, str2 la DaiHoc
str1 la BachKhoa, str2 la BachKhoa
Correct
2/2 Points
51.Kết quả chương trình sau ra gì?
# include <stdio.h>
JintJmain()
{
JJJcharJstr1[] =J"DHBK";
JJJcharJstr2[] = {'D',J'H',J'B',J'K'};
JJJintJn1 =Jsizeof(str1)/sizeof(str1[0]);
JJJintJn2 =Jsizeof(str2)/sizeof(str2[0]);
JJJprintf("n1 = %d, n2 = %d", n1, n2);
JJJreturnJ0;
}
n1 = 4, n2 = 5
n1 = 4, n2 = 4
n1 = 5, n2 = 5
n1 = 5, n2 = 4
Correct
2/2 Points
52.Cho đoạn code sau. HàmJ Jsẽ nối 2 chuỗi ký tự, tức là nối chuỗiJ Jvào cuối chuỗiJ . Kết myStrCat b a
quả mong đợi của chương trình là " ". Chương trình sau biên dịch được nhưng khi Dai Hoc Bach Khoa
chạy thì bị lỗi ( Jgiá trị khác 0). Thay đổi nào sau đây có thể sửa đúng để chương trình có thể in return
ra "Dai Hoc Bach Khoa".
#include <stdio.h>
voidJmyStrcat(charJ*a,JcharJ*b) {
JJJJintJm =Jstrlen(a);
JJJJintJn =Jstrlen(b);
JJJJintJi;
JJJJforJ(i = 0; i <= n; i++)
JJJJJJJa[m+i]J = b[i];
}
intJmain() {
JJJJcharJ*str1 =J"Dai Hoc ";
JJJJcharJ*str2 =J"Bach Khoa";
JJJJmyStrcat(str1, str2);
JJJJprintf("%s ", str1);
JJJJreturnJ0;
}
Thêm một dòng code a[m+n-1] = '\0'; vào cuối hàm myStrcat
char *str1 = "Dai Hoc "; có thể sửa thành char str1[100] = "Dai Hoc";
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
Correct
2/2 Points
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.
True
False
Correct
2/2 Points
54.Đoạn chương trình sau làm gì?
int table[10], x;
for (x = 0; x < 20; x++) {
J J printf("Nhap phan tu tiep theo: ");
J J scanf("%d", &x[i]);
}
Xuất các phần tử của mảng table
Đoạn chương trình lỗi không biên dịch được
Nhập 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
Correct
2/2 Points
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++)
J J total += numberArray1[count];
printf("Tong cac phan tu cua mang numberArray1 la: %d", total);
for (count = 0; count < 24; count++)
J J total += numberArray2[count];
printf("Tong cac phan tu cua mang numberArray2 la: %d", total);
True
False
| 1/9

Preview text:

Correct 2/2 Points
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 0 6 5 1 7 Correct 2/2 Points
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 26 24 16 28 14 Correct 2/2 Points
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 300 360 366 365 356 Correct 2/2 Points
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 đó.J 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?
Không đúng vì cách tính diện tích hình chữ nhật sai. Phải là area = length + width. Đúng kết quả.
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ì chưa khởi tạo giá trị ban đầu cho chiều dài và chiều rộng. Correct 2/2 Points
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 int main() { J J int number; J J number = 712; J J printf("The value is "); J J printf("number"); J J return 0; } The value is number The value is \n 712 The value is \n number The value is 712
Không biên dịch được do chương trình lỗi Correct 2/2 Points
6.Trong C, biến Sales và biến sales được xem là một.J False True Correct 2/2 Points
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ữJ ? tốt nhất long long long short int Correct 2/2 Points
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? float int short long long Correct 2/2 Points
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?J unsigned int int
Chúng chiếm bộ nhớ như nhau
Không có gì để so sánh 2 đứa này Incorrect 0/2 Points
10.Mã ASCII cho kí tự 'C' là gì? 99 97 69 67 65 Incorrect 0/2 Points
11.Câu lệnh sau đúng hay sai? char letter = "Z"; False True Correct 2/2 Points
12.Kích thước của kiểu dữ liệuJfloat? 10 bytes 4 bytes 2 bytes 8 bytes Correct 2/2 Points
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?J Không Có Incorrect 0/2 Points
14.Kết quả hiển thị lên màn hình của chương trình này là gì: #include int main() { J J float x = 5/2; J J printf("%f", x); J J return 0; } 2.5 x = 2.5 2.000000 2.500000 2 Correct 2/2 Points
15.Câu lệnh sau đúng hay sai? 72 = amount; True False Correct 2/2 Points
16.Kết quả hiển thị ra màn hình của chương trình sau là gì: #include int main() {
J J int freeze = 32, boil = 212; J J freeze = 0; J J boil = 100;
J J printf("%d-%d", freeze, boil); J J return 0; } 0-100 0 100J
Chương trình bị lỗi không biên dịch được 32-212 32 212 Correct 2/2 Points
17.Kết quả hiển thị của chương trình sau ra màn hình là gì? #include int main() { J J int x = 0, y = 2; J J x = y * 4; J J printf("%d %d", x, y); J J return 0; } 2 4
Chương trình bị lỗi không biên dịch được 8 0 0 2 8 2 Correct 2/2 Points
18.Kết quả hiển thị ra màn hình của chương trình sau là gì? #include int main () { J J int a, x = 23; J J a = x % 2; J J printf("%d %d", x, a); J J return 0; } 23 0 0 23 23 1 23 11 1 23 11 23
Chương trình bị lỗi không biên dịch được Correct 2/2 Points
19.Mỗi khi kết thúc 1 câu lệnh trong C thì sử dụng: Dấu đóng ngoặc tròn ) Enter xuống dòng Dấu đóng ngoặc vuông ] Dấu chấm phẩy ; Dấu đóng ngoặc móc } Correct 2/2 Points
20.Câu lệnh nào sau đây đúng? #include {stdio.h} #include [stdio.h] #include #include (stdio.h)
Tất cả các câu đều đúng Correct 2/2 Points
21.Mỗi chương trình C bắt buộc phải có: Hàm main Câu lệnh #include Câu lệnh printf
Tất cả các ý đều đúng Correct 2/2 Points
22.Một khối lệnh được bọc bởi: Dấu ngoặc móc { }
Tất cả các ý đều đúng Dấu ngoặc tròn ( ) Dấu ngoặc nhọn < > Correct 2/2 Points
23.Câu lệnh gán nào sau đâyJ Jhợp lệ? không total = 9; profit = 129 letter = 'W'; 72 = amount; Incorrect 0/2 Points
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. True False Incorrect 0/2 Points
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.J J Jint a, b, c \\ 3 so nguyen 6.J J Ja = 3 7.J J Jb = 4 8.J J Jc = a + b
9.J J JPrintf("Gia tri cua c la", c); 10.J Jreturn 0; 11. { 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 Correct 2/2 Points
26.File header phải thêm vào (include) chương trình khi sử dụng printf và scanf là gì? studio.h stdio.h conio.h
Không cần thêm gì, chương trình mặc định có sẵn math.h Correct 2/2 Points
27.Giá trị biếnJvalueJlà một biến số nguyên. Nếu người dùng nhập vào 3.14 theo câu
lệnhJscanf("%d", &value);Jthì giá trị được lưu trong biếnJvalueJlà gì? 0 Chương trình báo lỗi. 3.14 3 Correct 2/2 Points
28.Kết quả của phép tính sau là gì? 4 + 17 % 2 - 1 3 9 11 4 0 Correct 2/2 Points
29.Biểu thức sau tương đương với: ketqua *= x + 5; ketqua = ketqua * x + 5; Không cái nào đúng. ketqua = ketqua * (x + 5); Correct 2/2 Points
30.Những cách thể hiện giá trị nào sau đây cùng có giá trị là 720. 720.000000 (int) 720.4444 720.4444 720.0 7.2e+2 7.20 * 10 (float) 7.20 7.20+e2 +720.0 Incorrect 0/2 Points
31.Câu lệnh nào sau đây cho khuôn in số thực float x vớiJ8 khoảng để viết phần nguyênJvàJ2
khoảng để viết phần thực? printf("%10.2f", x); printf("%8.2f", x); printf("%10f", x); printf("%11.2f", x); Incorrect 0/2 Points
32.2 câu lệnh if/else sau cho ra cùng kết quả.J A.J if (x > y)J J J printf("x lon hon y.\n"); elseJ
J J printf("x khong lon hon y.\n"); B. if (y <= x)
J J printf("x khong lon hon y.\n"); else J J printf("x lon hon y.\n"); False True Incorrect 0/2 Points
33.Kết quả hiện thị ra màn hình của chương trình sau là gì? #include int main() { JJJ int x = 0, y = 10;
JJJ printf("x = %d va y = %d\n", x, y); JJJ if (x > y); JJJJJJJ printf("x lon hon y"); JJJ return 0; }
Chương trình lỗi không biên dịch được x = 0 va y = 10 x = 0 va y = 10 Correct 2/2 Points
34.2 câu lệnh sau có như nhau không? if (value == 20) J J rate *= 0.5; if (value = 20) J J rate = rate * 0.5; False True Correct 2/2 Points
35.Kết quả của chương trình sau là gì? #include int main(){ J J float diem = 9.5; J J if(diem > 8.5)
J J J J printf("Diem theo thang 4 là 4.0");
J J printf("Phan loai diem A"); J J return 0; }
Chương trình lỗi không biên dịch được Diem theo thang 4 là 4.0
Diem theo thang 4 là 4.0Phan loai diem A Correct 2/2 Points
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) { J J x = 0; J J y = 0; } else if (x == 2) { J J x = 10; J J y = 10; } else { J J x = 1; J J y = 1; } printf("%d%d", x, y); 1010 1 1 7 15 1 15 0 0 11 00 115 715 Correct 2/2 Points
37.Có thể chuyển đổi đoạn code sau từ if/else sang switch case if (temp == 100)J J J Jx = 0;J
else if (population > 1000)J J J Jx = 1;J else if (rate < .1)J J J Jx = −1; False True Correct 2/2 Points
38.Nếu temp = -16 thì kết quả đoạn chương trình như thế nào? switch (temp) J{J
Jcase temp < 0 : printf("Temp la so am."); break;J
Jcase temp == 0: printf("Temp la so khong."); break;J
Jcase temp > 0 : printf("Temp la so duong."); break; J}
Đoạn chương trình switch case lỗi.
Temp la so am.Temp la so khong.Temp la so duong. Temp la so am. Incorrect 0/2 Points
39.Kết quả của đoạn chương trình sau là gì? x = 2;J y = x++;J printf("%d %d", x y); 3 3 2 2 2 3 3 2 Correct 2/2 Points
40.Một sinh viên chuyển đổi đoạn code sử dụng vòng lặpJ Jsang vòng lặpJ while do-whileJsau đúng hay không? Đoạn code ban đầu: int x=1; while (x>0){
J J printf("Nhap 1 so nguyen: "); J J scanf("%d", &x); }
Đoạn code của sinh viên sau khi chuyển: int x; do {
J J printf("Nhap 1 so nguyen: "); J J scanf("%d", &x); } while (x>0); True False Correct 2/2 Points
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? 7E5 7F5 7E6 8E5 Correct 2/2 Points
42.Kết quả của chương trình sau ntn? # include voidJfun(intJ*ptr) { JJJJ*ptr = 30; } intJmain() { JJintJy = 20; JJfun(&y); JJprintf("%d", y); JJreturnJ0; } 20 Biên dịch lỗi
Biên dịch được nhưng gặp lỗi trong quá trình chạy 30 Correct 2/2 Points
43.Kết quả của chương trình này ntn? # include voidJfun(intJx) { JJJJx = 30; } intJmain() { JJintJy = 20; JJfun(y); JJprintf("%d", y); JJreturnJ0; }
Biên dịch chạy được nhưng gặp lỗi trong quá trình chạy 20 Biên dịch lỗi 30 Correct 2/2 Points
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? a r W+ w Correct 2/2 Points
45.Làm thế nào để ghi 1 chuỗi ký tự vào một 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 fputc nhiều lần.
Mở file và sử dụng hàm fprintf
Sử dụng hàm fread để đọc dữ liệu vào trong file. Correct 2/2 Points
46.Trước khi đọc hoặc ghi file trong C, bạn cần làm gì? Gọi hàm fopen cho file Gọi hàm fclose cho file Tạo file Sử dụng hàm fprintf Correct 2/2 Points
47.Sử dụng đối tượng nào sau đây để biểu diễn một file trong C? FILE * printf fopen fprintf Incorrect 0/2 Points
48.Kết quả của đoạn code sau ra gì? charJp[20]; charJ*s =J"string"; intJlength =Jstrlen(s); intJi;
forJ(i = 0; i < length; i++) JJJJp[i] = s[length — i]; printf("%s", p); Không in ra gì hết string gnirt gnirts Correct 2/2 Points
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 intJmain() {
JJcharJarr[] =J"DaiHocBachKhoa"; JJprintf("%s", ?); JJreturnJ0; } arr (arr+6) (arr+5)
Không thể được, nên không có câu nào đúng Correct 2/2 Points
50.Kết quả đoạn chương trình sau ntn? #include
voidJswap(charJ*str1,JcharJ*str2) { JJcharJ*temp = str1; JJstr1 = str2; JJstr2 = temp; }J intJmain() { JJcharJ*str1 =J"DaiHoc"; JJcharJ*str2 =J"BachKhoa"; JJswap(str1, str2);
JJprintf("str1 la %s, str2 la %s", str1, str2); JJreturnJ0; }
str1 la BachKhoa, str2 la DaiHoc
str1 la DaiHoc, str2 la BachKhoa str1 la DaiHoc, str2 la DaiHoc
str1 la BachKhoa, str2 la BachKhoa Correct 2/2 Points
51.Kết quả chương trình sau ra gì? # include JintJmain() { JJJcharJstr1[] =J"DHBK";
JJJcharJstr2[] = {'D',J'H',J'B',J'K'};
JJJintJn1 =Jsizeof(str1)/sizeof(str1[0]);
JJJintJn2 =Jsizeof(str2)/sizeof(str2[0]);
JJJprintf("n1 = %d, n2 = %d", n1, n2); JJJreturnJ0; } n1 = 4, n2 = 5 n1 = 4, n2 = 4 n1 = 5, n2 = 5 n1 = 5, n2 = 4 Correct 2/2 Points 52.Cho đoạn code sau. HàmJ Js
myStrCat ẽ nối 2 chuỗi ký tự, tức là nối chuỗiJbJvào cuối chuỗiJa. 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 (returnJgiá 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
voidJmyStrcat(charJ*a,JcharJ*b) { JJJJintJm =Jstrlen(a); JJJJintJn =Jstrlen(b); JJJJintJi;
JJJJforJ(i = 0; i <= n; i++) JJJJJJJa[m+i]J = b[i]; } intJmain() { JJJJcharJ*str1 =J"Dai Hoc "; JJJJcharJ*str2 =J"Bach Khoa"; JJJJmyStrcat(str1, str2); JJJJprintf("%s ", str1); JJJJreturnJ0; }
Thêm một dòng code a[m+n-1] = '\0'; vào cuối hàm myStrcat
char *str1 = "Dai Hoc "; có thể sửa thành char str1[100] = "Dai Hoc";
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 Correct 2/2 Points
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. True False Correct 2/2 Points
54.Đoạn chương trình sau làm gì? int table[10], x; for (x = 0; x < 20; x++) {
J J printf("Nhap phan tu tiep theo: "); J J scanf("%d", &x[i]); }
Xuất các phần tử của mảng table
Đoạn chương trình lỗi không biên dịch được
Nhập 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 Correct 2/2 Points
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++)
J J total += numberArray1[count];
printf("Tong cac phan tu cua mang numberArray1 la: %d", total);
for (count = 0; count < 24; count++)
J J total += numberArray2[count];
printf("Tong cac phan tu cua mang numberArray2 la: %d", total); True False