Nội dung bài học bài Khai báo biến dưới đây sẽ giúp các em tìm hiểu về cấu trúc chung của khai báo biến, biết được rằng mọi biến dùng trong chương trình đều được khai báo tên và kiểu dữ liệu, cấu trúc chung của khai báo biến trong ngôn ngữ Pascal và giúp các em có kỹ năng xác định được kiểu cần khai báo của dữ liệu đơn giản. Mời các em cùng theo dõi bài học.
Mọi biến dùng trong chương trình đều phải được khai báo tên biến và kiểu dữ liệu của biến
Tên biến dùng để xác lập quan hệ giữa biến với địa chỉ bộ nhớ nơi lưu trữ giá trị của biến
Trong ngôn ngữ Pascal, cấu trúc chung của khai báo biến có dạng:
Var < Danh sách biến >:< Kiểu dữ liệu >;
Trong đó:
Trong ngôn ngữ Pascal, cấu trúc chương trình của khai báo biến như sau:
Cấu trúc chương trình | |
Phần khai báo | Program < Tên chương trình >; Uses < Tên các thư viện >; Const < Tên hằng > = < Giá trị của hằng >; Var < Danh sách biến >: < Kiểu dữ liệu >; (* có thể còn có các khai báo khác* ) |
Bảng 1. Cấu trúc chương trình của khai báo biến
Ví dụ:
Xét khai báo biến:
Var
X, Y, Z: real;
C: char;
I, J: byte;
N: word;
Tổng bộ nhớ cần cấp phát (Dựa vào bảng Bộ nhớ lưu trữ một giá trị của các kiểu dữ liệu đã học trong Bài 4: Một số kiểu dữ liệu chuẩn):
Khi khai báo biến cần lưu ý:
Biến x có thể nhận các giá trị -5; 10; 100;
Biến y có thể nhận các giá trị: -0.1; 0.7; 100.
Hãy viết cách khai báo cho 2 biến trên.
Gợi ý làm bài:
Var x: Integer;
y: Real;
Hãy chỉ ra các lỗi trong khai báo sau và sửa lại cho đúng:
Var x, y: Integer;
Y, A, B: Byte
g = 9.8;
Gợi ý làm bài:
Các lỗi:
Sửa lại:
Var x, y: Integer;
Z, A, B: Byte;
Const g = 9.8;
Sau khi học xong Bài 5: Khai báo biến, các em cần nắm vững các nội dung trọng tâm:
Các em có thể hệ thống lại nội dung kiến thức đã học được thông qua bài kiểm tra Trắc nghiệm Tin học 11 Bài 5 cực hay có đáp án và lời giải chi tiết.
Khai báo nào sau đây đúng?
Danh sách các biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau bởi:
Trong Pascal, cú pháp để khai báo biến là:
Câu 4-10: Mời các em đăng nhập xem tiếp nội dung và thi thử Online để củng cố kiến thức về bài học này nhé!
Trong quá trình học tập nếu có thắc mắc hay cần trợ giúp gì thì các em hãy comment ở mục Hỏi đáp, Cộng đồng Tin học DapAnHay sẽ hỗ trợ cho các em một cách nhanh chóng!
Chúc các em học tập tốt và luôn đạt thành tích cao trong học tập!
-- Mod Tin Học 11 DapAnHay
Khai báo nào sau đây đúng?
Danh sách các biến là một hoặc nhiều tên biến, các tên biến được viết cách nhau bởi:
Trong Pascal, cú pháp để khai báo biến là:
Trong ngôn ngữ lập trình Pascal, từ khóa Var dùng để:
Trong ngôn ngữ lập trình Pascal, hằng và biến khác nhau cơ bản như thế nào?
Trong ngôn ngữ lập trình Pascal, từ khoá CONST dùng để:
Hãy chọn phát biểu đúng về biến trong ngôn ngữ lập trình?
Biến là …
Đại lượng dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình gọi là:
Trong ngôn ngữ lập trình Pascal, câu lệnh nào sau đây là khai báo hằng?
Họ và tên
Tiêu đề câu hỏi
Nội dung câu hỏi
Câu trả lời của bạn
Tổng (hiệu, tích) của hai số nguyên cho kết quả là một số nguyên, những tổng (hiệu, tích) của hai giá trị integer không thuộc về kiểu integer khi nó vượt ra ngoài miền giá trị từ -32768 tới +32767 của kiểu integer;
Câu trả lời của bạn
Cột bên trái là các số nguyên dương
B = -32768 - 1
C = 200 * 200
D = 15 mod 7
Câu trả lời của bạn
Các giá trị A, B. C không thuộc kiểu integer.
Giá trị D thuộc kiểu integer
a, Biến a biểu diễn số học sinh trong lớp.
b, Biến b để chứa giá trị của một phân số.
c, Biến c ghi lại số trang của cuốn từ điển.
d, Biến d chứa chữ cái đầu của tên học sinh
Câu trả lời của bạn
Var
a: Integer;
b: real;
c: int;
d: char;
a, Hằng số PI với giá trị 3,14
b, Biến tb_tin biểu diễn điểm trung bình môn Tin học của một học sinh
c, Biến chieu_cao để chứa chiều cao của học sinh (tính theo mét).
d, Biến so_hoc_sinh biểu diễn số học sinh trong trường
e, Biến chu_cai nhận giá trị một chữ cái trong bảng chữ cái hoặc một chữ số từ 0 đến 9
Câu trả lời của bạn
Const
PI = 3.14;
Var
tb_tin: real;
chieu_cao: real;
so_hoc_sinh: integer;
chu_cai: char;
Câu trả lời của bạn
Một biến kiểu CHAR chiếm 1 byte trong bộ nhớ.
B. int (số nguyên), float (số thực), double (số tự nhiên), char (kí tự)
C. int (số nguyên), float (số thực), double (số thực), char (kí tự)
D. int (số tự nghiên), float (số nguyên), double (số thực), char (kí tự)
Câu trả lời của bạn
Đáp án đúng là: C
Ngôn ngữ lập trình C có một số kiểu dữ liệu cơ bản là:
int: kiểu số nguyên (thường là 4 bytes - đối với máy tính hệ 64bit như hiện nay)
float: kiểu số thực (4 bytes - độ chính xác 6 chữ số sau dấu phẩy)
double: kiểu số thực (8 bytes - độ chính xác 10 chữ số sau dấu phẩy)
char: kiểu kí tự (1 byte), dùng để biểu diễn 256 kí tự trong bảng mã ASCII
A. tongChan
B. tong-le
C. count1
D. giatri_Min
E. gia.tri.max
F. _int_
G. continue
H. Printf I. 2var
Câu trả lời của bạn
Đáp án đúng là: A, C, D, F, H
Giải thích:
Trong lập trình C, quy tắc đặt tên biến là:
Chữ cái đầu tiên là chữ cái thường (a-z) hoặc chữ cái viết hoa (A-Z) hoặc dấu gạch dưới (_)
Các chữ cái tiếp theo cũng tương tự như chữ cái đầu, ngoài ra có thể là chữ số (0-9)
Tên biến không được trùng với từ khóa trong ngôn ngữ lập trình C
Tên biến phân biệt hoa thường
Các đáp án sai:
Đáp án B sai vì chứa kí tự gạch ngang (-)
Đáp án E sai vì chứa kí tự chấm (.)
Đáp án G sai vì trùng với từ khóa continue trong ngôn ngữ lập trình C
Đáp án I sai vì bắt đầu bằng số
b, Khai báo biến để xác định .................... của nó.
c, Khai báo hằng để xác định .................... của nó.
d, Phần khai báo biến bắt đầu bằng từ khóa .................... (viết tắt của từ variable: biến).
e, Phần khai báo hằng bắt đầu bằng từ khóa .................... (viết tắt của từ constant: hằng).
Câu trả lời của bạn
a, Trước khi sử dụng, cả hằng và biến đều phải được khai báo.
b, Khai báo biến để xác định kiểu dữ liệu của nó.
c, Khai báo hằng để xác định giá trị của nó.
d, Phần khai báo biến bắt đầu bằng từ khóa Var (viết tắt của từ variable: biến).
e, Phần khai báo hằng bắt đầu bằng từ khóa Const (viết tắt của từ constant: hằng).
A. x := 6;
B. x = 6;
C. x = 6
D. x <- 6
Câu trả lời của bạn
Đáp án đúng là: B
Giải thích:
Toán tử gán trong ngôn ngữ lập trình C là dấu bằng (=). Do đó, đáp án đúng là B hoặc C
Kết thúc câu lệnh gán cần có dấu chấm phẩy. Suy ra, đáp án đúng là B
Ngoài ra, ta cũng có thể gán giá trị giống nhau cho nhiều biến bằng cách:
int x, y, z;
x = y = z = 6;
B. x, y, z: float
C. double x, y, z;
D. x = 0, y = 1, z = 2;
Câu trả lời của bạn
Đáp án đúng là: C
Giải thích:
Cú pháp khai báo biến trong ngôn ngữ lập trình C là:
<kiểu dữ liệu> <danh sách biến>;
Chú ý: cần có dấu chấm phẩy để kết thúc câu lệnh
A. x > y
B. x < y
C. x = y
D. x == y
E. x != y
F. x := y
G. x => y
H. x >= y
I. x <= y
K. x =< y
Câu trả lời của bạn
Đáp án đúng là: A, B, D, E, H, I
Giải thích:
Ngôn ngữ lập trình C có 6 toán tử so sánh là:
Lớn hơn (>)
Nhỏ hơn (<)
Bằng (==)
Khác (!=)
Lớn hơn hoặc bằng (>=)
Nhỏ hơn hoặc bằng (<=)
Đáp án C sai vì (=) là toán tử gán
Đáp án F, G, K sai vì không có toán tử (:=), (=>) và (=<)
int x = 2, y = 3, z = -1;
int t = 3 * x / y - z * x + y % 5 / 2;
Hỏi giá trị của t bằng bao nhiêu?
A. 2
B. 3
C. 4
D. 5
Câu trả lời của bạn
Đáp án đúng là: D
Giải thích:
Trong ngôn ngữ lập trình C, có 5 toán tử số học cơ bản là: cộng (+), trừ (-), nhân (*), chia nguyên (/), chia lấy dư (%).
Các toán tử có độ ưu tiên khác nhau: các toán tử * / và % có độ ưu tiên cao hơn các toán tử + và -
Các toán tử có độ ưu tiên cao hơn (* / %) sẽ thực hiện trước, các toán tử có độ ưu tiên thấp hơn (+ -) sẽ thực hiện sau. Trường hợp các toán tử có độ ưu tiên ngang nhau thì thứ tự thực hiện là từ trái sang phải.
Quá trình thực hiện tính toán theo trình tự như sau:
int x = 2, y = 3, z = -1;
int t = 3 * x / y - z * x + y % 5 / 2;
// t = 3 * 2 / 3 - (-1) * 2 + 3 % 5 / 2
// t = (3 * 2) / 3 - (-1) * 2 + 3 % 5 /2
// t = 6 / 3 - (-1) * 2 + 3 % 5 / 2
// t = (6 / 3) - (-1) * 2 + 3 % 5 / 2
// t = 2 - (-1) * 2 + 3 % 5 / 2
// t = 2 - [(-1) * 2] + 3 % 5 / 2
// t = 2 - (-2) + 3 % 5 / 2
// t = 2 - (-2) + (3 % 5) / 2
// t = 2 - (-2) + 3 / 2
// t = 2 - (-2) + (3 / 2)
// t = 2 - (-2) + 1
// t = 4 + 1
// t = 5
Trong quá trình thực hiện tính toán trên, bạn chú ý 2 chỗ:
Kết quả 3 % 5 bằng 3. Vì đây là phép chia lấy phần dư của 3 cho 5.
Kết quả 3 / 2 bằng 1. Vì đây là phép chia lấy phần nguyên của 3 cho 2 (kết quả thực là 1.5)
A. a += b; B. a -= b; C. a /= b; D. a %= b; E. a *= b; F. a &= b; G. a++; H. a--;
Câu trả lời của bạn
Đáp án đúng là: A, B, C, E, G, H
Giải thích:
Trong ngôn ngữ lập trình C, có một cách viết biểu thức dạng rút gọn như sau:
a += b tương đương với a = a + b a -= b tương đương với a = a - b a /= b tương đương với a = a / b a %= b tương đương với a = a % b a *= b tương đương với a = a * b a &= b tương đương với a = a & b a++ tương đương với a = a + 1 a-- tương đương với a = a - 1
Đáp án A, B, C, E, G, H đúng vì các toán tử trong những ví dụ đó có thể áp dụng cho cả số nguyên và số thực.
Đáp án D và F sai vì các toán tử trong những ví dụ đó chỉ có thể áp dụng cho số nguyên nên với a, b là số thực thì sẽ bị lỗi
Toán tử % là phép chia lấy dư giữa 2 số nguyên
Toán tử & là toán tử logic bit giữa 2 số nguyên
int t = -2 * z / 5 <= 6 + !(x * y - z) && y % (2 * z - 3);
Hỏi đáp án của t bằng bao nhiêu?
A. 0
B. 1
C. 2
D. 3
Câu trả lời của bạn
Đáp án đúng là: B
Giải thích:
Trong biểu thức trên có tồn tại 4 loại toán tử:
Toán tử đóng mở ngoặc đơn: ()
Toán tử số học: + - * / %
Toán tử so sánh: <=
Toán tử logic: &&
Độ ưu tiên của 4 loại toán tử trên theo thứ tự giảm dần là: toán tử đóng mở ngoặc đơn, toán tử số học, toán tử so sánh và toán tử logic
Trình tự thực hiện biểu thức trên là:
int x = 2, y = 4, z = 3; int t = -2 * z / 5 <= 6 + !(x * y - z) && y % (2 * z - 3); // t = -2 * 3 / 5 <= 6 + !(2 * 4 - 3) && 4 % (2 * 3 - 3); // t = -2 * 3 / 5 <= 6 + !(8 - 3) && 4 % (2 * 3 - 3); // t = -2 * 3 / 5 <= 6 + !5 && 4 % (2 * 3 - 3); // t = -2 * 3 / 5 <= 6 + !5 && 4 % (6 - 3); // t = -2 * 3 / 5 <= 6 + !5 && 4 % 3; // t = -6 / 5 <= 6 + !5 && 4 % 3; // t = -1 <= 6 + !5 && 4 % 3; // t = -1 <= 6 + !5 && 1; // t = -1 <= 6 + !5 && 1; // t = -1 <= 6 + 0 && 1; // t = -1 <= 6 && 1; // t = 1 && 1; // t = 1;
A. -1
B. 0
C. 1
D. Sai cú pháp
Câu trả lời của bạn
Đáp án đúng là: C
Giải thích:
Ngôn ngữ lập trình C có 3 toán tử logic là: AND(&&), OR(||) và NOT(!)
Toán tử &&: trả về TRUE(1) khi cả 2 toán hạng của nó đều là TRUE(1)
Toán tử ||: trả về TRUE(1) khi 1 trong 2 toán hạng của nó là TRUE(1)
Toán tử !: trả về TRUE(1) khi toán hạng là FALSE(0)
Độ ưu tiên của các toán tử theo thứ tự giảm dần là: NOT(!) AND(&&) OR(||). Do đó, toán tử NOT sẽ thực hiện trước, xong đến toán tử AND và cuối cùng là toán tử OR.
Khi các toán hạng có cùng độ ưu tiên
Kết quả của biểu thức sử dụng toán tử logic là: TRUE(1) hoặc FALSE(0)
Như vậy, trình tự thực hiện biểu thức trên như sau:
10 && (-10) || 0 && !(-1) // toán tử ! sẽ thực hiện đầu tiên 10 && (-10) || 0 && [!(-1)] // -1 khác 0 nên hiểu là TRUE, 10 && (-10) || 0 && 0 // phủ định của TRUE là FALSE(0) [10 && (-10)] || 0 && 0 // toán tử && bên trái thực hiện trước 1 || 0 && 0 // 10 và -10 đều là TRUE nên kết quả là TRUE(1) 1 || [0 && 0] // toán tử && còn lại thực hiện trước 1 || 0 // 0 là FALSE nên kết quả của phép && là 0 1 // kết quả của phép || còn lại là TRUE(1) // vì có 1 toán hạng là TRUE(1)
A. scanf("%c", &N);
B. scanf("%d, &N");
C. scanf("%d", N);
D. scanf("%d", &N);
Câu trả lời của bạn
Đáp án đúng là: D
Giải thích:
Cú pháp để nhập dữ liệu từ bàn phím là:
scanf("chuỗi định dạng nhập dữ liệu", danh sách tham số)
Chuỗi định dạng nhập dữ liệu là định dạng kiểu dữ liệu cần nhập. Ở đây chỉ được phép chứa mã code ứng với kiểu dữ liệu muốn nhập (loại code giống với hàm printf() ở bên trên). Nếu muốn nhập vào giá trị ứng với nhiều biến cùng một lúc, thì các mã code phải viết liên tiếp nhau hoặc cách nhau bằng dấu cách, không được dùng thêm kí tự nào khác như dấu phẩy (,)
Danh sách tham số là danh sách địa chỉ của các biến muốn nhập vào, thứ tự tương ứng với các mã code trong phần chuỗi định dạng nhập dữ liệu.
Giải thích các đáp án:
Đáp án A sai vì: %c chỉ dùng để nhập kí tự
Đáp án B sai vì: danh sách tham số (&N) phải nằm ngoài dấu nháy kép (")
Đáp án C sai vì: danh sách tham số phải là địa chỉ của biến (thêm kí tự & phía trước biến), chứ không phải giá trị của biến
Đáp án D đúng vì: %d dùng để nhập vào số nguyên, danh sách tham số đúng là địa chỉ của biến N (&N)
char c = 'A'; int i = -1000; unsigned int ui = 2500000000; float f = -1.534534;
Hỏi những cách in ra màn hình nào sau đây là đúng (không mất dữ liệu)?
A. printf("c=%c", c);
B. printf("c=%d", c);
C. printf("c=%f", c);
D. printf("i=%c", i);
E. printf("i=%d", i);
F. printf("i=%u", i);
G. printf("i=%f", i);
H. printf("ui=%ud", ui);
I. printf("ui=%f", ui);
K. printf("ui=%u", ui);
L. printf("f=%f", f);
M. printf("f=%f", &f);
Câu trả lời của bạn
Đáp án đúng là: A, B, E, K, L
Giải thích:
Cú pháp của hàm printf trong ngôn ngữ lập trình C là:
printf("chuỗi hiển thị", danh sách tham số)
Chuỗi hiển thị sẽ là dạng text bao gồm các kí tự nhìn thấy, không nhìn thấy (kí tự xuống dòng \n, kí tự tab \t) và format để hiển thị giá trị của biến.
Format để hiển thị giá trị của biến sẽ bắt đầu bằng kí tự phần trăm (%) theo sau là mã code để format.
Một số mã code như sau:
Giải thích các đáp án:
Đáp án A đúng vì: %c dùng để hiển thị kí tự
Đáp án B đúng vì: %d dùng để hiển thị số nguyên. Mà thực chất, kí tự char ứng với một số nguyên từ 0 đến 255 trong bảng mã ASCII.
Đáp án C sai vì: %f chỉ dùng để hiển thị số thực
Đáp án D sai vì: %c chỉ dùng để biểu diễn kí tự char, mà kiểu char chỉ có 1 byte nên không đủ để biểu diễn số nguyên -1000
Đáp án F sai vì: %u chỉ dùng để biểu diễn số nguyên không dấu, nên không dùng để hiển thị số nguyên -1000
Đáp án G sai vì: %f chỉ dùng để hiển thị số thực
Đáp án H sai vì: không có format %ud, khi đó kết quả hiển thị lên sẽ thừa chữ d
Đáp án I sai vì: %f chỉ dùng để biểu diễn số thực
Đáp án M sai vì: &f hiểu là lấy ra địa chỉ của biến f, chứ không phải giá trị của biến f.
Câu trả lời của bạn
Syntax-error: Lỗi cú pháp được phát hiện ngay khi biên dịch chương trình. Trình biên dịch sẽ thông báo lỗi tại cửa sổ Output.
Output
error C2143: syntax error : missing ';' before '}
Runtime-error: Chương trình đã được biên dịch thành công, gặp lỗi khi chạy chương trình do đầu vào hoặc đầu ra có giá trị không mong muốn.
#include <stdio.h>
void main()
{
int a, b = 5, c = 0;
a = b/c;
}
Output
Unhandled exception at 0x012313a0 in example.exe: 0xC0000094: Integer division by zero.
Logical-error: Chương trình đã được biên dịch và chạy không gặp lỗi Runtime-error. Nhưng kết quả đầu ra không đúng theo yêu cầu do logic xử lý bài toán bị sai.
A. if biểu_thức
B. if <biểu thức>
C. if {biểu thức}
D. if (biểu thức)
Câu trả lời của bạn
Đáp án đúng là: D
0 Bình luận
Để lại bình luận
Địa chỉ email của hạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *