Ôn thi cao học Kỹ thuật lập trình

24 581 1
Ôn thi cao học Kỹ thuật lập trình

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ôn thi cao học Kỹ thuật lập trình 1. TÌM KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH 2. CHUYỂN ĐỔI CHƯƠNG TRÌNH 3. XỬ LÝ SỐ Tập hợp bài tập cơ bản ôn thi cao học môn kỹ thuật lập trình cho học viên cao học tham khảo trong quá trình ôn luyện.

1. TÌM KẾT QUẢ THỰC HIỆN CHƯƠNG TRÌNH 2. CHUYỂN ĐỔI CHƯƠNG TRÌNH 1. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 2. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; void Result(int *A, int n){ count++; printf("\n Buoc %d:",count); for(int i=0; i<n; i++) printf("%4d",A[i]); } void main(void){ int i, j; for(i=0; i<n-1; i++){ for(j=i+1; j<n; j++){ if(A[i]>A[j]){ A[i]=A[i] + A[j]; A[j]=A[i]-A[j]; A[i]=A[i] – A[j]; } } Result(A,n); } } #include <stdio.h> #include <conio.h> int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; void Result(int *A, int n){ count++; printf("\n Buoc %d:",count); for(int i=0; i<n; i++) printf("%4d",A[i]); } void main(void){ int i, j, temp; for(i=1; i<n; i++){ temp = A[i]; for(j=i-1; j>=0 && temp < A[j]; j ){ A[j+1]=A[j]; } A[j+1] = temp;Result(A,n); } getch(); } 1 3. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 4. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây: #include <stdio.h> #include <conio.h> int A[] = {19, 12, 18, 13, 10, 14, 16, 11, 15, 17}, n=10, count=0; void Result(int *A, int n){ count++; printf("\n Ket qua buoc %d:",count); for(int i=0; i<n; i++) printf("%4d",A[i]); } void main(void){ int i, j, temp; for(i=1; i<n; i++){ for(j=n-1; j>=i; j ){ if (A[j-1] > A[j]){ temp = A[j-1]; A[j-1] = A[j]; A[j] = temp; } } Result(A,n); } getch(); } #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0}, n=5, OK=1, count=0; void Result(void){ printf("\n Ket qua buoc %3d:",++count); for (int i=0; i<n; i++) printf("%3d",B[i]); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i ) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); } 2 5. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 6. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0}, n=5,k=3, OK=1, count=0; void Inketqua(void){ printf("\n Ket qua %3d:",++count); for(int i=0; i<n; i++) printf("%3d",B[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) if(B[i]) s++; if(s==k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i ) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1 (); } while(OK); } 3 7. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0,0,0}, n=7,k=80, OK=1, count=0; int A[]={5,10,15,20,25,30,35}; void Inketqua(void){ printf("\n Ket qua %3d:",++count); for(int i=0; i<n; i++) if(B[i]) printf("%3d",A[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) s = s+A[i]*B[i]; if(s==k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i ) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); } 4 8. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0,0,0}, n=7,k=80, OK=1, count=0; int A[]={5,10,15,20,25,30,35}; void Inketqua(void){ printf("\n Ket qua %3d:",++count); for(int i=0; i<n; i++) printf("%3d",B[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) s = s+A[i]*B[i]; if(s==k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i ) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); } 5 #include <stdio.h> #include <conio.h> int B[]={0,0,0,0,0,0,0}, n=7,k=40, OK=1, count=0; int A[]={5,10,15,20,25,30,35}; void Inketqua(void){ printf("\n Ket qua %3d:",++count); for(int i=0; i<n; i++) printf("%3d",B[i]); } void Result(void){ int i, s=0; for (i=0; i<n; i++) s = s+A[i]*B[i]; if(s<=k) Inketqua(); } void Function1(void){ for(int i=n-1; i>=0 && B[i]; i ) B[i] =0; if(i>=0) B[i]=1; else OK=0; } void main(void){ do { Result(); Function1(); } while(OK); } 6 9. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 10. Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây. 11. a) Chứng minh rằng một chương trình được thể hiện bằng tất cả các cấu trúc lệnh (while, do while, for, if else, switch) đều có thể chuyển đổi thành một chương #include <stdio.h> #include <conio.h> #include <string.h> char str[255]="000 001 010 011 100 101 110 111 101 110"; void main(void){ clrscr(); int n, m=0, k=0;n = strlen(str);char s[32]; for(int i=0; i<=n; i++){ switch(str[i]){ case ' ' : case '\t': case '\n': case '\r': case '\0': if (k>0) { s[k]='\0';m++;k=0; printf("\n Kết quả bước %d: %s",m,s); } break; default: s[k++]=str[i]; break; } } } #include <stdio.h> #include <conio.h> #include <math.h> int nguyen_to(unsigned long int n){ unisened long int i, k=sqrt(n); for(i=2; i<=k; i++) if(n%i==0) return(0); return(1); } void main(void){ unsigned long int n =2868336900; int k=0,i=2, OK=1; do { if(nguyen_to(n)) { printf("\n Kết quả bước:%d:%ld",++k,n); OK=0;} else if (n%i==0){printf("\n Kết quả bước:%d: %d",++k,i); n = n/i;} else i++; } while(OK); } 7 trình mới cho lại kết quả giống như chương trình cũ nhưng chỉ cần dùng tối thiểu cấu trúc lệnh lặp while và một số biến phụ. b) Áp dụng kết quả trên chuyển đổi các chương trình từ bài 1 đến bài 10 sử dụng tối thiểu cấu trúc lệnh lặp while và một số biến phụ. XỬ LÝ SỐ: 1. Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i) K là số có 5 chữ số; (ii) K là số nguyên tố; (iii) K là số thuận nghịch (k là số thuận nghịch nếu đọc xuôi hay đọc ngược các chữ số của k ta đều nhận được một số như nhau. Ví dụ số: 30303); (iv) Biểu diễn của K ở hệ cơ số B ( B bất kỳ được nhập từ bàn phím cũng là một số thuận nghịch. Ví dụ số k=30303 có biểu diễn ở hệ cơ số 8 là 73137 cũng là một số thuận nghịch; 2. Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i) K là số có 5 chữ số; (ii) K là số nguyên tố; (iii) Đảo ngược các chữ số trong của K cũng là một số nguyên tố; (iv) Tổng các chữ số của K cũng là một số nguyên tố; (v) Mỗi chữ số trong K cũng là những số nguyên tố. 3. Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i) K là số có 5 chữ số; (ii) K là số nguyên tố; (iii) Mỗi chữ số của K cũng là những số nguyên tố; (iv) Tổng các chữ số của K là một số thuận nghịch hai chữ số; (v) Tích các chữ số của K là một số thuận nghịch ba chữ số. 4. Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i) K là số có 5 chữ số; (ii) K là số nguyên tố; (iii) Mỗi chữ số của K cũng là các số nguyên tố; (iv) Tổng các chữ số của K là một số chia hết cho P (P được nhập từ bàn phím); (v) Tích các chữ số của K là một số chia hết cho Q (Q được nhập từ bàn phím); (vi) Các chữ số của K không chứa số R (được nhập từ bàn phím). 5. Hãy viết chương trình liệt kê tất cả các số tự nhiên K thỏa mãn đồng thời những điều kiện dưới đây: (i) K là số có 5, 7 hoặc 9 chữ số; (ii) K là số thuận nghịch; 8 (iii) Tổng các chữ số của K là một số chia hết cho P (P được nhập từ bàn phím); (iv) Tích các chữ số của K là một số chia hết cho Q (Q được nhập từ bàn phím); (v) Các chữ số của K không chứa số R (được nhập từ bàn phím). 6. Cho số tự nhiên N, B được nhập từ bàn phím (N≥10000 ; B≥255). Hãy viết chương trình thực hiện: (i) Tính tổng các chữ số của N ; (ii) Phân tích N thành tích các thừa số nguyên tố ; (iii) Biểu diễn N ở hệ cơ số B ; (iv) Liệt kê các số hoàn hảo nhỏ hơn N ; 7. Số điện thoại di động của một hãng viễn thông được đánh số theo qui cách 091N. XXX.XXX. Trong đó, N là số từ 2 đến 8, X là một số từ 0 đến 9. Ta định nghĩa các loại số điện thoại sau: • Số điện thoại loại I (Loại I): Là những số có sáu số cuối cùng của nó tạo thành một số thuận nghịch sáu chữ số. Ví dụ số: 0913.558855. • Số điện thoại loại II (Loại II): Là những số điện thoại Loại I có tổng sáu chữ số cuối cùng là một số chia hết cho 10 . Ví dụ số: 0913.104.401 (1+0+4+4+0+1=10). • Số điện thoại loại III (Loại III): Là những số điện thoại Loại II có sáu chữ số cuối cùng không chứa bất kỳ một số 0 nào. Ví dụ số: 0913. 122.2211. Hãy viết chương trình thực hiện: • Liệt kê tất cả các số điện thoại Loại I không chứa các số điện thoại Loại II. Ghi lại các số Loại I vào file Loai1.out theo từng dòng, mỗi dòng không quá 8 số điện thoại. • Liệt kê tất cả các số điện thoại Loại II không chứa các số điện thoại Loại III. Ghi lại các số Loại II vào file Loai2.out theo từng dòng, mỗi dòng không quá 8 số điện thoại. • Liệt kê tất cả các số điện thoại Loại III. Ghi lại các số Loại III vào file Loai3.out theo từng dòng, mỗi dòng không quá 8 số điện thoại. TEST3 1. Một xâu nhị phân độ dài n được gọi là thuận nghịch hay đối xứng nếu đảo ngược xâu nhị phân đó ta vẫn nhận được chính nó. Cho số tự nhiên n (n nhập từ bàn phím). Hãy viết chương trình liệt kê tất cả các xâu nhị phân thuận nghịch có độ dài n. Các xâu nhị phân tìm được ghi lại trong file ketqua.out theo khôn dạng: • Dòng đầu tiên ghi lại số K là số các xâu thuận nghịch có độ dài n tìm được; 9 • K dòng kế tiếp ghi lại mỗi dòng một xâu nhị phân thuận nghịch có độ dài n. Hai phần tử khác nhau của xâu thuận nghịch được ghi cách nhau một vài khoảng trống. Ví dụ với n = 4 ta tìm được 4 xâu nhị phân thuận nghịch như dưới đây. ketqua.out 4 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 2. Cho một hình chữ nhật gồm n × m hình vuông đơn vị (n, m được nhập từ bàn phím). Hãy liệt kê tất cả các đường đi từ đỉnh cuối của ô vuông cuối cùng phía bên trái đến đỉnh đầu của ô vuông trên cùng phía bên phải. Biết mỗi bước đi chỉ đuợc phép dịch chuyển sang bên phải (ký hiệu là bước 1) hoặc lên trên (ký hiệu là bước 0) theo các cạnh của hình vuông đơn vị. Các đường đi tìm được ghi lại trong file ketqua.out theo khuôn dạng sau: • Dòng đầu tiên ghi lại một số tự nhiên là số các đường đi tìm được; • Những dòng kế tiếp mỗi dòng ghi lại một đường đi, bước dịch phải (1) và bước lên trên (0) của mỗi đường đi, hai bước khác nhau được ghi cách nhau bởi một vài tự trống. Ví dụ với n = 3, m = 2 như hình vuông dưới đây sẽ cho ta file ketqua.out tương ứng. 10 Ketqua.Out 10 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 [...]... 37 12 10 Cho ma trận vuông C = (cij) cấp N (1≤ i, j ≤ N≤100) gồm N2 số tự nhiên (các số không nhất thi t phải khác nhau) ghi lại trong file matran.in theo khuôn dạng sau : • Dòng đầu tiên ghi lại số tự nhiên N là cấp của ma trận vuông C; • N dòng kế tiếp ghi lại ma trận vuông C = (cij); Hai phần tử khác nhau của ma trận được ghi cách nhau bởi một vài khoảng trống Hãy viết chương trình lấy trên mỗi hàng,... (cij) cấp N (1≤ i, j ≤ N≤100) gồm N2 số tự nhiên (các số không nhất thi t phải khác nhau) ghi lại trong file matran.in theo khuôn dạng sau : • Dòng đầu tiên ghi lại số tự nhiên N là cấp của ma trận vuông C; • N dòng kế tiếp ghi lại ma trận vuông C = (cij) Hai phần tử khác nhau của ma trận được ghi cách nhau bởi một vài khoảng trống Hãy viết chương trình lấy trên mỗi hàng, mỗi cột duy nhất một phần tử sao... trận vuông Ci,j cấp N (1≤ i, j ≤ N≤100) gồm N2 số tự nhiên và số tự nhiên K(Các số không nhất thi t phải khác nhau) ghi lại trong file matran.in theo khuôn dạng sau: • Dòng đầu tiên ghi lại số tự nhiên N và K Hai số được viết cách nhau một vài khoảng trống; • N dòng kế tiếp ghi lại ma trận vuông Ci,j; Hai phần tử khác nhau của ma trận được ghi cách nhau bởi một vài khoảng trống Hãy viết chương trình. .. phố thứ j là Cij Hãy viết chương trình tìm hành trình có chi phí nhỏ nhất cho người du lịch Dữ liệu vào cho bởi file chiphi.in theo khuôn dạng sau: • Dòng đầu tiên ghi lại số tự nhiên N là số thành phố người du lịch cần đi qua; • N dòng kế tiếp ghi lại ma trận chi phí C=(cij) Hai phần tử khác nhau của ma trận chi phí được viết cách nhau một vài khoảng trống 19 Hành trình với chi phí nhỏ nhất tìm được... data.in ghi lại các số tự nhiên có 5 chữ số theo từng dòng, mỗi dòng không quá 5 số Các số không được ghi trong file có thể xuất hiện nhiều lần ở những vị trí khác nhau trong file Hãy viết chương trình tìm các số thuận nghịch và số lần xuất hiện của nó trong file data.in Các số thuận nghịch tìm được ghi lại trong file ketqua.out theo khuôn dạng: • Dòng đầu tiên ghi lại số tự nhiên K là số các số thuận nghịch... Ta định nghĩa một từ là dãy các tự không chứa khoảng trống (space), dấu tab, dấu xuống dòng (‘\n’), dấu về đầu dòng (‘\r’) và dấu kết thúc dòng (‘\0’) Cho hai file văn bản DATA1.IN và DATA2.IN Hãy tìm tập các từ và số lần xuất hiện của mỗi từ trong file DATA1.IN nhưng không xuất hiện trong file DATA2.IN Các từ tìm được ghi lại trong file Ketqua.out theo khuôn dạng sau: • Dòng đầu tiên ghi lại số... AF 2 AG 4 Ta định nghĩa một từ là dãy các tự không chứa khoảng trống (space), dấu tab, dấu xuống dòng (‘\n’), dấu về đầu dòng (‘\r’) và dấu kết thúc dòng (‘\0’) Cho hai file văn bản DATA1.IN và DATA2.IN Hãy tìm tập các từ xuất hiện trong file DATA1.IN nhưng không xuất hiện trong file DATA2.IN Các từ tìm được ghi lại trong file Ketqua.out theo khuôn dạng sau: • Dòng đầu tiên ghi lại số tự nhiên K... được ghi lại trong file ketqua.out theo khuôn dạng: • Dòng đầu tiên ghi lại chi phí nhỏ nhất của hành trình tìm được; • Dòng kế tiếp ghi lại thứ tự các thành phố người du lịch cần đi qua Các thành phố được ghi cách nhau một vài khoảng trống Ví dụ dưới đây sẽ minh họa cho file chiphi.in và ketqua.out của bài toán TEST4 1 Ta định nghĩa một từ là dãy các kí tự không chứa khoảng trống (space), dấu tab, dấu... nhau trong file Hãy viết chương trình tách tập các số và đếm số lần xuất hiện của mỗi số trong file data.in thành 3 file ketqua1.out, ketqua2.out, ketqua3.out thỏa mãn những yêu cầu dưới đây a) File ketqua1.out ghi lại các số nguyên tố nhưng không là số thuận nghịch cùng với số lần xuất hiện của nó trong file data.in; b) File ketqua2.out ghi lại các số thuận nghịch nhưng không là nguyên tố cùng với số... 20 35 25 3 0 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 4 Cho dãy A[] gồm N số tự nhiên khác nhau và số tự nhiên K Hãy viết chương trình liệt kê tất cả các dãy con của dãy số A[] sao cho tổng các phần tử trong dãy con đó đúng bằng K Dữ liệu vào cho bởi file dayso.in theo khuôn dạng sau: • Dòng đầu tiên ghi lại số tự nhiên N và K; hai số được viết cách nhau bởi một vài khoảng trống; • Dòng kế tiếp ghi

Ngày đăng: 29/06/2014, 21:49

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan