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

Ngôn ngữ lập trình C++_Kiểm tra giữa kỳ C++ docx

4 1K 8

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 46,5 KB

Nội dung

Các câu hỏi ôn tập cho kỳ thi giữa kỳ1.. Hàm đệ quy double Powdouble x, int n tính xn 3.. Cho đoạn khai báo class sau: class Int32 { int value; public:... Ví dụ đề thiCho trước các file

Trang 1

Các câu hỏi ôn tập cho kỳ thi giữa kỳ

1. Hàm đệ quy int Factorial(int N) tính N!

2. Hàm đệ quy double Pow(double x, int n) tính xn

3. Hàm đệ quy USCLN (int a, int b) tìm ước số chung lớn nhất của a và b

4. Viết hàm double Value(double a[], int n, double x0) để tính giá trị của hàm

f(x) = anxn + an-1xn-1+…+a1x + a0 tại x0

5. Viết hàm double Root(double a[], int n, double x1, double x2) để tìm giao điểm

của f(x) = anxn + an-1xn-1+…+a1x + a0 giữa [x1, x2] với trục hoành bằng phương pháp chia đôi với độ chính xác 1e-10

6. Viết hàm void InsertionSort(int A[], int N, int Indies[])

// A – mảng dữ liệu, N – số phần tử của mảng

// Indies – mảng các chỉ số

sao cho A[Indies[i]] | i = 0…N – 1 có thứ tự tăng dần

7. Viết hàm void SelectionSort(int A[], int N, int Indies[])

// A – mảng dữ liệu, N – số phần tử của mảng

// Indies – mảng các chỉ số

sao cho A[Indies[i]] | i = 0…N – 1 có thứ tự tăng dần

8. Viết hàm void BubbleSort(int A[], int N, int Indies[])

// A – mảng dữ liệu, N – số phần tử của mảng

// Indies – mảng các chỉ số

sao cho A[Indies[i]] | i = 0…N – 1 có thứ tự tăng dần

9. Viết hàm int Part(int A[], int lb, int ub, int Indies[])

// A – mảng dữ liệu, N – số phần tử của mảng

// Indies – mảng các chỉ số

// lb – chỉ số đầu đoạn, ub – chỉ số cuối đoạn

sao cho (A[Indies[l]] | l = lb … j – 1 < A[Indies[j]] < A[Indies[r]] | r = j + 1 … ub) | j – giá trị trả về của hàm

10. Viết hàm void BuildHeap(int A[], int N, int i, int Indies[])

// A – mảng dữ liệu, N – số phần tử của mảng

// Indies – mảng các chỉ số

// i – chỉ số của nút gốc

sao cho A[Indies[j]] | j = i…N – 1 là một Heap

11. Viết hàm int BinarySearch(int A[], int N, int Indies[], int X)

// A – mảng dữ liệu, N – số phần tử của mảng

// Indies – mảng các chỉ số, A[Indies[i]] | i = 0…N – 1 có thứ tự tăng dần

// giá trị trả về: vị trí của X trong mảng A hoặc –1 nếu không tồn tại X

12. Cho đoạn khai báo class sau:

class Int32 {

int value;

public:

Trang 2

Int32(int v) : value(v) {} // hàm tạo từ giá trị v void Parse(const char *s);

};

Viết mã cho hàm void Int32::Parse(const char *s) để gán giá trị cho Int32::value

từ xâu đầu vào s

13. Cho đoạn khai báo class sau:

class Array {

int * data, len; // data – mảng số nguyên, len – độ dài của mảng public:

Array(int A[], int N); // hàm tạo từ mảng A với N phần tử

~Array(); // hàm hủy int Sum(); // hàm tính tổng các phần tử của mảng double Avg(); // hàm tìm giá trị trung bình của mảng int Max(); // hàm tìm giá trị lón lớn nhất trong mảng int Min(); // hàm tìm giá trị nhỏ nhất trong mảng void GetRange(int &min, int &max);// hàm tìm giá trị lớn nhất và

// nhỏ nhất của mảng };

Viết mã cho các hàm của class Array

14. Xây dựng class Stack để có thể thực hiện đoạn thuật toán sau:

Stack s; // khai báo Stack s có thể chứa 20 phần tử kiểu int

int x = 25;

do { s.Push(x & 1); x >>=1; } while (x);

while (!s.IsEmpty()) cout << s.Pop();

Trên màn hình phải thể hiện:

Tao stack

11001

Huy stack

15. Cho đoạn khai báo class sau:

class TamGiac {

double _a, _b, _c; // ba cạnh của tam giác private:

int Kieu(); // hàm tìm kiểu của tam giác (thường, vuông, cân,

// vuông cân hoặc đều) public:

TamGiac(double a, double b, double c);

void Print();

};

Viết mã cho các hàm của class TamGiac sao cho kết quả của đoạn mã:

TamGiac tg(2, sqrt(2), sqrt(2))

tg.Print();

cho hiện trên mà hình kết quả là “vuong can”

Trang 3

Ví dụ đề thi

Cho trước các file trong project ThiGiuaKy:

// main.cpp

#include “ThuVien.h”

#include <iostream>

using namespace std;

int showMenu()

{

cout << “0 Thoat\n”;

cout << “1 Stack\n”;

cout << “2 Array\n”;

cout << “3 InsertionSort”;

cout << “> ”;

char c = cin.get();

return (c – 48);

}

void main()

{

int menu;

int A[] = { 66, 33, 44, 77, 99, 11, 55, 22, 88 };

while (menu = showMenu())

{

if (menu == 1) {

Stack s;

int x = 25;

do { s.Push(x & 1); x >>=1; } while (x); while (!s.IsEmpty()) cout << s.Pop(); }

if (menu == 2) {

int min, max;

Array arr(A, 9);

cout << “min = “ << arr.Min() << endl; cout << “max = “ << arr.Max();

}

if (menu == 3) {

int N = 9, i;

int *indies = new int[N];

for (i = 0; i < N; i++)

indies[i] = i;

Trang 4

InsertionSort(A, N, indies);

for (i = 0; i < N; i++)

cout << A[indies[i]] << ‘ ‘;

} cout << endl;

}

}

// ThiGiuaKy.h

#pragma once

double Value(int a[], int n, double x0);

double Root(int a[], int n, double x1, double x2);

void swap(int &a, int &b);

void SelectionSort(int A[], int N, int Indies[]);

void InsertionSort(int A[], int N, int Indies[]);

void BubbleSort(int A[], int N, int Indies[]);

int Part(int A[], int lb, int ub, int Indies[]);

void BuildHeap(int A[], int N, int i, int Indies[]);

class Array {…};

class Stack {…};

class Int32 {…};

class TamGiac {…};

// ThiGiuaKy.cpp

#include “ThiGiuaKy.h”

void swap(int &a, int &b)

{

int t = a; a = b; b = t;

}

// mã của các hàm cần thiết khác

Yêu cầu đối với sinh viên có số hiệu 2008003

Thêm file 2001003.cpp vào project và viết mã cho các hàm để hàm main có thể cho kết quả đúng

Ngày đăng: 10/07/2014, 08:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w