Cú pháp đúng khi khai báo biến danh sách rỗng

Bất kì một ngôn ngữ lập trình nào đều có khái niệm biến và hằng số và php cũng không ngoại lệ, đây là kiến thức nền tảng trong lập trình mà hầu như lập trình viên nào cũng phải học đầu tiên. Nên trong bài này chúng ta sẽ đi tìm hiểu khái niệm thế nào là biến và hằng số.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Khi bạn học một ngôn ngữ bất kì thì chương trình in ra màn hình chữ “Hello World!” luôn là bài tập đầu tiên mà bạn phải làm. Để xuất một chuỗi ra màn hình bạn dùng cú pháp lệnh sau:

Bài viết này được đăng tại [free tuts .net]

Ví dụ: Xuất ra dòng chữ “Chào Mừng Các Bạn Đến Với freetuts.net”

Bước 1: Bạn mở Server Vertrigo lên, nếu bạn chưa biết nó là gì thì đọc bài này “Hướng dẫn cài đặt Vertrigo Server ”.

Bước 2: Bạn tạo file hello.php nằm trong thư mục www của Server.

Bước 3: Theo quy tắc ở trên ta sẽ làm như sau:

Hoặc

Sự khác biệt ở 2 đoạn mã này là đoạn thứ nhất mình khai báo biến và dùng dấu nháy đơn để bao quanh chuỗi, còn đoạn thứ 2 mình dùng dấu nháy kép, cả 2 đều có kết quả tương đương nhau nhưng luận về tốc độ thì dấu nháy đơn sẽ chạy nhanh hơn dấu nháy kép vì với dấu nháy kép trình biên dịch sẽ mất thêm một bước kiểm tra chuỗi bên trong có biến nào không.

Bước 4: Mở trình duyệt gõ vào đường dẫn localhost/hello.php. Nếu bạn làm đúng thì kết quả nó sẽ xuất ra là “Chào Mừng Các Bạn Đến Với freetuts.net”.

2. Ghi chú

Trong dòng lệnh code php đôi khi ta muốn thêm những lời giải thích ý nghĩa của dòng lệnh đó để sau này nhìn vào dễ hiểu hơn. Nhưng với trình biên dịch thì nó sẽ chạy tất cả các đoạn code nằm bên trong thẻ mở , nếu chúng ta gõ lung tung thì trình biên dịch sẽ báo sai vì không đúng với cú pháp PHP. Vì thế trước khi tìm hiểu biến và hằng số trong php chúng ta tìm hiểu cú pháp ghi chú trước.

PHP hỗ trợ cho chúng ta hai cách để ghi chú đó là:

  • Ghi chú cho 1 dòng: // noi dung can ghi chu
  • Ghi chú cho nhiều dòng: /*noi dung can ghi chu*/

Ví dụ:

3. Khai báo biến số trong php

Biến là một định danh, nó dùng để lưu trữ các giá trị và nó có thể dùng phép gán để thay đổi giá trị. Cú pháp của biến bắt đầu bằng dấu đô la $ và tiếp theo là các chữ, số, dấu gạch dưới. Ký tự đầu tiên của tên biến phải là chữ hoặc là dấu gạch dưới, không được là số.

Ví dụ:

PHP là một ngôn ngữ có phân biệt chữ hoa chữ thường. Ví dụ: $sinhvien khác $SinhVien

Gán giá trị cho biến

Để gán giá trị cho biến ta dùng toán tử phép gán =.

Ví dụ:

4. Hiển thị giá trị của biên ra màn hình

Thay vì xuất trực tiếp chuỗi thì ta xuất giá trị của biến ra màn hình.

Ví dụ:

5. Khai báo hằng

Hằng cũng là một biến nhưng bạn không thể thay đổi giá trị của nó. Tuy nhiên cách khai báo biến và hằng số thì lại khác nhau.

Cú Pháp: define[‘ten_hang’, ‘gia_tri’];

Trong đó:

  • define: hàm tạo biến hằng
  • ten_hang: là tên biến hằng
  • gia_tri: giá trị của hằng

6. Lời kết

Trong bài này tôi hy vọng các bạn hiểu được cách khai báo và sử dụng biến và hằng số trong ngôn ngữ php, đây là nền tảng để các bạn có thể theo dõi các bài tiếp theo nên tôi mong các bạn nắm vững trước khi next qua bài mới nhé. Bài tiếp theo chúng ta sẽ tìm hiểu các kiểu dữ liệu trong php.

Link tải bài tập trắc nghiệm C.

//mega.co.nz/#!xJMnWCZI!gp3gYnCVqy9UD-cdXQvlOE5EqmpQCSc42x7h5QGcLkQ

Câu 1: Ngôn ngữ lập trình C được Dennish phát triển dựa trên ngôn ngữ lập trình nào:

a]     Ngôn ngữ B.

b]     Ngôn ngữ BCPL.

c]     Ngôn ngữ DEC PDP.           

d]     Ngôn ngữ B và BCPL.

Câu 2: Ngôn ngữ lập trình được Dennish đưa ra vào năm nào?

a]     1967.

b]     1972.

c]     1970.

d]     1976.

Câu 3: Ngôn ngữ lập trình nào dưới đây là ngôn ngữ lập trình có cấu trúc?

a]     Ngôn ngữ Assembler.

b]     Ngôn ngữ C và Pascal.

c]     Ngôn ngữ Cobol.

d]     a, b và c.

Câu 4:Những tên biến nào dưới đây được viết đúng theo quy tắc đặt tên của ngôn ngữ lập trình C?

a]     diem toan

b]     3diemtoan

c]     _diemtoan

d]     -diemtoan

Câu 5: Một biến được gọi là biến toàn cục nếu:

a]     Nó được khai báo tất cả các hàm, ngoại trừ hàm main[].

b]     Nó được khai báo ngoài tất cả các hàm kể cả hàm main[].

c]     Nó được khai báo bên ngoài hàm main[].

d]     Nó được khai báo bên trong hàm main[].

Câu 6: Một biến được gọi là một biến địa phương nếu:

a]     Nó được khai báo bên trong các hàm hoặc thủ tục, kể cả hàm main[].

b]     Nó đươc khai báo bên trong các hàm ngoại trừ hàm main[].

c]     Nó được khai báo bên trong hàm main[].

d]     Nó được khai báo bên ngoài các hàm kể cả hàm main[].

Câu 7: Nếu x là một biến toàn cục và x không phải là một con trỏ thì:

a]     Miền nhớ dành cho x có thể thay đổi trong quá trình thực hiện chương trình.

b]     Miền nhớ dành cho x chỉ có thay đổi bởi những thao tác với x bên trong hàm main[].

c]     Miền nhớ dành cho x sẽ thay đổi bởi những thao tác với x trong tất cả các hàm, kể cả hàm main[].

d]     Miền nhớ giành cho x không bị thay đổi trong quá trình thực hiện chương trình.

Câu 8: Kiểu dữ liệu nào dưới đây được coi là kiểu dữ liệu cơ bản trong ngôn ngữ lập trình C:

a]     Kiểu double.

b]     Kiểu con trỏ.

c]     Kiểu hợp.

d]     Kiểu mảng.

Câu 9: Giả sử a, b là hai số thực. Biểu thức nào dưới đây viết không đúng theo cú pháp của ngôn ngữ lập trình C:

a]     [a+=b].

b]     [a*=b].

c]     [a=b].

d]     [a&=b].

Câu 10: Giả sử a và b là hai số thực. Biểu thức nào dưới đây là không được phép theo cú pháp của ngôn ngữ lập trình C:

a]     [ab].

b]     [a-=b].

c]     [a>>=b].

d]     [a*=b].

Câu 11:Xâu định dạng nào dưới đây dùng để in ra một số nguyên hệ 16:

a]     “%d”.

b]     “%x”.

c]     “%i”.

d]     “%u”.

Câu 12: Xâu định dạng nào dưới đây dùng để in ra một số nguyên ở hệ 8:

a]     “%ld”.

b]     “%x”.

c]     “%o”.

d]     “%u”.

Câu 13:Xâu định dạng nào dưới đây dùng để in ra một kí tự:

a]     “%f”.

b]     “%x”.

c]     “%s”.

d]     “%c”.

Câu 14: Xâu định dạng nào dưới đây dùng để in ra một xâu kí tự:

a]     “%f”.

b]     “%x”.

c]     “%s”.

d]     “%c”.

Câu 15: Xâu định dạng nào dưới đây dùng để in ra một số nguyên dài:

a]     “%ld”.

b]     “%x”.

c]     “%d”.

d]     “%o”.

Câu 16:Xâu định dạng nào dưới đây dùng để in ra địa chỉ của một biến:

a]     “%u”.

b]     “%e”.

c]     “%o”.

d]     “%p”.

Câu 17: Xâu định dạng nào dưới đây dùng để in ra một số nguyên:

a]     “%u”.

b]     “%e”.

c]     “%d”.

d]     “%p”.

Câu 18:Xâu định dạng nào dưới đây dùng để in ra một số thực có độ chính xác kép:

a]     “%u”.

b]     “%e”.

c]     “%o”.

d]     “%p”.

Câu 19:Xâu định dạng nào sau đây dùng để in ra một số thực có độ chính xác đơn:

a]     “%u”.

b]     “%e”.

c]     “%f”.

d]     “%o”.

Câu 20: Kiểu dữ liệu int[ kiểu số nguyên] có thể xử lí số nguyên nằm trong khoảng nào:

a]     0…255.

b]     -32768…32767.

c]     -128…127.

d]     0…65535.

Câu 20:Cho a=3, b=2 và c là 3 biến nguyên. Biểu thức nào sau viết sai cú pháp trong ngôn ngữ lập trình C :

a]     [c=a & b].     

b]     [c=a && b].

c]     [c= a/b].

d]     [c= a=b].

d]     [a*=b].

Câu 22 :Cho a=3, b=2. Biến c=[atiep;

SV1->tiep-tiep = P;

};

[…->SV1->SV2->…->SV3->SV4->…]; Đổi SV2 cho SV4:

Cách 1: tương tự khai báo 1;

Cách 2:

{

P = SV2->thongtin;

SV2->thongtin = SV4->thongtin;

SV4->thongtin = P;

};

{

While[P != NULL]

{visit[P->thongtin]; P = P->tiep;};

};

Câu 176: Cho đoạn chương trình:

char S[] = “Helen”;

char *p = S;

char c = *[p+3];

Giá trị của c sẽ là:

a]     ‘H’.

b]     ‘e’.

c]     ‘l’.

d]     ‘n’.

Câu 177: Chọn câu đúng:

a]     “struct” là một kiểu dữ liệu do người dùng định nghĩa bao gồm nhiều thành phần có kiểu khác nhau.

b]     “struct” là sự kết hợp của nhiều thành phần có thể có thể có kiểu khác nhau.

c]     Cả 2 ý đểu đúng.

d]     Cả hai ý đều sai.

Câu 178:Toán tử nào sau đây sẽ truy xuất 1 thành phần của con trỏ cấu trúc:

a]     “.”[Toán tử chấm].

b]     “->”[Toán tử mũi tên].

c]     Cả hai đều đúng.

d]     Cả hai đều sai.

Câu 179:Xem đoạn code sau:

typedef struct ST{ int d1,d2,d3;};

ST v= {5, 6, 7};

ST* p=&v;

p.d1++;

Giá trị của biến v là:

a]     {6, 6, 7};

b]     {5, 6, 7};

c]     Nhóm trị khác.

d]     Đoạn code gây lỗi.              [[*p].d1++;]/

Câu 180: Xem đoạn code sau:

typedef struct STUDENT{ int d1, d2, d3;};

STUDENT v= {2, 3, 4};

v.d1++;

Giá trị trung bình của các trường trong biến v là gì:

a]     3.0

b]     4.0

c]     Giá trị khác.

d]     Có lỗi trong đoạn code.

Câu 181: Hãy khai báo một cấu trúc mô tả sinh viên, thông tin về mỗi sinh viên bao gồm: tên, điểm 3 môn học. Khai báo nào sau đây là đúng:

a]     structure STUDENT {char Name[]; int s1,s2,s3;};

b]     struct STUDENT {char Name[]; int s1, s2, s3;};

c]     typedef struct STUDENT {char Name[]; float s1,s2,s3;};

d]     typedef STUDENT { char Name[]; int s1, s2,s3;};

Câu 182:Biến con trỏ có thể chứa:

a]     Địa chỉ vùng nhớ của một biến khác.

b]     Giá trị của một biến khác.

c]     Cả a và b đều đúng.

d]     Cả a và b đều sai.

Câu 183: Kết quả của chương trình sau là gì:

#include

void main[]

{

            struct diem;

                        {

                         float k;

                         float a;

                         float l;

                        };

            struct diem m;

            m.k = 8;

            m.a = 6.5;

            m.l = 6;

            printf[“%0.1f%0.1f%0.1f”, m.k, m.a, m.l];

};

a]     “8.06.56.0”.

b]     “86.56”.

c]     “8.0000006.5000006.000000”.

d]     “86.5000006”.

Câu 184:Kiểu dữ liệu nào có thể chứa nhiều thành phần dữ liệu có thể có kiểu dữ liệu khác nhau thành một nhóm duy nhất:

a]     Mảng.

b]     Con trỏ.

c]     Tập tin.

d]     Cấu trúc[struct].

Câu 185: Chọn kết quả hợp lí cho chương trình sau:

void main[]

{

            struct sv

                        {

                         float d;

                         char ht[10];

                        };

            struct sv m, *p;

            p=&m;

            printf[“%p”,&m];

            printf[“%p”,p];

};

a]     “FFE6FFE6”.

b]     “FFE6FFE7”.

c]     “FFE66EFF”.

d]     Kết quả khác.                       [“FFE4FFE4”]/

Câu 186: Chọn kết quả đúng cho chương trình sau:

#include

void main[]

{

            clrscr[];

            struct sv

                        {

                         float d;

                         char ht[10];

                        };

            struct sv m, *p;

            p=&m;

            [*p].d=p->d=10;

            strcpy[m.ht,”NguyenVanTuan”];

            printf[“%0.1f”,m.d];

            printf[“%s”,m.ht];

};

a]     “10.000000NguyenVanTuan”.

b]     “10.0NguyenVanTuan”.

c]     Kết quả khác.           [“NguyenVanTuan”]// ht[10]. – Kết quả trên máy.

d]     Chương trình bị lỗi.

Câu 187: Chọn kết quả đúng cho chương trình sau:

#include

#include

void main[]

{

            struct S1

                        {

                         float d;

                         float d1;

                         float d2;

                        };

            struct S1 m={12, 1};

            printf[“%0.1f%0.1f%0.1f”,m.d, m.d1, m.d2];

};

a]     “12.01.00.0”.

b]     “12.0000001.0000000.000000”.

c]     Kết quả khác.

d]     Chương trình bị lỗi.

Câu 188: Chương trình sau cho kết quả là gì:

#include

void main[]

{

            int *px, *py;

            int a[]={1,2,3,4,5,6};

            px=a;

            py=&a[5];

            printf[“%d”,++px-py];

};

a]     -4.

b]     2.

c]     5.

d]     Không có kết quả đúng.

Câu 189: Có bao nhiêu cách khai báo biến cấu trúc:

a]     1.

b]     2.                     [Có đặt tên cấu trúc và không đặt tên cấu trúc]/

c]     3.

d]     4.

Câu 190:Khi sử dụng từ khóa typedef trước định nghĩa cấu trúc thì:

a]     Khai báo biến cho cấu trúc đó ta không cần sử dụng từ khóa “struct” nữa.

b]     Khai báo 1 biến cho loại cấu trúc đó ta cần sử dụng từ khóa “struct”.

c]     Không thể khai báo thêm biến cấu trúc nào nữa.

-         Lưu ý: Test trên Turbo C++ 3.0 không thấy có sự khác biệt.

Câu 191:Cho khai báo sau:

struct Date

            {

             unsigned int ngay:5;

             unsigned int thang;

             unsigned int nam: 11;

            } sn1;

Số lượng bít sử dụng trong biến cấu trúc trên là bao nhiêu:

a]     16.

b]     20.

c]     32.

d]     48.

Câu 192:Chọn đáp án đúng khi sử dụng trường kiểu bit:

a]     Độ dài các trường không vượt quá 16 bít.

b]     Áp dụng được cho các trường có kiểu số nguyên và số thực.

c]     Cho phép lấy địa chỉ trường kiểu nhóm bít.

d]     Xây dựng được các mảng kiểu nhóm bít.

Câu 193: Đâu là định nghĩa đúng về cấu trúc tự trỏ:

a]     Là một cấu trúc có một trường là con trỏ chứa địa chỉ của một biến cấu trúc.

b]     Là dạng cấu trúc có một trường  là con trỏ chứa địa chỉ của một biến cấu trúc có dạng dữ liệu giống nó.

c]     Là dạng cấu trúc có một trường có kiểu dữ liệu giống nó.

d]     Tất cả các ý trên.

Câu 194: Trong các khai báo sau, khai báo nào không đúng:

a]     struct Date{int ngay, thang, nam;};

b]     struct { int ngay, thang, nam;} D1,D2;

c]     typedef struct { int ngay, thang, nam;} Date;

d]     struct Date

{

 long int ngay:7;

 long int thang:6;

 long int nam:5;

};

Câu 195: Đâu là phát biểu dúng về danh sach moc nối:

a]     Độ dài danh sách không thể thay đổi.

b]     Các phần tử của nó được lưu trữ rải rác trong bộ nhớ RAM.   [?].

c]     Để cài đặt danh sách móc nối phải sử dụng đến cấu trúc tự trỏ.

d]     Chỉ có thể xóa được phần tử đầu tiên của danh sách.

Câu 196: Phát biểu nào không đúng về onion:

a]     Tất cả các trường chỉ dùng chung một vùng nhớ, và kích thước union bằng kích thước trường lớn nhất.

b]     Các trường nằm rải rác trong bộ nhớ RAM và kích thước của các trường bằng tổng kích thước các trường.

c]     Có thể khai báo các biến trong union có nhiều kiểu khác nhau.

d]     Tại một thời điểm ta không thể chứa dữ liệu tại tất cả các thành phần của một biến union được.

Câu 197: Cho đoạn chương trình:

struct ng

            {

             unsigned ngay;

             unsigned thang;

             unsigned nam;

            };

struct diachi

            {

             int sonha;

             char tenpho[20];

            };

union u

            {

             struct ng date;

             struct diachi address;

            } diachi_ngaysinh;

Kích thước của biến u là bao nhiêu byte:

a]     20.

b]     22.

c]     28.

d]     Đáp án khác.

Câu 198: Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:

            struct S1{ int info; struct S1 * next;} *head;

Biết con trỏ “head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Cho biết mục đích của câu lệnh sau:

            { head->next->next->info=111;};

a]     Câu lệnh bị lỗi.

b]     Giá trị “info” trong phần tử thứ 3 đã bị thay đổi.

c]     Giá trị “info” trong phần tử thứ 2 đã bị thay đổi.

d]     Giá trị “info” trong phần tử bất kì đã bị thay đổi.

Câu 199: Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:

            struct S1{ int info; struct S1 * next;} *head;

Biết con trỏ “head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Cho biết mục đích của câu lệnh sau:

            {[head->next]=[head->next]->next;};

a]     Loại bỏ phần tử thứ nhất ra khỏi danh sách.

b]     Loại bỏ phần tử thứ 2 ra khỏi danh sách.

c]     Loại bỏ phần tử thứ 3 ra khỏi danh sách.

d]     Câu lệnh bị lỗi.

Câu 200:Một danh sách trong đó tất cả các thao tác chèn thực hiện tại một đầu, thao tác xóa được thực hiện tại đầu kia của danh sách gọi là:

a]     Stack.

b]     Queue;

c]     Cây nhị phân.

d]     Cả 3 đáp án trên.

Câu 201: Đâu là phát biểu đúng về danh sách móc nối:

a]     Chỉ có thể thêm phần tử mới vào đầu danh sách.

b]     Không thể thêm phần tử mới vào cuối danh sách.

c]     Có thể thêm phần tử mới vào vị trí bất kì trong danh sách.

d]     Không câu nào đúng.

Câu 202: Đâu là phát biểu đúng về danh sach:

a]     Chỉ có thể xóa phần tử đầu tiên trong danh sách.

b]     Chỉ có thể xóa phần tử cuối cùng trong danh sách.

c]     Có thể xóa một phần tử tại vị trí bất kì trong danh sách.

d]     Tất cả đều sai.

Câu 203: Hàm dùng để cấp phát bộ nhớ động cho kiểu nhớ động do lập trình viên tự định nghĩa như [union, struct]:

a]     calloc[];

b]     malloc[];

c]     realloc[];

d]     Cả 3 đáp án trên.

Câu 204: Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:

struct S1{int info; struct S1 *next;} *head;

Biết con trỏ “*head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Nhóm câu lệnh nào sau đây thêm một phần tử vào đầu danh sách:

a]     p->next=head; head=p;

b]     p->next=head; head->p; head=p->next;

c]     head->next=p; p=head;

d]     Không có câu nào đúng.

Câu 205: Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:

struct S1{int info; struct S1 *next;} *head;

Biết con trỏ “*head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Nhóm câu lệnh nào sau đây xóa phần tử đầu tiên ra khỏi danh sách:

a]      head->next=head;

b]     head=head->next;

c]     head=head->next->next;

d]     2,3.

Câu 206:Đâu là phát biểu sai khi nói về danh sách liên kết:

a]     Mỗi phần tử trong danh sách liên kết phải có ít nhất một trường dùng để lưu địa chỉ.

b]     Sử dụng danh sách liên kết thường tiết kiệm bộ nhớ hơn dùng mảng.

c]     Sử dụng danh sách liên kết thường tốn bộ nhớ hơn dùng mảng.

d]     Tất cả các đáp án đều sai.

Câu 207: Câu nào không nói đến ưu điểm của việc sử dụng cấu trúc:

a]     Bạn có thể xử lí một cách hỗn hợp các kiểu dữ liệu trong một đơn vị.

b]     Bạn có thể lưu dữ xâu kí tự có đọ dài khác nhau vào trong một biến cấu trúc.

c]     Dữ liệu có thể lưu trữ trong một module và dưới dạng phân cấp.

d]     Cần ít nhất một bộ nhớ cho cùng dữ liệu.

Câu 208: Làm thế nào có thể biểu diễn phần tử “hoten” của SV1:

struct SV

            {

             char hoten[20];

            } SV1, *p;

p=&SV1;

a]     SV1.hoten;

b]     p->hoten;

c]     &hoten;

d]     1 và 2.

Câu 209: Đâu là phát biểu sai:

a]     Có thể truyền tham số là một biến struct cho hàm.

b]     Có thể truyền tham số là một biến con trỏ cho hàm.

c]     Có thể truyền tham số là một biến con trỏ struct cho hàm.

d]     Không thể truyền tham số là phần tử của struct cho hàm.

Câu 210: Cho mảng A gồm các phần tử kiểu struct, phát biểu nào là đúng khi truy cập đến các trường của các phần tử:

a]     A[chỉ số].tên_trường;

b]     A.tên_trường;

c]     &A.tên_trường;

d]     &A[chỉ số].tên_trường;

Câu 211: Không gian nhớ dùng để lưu trữ các node của danh sách liên kết kép:

a]     Lưu trữ rởi rác trong bộ nhớ.

b]     Luôn lưu trữ liên tục trong bộ nhớ.

c]     Lưu trữ theo kiểu phân trang.

d]     Lưu trữ theo kiểu phân đoạn.

Câu 212: Khi thực hiện việc thêm một node x vào cây nhị phân tìm kiếm ta chỉ cần:

a]     Tìm vị trí thích hợp cho nhánh cây con bên phải.

b]     Tìm vị trí thích hợp cho x trên toàn bộ cây.

c]     Tìm vị trí thích hợp cho nhánh cây con ở bên trái.

d]     Không ý nào đúng.

Câu 213:Dấu hiệu nào dưới đây cho biết node p của một danh sách liên kết đơn là node cuối cùng bên phải:

a]     [p->info!=NULL];

b]     [p->info==NULL];

c]     [p->next!=NULL];

d]     [p->next==NULL];

Câu 214: Khi loại bỏ node x ở cây nhị phân tìm kiếm ta chỉ cần kiểm tra xem:

a]     x có phải là node lá trái của cây nhị phân tìm kiếm hay không.

b]     x có phải là node lá phải của cây nhị phân tìm kiếm hay không.

c]     Sự tồn tại của x trên cây.

d]     Cả 3 phương án a, b, c đều sai.

