Thứ Năm, 7 tháng 1, 2016

BT LTC 6






CHỦ ĐỀ 1: LỆNH ĐƠN VÀ LỆNH CÓ CẤU TRÚC

Bài 1:Hãy cho biết kết quả của chương trình sau:

#include

main(){

            int n=345;

            int p=5;

            float x=34.567;

            printf(“A: %d %f\n”,n,x);

            printf(“B: %4d %10f\n”,n,x);

            printf(“C: %2d %3f\n”,n,x);

            printf(“D: %10.3f %10.3e\n”,x,x);

            printf(“E: %*d\n”,p,n);

            printf(“F: %*.*f\n”,12,5,x);

}

Bài 2: Viết chương trình:

a/ Đầu tiên in ra dòng chữ sau:

            Ngon ngu lap trinh

b/ Nếu bấm phím C thì in ra dòng chữ:

            Turbo C

    Còn nếu bấm phím P thì in ra dòng chữ:

            Turbo Pascal

c/ Bấm tiếp phím bất kỳ thì chương trình kết thúc

Bài 3: Viết chương trình tính diện tích và chu vi của:

            + Hình vuông, nếu biết cạnh của hình vuông

            + Hình chư nhật, nếu biết 2 cạnh của hình chữ nhật

            + Hình tròn, nếu biết bán kính của hình tròn

            + Tam giác, nếu biết 3 cạnh của tam giác

Bài 4: Viết chương trình xác định giá trị cực đại và cực tiểu của n số thực nhập vào từ bàn phím (không dùng kiểu mảng)

Bài 5: Viết chương trình tính:

            + Bội số chung nhỏ nhất

            + Ước số chung lớn nhất

            của 2 số nguyên a va b nhập vào từ bàn phím

Bài 6: Viết chương trình xác định số nguyên x nhập vào từ bàn phím có phải là số nguyên tố hay không và đưa kết luận lên màn hình

(Số nguyên p>1 là số nguyên tố nếu p chỉ chia hết cho 1 và cho bản thân nó)

Bài 7: Viết chương trình in ra màn hình tất cả các số nguyên tố có trong n số nguyên đầu tiên.

Bài 8: Viết chương trình giải phương trình bậc hai: ax2 + bx + c = 0

Bài 9: Viết chương trình in ra dãy số Fibonacci có n số hạng (n nhập vào từ bàn phím). Biết rằng, dãy Fibonacci  F(n) có dạng như sau:

F(1)=1; F(2)=1;

F(n)=F(n-1)+F(n-2)

VD: 1 1 2 3 5 8 13 …..

Bài 10: Viết chương trình tính n! ; với n là số nguyên dương. Biết rằng: 0!=1 và    n!= 1*2*3*…*n;

Bài 11: Viết chương trình tính xn

Bài 12:Viết chương trình tính : S= 1-x + x2 +….+ (-1)nxn

Bài 13: Viết chương trình tính căn bậc hai của một số a bằng phép lặp Newton với công thức lặp sau đây:

            x[0]= (a+1)/2

            x[n+1]= (1/2)*(x[n]+ a/x[n]), với n=0,1,2,3…

sai số cho phép là (x[n+1]-x[n])/x[n]=eps<1e-5

Bài 14: Viết chương trình tìm số dòng, số từ, số ký tự của văn bản vào từ bàn phím



CHỦ ĐỀ 2: CHƯƠNG TRÌNH CON

Bài 1: Viết lại các bài tập ở buổi 1,2 ở dạng hàm

Bài 2:Viết chương trình in ra màn hình tam giác Pascal như sau:

1

1          1

1          2          1

1          3          3          1

1          4          6          4          1

1          5          10         10         5          1

Bằng cách viết các hàm tính giai thừa và tính tổ hợp của một số nguyên dương

Biết rằng:

            Mỗi số hạng của hàng thứ (n+1) là một tổ hợp chập k của n

            Tohop(n,k) =n!/(k! * (n-k)!)

Bài 3: Cho số tự nhiên n. Hãy liệt kê tất cả các cặp số p, 4p + 1 đều là số nguyên tố nhỏ hơn n. Trong đó p cũng là số nguyên tố nhỏ hơn n

Bài 4: Cho số tự nhiên n. Hãy phân tích n thành các thừa số nguyên tố. Ví dụ 12=2*2*3

Bài 5: Cho số tự nhiên n. Hãy tìm tất cả các số 1, 2, … , n sao cho các số trùng với phần cuối bình phương chính nó (ví dụ: 62 = 36, 252 = 625)

Bài 6: Một số tự nhiên đựơc gọi là Amstrong nếu tổng các luỹ thừa bậc n của các chữ số của nó bằng chính nó. Trong đó n là số các chữ số (ví dụ : 153 = 13 + 23 + 33). Hãy tìm tất cả các số Amstrong gồm 2,3,4 chữ số.

Bài 7: Mô phỏng nhân tay hai số tự nhiên bất kỳ

Ví dụ:

               15

            *  31

            ------

               15

             45

            ------

             465









CHỦ ĐỀ 3: MẢNG VÀ CON TRỎ

Bài 1: Cho một danh sách n số nguyên, sắp xếp các số đó theo thứ tự tăng dần

Bài 2: Viết chương trình nhập vào một danh sách n số nguyên. Hãy đếm xem có bao nhiêu số chia hết cho 3.

Bài 3: Viết chương trình nhập vào một danh sách n số nguyên đảm bảo nguyên tắc tăng, nếu nhập sai thì yêu cầu nhập lại. Sau khi nhập xong, nhập thêm một số mới và chèn vào danh sách sao cho đảm bảo nguyên tắc tăng của danh sách

VD:      1 2 5 7 8 13

                        Số mới : 4

                        Danh sách : 1 2 4 5 7 8 13

Bài 4: Viết chương trình ghép hai dãy tăng đã cho thành một dãy tăng.

Bài 5: Cho mảng hai chiều A, lập chương trình:

-          Tính tổng tất cả các phần tử dương của mảng

-          Đưa ra tổng các phần tử A[i,j] mà i+j chia hết cho 5

Bài 6: Mảng A chứ n phần tử, lập chương trình:

-          Sắp xếp mảng A theo thứ tự giảm dần

-          Tìm một phần tử có giá trị cho trước

-          Tìm số các phần tử và số lượng các phần tử có giá trị trùng nhau.

Bài 7: Bài toán người du lịch

Cho n thành phố, cho giá cước phí đi từ thành phố i đến thành phố j là Cij. Người du lịch cần xuất phát từ một thành phố đi qua tất cả các thành phố, mỗi thành phố chỉ đi qua đúng một lần và quay trở về thành phố xuất phát sao cho giá chi phí là nhỏ nhất.

Yêu cầu:

-          Xây dựng cấu trúc dữ liệu lưu trữ cặp thành phố cùng cước phí.

-          Nhập vào số thành phố, cước phí, thành phố xuất phát, thành phố đích.

-          In kết quả ra màn hình



CHỦ ĐỀ 4: KIỂU CHUỖI

Bài 1:Viết chương trình nhập vào Họ tên, Chức vụ, Trình độ của 1 người sau đó in ra màn hình như sau:

-          Quy Ong (Ba):

-          Chuc vu :

-          Co trinh do:

Bài 2: Viết chương trình nhập vào 1 chuỗi rồi đảo ngược chuỗi đó

Bài 3: Viết chương trình nhập vào 2 chuỗi (chữ thường), sau đó:

-          Đổi 2 chuỗi ra chữ Hoa

-          Từ chữ Hoa đổi trở lại thành chữ thường

-          Đảo ngược 2 chuỗi

Bài 4: Viết chương trình nhập vào 1 chuỗi, thống kê xem chuỗi đó có bao nhiêu ký tự kể cả ký tự trống, sau đó đảo ngược chuỗi này.

Bài 5:Viết chương trình nhập vào Họ Tên của một người sau đó:

-          Cắt bỏ các kí tự vô nghĩa ở Họ Tên

-          Cắt lấy Họ

-          Cắt lấy Tên

Bài 6: Viết chương trình nhập vào 1 chuỗi sau đó sao chép sang chuỗi đích có số ký tự chỉ định. Ví dụ chuỗi nhập vào là “Nguyen Van Dat”. Nếu sao chép 6 ký tự thì chuỗi đích là “Nguyen”

Bài 7: Viết chương trình nhập vào 1 chuỗi sao đó trích ra 1 chuỗi con từ vị trí nào đó trong chuỗi nguồn và có chiều dài xác định. Ví dụ chuỗi nguồn là “Nguyen Van Dat”, chuỗi trích từ vị trí thứ 8 và cho chiều dai là 3 ký tự, kết quả chuỗi con là “Van”

Bài 8: Viết chương trình nhập vào 1 chuỗi nguồn, ví dụ “ Nguyen Van Thanh”, sau đó nhập vào 1 chuỗi con, ví dụ “Van”, máy sẽ xác định vị trí bắt đầu của chuỗi con ở vị trí nào trong chuỗi nguồn. Kết quả in ra màn hình như sau:

-          chuỗi nguồn là: Nguyen Van Thanh

-          Chuỗi con là : Van

-          Vị trí bắt đầu của chuỗi con là: 8

Bài 9: Viết chương trình để thực hiện các yêu cầu sau:

-          Nhập vào 1 chuỗi bất kỳ, ví dụ: “Nguyen Van Thanh”

-          Muốn xoá từ vị trí nào: ví dụ : 9

-          Muốn xoá bao nhiêu ký tự, ví dụ : 2

Kết quả in ra màn hình như sau:

      + Chuỗi nguồn là: Nguyen Van Thanh

      + Chuỗi còn lại sau khi xoá: Nguyen V Thanh

Bài 10: Một xâu kí tự gọi là Palindrome nếu nó không thay đổi khi ta đảo ngược thứ tự của các kí tự trong nó (ví dụ : “ABCDCBA”). Lập chương trình đọc một xâu kí tự và xác định xem nó có tính Palimndrome không ?

Bài 11: Hãy tạo lập mảng các string trong đó mỗi string là một địa danh. Sắp xếp mảng các địa danh theo thứ tự từ điển

Bài 12:Hãy tạo lập mảng các string, trong đó mỗi string là Họ và tên của học sinh. Sắp xếp mảng các họ tên theo thứ tự từ điển (dựa vào Tên)





CHỦ ĐỀ 5: KIỂU CẦU TRÚC

Bài 1:

Định nghĩa kiểu struct môt tả đa thức (từ, mẩu)

Viết các hàm nhập đa thức, in đa thức, cộng, trừ, nhân, chia đa thức.

Sử dụng các hàm này để thực hiện các công việc sau:

a. Vào từ bàn phím các đa thức p1, p2, p3. Tính đa thức p theo công thức:

            p=(p1+p2)2+p3

            In ra p1, p2, p3 và p

b. Vào từ bàn phím các đa thức p1, p2. Tính đa thức p=p1/p2

            In ra p1, p2, đa thức thương.

Bài 2:

Xây dựng một struct ThiSinh gồm các thành phần sau:

            - Họ tên                        - Quê quán

            - Trường                       - Tuổi

            - Số báo danh                - Điểm thi

Trong đó:

            Họ tên lại là cấu trúc gồm hai thành phần họ, tên đệm và tên.

            Quê quán cũng là một cấu trúc gồm hai thành phần Xã, huyện và tỉnh.

            Điểm thi cũng là cấu trúc gồm ba thành phần: toán, lý, hoá (chính xác đến ¼).

Xây dựng một mảng cấu trúc mà mỗi thành phần của nó là có kiểu ThiSinh ở trên.

Nhập số liệu và lưu trữ vào mảng nói trên.

Tìm kiếm và in ra các thí sinh có tổng số điểm ba môn lớn hơn 15.

Bài 3:

Nhập vào danh sách n hoc sinh với các thuộc tính : Họ tên, năm sinh và tổng điểm. Sắp xếp danh sách theo thứ tự giảm của tổng điểm. Khi tổng điểm như nhau thì học sinh có năm sinh nhỏ hơn sẽ được xếp trứơc. In danh sách học sinh đã sắp xếp sao cho tất cả các chữ cái của họ tên chuyển thành chữ hoa. Thể hiện các kết quả lên màn hình.

Hướng dẫn:

Xây dựng các hàm nhập, hàm xử lý họ tên để đổi các chữ cái thành kiểu in Hoa, hàm sắp xếp để thực hiện các yêu cầu của đề.

Bài 4:

Cho một danh sách liên kết gồm các cấu trúc kiểu ts được định nghĩa như sau:

            struct ts

                        {

                                    char hoten[30];

                                    int namsinh;

                                    float tongdiem;

                                    struct ts* next;

                        }

Viết chương trình nhập dữ liệu cho danh sách trên và thực hiện các yêu cầu sau:

            + In các học sinh có năm sinh từ 1970 trở lại đây

            + Lập danh sách các thí sinh trúng tuyển (điểm chuẩn =15)

            + Bổ sung thêm một số thí sinh vào cuối danh sách

            + Xoá khỏi danh sách các học sinh có tổng đểm <10

Bài 5:

Định nghĩa kiểu sinhvien gồm ba thành phần: Họ tên, năm sinh, và con trỏ kiểu sinhvien.

Nhập từ bàn phím một số sinh viên và chứa vào một danh sách liên kết. Kết thúc việt nhập bằng cách bấm phím Enter
In ra màn hình danh sách các sinh viên theo thứ tự Alphabet.
In ra màn hình danh sách các sinh viên theo thứ tự tuổi giảm dần.
Viết một hàn thực hiện việc sửa đổi thông tin về một sinh viên nào đó khi biết tên nhập vào từ bàn phím.


CHỦ ĐỀ 6: KIỂU TẬP TIN

Bài 1:

Viết chương trình để thống kê số lượng từ trong một tập tin văn bản

Bài 2:

Viết chương trình để nối hai tập tin văn bản vào nhau.

Yêu cầu: Tập tin văn bản mới có các từ cách nhau không quá một khoảng trắng (khoảng trắng có thể là tab ‘t\’, blank ‘ ‘, kí tự xuống dòng ‘\n’) và không có khoảng trắng ở đầu và cuối văn bản.

Bài 3:

Viết chương trình thực hiện các công việc sau:

Xây dựng file MT.txt và ghi lên đó các phần tử của hai ma trận vuông cùng cấp A và B
Dùng file MT.txt để tính ma trận tích C=A*B, sau đó ghi bổ sung ma trận C lên file MT.txt
Đọc các ma trận A, B và C từ file MT.txt rồi in ra màn hình
Bài 4:

Cho tệp dữ liệu matran.in được tổ chức theo khuôn dạng như sau:

-          Dòng đầu tiên là một số tự nhiên n là cấp của ma trận vuông A

-          n dòng tiếp theo mỗi dòng ghi n số thực. Mỗi số thực được phân biệt với nhau bởi một hoặc vài ký tự trống là các phần tử A[i][j] của ma trận vuông A;

Hãy viết chương trình tìm hàng, cột hoặc đường chép có tổng các phần tử là lớn nhất. Ghi kết quả hàng, cột hoặc đường chéo vào tệp matrax.out mỗi phần tử được phân biệt bởi một vài ký tự trống

Ví dụ:

3

1          2          4

4          8          12

3          -3         0

Tệp matrix.out

4          8          12

Bài 5:

Xét mảng struct

            struct{

                        char hoten[25];

                        char quequan[30];

                        int tuoi;

                        }person[100];

Mỗi phần tử của mảng cấu trúc chứa thông tin về một người.

Hãy lập chương trình thực hiện các yêu cầu sau:

-          Vào số liệu cho từng người và ghi lên file nhansu.txt

-          Đọc thông tin từ file nhansu.txt và chứa vào mảng person

-          Ghi danh sách nhân viên từ mảng person vào file nhansu.txt theo thứ tự tăng của tuổi.

0 nhận xét: