c2_hvtc
Bài chuẩn bị chương 2
Họ Tên : Lê Văn Huy
Lớp : CQ46/41.01
Câu 2: Nêu cấu trúc tổng quát của một chương trình C?
Cấu trúc một chương trình C:
- Khai báo các thư viện và định nghĩa:
#include <.....>
#define ....
- Khai báo nguyên mẫu hàm :
<kiểu dữ liệu> <tên hàm> (danh sách tham số);
- Chương trình chính
Main()
{
Các lệnh ...;
}
- Khai báo hàm người dùng :
<kiểu dữ liệu> <tên hàm> (danh sách doi so)
{ khai báo biến cục bộ;
Các lệnh trong hàm;
Return kết quả hàm;
}
Câu 3: Khái niệm khối lệnh, sự tương tác giữa các biến trong và ngoài khối lệnh?
Khái niệm khối lệnh :
Khối lệnh là một dãy các lệnh đặt trong cặp dấu { và }. Mỗi khối lệnh có thể coi như một lệnh riêng lẻ, ở đâu đặt được một lệnh thì cũng có thể đặt được một khối lệnh.
Sự tương tác giữa các biến (biến đơn, biến mảng) trong và ngoài khối lệnh, cụ thể:
- Nếu khai báo một biến ở ngoài khối lệnh không trùng tên với biến nằm trong khối lệnh thì khối lệnh nằm trong được phép sử dụng biến ngoài khối lệnh đó.
- Nếu trong và ngoài khối lệnh đều có khai báo một biến (trùng tên) thì biến ở khối lệnh nằm trong là biến địa phương, chỉ của khối lệnh đó, không ảnh hưởng đến khối lệnh nằm ngoài.
Câu 4: Các kiểu dữ liệu cơ sở trong C: Cách lưu trữ và phạm vi biểu diễn?
Các kiểu dữ liệu cơ sở trong C:
+ Kiểu dữ liệu số nguyên : là dữ liệu biểu diễn các số nguyên trong máy tính, bao gồm các kiểu số nguyên cụ thể được liệt kê ở bảng dưới đây:
Kiểu dữ liệu
Miền giá trị
Bộ nhớ lưu trữ
int
-32.768 - 32.767
2 bytes
short
-32.768 - 32.767
2
long
-2.147.483.648 - 2.147.483. 647
4
unsigned int
0 - 65.535
2
unsigned short
0 - 65.535
2
unsigned long
0 – 4.294.967.295
4
+ Dữ liệu kiểu số thực
Dữ liệu kiểu số thực là dữ liệu biểu diễn các số thực trong máy tính, bao gồm các kiểu số thực cụ thể được liệt kê ở bảng dưới đây:
Kiểu dữ liệu
Phạm vi biểu diễn
Độ chính xác
Bộ nhớ lưu trữ
float
1.2E-38 – 3.4E+38
7 chữ số
4 bytes
double
2.2E-308 – 1.8E+308
15 chữ số
8
long double
3.4E-4932 – 3.4E+4932
19 chữ số
10
+ Dữ liệu kiểu char là dữ liệu biểu diễn một kí tự thông qua bảng mã ASCII. Mã của kí tự là số thứ tự của kí tự đó trong bảng mã. Có tất cả 256 kí tự đánh số tự 0 đến 255, trong đó các mã từ 0 đến 31 dùng để điều khiển quá trình vào - ra của thiết bị ngoại vi, không in ra được.Dữ liệu kiểu char được lưu trữ ở 1 byte trong bộ nhớ.
+ Dữ liệu kiểu xâu
Dữ liệu kiểu xâu (xâu kí tự) là dữ liệu thể hiện một dãy kí tự bất kì. Trong C, xâu gồm không quá 255 kí tự bất kì đặt trong một cặp dấu nháy kép.
Ví dụ: “ANH YEU EM”
- xâu được lưu trữ trong một mảng ô nhớ liền nhau, mỗi kí tự một byte, ngoài ra còn sử dụng thêm một ô nhớ cuối cùng để lưu mã số 0 (kí tự null– kí tự đầu tiên của bảng mã ASCII, kí hiệu là \0).
+ Dữ liệu kiểu logic
Dữ liệu kiểu logic là dữ liệu thể hiện một trong hai giá trị đúng hoặc sai của một mệnh đề logic. hai giá trị sai hoặc đúng được thể hiện bằng một số nguyên kiểu int, có giá trị bằng 0 (sai) và khác 0 (đúng).
Câu 5: Các đại lượng được sử dụng trong C như thế nào?
Các đại lương được sử dụng trong C:
a) Hằng
Hằng là một đại lượng xác định, có giá trị không thay đổi trong suốt quá trình thực hiện chương trình.
- Hằng nguyên được viết dưới dạng: ±n với n là một số nguyên hệ 10 nằm trong miền giá trị, có thể có dấu + hoặc - trước chữ số đầu tiên
- Hằng thực có hai cách viết:
Cách 1: Viết dạng dấu chấm tĩnh theo mẫu: ±n.m với n, m là dãy các chữ số hệ 10
Cách 2: Viết dạng dấu chấm động. Trong cách viết này, số thực được tách thành hai phần là phần định trị và phần bậc, với dạng tổng quát là: ±n.mE±s hoặc ±n.me±s .
Trong đó: n, m, s là các chữ số hệ 10, E±s với nghĩa là nhân với 10±s , phần định trị và phần bậc có thể có dấu ± đi kèm và viết liền nhau không chứa khoảng trống, các dấu + và dấu chấm có thể không viết.
- Hằng kí tự được viết bằng cách đặt một kí tự trong cặp dấu nháy đơn (‘).
Ví dụ: ‘A’, ‘a’, ...
- Hằng xâu kí tự có cách viết: Đặt xâu kí tự bất kì (kể cả các kí tự đặc biệt viết sau dấu \) trong cặp dấu nháy kép (“).
Ví dụ: “hehe”
b) Biến (Variable)
Biến là một đại lượng có giá trị thể thay đổi trong quá trình thực hiện chương trình.
-Khai báo biến
Mọi biến, trước khi dùng, phải được khai báo trước để trình biên dịch xác định được kích thước,vị trí và ghi nhận sự có mặt của biến. Dạng khai báo như sau:
<Kiểu dữ liệu > <Danh sách biến>;
Trong đó:
<Danh sách biến> là tên các biến cần khai báo đặt cách nhau dấu phẩy;
<Kiểu dữ liệu > là một trong các kiểu đã giới thiệu ở phần trước (int, long, float, char, ...)
Ví dụ:
int i,n; char kt;
float S;
- Gán giá trị ban đầu cho biến : có dạng: <Tên biến>=<biểu thức>;
c) Hàm mẫu
Hàm mẫu là hàm xây dựng sẵn một số chương trình mẫu để tính giá trị của các hàm thông dụng
Ví dụ: Hàm fabs(x) trả về giá trị là trị tuyệt đối của số thực x
Câu 6: Nêu khái niệm và cách tính giá trị của các loại biểu thức trong C?
Khái niệm:
Biểu thức là một tập hợp các đại lượng liên kết với nhau bởi các dấu phép toán và các dấu hiệu thể hiện trình tự ưu tiên. Trong biểu thức, các đại lượng còn gọi là các toán hạng, các dấu phép toán còn gọi là toán tử, biểu thức chỉ có một toán hạng gọi là phép toán một ngôi.
- căn cứ vào giá trị của biểu thức, ta chia biểu thức thành các loại sau:
+ Biểu thức số Một tập hợp các đại lượng (hằng, biến, hàm) có cùng kiểu số (nguyên hay thực) được liên kết với nhau bởi các dấu phép toán số học, các dấu mở ngoặc, đóng ngoặc một cách có ý nghĩa tạo thành biểu thức số học.
Cách tính giá trị : Thứ tự ưu tiên thực hiện của các phép toán được xếp từ cao đến thấp, như sau: Các phép toán trong () > Phép tính hàm > Phép toán một ngôi ( như -a hay +a) > Phép nhân, chia, lấy phần dư > Phép cộng, trừ.Nếu trong biểu thức có nhiều phép toán cùng một mức độ ưu tiên thì thực hiện từ trái sang phải, riêng phép toán một ngôi thì thực hiện từ phải sang trái.
+ Biểu thức quan hệ
Khái niệm: Tập hợp các biểu thức liên kết với nhau bởi các dấu phép toán quan hệ và dấu (, ) thì tạo thành một biểu thức quan hệ.Bao gồm : <,>, <=, >= ,= =, !=.
Tính giá trị của biểu thức quan hệ: Trong biểu thức quan hệ, nếu có cả các phép toán số học thì trật tự ưu tiên khi thực hiện các phép toán được xếp từ cao xuống thấp như sau:
- Các phép toán số học
- Các phép toán trong ngoặc
- Các phép toán ưu tiên mức 1 ( >, <, >=, <=)
- Các phép toán ưu tiên mức 2 ( = = , != )
Nếu cùng mức độ ưu tiên sẽ thực hiện từ trái qua phải. ở mỗi phép so sánh, nếu thoả mãn dấu phép toán thì biểu thức quan hệ nhận giá trị 1, ngược lại nhận giá trị 0.
Biểu thức logic
a. Khái niệm: Một tập hợp các biểu thức liên kết với nhau bởi các dấu phép toán logic, các dấu (,) một cách hợp lí sẽ tạo thành một biểu thức logic (Boon).Các dấu phép toán logic gồm:
! Dấu phép toán phủ định
&& Dấu phép toán và (giao)
|| Dấu phép toán hoặc (tuyển)
Tính giá trị của biểu thức logic: Trong biểu thức logic, nếu có cả các phép toán số học và các phép toán quan hệ thì trật tự ưu tiên xếp từ cao xuống thấp như sau:
- Các phép toán trong ngoặc
- Phép toán phủ định !
- Các phép toán số học
- các phép toán quan hệ
- Phép toán và &&
- Phép toán hoặc ||
Nếu cùng mức độ ưu tiên sẽ thực hiện từ trái qua phải, riêng phép phủ định thì từ phải sang trái.
+ Biểu thức điều kiện:là biểu thức khá đặc biệt trong C, nó gồm 3 toán hạng, mỗi toán hạng là một biểu thức với cách viết được quy định bắt buộc có dạng như sau:
e1 ? e2 : e3
Trong đó: e1, e2, e3 là các biểu thức bất kì.
Tính giá trị của biểu thức điều kiện:
Trước tiên, tính giá trị của biểu thức e1. Nếu e1 có giá trị khác 0 (coi là giá trị logic đúng), biểu thức điều kiện sẽ nhận giá trị bằng e2, ngược lại (e1 có giá trị bằng 0) thì biểu thức điều kiện nhận giá trị bằng e3.
Câu 7:Cho các khia báo sau:
int n=1, p=2;
long q = 3;
float x = 4.5;
Kiểu và giá trị các biểu thức:
a. n + p = 3 (int)
b. n + p +1 =4 (int)
c. ! ( n + p ) = 0 (logic)
d. n + x =5.5 (float)
e. n % p + q = 4 (long)
f. n < p Trả về 1 (logic)
g. q + 3 * (n>p) =3 (long)
h. q && n
i. (q - 2) && (n-1)
j. x * (q = =2) =0 (float)
k. x * ( q = 5)= 22.5 (float)
l. n < p < q ! = x kq =1 (logic)
Câu 8: Cho khai báo:
int a, p;
double b, c;
phát biểu đúng:
a. p = (int) b + (c*=2);
b. p = a + (1, b = 1);
c. p = c;
d. a = “abc”;
Câu 9:Cho khai báo:
char a, p;
int b, q;
Phát biểu sai:
a. q <<=a;
b. p->>b;
c. a+=b - (double) 1;
d. b = (char) a;
Câu 10: Tại sao hàm gets() thích được sử dụng hơn scanf()?
Ham scanf() nhập một xâu kí tự nhung phải là xâu ko chứa dấu cách, tab.. nếu ta gõ vào chữ viet nam thì chỉ nhận được mỗi từ viet.
Ham gets(s) doc các kí tự trong xâu s cho đến khi ấn enter.xâu này chứa cả dấu cách ,tab.
Bạn đang đọc truyện trên: Truyen247.Pro