ღ Khi một thứ phát triển đến cực đại nó sẽ mang hình hài của cái đối nghịch
-Theza-
ღ==============ღ
◕ Lời nhắn ⊱ Mình học Bách Khoa nên ai đó ghét Bách Khoa thì có thể lặng lẽ đi ra
⊱ Mình là dân Thanh Hóa nên ai đó ghét Thanh Hóa cũng có thể lặng lẽ rời đi
⊱ Mình học cơ khí, trang này chỉ làm ra theo sở thích nên nếu thấy không hài lòng có thể nhẹ nhàng tắt trang..
◕ Thông báo: Đã sửa lỗi đăng ký, đăng nhập, bình luận, chat... ◕ Dịch vụ: Nhận thiết kế Form mẫu Excel, Google Sheets, AppScript: ⊱ Hỗ trợ quản lý, chiết xuất dữ liệu; Tạo bảng báo cáo, thống kê nhanh;
⊱ Tạo hệ thống thiết lập và quản lý tiến độ công việc một cách trực quan;
⊱ Xây dựng appScript (Scan, điểm danh, quản lý kho, hệ thống quản lý mua bán,...)
1 Góc học tập ➢
2 Tin học đại cương
Phần III: Lập trình (Bài 308-328)
(Ấn vào đáp án bạn cho là đúng để xem kết quả)
Câu 308: Cho đoạn chương trình sau
int i=3,j=6; int *p1,*p2;
p1=&i;
p2=&j;
*p1=*p2;
Biết rằng trước lệnh gán cuối cùng thì
Biến
Địa chỉ
Giá trị
i
FFEC
3
j
FFEE
6
p1
FFDA
FFEC
p2
FFDC
FFEE
Cho biết địa chỉ và giá trị của p1?
a. Địa chỉ FFDA, giá trị FFECb. Địa chỉ FFDC, giá trị FFECc. Địa chỉ FFDA, giá trị FFEEd. Địa chỉ FFDC, giá trị FFEE
a Đúng
_ Địa chỉ là cố định, giá trị có thể thay đổi
_ & dùng để lấy địa chỉ của một biến. (Địa chỉ là cố định)
_ * dùng để khai báo con trỏ và truy cập giá trị tại địa chỉ mà con trỏ đang trỏ đến.
Lệnh
Diễn giải
int i=3,j=6;
Khai báo biến i giá trị 3 Khai báo biến j giá trị 6
int *p1,*p2;
Khai báo con trỏ p1 và p2
p1=&i;
p1 trỏ đến địa chỉ của i (tức là từ giờ *p1 chính là i)
p2=&j;
p2 trỏ đến địa chỉ của j (tức là từ giờ *p2 chính là j)
*p1=*p2;
Vì *p2 là j Nên *p1=*p2; tương ứng *p1=j=6
Vậy lệnh cuối chỉ có *p1 thay đổi giá trị thành 6 (tức là i thay đổi giá trị thành 6)
Địa chỉ cố định nên địa chỉ p1 vẫn là FFDA
Giá trị p1 không có gì thay đổi, vẫn bằng &i (địa chỉ của i: FFEC)
b Sai
c Sai
d Sai
Câu 309: Vẫn đoạn chương trình trên, cho biết địa chỉ và giá trị của i?
a. Địa chỉ FFEC, giá trị 3b. Địa chỉ FFEC, giá trị 6c. Địa chỉ FFEE, giá trị 3d. Địa chỉ FFEE, giá trị 6
a Sai
b Đúng
_ Địa chỉ là cố định, giá trị có thể thay đổi
_ & dùng để lấy địa chỉ của một biến. (Địa chỉ là cố định)
_ * dùng để khai báo con trỏ và truy cập giá trị tại địa chỉ mà con trỏ đang trỏ đến.
Lệnh
Diễn giải
int i=3,j=6;
Khai báo biến i giá trị 3 Khai báo biến j giá trị 6
int *p1,*p2;
Khai báo con trỏ p1 và p2
p1=&i;
p1 trỏ đến địa chỉ của i (tức là từ giờ *p1 chính là i)
p2=&j;
p2 trỏ đến địa chỉ của j (tức là từ giờ *p2 chính là j)
*p1=*p2;
Vì *p1 là i, *p2 là j Nên *p1=*p2; tương ứng i=j=6
Vậy lệnh cuối giá trị i thay đổi thành 6
Địa chỉ cố định nên địa chỉ i vẫn là FFEC
Giá trị i thay đổi thành 6
c Sai
d Sai
Câu 310: Vẫn đoạn chương trình trên, chỉ sửa lại lệnh gán cuối cùng p1=p2. Cho biết địa chỉ và giá trị của p1?
a. Địa chỉ FFDA, giá trị FFECb. Địa chỉ FFDC, giá trị FFECc. Địa chỉ FFDA, giá trị FFEEd. Địa chỉ FFDC, giá trị FFEE
a Sai
b Sai
c Đúng
_ Địa chỉ là cố định, giá trị có thể thay đổi
_ & dùng để lấy địa chỉ của một biến. (Địa chỉ là cố định)
_ * dùng để khai báo con trỏ và truy cập giá trị tại địa chỉ mà con trỏ đang trỏ đến.
Lệnh
Diễn giải
int i=3,j=6;
Khai báo biến i giá trị 3 Khai báo biến j giá trị 6
int *p1,*p2;
Khai báo con trỏ p1 và p2
p1=&i;
p1 trỏ đến địa chỉ của i (tức là từ giờ *p1 chính là i)
p2=&j;
p2 trỏ đến địa chỉ của j (tức là từ giờ *p2 chính là j)
p1=p2;
Chuyển hướng con trỏ p1=p2=&j; (tức là từ giờ *p1 chính là j)
Vậy lệnh cuối giá trị p1 thay đổi thành p2=&j; (Địa chỉ của j: FFEE)
Địa chỉ cố định nên địa chỉ p1 vẫn là FFDA
Giá trị p1 thay đổi thành FFEE
d Sai
Câu 311: Vẫn đoạn chương trình trên, chỉ sửa lại lệnh gán cuối cùng p1=p2. Cho biết địa chỉ và giá trị của i?
a. Địa chỉ FFEC, giá trị 3b. Địa chỉ FFEC, giá trị 6c. Địa chỉ FFEE, giá trị 3d. Địa chỉ FFEE, giá trị 6
a Đúng
_ Địa chỉ là cố định, giá trị có thể thay đổi
_ & dùng để lấy địa chỉ của một biến. (Địa chỉ là cố định)
_ * dùng để khai báo con trỏ và truy cập giá trị tại địa chỉ mà con trỏ đang trỏ đến.
Lệnh
Diễn giải
int i=3,j=6;
Khai báo biến i giá trị 3 Khai báo biến j giá trị 6
int *p1,*p2;
Khai báo con trỏ p1 và p2
p1=&i;
p1 trỏ đến địa chỉ của i (tức là từ giờ *p1 chính là i)
p2=&j;
p2 trỏ đến địa chỉ của j (tức là từ giờ *p2 chính là j)
p1=p2;
Chuyển hướng con trỏ p1=p2=&j; (tức là từ giờ *p1 chính là j)
Vậy lệnh cuối i không thay đổi gì
Địa chỉ cố định nên địa chỉ i vẫn là FFEC
Giá trị i vẫn là 3
b Sai
c Sai
d Sai
Câu 312: Cho biết kết quả hiển thị ra màn hình?
char s[20]="0123456789";
s[5]='';
printf("%s",s);
a. 01234b. 0123456789c. 012345d.
a Đúng
b Sai
c Sai
d Sai
Câu 313: Cho khai báo sau:
char B[6] = "Hanoi";
Cho biết giá trị của B[6] là:
a. 'i'b. Không xác địnhc. 'o'd. ''
a Sai
b Đúng
c Sai
d Sai
Câu 314: Trong các hàm dưới đây, hàm nào không thuộc tệp tiêu đề string.h?
a. strcatb. strcpyc. strcmpd. Tất cả các hàm trên đều thuộc string.h
a Sai
b Sai
c Sai
d Đúng
Câu 315: Cho biết kết quả hiển thị ra màn hình?
int i;
char str[]="helloworld!"; char words[10];
for(i=0;i<strlen(str)/2;i++)
words[i]=str[i+1];words[i]='';
printf("%s\n",words);
a. ellowb. elloc. hellod. hell
a Đúng
b Sai
c Sai
d Sai
Câu 316: Khi người dùng nhập vào xâu: thu do ha noi. Nội dung xâu s1, s2 là gì?
char s1[20], s2[21];
scanf("%s",s1); gets(s2);
a. s1="thu do ha noi", s2=""b. s1="thu do ha", s2="noi"c. s1="thu", s2=" do ha noi"d. Chương trình báo lỗi
a Sai
b Sai
c Đúng
d Sai
Câu 317: Cho khai báo biến sau
char thudo[10]="Hanoi";
Hỏi bộ nhớ cấp phát bao nhiêu Byte cho biến thudo?
a. Ký tự 'A' được lưu trữ trong 1 byte, xâu ký tự "A" được lưu trữ trong 2 byteb. Ký tự 'A' được lưu trữ trong 2 byte, xâu ký tự "A" được lưu trữ trong 1 bytec. Ký tự 'A' được lưu trữ trong 1 byte, xâu ký tự "A" được lưu trữ trong 1 byted. Ký tự 'A' được lưu trữ trong 2 byte, xâu ký tự "A" được lưu trữ trong 2 byte
a Đúng
b Sai
c Sai
d Sai
Câu 320: Cho biết kết quả hiển thị trên màn hình sau đoạn chương trình:
Câu 325: Trong ngôn ngữ lập trình C, giả sử S1, S2 là hai xâu ký tự. Để ghép nội dung xâu S2 vào sau S1, chương trình có thể thực hiện theo cách nào dưới đây?
a. Dùng lệnh strcmp(S1,S2);b. Dùng lệnh strcpy(S1,S2);c. Dùng lệnh strcat(S1,S2);d. Cả 3 cách trên đều sai
a Sai
b Sai
c Đúng
d Sai
Câu 326: Cho biết kết quả thực hiện đoạn chương trình sau:
char S[10]="Hello";
int d=0;
while(S[d]!='') d++;
printf("%d",d);
a. 0b. 3c. 5d. 7
a Sai
b Sai
c Đúng
d Sai
Câu 327: Trong ngôn ngữ lập trình C, cho đoạn chương trình đảo ngược nội dung một xâu ký tự như sau: