cÂu hỎi : cho biết kết quả thực thi chương trình sau:

23
CÂU HỎI CÂU HỎI : Cho biết kết quả : Cho biết kết quả thực thi chương trình sau: thực thi chương trình sau: void main() void main() { { int a=5, b=9; int a=5, b=9; int* p1=&a; int* p1=&a; int* p2=&b; int* p2=&b; cout<<*p1<<“ “<<*p2; cout<<*p1<<“ “<<*p2; p2=p1; p2=p1; p1=&b; p1=&b; cout<<*p1<<“ “<<*p2; cout<<*p1<<“ “<<*p2; getch(); getch(); } }

Upload: happy

Post on 12-Jan-2016

46 views

Category:

Documents


3 download

DESCRIPTION

CÂU HỎI : Cho biết kết quả thực thi chương trình sau:. void main() { int a=5, b=9; int* p1=&a; int* p2=&b; cout

TRANSCRIPT

Page 1: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

CÂU HỎICÂU HỎI: Cho biết kết quả thực : Cho biết kết quả thực thi chương trình sau:thi chương trình sau:

void main()void main(){{

int a=5, b=9;int a=5, b=9;int* p1=&a;int* p1=&a;int* p2=&b;int* p2=&b;cout<<*p1<<“ “<<*p2;cout<<*p1<<“ “<<*p2;p2=p1;p2=p1;p1=&b;p1=&b;cout<<*p1<<“ “<<*p2;cout<<*p1<<“ “<<*p2;getch();getch();

}}

Page 2: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

CHÖÔNG 7CHÖÔNG 7POINTERPOINTER

Page 3: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Nội dungNội dung::I.I. Định nghĩa -Khai báo.Định nghĩa -Khai báo.II.II. Các thao tác trên biến con trỏ.Các thao tác trên biến con trỏ.III.III. Con trỏ và mảng.Con trỏ và mảng.IV.IV. Thông số hình thức kiểu con trỏ.Thông số hình thức kiểu con trỏ.V.V. Cấp phát động.Cấp phát động.

Page 4: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

1. Truy xuất phần tử mảng thông qua biến 1. Truy xuất phần tử mảng thông qua biến con trỏ:con trỏ:

Ví dụ:Ví dụ: int a[4];int a[4];int* p=&a[0];int* p=&a[0];

III. CON TRỎ VÀ MẢNG:III. CON TRỎ VÀ MẢNG:

a[i] tương đương với *(p+i)

Page 5: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

2. Tên biến mảng là hằng con trỏ: 2. Tên biến mảng là hằng con trỏ: có trị có trị bằng địa chỉ của phần tử đầu.bằng địa chỉ của phần tử đầu.

Ví dụ:Ví dụ: int a[4];int a[4];int i=2;int i=2;khi đó a[i] tương đương *(a+i)khi đó a[i] tương đương *(a+i)

III. CON TRỎ VÀ MẢNG:III. CON TRỎ VÀ MẢNG:

Page 6: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

3. Tên thông số hình thức mảng3. Tên thông số hình thức mảng tương tương đương biến con trỏ đối với hàm.đương biến con trỏ đối với hàm.

Ví dụVí dụ::void nhap(int a[], int &n);void nhap(int a[], int &n);giống:giống:void nhap(int *a, int &n);void nhap(int *a, int &n);

III. CON TRỎ VÀ MẢNG:III. CON TRỎ VÀ MẢNG:

Page 7: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Ví dụVí dụ::void swap(int*pa, int* pb)void swap(int*pa, int* pb){{

int tam;int tam;tam=*pa;tam=*pa;*pa=*pb;*pa=*pb;*pb=tam;*pb=tam;

}}

IV. THAY ĐỔI THÔNG SỐ THỰC BẰNG IV. THAY ĐỔI THÔNG SỐ THỰC BẰNG THÔNG SỐ HÌNH THỨC CON TRỎ:THÔNG SỐ HÌNH THỨC CON TRỎ:

Page 8: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

1. Khái niệm: 1. Khái niệm: - Biến đã học được đặt trong vùng nhớ tĩnh gọi là Biến đã học được đặt trong vùng nhớ tĩnh gọi là stackstack- Con trỏ có thể được cấp phát vùng nhớ trong lúc chương Con trỏ có thể được cấp phát vùng nhớ trong lúc chương trình đang chạy ở trong trình đang chạy ở trong heapheap2. Toán tử new2. Toán tử new

Cú phápCú pháp::biến_con_trỏ=new tênbiến_con_trỏ=new tên__kiểu[N];kiểu[N];

Ý nghĩaÝ nghĩa: Cấp phát vùng nhớ đủ để lưu N biến kiểu: Cấp phát vùng nhớ đủ để lưu N biến kiểu tên_kiểu. Mặc định N=1 (khi không có N).tên_kiểu. Mặc định N=1 (khi không có N).

3. Toán tử delete3. Toán tử deleteCú phápCú pháp: : delete biến_con_trỏ;delete biến_con_trỏ;

delete [] biến_con_trỏ;delete [] biến_con_trỏ;Ý nghĩaÝ nghĩa:: Thu hồi vùng nhớ đã cấp phát cho Thu hồi vùng nhớ đã cấp phát cho

biến_con_trỏ bằng new. biến_con_trỏ bằng new.

V. CẤP PHÁT ĐỘNG:V. CẤP PHÁT ĐỘNG:

Page 9: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Ví dụVí dụ::int * a;int * a;a=new int;a=new int;int *p;int *p;p=new int[100];p=new int[100];

........delete a;delete a;delete [] p;delete [] p;

V. CẤP PHÁT ĐỘNG:V. CẤP PHÁT ĐỘNG:

Page 10: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

void main()void main(){{ int *a,n;int *a,n;

cin>>n;cin>>n;a=new int[n];a=new int[n];......

}}

Ví dVí dụụ:: Sử dụng mảng cấp phát động Sử dụng mảng cấp phát động

Page 11: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

CHÖÔNG 8CHÖÔNG 8STRING – STRUCTSTRING – STRUCT

(CHUỖI & CẤU TRÚC)(CHUỖI & CẤU TRÚC)

A. STRINGA. STRING

Page 12: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

1. Chuỗi là mảng ký tự với phần tử cuối là 1. Chuỗi là mảng ký tự với phần tử cuối là ký tự ‘\0’ký tự ‘\0’Ví dụ:Ví dụ:char s[]={‘T’,’h’,’u’,’\0’};char s[]={‘T’,’h’,’u’,’\0’};

2. Hằng chuỗi là dãy ký tự đặt giữa cặp “..”, 2. Hằng chuỗi là dãy ký tự đặt giữa cặp “..”, đã được cấp phát vùng nhớ.đã được cấp phát vùng nhớ.Ví dụ:Ví dụ:char *s=“Thu”;char *s=“Thu”;char name[]=“Thu”;char name[]=“Thu”;

I. CƠ BẢN VỀ CHUỖI:I. CƠ BẢN VỀ CHUỖI:

Page 13: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Cách 1Cách 1. Truy xuất giống mảng ký tự.. Truy xuất giống mảng ký tự.Ví dụVí dụ::char s[]={‘T’,’h’,’u’,’\0’};char s[]={‘T’,’h’,’u’,’\0’};int i=0; int i=0; while (s[i]!=‘\0’) cout<<s[i];while (s[i]!=‘\0’) cout<<s[i];

Cách 2Cách 2. Sử dụng hàm chuỗi.. Sử dụng hàm chuỗi.

II. TRUY XUẤT CHUỖI:II. TRUY XUẤT CHUỖI:

Page 14: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

1. 1. Nhập chuỗiNhập chuỗi::Hàm Hàm

cin.getline(char*s, int len, char kthúc=‘\n’)cin.getline(char*s, int len, char kthúc=‘\n’)

Ví dụ: Ví dụ: char s[50];char s[50];cin.getline(s,50);cin.getline(s,50);

II. TRUY XUẤT CHUỖI:II. TRUY XUẤT CHUỖI:

Page 15: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

2. 2. Xóa đệm nhậpXóa đệm nhập::Hàm Hàm

cin.ignore(int len, int kthúc=EOF)cin.ignore(int len, int kthúc=EOF)

Ví dụ: Ví dụ: cin.ignore(100,’\n’);cin.ignore(100,’\n’);

II. TRUY XUẤT CHUỖI:II. TRUY XUẤT CHUỖI:

Page 16: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

3. Các hàm khác trong string.h:3. Các hàm khác trong string.h:- strlen : chiều dài chuỗistrlen : chiều dài chuỗi- strcpy: sao chép chuỗistrcpy: sao chép chuỗi- strcmp: so sánh chuỗistrcmp: so sánh chuỗi- strstr, strchr: tìm chuỗi constrstr, strchr: tìm chuỗi con- ......

II. TRUY XUẤT CHUỖI:II. TRUY XUẤT CHUỖI:

Page 17: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

4. Các hàm khác trong ctype.h:4. Các hàm khác trong ctype.h:- int islower(char)int islower(char)- char tolower(char)char tolower(char)- ......

II. TRUY XUẤT CHUỖI:II. TRUY XUẤT CHUỖI:

Page 18: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

- Struct là kiểu có nhiều thành phần khác Struct là kiểu có nhiều thành phần khác kiểu.kiểu.

- Mỗi thành phần gọi là field.Mỗi thành phần gọi là field.

I. KHÁI NIỆM:I. KHÁI NIỆM:

B. STRUCTB. STRUCT

Page 19: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Cú phápCú pháp::struct [tên_kiểu_str]struct [tên_kiểu_str]{{

ds_thành_phầnds_thành_phần} [ds_biến];} [ds_biến];

Ý nghĩaÝ nghĩa::Khai báo (define) Khai báo (define) kiểukiểu cấu trúc, cấu trúc,hoặc/và khai báo các hoặc/và khai báo các biếnbiến kiểu cấu trúc kiểu cấu trúc

Mỗi thành phần được viết giống kbáo biến.Mỗi thành phần được viết giống kbáo biến.

II. KHAI BÁO STRUCT:II. KHAI BÁO STRUCT:

Page 20: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Ví dụVí dụ: : //Khai báo kiểu SinhVien//Khai báo kiểu SinhVienstruct SinhVienstruct SinhVien{{

int NamSinh;int NamSinh;char HoTen[40];char HoTen[40];float toan,ly,hoa;float toan,ly,hoa;

};};//Khai báo biến sv1kiểu SinhVien//Khai báo biến sv1kiểu SinhVienSinhVien sv1;SinhVien sv1;SinhVien sv[200];SinhVien sv[200];

II. KHAI BÁO STRUCT:II. KHAI BÁO STRUCT:

Page 21: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

- Được phép gán cấu trúc cho cấu trúc.- Được phép gán cấu trúc cho cấu trúc.- Thao tác đọc ghi khác chỉ thực hiện được Thao tác đọc ghi khác chỉ thực hiện được

trên từng field. trên từng field. Cú pháp:Cú pháp: Tên_biến.tên_field Tên_biến.tên_field

Ví dụ:Ví dụ:cin>>sv1.NamSinh;cin>>sv1.NamSinh;cin.getline(sv1.HoTen,40);cin.getline(sv1.HoTen,40);cin>>sv1.toan;cin>>sv1.toan;......

III. TRUY XUẤT STRUCT:III. TRUY XUẤT STRUCT:

Page 22: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Cú pháp:Cú pháp: typedef mô_tả_kiểu tên_kiểu; typedef mô_tả_kiểu tên_kiểu;Ý nghĩaÝ nghĩa: Định nghĩa kiểu tên_kiểu: Định nghĩa kiểu tên_kiểu

Ví dụ 1:Ví dụ 1:typedef int age;typedef int age;age a; //a là biến kiểu intage a; //a là biến kiểu int

Ví dụ 2:Ví dụ 2:typedef struct typedef struct { float TuSo, MauSo;{ float TuSo, MauSo;} PhanSo;} PhanSo;PhanSo p; PhanSo p;

IV. ĐỊNH NGHĨA KIỂU typedefIV. ĐỊNH NGHĨA KIỂU typedef

Page 23: CÂU HỎI : Cho biết kết quả thực thi chương trình sau:

Toàn bộ nội dung của môn PPLT.Toàn bộ nội dung của môn PPLT.

ÔN THI TRẮC NGHIỆM:ÔN THI TRẮC NGHIỆM:

Thuật toán trên mảng 1 chiều:Thuật toán trên mảng 1 chiều:1. Liệt kê tất cả giá trị hoặc vị trí phần tử 1. Liệt kê tất cả giá trị hoặc vị trí phần tử

thoả điều kiện gì đó.thoả điều kiện gì đó.2. Tìm kiếm phần tử đầu tiên thỏa điều kiện.2. Tìm kiếm phần tử đầu tiên thỏa điều kiện.3. Xóa các phần tử thỏa điều kiện.3. Xóa các phần tử thỏa điều kiện.4. Sắp xếp.4. Sắp xếp.

ÔN THI THỰC HÀNH:ÔN THI THỰC HÀNH: