Ôn Tập�Thi Cuối Học Kỳ
Trịnh Tấn Đạt
Khoa CNTT - Đại Học Sài Gòn
Email: trinhtandat@sgu.edu.vn
Website: https://sites.google.com/site/ttdat88/
Nội dung
Hình thức thi:
+ Tự luận
+ Thời gian: 90 phút
+ KHÔNG SỬ DỤNG TÀI LIỆU
Con Trỏ
FILE
String
Đệ quy
Các kỹ thuật nâng cao
Ví dụ: Đệ quy
Ví dụ: Chuỗi ký tự
Ôn tập các bài tập trong slide bài giảng
Ví dụ: Chuỗi ký tự
Ví dụ: FILE và mảng 2 chiều
Ôn tập các bài tập về mảng 1 chiều và mảng 2 chiều trong slide bài giảng và cơ sở lập trình
Ví dụ: file và mảng 1 chiều
Ví dụ: file test.txt |
2 3 10 5 21 30 4 11 |
Cho một file văn bản chứa các số nguyên dương có cấu trúc như sau:
Dòng 1: ghi 2 số nguyên dương m, n
m dòng còn lại, mỗi dòng ghi n số nguyên dương . Các số cách nhau ít nhất một khoảng trắng
a) Đọc dữ liệu từ file, lưu vào mảng 2 chiều A (yêu cầu dùng cấp phát động/mảng động).
b) Tính tổng các phần tử trên mỗi dòng
c) Tạo mảng C từ mảng A sao cho cij = aij * ki với ki là số lớn nhất trong dòng i.
d) Gọi sij là số lượng các số nguyên tố trên dòng i và cột j. Tạo mảng D từ mảng A sao cho
e) Yêu cầu ghi kết quả ra file output.txt.
* Lưu ý: Viết đầy đủ chương trình có hàm main(). Kết thúc chương trình phải thu hồi vùng nhớ.
Ví dụ: file và mảng 2 chiều
FILE và dữ liệu cấu trúc
#include <iostream.h> using namespace std; int main() { int Arr[]={2,1,9,8,5,4}; int *p; p = &Arr[0]; cout << *p << endl; p = p + 1; cout << *p << endl; p = &Arr[4]; cout << *p << endl; *p = *p + *(p+1) + *(p-3); cout << *p << endl; return 0; } |
int main()
{ char *s = new char[255];
strcpy(s,"data structure and algorithm");
cout<<strrchr(s,' ')+1<<endl;
cout<<strtok(s," ")<<endl;
s[4] = '\0';
cout<<s<<endl;
cout<<strrev(s)<<endl;
cout<<s+14<<endl;
cout<<strstr(s+5,"and")<<endl;
return 0;
}
#include <iostream>
using namespace std;
void mystery(char* str) {
if (*str) {
mystery(str + 1);
cout << *str;
}
}
int main() {
char str[] = "ABCDE";
mystery(str);
return 0;
}
#include <iostream>
using namespace std;
int findMax(int* arr, int size) {
int maxVal = *arr;
for (int i = 1; i < size; i++) {
if (*(arr + i) > maxVal) {
maxVal = *(arr + i);
}
}
return maxVal;
}
int main() {
int arr[] = {5, 9, 3, 7, 2};
cout << "Max value: " << findMax(arr, 5) << endl;
return 0;
}
#include <iostream>
using namespace std;
void reverseArray(int* arr, int size) {
int* start = arr;
int* end = arr + size - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
reverseArray(arr, 5);
cout << "Reversed array: ";
for (int i = 0; i < 5; i++)
cout << arr[i] << " ";
return 0;
}
#include <iostream>
using namespace std;
void modifyArray(int* arr, int size) {
for (int i = 0; i < size; i++) {
*(arr + i) += i;
}
}
void printArray(int* arr, int size) {
for (int i = 0; i < size; i++) {
cout << *(arr + i) << " ";
}
cout << endl;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
modifyArray(arr, 5);
printArray(arr, 5);
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
void mystery(char* str) {
while (*str) {
if (*str >= 'a' && *str <= 'z') {
*str = *str - 32; // Chuyển từ chữ thường thành chữ hoa
} else if (*str >= 'A' && *str <= 'Z') {
*str = *str + 32; // Chuyển từ chữ hoa thành chữ thường
}
str++;
}
}
int main() {
char str[] = "HeLLo WoRLD!";
mystery(str);
cout << "Result: " << str << endl;
return 0;
}