Câu 9: 2.0 điểm Chương trình sau đây thực hiện chức năng: Nhập vào một mảng gồm n số nguyên, dùng con trỏ và cấp phát bộ nhớ động.. o Nếu đã theo thứ tự tăng dần: in ra tất cả các số
Trang 1TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
KHOA ĐIỆN – ĐIỆN TỬ
BM: KT MÁY TÍNH VÀ VIỄN THÔNG
ĐỀ THI CUỐI KỲ HK 1 NĂM HỌC 2015- 2016 Môn: Kỹ thuật lập trình và giao tiếp
Mã môn học: PRIN337664
Đề số/Mã đề: 01 Đề thi có 08 trang
Thời gian: 75 phút
Được sử dụng tài liệu trên giấy
SV làm bài trực tiếp trên đề thi, viết kết quả vào các dòng hoặc ô trống qui định
Chữ ký giám thị 1 Chữ ký giám thị 2
Điểm và chữ ký
CB chấm thi thứ nhất CB chấm thi thứ hai
Họ và tên:
Mã số SV:
Số TT: Phòng thi:
Câu 1: (0.5 điểm) Cho biết kết quả in ra màn hình sau khi chạy chương trình sau:
#include <stdio.h>
void main()
{
int a = 5, b = 2;
float c = 2;
b += a++/c;
printf("%d %d ", a, b);
}
Kết quả in ra màn hình:
Câu 2: (0.5 điểm) Cho biết kết quả in ra màn hình sau khi chạy chương trình sau:
#include <stdio.h>
void main()
{
int a = 6, b = 4, c = 5;
if (a > b)
if (b > c)
a = b + c;
else
b = a + c;
printf ("%d %d", a, b);
}
Kết quả in ra màn hình:
Câu 3: (0.5 điểm) Cho chương trình sau:
#include <stdio.h>
void main()
{
int a, b;
scanf("%d%d", &a, &b );
if (a == b)
printf ("bang nhau! ");
else
printf("khac nhau!");
}
Trang 2Hãy viết lại chương trình dùng cú pháp lệnh switch case sao cho chức năng chương trình không đổi
Câu 4: (0.5 điểm) Cho biết kết quả in ra màn hình sau khi chạy chương trình sau: #include <stdio.h> void main() { int i, a = 0; for (i = 9; i > 0; i-=2) if (i%5 != 0) a+= i; else break; printf ("%d %d", a, i); } Kết quả in ra màn hình: Câu 5: (0.5 điểm) Cho biết kết quả in ra màn hình sau khi chạy chương trình sau: #include <stdio.h> void main() { int i = 0, a = 4; do { a += i; i++; }while (i < 5 && a < 8); printf("%d %d", a, i); } Kết quả in ra màn hình: Câu 6: (0.5 điểm) Cho chương trình sau: #include <stdio.h> void main() { int i = 5; while ( i > 0) printf("%d ", i); } Hãy viết lại chương trình dùng lệnh for sao cho chức năng chương trình không đổi
Trang 3
Câu 7: (1.0 điểm) Cho biết kết quả in ra màn hình sau khi chạy chương trình sau:
#include <stdio.h>
void main()
{
float a[4] = {1,1,0,0};
float *p1 = &a[0];
float *p2 = &a[2];
*p1 = *p2;
*(p1 + 2) = *p2 + 2;
printf (" %f %f %f %f", a[0], a[1], a[2], a[3]);
}
Kết quả in ra màn hình:
Câu 8: (1.0 điểm) Cho biết kết quả in ra màn hình sau khi chạy chương trình sau:
#include <stdio.h>
int func1 (int x, int y, int *z, int *t)
{
x++; y++;
*z = y; *t = x;
if (x > y)
{
*z = x; *t = y;
}
if ( x!=y) return 1;
else return 0;
}
void main()
{
int a = 3, b = 5, c = 0, d = 0;
if (func1(a, b, &c, &d) == 0)
printf("Not found!");
else
printf ("%d %d %d %d", a, b, c, d);
}
Kết quả in ra màn hình:
Câu 9: (2.0 điểm)
Chương trình sau đây thực hiện chức năng:
Nhập vào một mảng gồm n số nguyên, dùng con trỏ và cấp phát bộ nhớ động
Kiểm tra xem mảng đã nhập có theo thứ tự tăng dần hay chưa:
o Nếu chưa: in thông báo “Mang chua duoc sap xep tang”
o Nếu đã theo thứ tự tăng dần: in ra tất cả các số chẵn hiện có trong mảng, nếu mảng không tồn tại số chẵn thì in thông báo “Mang khong co so chan”
Hãy viết hoàn thiện chương trình này
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
//Hàm Function1 thực hiện nhập dữ liệu cho 1 mảng 1 chiều các số nguyên
void Function1(int *x, int y)
{
//Hoàn thiện nội dung hàm nhập dữ liệu cho mảng (0.25 đ)
Trang 4
} //Hàm Function2 thực hiện việc kiểm tra mảng có số chẵn hay không //Hàm trả về: số 1 nếu có, số 0 nếu không có số chẵn trong mảng int Function2(int *x, int y) { //hoàn thiện nội dung hàm kiểm tra mảng có số chẵn hay không (0.25 đ)
} //Hàm Function3 thực hiện việc kiểm tra xem mảng đã được sắp xếp tăng dần chưa Hàm trả về: số 1 nếu mảng đã được sắp xếp tăng dần, số 0 nếu chưa int Function3(int *x, int y) { //hoàn thiện nội dung hàm kiểm tra dữ liệu mảng (0.5 đ)
} void main() { int *array, n, i; printf( "\n Nhap so luong phan tu mang: " ); scanf( "%d", &n ); //cấp phát bộ nhớ mảng cho con trỏ array (0.25 đ)
if(array!=NULL) { printf( "\n Nhap gia tri cho cac phan tu\n" ); //Gọi hàm Function1 để xử lý nhập dữ liệu vào mảng (0.25 đ)
//Kiểm tra dữ liệu trong mảng đã theo thứ tự tăng dần chưa, dùng hàm Function3
if ( Function3(array, n) == 0)
printf( "\n Mang chua duoc sap xep tang! \n" );
else
Trang 5{
//xử lý khi mảng đã theo thứ tự tăng dần
//Gọi hàm Function2 để kiểm tra mảng có tồn tại số chẵn hay
không
// nếu không tồn tại số chẵn: in thông báo (0.25 đ)
// nếu có số chẵn: in ra tất cả số chẵn hiện có (0.25 đ)
} } } Câu 10: (2.0 điểm) Chương trình sau thực hiện lần lượt các chức năng: Tạo 1 kiểu cấu trúc LinhKien để quản lý các linh kiện hiện có, gồm các thông tin: Mã linh kiện (maLk): định dạng số nguyên Tên linh kiện (tenLk): định dạng chuỗi Số lượng hiện có (soLuong): định dạng số nguyên Nhập thông tin (mã linh kiện, tên linh kiện, số lượng) của 10 loại linh kiện khác nhau Kiểm tra và in ra thông tin các loại linh kiện hiện tại đã hết (có số lượng hiện có là 0) trong 10 loại trên Cho phép người dùng tìm kiếm thông tin của 1 loại linh kiện bất kỳ bằng cách nhập vào mã linh kiện Sau đó: Nếu tìm thấy: in tra thông tin chi tiết của linh kiện này Nếu không tìm thấy: in thông báo “khong co linh kien can tim” Hãy viết hoàn thiện chương trình #include <stdio.h> #include <string.h> struct LinhKien { //Khai báo các thành phần của cấu trúc (0.25 đ)
};
void main()
{
struct LinhKien data[10];
int i, ma;
//Nhập dữ liệu của 10 loại linh kiện, lưu vào mảng data (0.25 đ)
Trang 6
//In thông tin của các loại linh kiện hiện tại đã hết (0.5 đ)
printf( "\n Nhap ma linh kien muon tim: \n" ); scanf( "%d", &ma ); //Tim kiếm linh kiện theo mã vừa nhập //Nếu tìm thấy: in thông tin chi tiết của linh kiện (0.5 đ)
//Nếu không tìm thấy: in thông báo (0.5 đ)
}
Câu 11: (1.0 điểm)
Cho chương trình C# với giao diện được thiết kết như hình dưới Tên của các đối tượng trên Form (radioButton, textbox, Button) được đặt như minh họa trong hình
Trang 7Chương trình thực hiện chức năng tìm số lớn nhất hoặc tìm số nhỏ nhất trong 2 số nhập vào
2 số được nhập vào ở textBox1 và textBox2
Lựa chọn chức năng tìm số lớn nhất hay tìm số nhỏ nhất bằng radioButton1 hoặc radioButton2
Kết quả được xuất ra ở textBox3
Hãy viết mã nguồn của hàm xử lý cho nút nhấn “Thực thi”
private void button1_Click(object sender, EventArgs e)
{
}
Ghi chú:Cán bộ coi thi không được giải thích đề thi
Chuẩn đầu ra của học phần (về kiến thức) Nội dung kiểm
tra
G1.2 Trình bày được cấu trúc chương trình C, C#
Trình bày được cú pháp lệnh, hoạt động và áp dụng được các cấu trúc
rẽ nhánh và lặp trong ngôn ngữ C
Trình bày được cách khai báo và áp dụng mảng, chuỗi để quản lý dữ
liệu trong C
Trình bày được cách khai báo con trỏ và sử dụng con trỏ để truy xuất
vùng nhớ
Trình bày được định nghĩa hàm và sử dụng hàm trong một chương
trình
Trình bày được định nghĩa kiểu cấu trúc và sử dụng biến cấu trúc để
lưu trữ và quản lý dữ liệu
Câu 1 Câu 2 Câu 3 Câu 4 Câu 5 Câu 6 Câu 7
G2.2 Phân tích, kiểm chứng, điều chỉnh các chương trình ứng dụng viết
bằng ngôn ngữ C, C#
Câu 8
G4.4 Áp dụng các cấu trúc điều khiển, áp dụng các thao tác xử lý dữ liệu, Câu 9
Trang 8xây dựng sử dụng các hàm hỗ trợ để thiết kế, lập trình ứng dụng giải
quyết các yêu cầu dùng ngôn ngữ C, C#
Câu 10 Câu 11 Ngày tháng năm 2016
Thông qua bộ môn