You are on page 1of 5

ÔN TẬP KTLT

Bài 1: Viết chương trình C thực hiện:


a) Yêu cầu người dùng nhập vào số nguyên n cho đến khi thoả mãn 1<= n <= 1000.
b) Kiểm tra n có là một nguyên tố hay không?
Bài 2: Viết chương trình C thực hiện các yêu cầu sau:
a) Yêu cầu người dùng nhập vào số nguyên n cho đến khi thoả mãn điều kiện 1≤ n≤50, Viết
hàm nhập vào 1 mảng số nguyên A[] có n phần tử.
b) Viết hàm hiển thị mảng vừa nhập ra màn hình.
c) Viết hàm sắp xếp mảng A[] theo chiều giảm dần.
d) Nhập một số nguyên x và một số nguyên k, nếu k thoả mãn điều kiện 0 ≤ k < n-1 thì
chèn x vào vị trí k trong mảng. Hiển thị dãy mới sau khi chèn.
Bài 3: Thông tin về sinh viên được lưu trong một cấu trúc bao gồm các thông tin: mã sinh
viên(int), họ tên (char[30]). Danh sách n sinh viên được tổ chức dạng List với n nguyên
dương nhập từ bàn phím, 1<= n <=60.
Viết chương trình C thực hiện các yêu cầu sau:
a) Nhập vào n, nhập vào thông tin của từng sinh viên, sử dụng danh sách liên kết đơn.
b) In danh sách sinh viên vừa nhập ra màn hình.

Lời giải tham khảo:


Bài 1:
//Kiem tra so nguyen to
#include "stdio.h"
#include "conio.h"

int so_nguyen_to(int N);


int main()
{
int N;
int ketqua;
do
{
printf("\n Nhap vao so N = ");
scanf("%d", &N);
}

1
while(N <= 0 || N>1000); // Vong lap yeu cau nhap vao n thoa man dieu kien

if(so_nguyen_to(N))
printf("\n %d la so nguyen to", N);
else
printf("\n %d la khong phai so nguyen to", N);
getch();
return 1;
}
// Ham kiem tra so nguyen to
int so_nguyen_to(int N)
{
int i;
if(N == 1)
return 1;
else
{
for( i = 2; i < N/2; i++)
{
if(N % i == 0)
return 0;
}
return 1;
}
}

Bài 2:
#include <stdio.h>

// Ham nhap mang n phan tu tu ban phim


void InputArray(int a[], int n){
for(int i = 0;i < n; ++i){
printf("\nNhap phan tu a[%d] = ", i);
scanf("%d", &a[i]);
}
}

//Ham in mang A[] ra man hinh


void DisplayArray(int a[], int n){
for(int i = 0;i < n; i++){
printf("\n a[%d] = %d",i, a[i]);
}
}

// Ham sap xep tang dan


void Sort(int a[], int n){
int temp;
for(int i = 0; i < n - 1; i++){

2
for(int j = i + 1; j < n; j++){
if(a[i] < a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}

// Ham chen 1 phan tu x vao vi tri k voi 1<= k < n


void Insert(int a[],int n, int k,int x) {
for(int i=n-1; i>=k; i--) {
a[i+1] = a[i];
}
a[k] = x;
}

//Chuong trinh chinh


int main(){
int arr[50];
int n;
printf("\nNhap so luong phan tu: ");
do{
scanf("%d", &n);
if(n <= 0 || n >= 50){
printf("\nNhap lai so luong phan tu: ");
}
}while(n <= 0 || n >= 50);
printf("\nNhap mang");
InputArray(arr, n);
printf("\nHien thi mang vua nhap: ");
DisplayArray(arr, n);
Sort(arr, n);
printf("\n Mang da sap xep giam dan la: ");
DisplayArray(arr, n);
//chen phan tu x vao vi tri k
int k, x;
if(n>49)
printf("Mang da day, khong the chen them phan tu moi.");
else{
do {
printf("\n Nhap vi tri can chen k( 1<=k, k<n):");
scanf("%d", &k);
} while(k<1 || k>=n);
printf("Nhap gia tri x chen vao: ");
scanf("%d", &x);
Insert(arr, n, k, x); // chen phan tu x vao vi tri k trong mang
DisplayArray(arr, n+1); // hien thi mang moi sau khi chen(n+1 phan tu)
}
return 0;
3
}

Bài 3:
#include <stdio.h>

#include <stdlib.h>
#include <string.h>

struct node {
int id;
char name[30];
struct node *next;
};

struct node *head = NULL;


struct node *current = NULL;

//hien thi list


void printList() {

struct node *ptr = head;

printf("\n[head] =>");
//bat dau tu phan dau cua list
while(ptr != NULL) {
printf(" id: %d, name: %s =>",ptr->id, ptr->name);
ptr = ptr->next;
}

printf(" [null]\n");
}

//chen link tai vi tri dau tien


void insert(int id, char* tenSV) {
//tao mot link
struct node *link = (struct node*) malloc(sizeof(struct node));

//link->key = key;
link->id = id;
strcpy(link->name, tenSV);
//tro link do toi first node cu
link->next = head;

//tro first toi first node moi


head = link;
}

4
int main() {
int id, n;
char name[30];//ten sv

printf("Nhap so luong sinh vien: ");


do{
scanf("%d", &n);
if(n <= 0 || n > 60){
printf("\nNhap lai so luong sinh vien: ");
}
}while(n <= 0 || n > 60);
//nhap danh sach sv
for(int i = 1; i<=n; i++){
printf("Nhap vao ID sinh vien thu %d:", i);
scanf("%d",&id);
printf("Nhap vao ten sinh vien thu %d:", i);
fflush(stdin); //remove enter key from input buffer
gets(name); // Nhap ten sv

insert(id,name);
}

// in danh sach sv
printList();
return 0;
}

You might also like