Câu 215: Cơ chế nào dưới đây được cài đặt cho hàng đợi:

a]     FIFO.

b]     Round Robin.

c]     Tuần tự.

d]     FILO.

Câu 216: Dấu hiệu nào dưới đây cho biết danh sách liên kết đơn rỗng:

a]     [p->right==NULL];

b]     [p->info==NULL];

c]     [p==NULL];

d]     [p->next==NULL];

Câu 217: Dấu hiệu nào cho biết node phải của p có cây con bên phải:

a]     [p->right!=NULL];

b]     [p->left!=NULL];

c]     [p->right!=NULL]&&[p->right->right==NULL];

d]     [p->right!=NULL]&&[p->right->right!=NULL];

Câu 218: Cơ chế nào dưới đây được cài đặt cho Stack:

a]     FILO.

b]     Tuần tự.

c]     Round Robin.

d]     FIFO.

Câu 219: Một cây nhị phân được gọi là đúng nếu:

a]     node gốc và tất cả các node trung gian đều có 2 node con.

b]     Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên phải.

c]     Giá trị khóa của node gốc bao giờ cũng lớn hơn giá trị các khóa của nhánh cây con bên trái.

d]     Node gốc và các node trung gian đều có 2 node con và các node lá đều có mức giống nhau.

Câu 220: Khi thực hiện phép thêm một node lá x vào bên phải node p của cây nhị phân thông thường, ta cần:

a]     Kiểm tra sự tồn tại của p và các lá bên phải p;

b]     Kiểm tra sự tồn tại của node lá bên phải p.

c]     Kiểm tra sự tồn tại của node p.

d]     Không cần thực hiện cả 3 điểu kiện nêu trong câu hỏi.

Câu 221: Cho đoạn chương trình sau:

int a, *p, *q;

float *t;

a=5; p=&a;

p=q;

t=p;

printf[“%d%f”,a,t];

Kết quả:

a]     5-12.

b]     5.

c]     Chương trình lỗi.                 [Can’t convert int* to float*]/

d]     Kết quả khác.

Câu 222:Số màu có thể biểu diễn trong chế độ đồ họa do yếu tố nào quy định:

a]     Số bít tương ứng với 1 pixel.

b]     Độ phân giải màn hình.

c]     Do kích thước màn hình.

d]     Không phải 3 yếu tố trên.

Câu 223: Trong chế độ 256 màu, số bít cho mỗi pixel là:

a]     5.

b]     6.

c]     7.

d]     8.

Câu 224: Các file tối thiểu cần cho việc vẽ đồ họa:

a]     GRAPH.H, *.BGI, *.CHR.

b]     GRAPH.H, *.TXT, *.DOC.

c]     *.BGI, *.TXT, *.DOC.

d]     *.CHR, *.TXT, *.DOC.

Câu 225: Một chương trình đồ họa gồm bao nhiêu đoạn:

a]     2.

b]     3.         [Khởi tạo, detect, link]/

c]     4.

d]     5.

Câu 226: Trong chế độ graphic, gốc tọa độ là:

a]     Góc trên bên trái.

b]     Góc trên bên phải.

c]     Góc dưới bên trái.

d]     Góc dưới bên phải.

Câu 227: Ba màu cơ bản trong máy tính là:

a]     RED, GREEN, BLUE.

b]     RED, YELLOW, BLUE.

c]     BLUE, YELLOW, BLUE.

d]     GREEN, RED, PING.

Câu 228: Hàm getpixel[int x, int y] dùng để  làm gì:

a]     Vẽ một điểm tại tọa độ [x,y];

b]     Lấy giá trị màu của điểm tại tọa độ [x,y];

c]     Vẽ một điểm tại vị trí con trỏ.

d]     Cả 3 phương án đều sai.

Câu 229:Sau khi hàm setwiewport[int x1, int y1, int x2, int y2, int clip]; được thực hiện thì tọa độ [0,0] của tất cả các hàm vẽ sẽ là:

a]     Góc  trên phải của màn hình.

b]     Góc trên phải của viewport.

c]     Góc trên trái của màn hình.

d]     Góc trên trái của viewport.

Câu 230: Trong chế độ đồ họa, hàm nào thường được dùng để hiện nội dung xâu:

a]     printf[];

b]     outtext[char far * textstring];

c]     outtextxy[int x, int y, char far *textstring];

d]     putchar[];

Câu 231: Trong bước khởi tạo đồ họa ta cần:

a]     Xác định vi mạch.

b]     Chọn chế độ đồ họa.

c]     Cả 2 phương án trên đều sai.

d]     Cả 2 phương án trên đều đúng.

Câu 232: Khẳng định nào dưới đây là sai:

a]     Hàm moveto[int x, int y] di chuyển vị trí hiện tại của màn hình đồ họa tới điểm có tọa độ [x,y];

b]     lineto[int x, int y] là hàm vẽ đường thẳng từ vị trí con trỏ đồ họa hiện tại tới điểm có tọa độ [x,y].

c]     linerel[int x, int y] vẽ đường thẳng tử gốc tọa độ tới điểm có tọa độ [x,y];

d]     line[int x1, int y1, int x2, int y2] vẽ đường thẳng nối liền 2 điểm có tọa độ [x1,y1] và [x2,y2];

Câu 233:Hàm putpixel[int x, int y] dùng để làm gì:

a]     Vẽ một điểm tại tọa độ [x,y];

b]     Lấy màu của điểm có tọa độ [x,y];

c]     Vẽ một điểm tại vị trí con trỏ.

d]     Cả 3 phương án trên đều sai.

Câu 234:Lệnh nào dùng để đóng chế độ đồ họa:

a]     getch[];

b]     closegraph[];

c]     Cả 2 phương án trên đều sai.

d]     Cả 2 phương án trên đều đúng;

Câu 235: Hàm closegraph[] dùng để làm gì:

a]     Sẽ giải phóng hết các vùng nhớ giành cho đồ họa.

b]     Dùng để dừng màn hình.

c]     Dùng để xóa màn hình.

d]     Cả 3 phương án trên đều sai.

Câu 236: Phát biểu nào là đúng khi nói về 2 hàm:

rectangle[int x1, int y1, int x2, int y2] và bar[int x1, int y1, int x2, int y2]:

a]     Cả 2 hàm đều vẽ hình chữ nhật.

b]     Hàm thứ nhất chỉ vẽ đường viền hình chữ nhật, không tô màu bên trong còn hàm thứ 2 thì tô cả màu bên trong.

c]     Hàm thứ 2 chỉ vẽ đường viền hình chữ nhật, không tô màu bên trong còn hàm thứ nhất thì tô cả màu bên trong.

d]     Cả hai hàm đều vẽ hình chữ nhật và tô cả màu bên trong.

Câu 237: Chế độ đồ họa bao gồm các vấn đề:

a]     Bao nhiêu màu.

b]     Gồm những màu gì.

c]     Độ phân giải của màn hình  là bao nhiêu.

d]     Cả 3 phương án trên.

Câu 238: Hàm setcolor[int color] làm nhiệm vụ gì:

a]     Thiết lập màu nền.

b]     Đặt màu vẽ hiện tại.

c]     Cả 2 ý trên đều đúng.

d]     Cả hai ý trên đều sai.

Câu 239: Tham số clip trong hàm setviewport[int x1, int y1, int x2, int y2, int clip]; qui định vấn đề gì:

a]     Cho phép hiển thị hay không hiển thị các nét vẽ bên trong viewport.

b]     Cho phép hiển thị hay không hiển thị các nét vẽ bên ngoài viewport.

c]     Cả 2 đều đúng.

d]     Cả 2 đều sai.

Câu 240: Điểu gì là đúng nhất khi nói về hàm floodfill[int x, int y, int Border];

a]     Dùng để tô màu hình tròn chứa điểm [x,y].

b]     Dùng để tô màu hình chữ nhật chứa điểm [x,y].

c]     Dùng để tô màu đa giác chứa điểm [x,y];

d]     Dùng để tô màu miền kín bất kì chứa điểm [x,y];

Câu 241: Trong chế độ đồ họa, hàm nào sau đây xác  lập kiểu chữ, cỡ chữ:

a]     outtextxy[int x, int y, char far * textstring];

b]     outtext[char far *textstring];

c]     settextstyle[int font, int direction, int charsize];

d]     Cả 3 phương án trên.

Video liên quan

Chủ Đề