1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập lập trình C có đáp án

10 1,3K 25
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Tập Lập Trình C Có Đáp Án
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài Tập
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 10
Dung lượng 134 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

KHÁI NIỆM CƠ BẢN CTạo 1 project FileNewProjectVisual C++CLR Console Applicationnhập tênOK Viết chương trình nhỏ: /* Nhập vào 2 số nguyên...  getschar*, putschar*: nhập, xuất biến

Trang 1

KHÁI NIỆM CƠ BẢN C

Tạo 1 project

FileNewProjectVisual C++CLR Console Applicationnhập tênOK Viết chương trình nhỏ:

/* Nhập vào 2 số nguyên Tính và in ra tổng của chúng */

#include <conio.h>

{

printf( "Nhap a=" ); // hàm xuất ra màn hình

scanf( "%d" , &a); // hàm nhập theo dịa chỉ biến a

printf( "Nhap b=" ); // %d: chỉ thị đặc tả

// cho biến kiểu int scanf( "%d" , &b);

sum=a+b; // phép gán =

printf( "Tong: %d + %d = %d" , a, b, sum);

getch( ); // hàm nhận ký tự trực tiếp từ bộ đệm } // kết thúc hàm chính

- Bấm F6 để compile

- Bấm Ctrl+F5 để chạy chương trình

Kiểu ký tự: char, unsigned char

Kiểu số nguyên: int, unsigned, long, unsigned long, long

Kiểu dấu chấm động: float, double, long double

Kiểu void

Trang 2

 HẰNG

Cách định nghĩa hằng trong chương trình:

Cách 1:

#define <tên hằng> <giá trị>

Cách 2:

const <kiểu> <tên hằng> = <giá trị>;

Ví dụ:

#define PI 3.1415

const float PI = 3.1415;

#include <stdafx.h>

#include <stdio.h>

#include <conio.h>

#define PI 3.1415;

void main()

{

const float pi = 3.1415;

printf( "%f" ,pi);

printf( "\n" ); // xuống dòng

float a=PI;

printf( "%f" ,a);

}

CÁC PHÉP TOÁN SỐ HỌC

Phép chia của hai số nguyên cho ra kết quả là số nguyên.

VD: float f = 5/2; // cho kết quả f = 2

Phép toán phẩy (,): thứ tự thực hiện ở vế phải là từ trái sang phải.

VD:

int m, t, h;

m=(t=2,h=t*t+3);

/* sẽ cho t=2, h=7 và m=7 */

int a, b=2;

b=(a=3,(5*b)+(a*=b));

/* b=16 a=6 */

CÁC PHÉP THAO TÁC TRÊN BIT

 Gồm AND(&), OR(|), XOR(^), Dịch trái(<<), Dịch phải (>>), lấy phần bù (~)

 Các phép toán này cho phép xử lý từng bit của một số nguyên (không

dùng cho kiểu float và double)

Ví dụ:

unsigned char a = 135; // a2 = 10000111

unsigned char b = 50; // b2 = 00110010

Trang 3

unsigned char c;

c = a&b; // c10 = 2; c2 = 00000010

c = a|b; // c10 = 183, c2 = 10110111

c = a^b; // c10 = 181, c2 = 10110101

c = a>>3; // c10 = 16, c2 = 00010000

c = a<<4; // c10 = 112, c2 = 01110000

c = a>>n; // Û c = a / 2n,

c = a<<n; // Û c = a * 2n

// n : số bit dịch chuyển

PHÉP TOÁN BÙ BIT ~

~1=0

~0=1

Ví dụ:

char a = 52; // a2=00110100

char b = ~a; // b2=01001011, b10 = 75

CÁC PHÉP TOÁN QUAN HỆ

 Bao gồm các phép toán so sánh:

==, !=, >, >=, <, <=

So sánh giá trị của các toán hạng cho ra kết quả 0 (sai) hoặc 1 (đúng).

Ví dụ:

int a = 3, b = 5, f;

f = a * 2 > b; // f = 1

CÁC PHÉP TOÁN LOGIC

 Bao gồm các toán tử:

NOT (!), AND (&&) và OR (||)

 Dùng kết hợp các biểu thức thành một biểu thức logic

 Kết quả của các phép toán này có giá trị:

0 (sai) hoặc 1 (đúng).

Ví dụ:

x y x&&y x||y !x !!x

Chú ý : !!x có thể có giá trị khác x

CHUYỂN ĐỔI KIỂU DỮ LIỆU

Chuyển đổi kiểu dữ liệu tự động: Khi hai toán hạng trong một phép toán

khác kiểu dữ liệu thì kiểu dữ liệu thấp được nâng thành kiểu dữ liệu cao trước khi tính toán

Ví dụ:

Trang 4

float f, x = 5;

int y = 2;

f = x/y; // f = 2.5

Vì x kiểu float nên y sẽ tạm thời được chuyển sang kiểu float để thực hiện phép chia x/y

Chuyển đổi kiểu “bắt buộc”: chuyển đổi kiểu bất kỳ sang kiểu mong muốn, gọi

là ép kiểu

Cú pháp khai báo: (<KiểuDL>) <biểu thức>

Ví dụ:

float f1, f2;

int x = 5, y = 2 ;

f2 = (float)x/y; // f2 = 2.5

f1 = 2 vì x và y cùng kiểu int, nên x/y → kết quả kiểu int

CÁC PHÉP TĂNG GIẢM MỘT ĐƠN VỊ: ++,

Ví dụ:

int n = 5, x;

// tăng n lên 1 rồi gán cho x

x = ++n; // n = n+1 = 6; x = n = 6

// gán n cho x rồi mới tang n lên 1

x = n++; // x = n = 5; n = n+1 = 6

Phép toán ++, chỉ thao tác trên các biến có giá trị nguyên.

CÂU LỆNH GÁN =

Dạng 1: Biến = <biểu thức>;

Dạng 2: Biến <toán tử> = <biểu thức>;

Với <toán tử> là một trong các phép toán:

+, -, *, /, %, &, |, ^, <<, >>

Ví dụ:

int c, a=3, b=4;

int so = 10;

c = a+b; // dạng 1, c=3+4=7

so += 5; // dạng 2: so=so+5=15

a = b = c = 0;

Trang 5

a = a % n ó a % = n;

a = a + 1 ó a + = 1; a ++; ++a;

a = a – 1 ó a - = 1; a ; a;

TOÁN TỬ ĐIỀU KIỆN (?)

 Cú pháp khai báo

<điều kiện>?<biểu thức 1>:<biểu thức 2>;

 Kết quả của biểu thức

nhận <biểu thức 1> nếu điều kiện có giá trị khác 0 (điều kiện

đúng),

ngược lại, nhận <biểu thức 2>.

Ví dụ:

int a = 7, b = 10;

int min, max;

min = (a<b)? a : b; // min = a = 7

max = (a>b)? a : b; // max = b = 10

CÁC HÀM NHẬP XUẤT TRONG stdio.h

scanf(…), printf(…): Nhập, xuất giá trị cho biến theo kiểu đã được định

dạng

gets(char*), puts(char*): nhập, xuất biến kiểu chuỗi ký tự ra màn hình.

getchar(), putchar() : nhập, xuất ký tự ra màn hình

Ví dụ:

float f;

scanf(“%f”,&f)

printf(“Gia tri cua f = %0.2f”, f);

char str[10]; // biến chuỗi ký tự

gets(str); // hoặc scanf(“%s”,str);

puts(str); // hoặc printf(“%s”,str);

char ch;

ch = getchar();

Trang 6

%d

%ld

%o

%x

%u

%lu

%f

%lf

%lf

%s

char

int

long int

int

int

unsigned int

unsigned long

float

double

long double

mảng ký tự

Đặc tả ký tự Đặc tả số nguyên Đặc tả số nguyên dài Đặc tả số nguyên ở hệ bát phân Đặc tả số nguyên ở hệ thập lục phân Đặc tả số nguyên không dấu

Đặc tả số nguyên dài không dấu Đặc tả số thực

Đặc tả số thực Đặc tả số thực Đặc tả chuỗi ký tự

'\0' “NULL”– ứng với giá trị nguyên 0 trong bảng mã

ASCII (khác với số 0)

'\f' LF(sang trang)

#include <stdafx.h>

#include <stdio.h>

#include <conio.h>

void main()

{

char ch;

do{

ch=getch();

if (ch==0) // Nhấn phím đặc biệt {

ch=getch(); // Nhận mã lần thứ 2

if (ch == 59)

break; // Nếu ch == F1: thoát

// khỏi vòng do while

Trang 7

}

} while (1);

}

CÁC CÂU LỆNH TRÊN C

KHÁI NIỆM VỀ CÂU LỆNH

Mỗi câu lệnh thực hiện một chức năng nào đó (như lệnh gán, lệnh xuất dữ liệu ra màn hình), câu lệnh có thể được viết trên một hoặc nhiều dòng và được kết thúc bằng dấu chấm phẩy (;)

Ví dụ:

cv=2*r*M_PI;

printf("\nChu vi = %10.2f \ \nDien tich = %10.2f",cv,dt);

CÚ PHÁP KHAI BÁO LỆNH IF

Dạng 1:

if (biểu thức ĐK) <khối lệnh>;

Dạng 2:

if (biểu thức ĐK) <khối lệnh 1>;

else <khối lệnh 2>;

VÍ DỤ MINH HỌA

Cho 3 số nguyên a, b và c, xuất giá trị 3 số đó ra màn hình theo thứ tự tăng dần

max = a; min = b;

if (a<b)

max = b;

min = a;

}

if (c>max) max = c;

else if (c<min) min = c;

mid = (a+b+c) - (max + min);

printf(“%d %d %d”, min, mid, max);

CÚ PHÁP KHAI BÁO LỆNH SWITCH

switch (Biểu thức)

{

case n1: <các câu lệnh>; <break>;

case n2: <các câu lệnh>; <break>;

case nk: <các câu lệnh>; <break>;

[default: <các câu lệnh>;

<break>;]

}

Trang 8

ni: các hằng số nguyên hoặc ký tự

Nếu giá trị của biểu thức = ni Þ thực hiện câu lệnh sau case ni.

 Nếu giá trị biểu thức khác tất cả các giá trị ni Þ thực hiện câu lệnh sau default nếu

có hoặc thoát khỏi switch

Khi chương trình đã thực hiện xong câu lệnh của case ni nào đó thì nó sẽ thực

hiện luôn các câu lệnh thuộc case bên dưới nó mà không xét lại điều kiện (do các

ni được xem như các nhãn)

Do đó để chương trình thoát khỏi lệnh switch, sau khi thực hiện xong một trường hợp, ta dùng lệnh break.

In ra màn hình học lực của học sinh theo thang điểm như sau: Từ 0 -> 3: Kém, 4: Yếu, 5-> 6: Trung bình, 7 -> 8: Khá, 9 -> 10: Giỏi

switch(diem)

{

case 0: case 1: case 2: case 3:

printf(“Kem\n”); break;

case 4: printf(“Yeu\n”); break;

case 5: case 6:

printf(“Trung binh\n”); break;

case 7: case 8: printf(“Kha\n”); break;

case 9: case 10:

printf(“Gioi\n”); break;

default: printf(“Nhap diem sai\n”);

} // Kết thúc switch

CÚ PHÁP KHAI BÁO LỆNH FOR

for (<biểuthức1>; <biểuthức2>;

<biểuthức3>) <Khối lệnh>;

Hoạt động:

1 Tính giá trị của <biểuthức1>

2 Tính giá trị của <biểuthức2>

3 Nếu giá trị <biểuthức2> khác 0

Þ thực hiện <khối lệnh>

Ngược lại

Þ thoát khỏi lệnh for

4 Tính giá trị <biểuthức3> rồi lặp lại bước 2

VÍ DỤ MINH HỌA

#include <stdio.h>

#include <conio.h>

void main()

{

int n, i;

Trang 9

printf(“Nhap gia tri n: ”);

scanf(“%d”, &n);

printf(“Cac uoc so cua %d la: ”, n);

for (i =1; i <= n; i++)

if ( !n%i ) // !n%i ó n%i=0

printf(“%3d”, i );

getch();

}

CÚ PHÁP KHAI BÁO LỆNH WHILE

while (biểu thức) <khối lệnh>;

Ý nghĩa:

Nếu giá trị của biểu thức còn khác 0 (còn đúng) thì còn thực hiện <khối lệnh>.

VÍ DỤ MINH HỌA

In ra màn hình tất cả các ước số của n:

i = n;

while (i) // i ! = 0

{

if ( !n%i ) // n%i = 0

printf(“%3d”, i );

i ;

}

Vòng lặp while sẽ thực hiện đến khi i = 0 thì dừng.

do

{

<khối lệnh>;

}while (biểu thức);

Ý nghĩa:

Thực hiện <khối lệnh> cho đến khi giá trị của biểu thức bằng 0 (sai) thì dừng.

VÍ DỤ MINH HỌA

Viết đoạn chương trình nhập giá trị của x nằm trong khoảng từ 1->6:

int x;

do {

printf(“Nhap gia tri cua x:”);

Trang 10

scanf(“%d”, &x);

} while (x<1 || x>6);

 Nhập giá trị của x, nếu x<1 hoặc x>6 thì yêu cầu nhập lại

Ngày đăng: 08/08/2013, 00:20

HÌNH ẢNH LIÊN QUAN

KHÁI NIỆM CƠ BẢ NC - Bài tập lập trình C có đáp án
KHÁI NIỆM CƠ BẢ NC (Trang 1)
printf(&#34;Nhap a=&#34;); // hàm xuất ra màn hình - Bài tập lập trình C có đáp án
printf (&#34;Nhap a=&#34;); // hàm xuất ra màn hình (Trang 1)

TỪ KHÓA LIÊN QUAN

w