Đáp án chi tiết, giải thích dễ hiểu nhất cho câu hỏi “Bài tập về con trỏ C++” cùng với kiến thức tham khảo là tài liệu cực hay và bổ ích giúp các bạn học sinh ôn tập và tích luỹ thêm kiến thức bộ môn Tin học.
Bài 1: Sử dụng con trỏ trong C++, bạn hãy viết một chương trình C++ để nhận dữ liệu từ người dùng và tìm giá trị lớn nhất của một tập dữ liệu nội bộ.
Hướng dẫn:
#include<iostream>
#include<conio.h>
using namespace std;
int *findMax(int arr[],int n);
int main(){
int n,i,*p;
cout<<"Nhap so du lieu: ";
cin>>n;
int arr[n];
for(i=0;i<n;i++) {
cout<<"Nhap gia tri thu "<<i+1<<" la :";
cin>>arr[i];
}
p=findMax(arr,n);
cout<<"Gia tri lon nhat la: "<<*p;
getch();
return 0;
}
int *findMax(int data[],int n){
int *max=data;
int i;
for(i=1;i<n;i++){
if(*max<*(max+i)) *max=*(max+i);
}
return max;
}
Bài 2: Viết một chương trình C++ để nhận 5 giá trị nguyên từ bàn phím. 5 giá trị này sẽ được lưu trữ trong một mảng bởi sử dụng một con trỏ. Sau đó, in các phần tử của mảng trên màn hình.
Hướng dẫn:
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int arr[5],i;
int *p=arr;
cout<<"Nhap 5 so:";
cin>>*p>>*(p+1)>>*(p+2)>>*(p+3)>>*(p+4);
cout<<"Cac so ban vua nhap la:\n";
for(i=0;i<5;i++)
cout<<arr[i]<<endl;
return 0;
}
Bài 3: Viết một hàm có tên là sumarrays() có đối số là hai mảng, tính tổng giá trị cả hai mảng và trả về tổng đó. Viết chương trình minh họa.
Hướng dẫn:
#include <stdio.h>
#define MAX1 5
#define MAX2 8
int array1[MAX1] = { 1, 2, 3, 4, 5 };
int array2[MAX2] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int total;
int sumarrays(int x1[], int len_x1, int x2[], int len_x2);
main()
{
total = sumarrays(array1, MAX1, array2, MAX2); printf("The total is %d\n", total);
return 0;
}
int sumarrays(int x1[], int len_x1, int x2[], int len_x2)
{
int total = 0, count = 0;
for (count = 0; count < len_x1; count++) total += x1[count];
for (count = 0; count < len_x2; count++) total += x2[count];
return total;
}