ĐỀ CƯƠNG NGÔN NGỮ LẬP TRÌNH C pot - Pdf 17

ĐỀ CƯƠNG NGÔN NGỮ LẬP TRèNH C
( Cao Đẳng )
By:
Cõu 1: Trỡnh bày một số quy tắc cần thiết khi viết chương trỡnh băng ngôn ngữ C? Cho VD minh họa?
Trả lời:
*Các Quy tắc cần thiết khi viết chương trình bàng ngôn ngữ lập trình C:
Quy tắc 1: Mỗi câu lệnh có thể viết trên một hay nhiều dòng nhưng phải được kết thúc bằng dấu chấm phẩy ;
Quy tắc 2: Khi viết lời giải thích cần phải đặt lời giải thích giữa dấu /* và dấu */ và có thể được viết
- Trên một dòng: sử dụng dấu // ( nội dung chú thích ).
VD: int x ; // biến chứa số đếm
- Trên nhiều dòng: /* nội dung
…………… */
VD: int x ; /*biến chứa số đếm
…………………
………………*/
Quy tắc 3: Trước khi sử dụng một hàm cần biết nó nằm trong thư viện nào và phải dùng toán tử #include nạp
thư viện đó vào chương trình.
VD: để dùng hàm printf() ta phải nạp thư viện stdio.h như sau:
#include “stdio.h”
Quy tắc 4: Một chương trình có thể có nhiều hàm nhưng chỉ có duy nhất một hàm chính (hàm main)
Cõu 2: trỡnh bày cỏc kiểu dữ liệu trong ngụn ngữ C, cho vớ dụ.?
Trả lời:
-Kiểu char ( kiểu ký tự ) VD: unsigned 0 ữ 255.
-Kiểu nguyờn . VD: unsigned short 0 – 65535.
-Kiểu dấu phẩy động VD: float 3.4E – 38 đến 3.4E+38.
Cõu 3 : Trỡnh bày khỏi niệm kiểu hằng, cấu trỳc khai bỏo hằng trong ngụn ngữ C. cho vớ dụ minh họa?.
Trả lời:
-Hằng là các đại lượng cố định không thay đổi trong khi tính toán.
-Cấu trỳc: # define <tờn hằng> <giỏ trị>
-VD: #define max 100
#define sodem //kiểu nguyờn

- Khái niệm: Hàm có thể xem là một đơn vị độc lập của chương trình. Các hàm có vai trò ngang nhau, vì vậy
không có phép xây dựng một hàm bên trong các hàm khác
Xây dựng một hàm bao gồm :-Khai báo kiểu , đặt tên hàm , khai báo các đối và đưa ra câu lệnh cần thiết để
thực hiện yêu cầu đề ra.
- Hàm trả lại giá trị:

Cấu trúc: <Kiểu hàm> <Tên hàm> ( <khai báo các đối số>)
{
// Khai báo các biến cục bộ
// Các câu lệnh
// [return[biểu thức];]
}
-VD: Tìm giá trị lớn nhất của 2 số
int Max(int x , int y )
{ int z=0;
if(x>y) z=x;
else z=y;
return z;
}
- Hàm không trả lại giá trị
→ Cấu trúc:
void <Tên hàm> ( <khai báo các đối số>)
{
// Khai báo các biến cục bộ
// Các câu lệnh
By:
}
-VD: Tìm giá trị của 2 số
int 2; // biến khai báo toàn cục
void Max(int x , int y )

- Các phép toán quan hệ và ví dụ:
Phép
toán
ý nghĩa Ví dụ
> So sánh lớn hơn
a>b
4>5 có giá trị 0
By:
>= So sánh lớn hơn hoặc bằng
a>=b
6>=2 có giá trị 1
< So sánh nhỏ hơn
a<b
6<=7 có giá trị 1
<= So sánh nhỏ hơn hoặc bằng
a<=b
8<=5 có giá trị 0
== So sánh bằng nhau
a==b
6==6 có giá trị 1
!= So sánh khác nhau
a!=b
9!=9 có giá trị 0
Câu 10 : Trình bày các phép toán tăng, giảm, lệnh gán và biểu thức. Cho ví dụ minh họa?
Trả lời :
- Các phép toán tăng, giảm.
C đưa ra hai phép toán một ngôi để tăng và giảm các biến . Toán tử tăng là ++ sẽ cộng 1 vào toán hạng của
nó, toán tử giảm thì sẽ trừ toán hạng đi 1.
Ví dụ :
n=5

-Thứ tự ưu tiên của các phép toán được trình bày trong bảng sau:
TT Phép toán Trình tự kết hợp
1 () [] -> Trái qua phải
2 ! ~ & * - ++ (type ) sizeof Phải qua trái
3 * ( phép nhân ) / % Trái qua phải
4 + - Trái qua phải
5 << >> Trái qua phải
6 < <= > >= Trái qua phải
7 == != Trái qua phải
8 & Trái qua phải
9 ^ Trái qua phải
10 | Trái qua phải
11 && Trái qua phải
12 || Trái qua phải
13 ?: Phải qua trái
14 = += -= *= /= %= <<= >>= &= ^= |= Phải qua trái
15 , Trái qua phải
Chú thích:
Các phép toán tên một dòng có cùng thứ tự ưu tiên, các phép toán ở hàng trên có số ưu tiên cao hơn
các số ở hàng dưới.
Đối với các phép toán cùng mức ưu tiên thì trình tự tính toán có thể từ trái qua phải hay ngược lại
được chỉ ra trong cột trình tự kết hợp.
Ví dụ :
* px=*( px) (Phải qua trái)
8/4*6=(8/4)*6 (Trái qua phải)
By:
Nên dùng các dấu ngoặc tròn để viết biểu thức một cách chính xác.
Câu 12 : Trình bày cấu trúc giải thuật của cấu trúc điều khiển IF . IF ELSE. Cho ví dụ minh họa.?
Trả lời :
* Cấu trúc lệnh if

while(1)
{
if(a>b) Max=a;
if(a<b) Max=b;
};
}
// Nội dung không thoả mãn điều kiện
}
- Thuật toán :
Câu 13: Trình bày cấu trúc và giải thuật của cấc trúc điều khiển SWITCH và FOR cho ví dụ minh họa?
Trả lời :
- Cấu trúc toán tử SWITCH
- Khái niệm: Là cấu trúc tạo nhiều nhánh đặc biệt. Nó căn cứ vào giá trị một biểu thức nguyên để chọn
một trong nhiều cách nhảy.
- Cấu trúc:
switch ( <Biểu thức nguyên> )
{
case kq1:
{
//khối lệnh 1
break;
}
case kq2:
{
// khối lệnh 2
break;
}

case kqk:
{

c=2
break;
}
default :
{ p=c
b=5
By:
BT
1
BT
2
BT
n
Nội dung 1 Nội dung 2 Nội dung n GT mặc
định
break;
}
}
- Cấu trúc FOR
- Khái niệm: Toán tử for dùng để xây dựng cấu trúc lặp.
- Cấu trúc: for ( <Biểu thức 1>; <Biểu thức 2>; <Biểu thức 3>)
{
// Lệnh hoặc khối lệnh ;
};
- Thuật toán:
Câu 14 : Trình bày cấu trúc và giải thuật của cấu trúc điều khiển Do While và While.
Cho ví dụ minh họa?
Trả lời :
* Cấu trúc while
- Khái niệm: Cấu trúc while dùng để xây dựng chu trình lặp.

dụ minh họa.
Trải lời :
*Khái niệm con trỏ: con trỏ là biến chứa địa chỉ của một biến khác.
*Cấu trúc khai báo biến con trỏ:
<kieu con tro>*<ten con tro>
VD: int*p; //khai báo tên con trỏ p
char * st; //khai báo biến con trỏ kiểu ký tự
* Địa chỉ con trỏ
- Con trỏ chứa địa chỉ của đối tượng nên nó có thể xâm nhập vào đối tượng gián tiếp qua con trỏ. Giả sử x là
một biến kiểu int, và giả sử px là con trỏ được tạo ra theo một cách nào đó.
By:
End
B Thức
Nội dung Ví dụ :
do
{
B[i] = A[i];
i++;
} while(x>=9);
* Các ví dụ :
- Ví dụ 1: Xây dựng một hàm dùng để hoán vị giá trị của hai biến kiểu nguyên không dụng con trỏ.
#include <Regx52.h>
int x,y;
void hoanvi(float x,float y);
void main()
{
x=3; y=7;
while(1) hoanvi(x,y);
}
void hoanvi(int x,int y)

pm là con trỏ kiểu float [30]
a là địa chỉ kiểu float [30]
* Các phép toán trên con trỏ
Có 4 phép toán liên quan đến con trỏ và địa chỉ là :
By:
 Phép gán: chỉ thực hiện với các con trỏ cùng kiểu.
 Phép tăng giảm địa chỉ :
 Phép truy cập bộ nhớ.
 Phép so sánh.
Câu 19 : Trình cách khai báo con trỏ hàm và mảng con trỏ hàm, tác dụng của con trỏ hàm và đối của con
trỏ hàm . Cho ví dụ minh họa ?
Trả lời :
* Cách khai báo con trỏ hàm và mảng con trỏ hàm:
float (*f)(float),(*mf[50])(int);
Để khai báo :
f là con trỏ hàm kiểu float có đối là float
mf là mảng con trỏ hàm kiểu float có đối kiểu int ( có 50 phần tử
* Tác dụng của con trỏ hàm : dùng để chứa địa chỉ của hàm. Muốn vậy ta thực hiện phép gán tên hàm cho
con trỏ hàm. Để phép gán có ý nghĩa thì kiểu hàm và kiểu con trỏ phải tương thích. Sau phép gán, ta có thể
dùng tên con trỏ hàm thay cho tên hàm.
VD: double (*g)(int, double), (*mg[30])(double, float);
* Đối của con trỏ hàm : cho phép thiết kế các hàm mà tham số thực trong lời gọi tới nó lại là tên của một
hàm khác. Khi đó tham số hình thức tương ứng phải là một con trỏ hàm.
Câu 20 : Trình khái niệm về đệ quy, phương pháp dùng đệ quy và các bài toán dùng đệ quy. Cho ví dụ
minh họa ?
Trả lời :
* Khái niệm chung về đệ quy là: nó cho phép từ hàm này gọi tới hàm khác, mà nó còn cho phép từ một
điểm trong thân của một hàm gọi tới chính hàm đó.
* phương pháp xây dựng hàm đệ quy
Hàm đệ quy thường được xây dựng theo thuật toán sau :

else return uscln(a,b-a);
}
Câu 21 : Trình khái niệm về cấu trúc dữ liệu, cấu trúc của cấu trúc dữ liệu, phương pháp truy cập đến
các thành phần của cấu trúc dữ liệu. Cho ví dụ minh họa ?
Trả lời :
* K /N kiểu cấu trúc : việc định nghĩa một kiểu cấu trúc bao gồm việc nêu ra tên của kiểu cấu trúc và các
thành phần của nó theo mẫu sau:
struct tên_kiểu _cấu_trúc
{
//Khai báo các thành phần của cấu trúc
};
* Cấu trúc của cấu trúc dữ liệu: struct ( ten cấu trúc đã định nghĩa) <tên cấu trúc đã khai báo> ;
Ví dụ : struct date ngayden, ngaydi;
*Để truy cập đến một thành phần cơ bản của một cấu trúc ta sử dụng một trong các cách viết sau :
tên_cấu_trúc.tên_thành_phần
tên_cấu_trúc.tên_cấu_trúc.tên_thành_phần
tên_cấu_trúc. tên_cấu_trúc.tên_cấu_trúc.tên_thành_phần
VD : Ta xét phép toán trên các thành phần của cấu trúc nhom1, nhom2:
Câu lệnh : printf("%s",nhom1.ten);
sẽ đưa lên màn hình tên của nhom1.
Câu 22 : Trình bày chỉ thị tiền xử lý define và define có tham số. Cho ví dụ minh họa ?
Trả lời :
*chỉ thị tiền xử lý define : #deffine Tenbien=<giatri>
VD : deffine Max40
• chỉ thị tiền xử lý define có tham số : #define Max(a,b) (a>b ?a :b)
Câu 23 : Trình bày chỉ thị tiền xử lý #if, #if #else. Cho ví dụ minh họa ?
Trả lời :
*Chỉ thị tiền xử lý #if : #if(<điều kiện>)
// nội dung thỏa mãn điều kiện
#endif

int USC;
USC=UCLN(2,6);
}
int UCLN(int x,int y)
{
if(x==y) return x;
else
{
if(x>y) return UCLN(x-y,y);
else return UCLN(x,y-x);
}
}
Câu 27 :Viêt chương trình tìm MAX của 2 số x và y tả lại giá trị cho biến z ?
Bài làm :
#include <regx52.h>
int a[10]; b[10];i;c;
void main()
{ i=0;
while(1)
By:
{
for(i=0;i<10;i++)
{ c=a[i]; a[i]=b[i];
b[i]=c;
}
}
}
Câu 28 :Viêt chương trình điều khiển một LED đơn tại địa chỉ 0x90 theo chế độ ON/ OFF với thời gian
thay đổi trạnh thái ≈ 1s
Bài làm :

}
}
void delay (unsigned short d)
By:
{ while (d>0) d ;}
Câu 30 :Viêt chương trình điều khiển một LED đơn tại địa chỉ la ( 0x90) , sử dụng hai phím Start và
Stop có địa chỉ tương ứng là 0x91 và 0x92 ?
Bài làm :
#include <REGX52.H>
sbit LED=0X90;
sbit start=0x91;
sbit stop=0x92;
bit F_start=0;
bit F_stop=0;
unsigned char i=0;
void proON(void);
void proOFF(void);
void main()
{
LED=0;start=1;stop=1;
while(1)
{
if(start==0&F_start==1)
proON();
F_start=start;
if(stop==0&F_stop==1)
proOFF();
F_stop=stop;
}
}

void traisangphai (void);
void main()
{
led = 0;
while(1) traisangphai();
}
void traisangphai (void) /** tu trai sang phai** tu D7 ve D0****/
{
unsigned char i=0;
while (i<8)
{
if(i==0) led=0x80;
if(i==1) led=0x40;
if(i==2) led=0x20;
if(i==3) led=0x10;
By:
if(i==4) led=0x08;
if(i==5) led=0x04;
if(i==6) led=0x02;
if(i==7) led=0x01;
i++;
delay(40000);
};
}
void delay (unsigned short d)
{ while (d>0) d ;}
Câu 33 :Viêt chương trình điều khiển LED đơn dịch chuyển từ phải qua trái trên cổng P2 có địa chỉ 0xA0
.với thời gian thay đổi trạng thái ≈ 1s
Bài làm
void phaisangtrai (void);

unsigned char Temp[30];
void DeleteMemory(void);
void WriteMemory(void);
void main()
{
while(1)
{ DeleteMemory();
WriteMemory();
}
}
void DeleteMemory(void)
{
unsigned char i=0;
p=0x40;
while(i<30)
{
Temp[i] = *p;
p++;
i++;
}
}
void WriteMemory (void)
{
P=0x40;
while (p<0x7F)
{ *p=5; p++;
*p=6; p++;
}
By:
}


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status