Gồm 40 câu trắc nghiệm dễ và 60 câu trắc nghiệm khó cho các bạn tham khảo dạng. Bộ câu hỏi gồm 107 câu hỏi với nhiều dạng. Đòi hỏi các bạn sinh viên phải có một kiến thức chuẩn, sự bình tĩnh và chính xác trong tính toán. Cũng có thể dựa vào đây để ôn tập.
Trang 140 câu dễ và 60 câu khó// -1
1 Nếu hàm func( ) kiểu "int" và không có tham số thì có thể khai báo: {
~Các hàm được gọi hàm main( )
~ Các hàm không được gọi hàm main( )
~ Các hàm được gọi bởi hàm main( )
= Các hàm được gọi bởi hàm main( ) và chúng có thể gọi lẫn nhau.}
// -4 Tham số hình thức của hàm được khai báo :
{
~Như khai báo biến
~Như khai báo mảng
=Như khai báo biến nhưng không được khai báo chung
~Khai báo khác
Trang 2~Kiểu hàm và danh sách tham số.
=Kiểu hàm, tên hàm và danh sách tham số
}
// -4
6 Hàm có thể khai báo nguyên mẫu và định nghĩa :
{
~Định nghĩa trong hàm main( )
~Khai báo nguyên mẫu trong hàm main( ) và chỉ được gọi bởi hàm main( )
~Khai báo nguyên mẫu ở đầu chương trình và chỉ được gọi bởi hàm main( )
=Khai báo nguyên mẫu ở đầu chương trình và định nghĩa sau hàm main( ).}
// -2
7 *Danh sách tham số chỉ có tên hình thức thì có thể khai báo kiểu tham số:{
~Sau “)” với các tham số cùng kiểu cũng phải khai báo riêng
=Sau “)” với các tham số cùng kiểu có thể khai báo chung
~Sau “{“ với các tham số cùng kiểu cũng phải khai báo riêng
~Sau “{“ với các tham số cùng kiểu có thể khai báo chung
}
// -2
8 Trong lệnh gọi hàm, danh sách tham số thực sự truyền cho hàm:
{
~Như danh sách tham số hình thức trong khai báo
~Phải có kiểu tham số
~Đúng kiểu như trong khai báo
=Đúng kiểu và đúng số tham số như trong khai báo
Trang 3// -3
9 Biến cục bộ:
{
~Là biến được khai báo bên ngoài tất cả các hàm
~Là biến được khai báo bên trong một hàm
=Là biến được khai báo bên trong một hàm và chỉ được dùng trong hàm đó
~Là biến được khai báo bên trong hoặc bên ngoài các hàm
~Không được trùng tên
~Nếu trùng tên thì biến cục bộ phải khai báo bên ngoài các hàm
=Có thể trùng tên và lệnh trong hàm ưu tiên biến cục bộ
Trang 4=Là hàm được định nghĩa qua chính nó.
~Cho đến khi gặp lệnh “break”
~Cho đến khi gặp lệnh “exit”
=Cho đến khi gặp lệnh “return” hoặc đến hết hàm
}
// -14.*Cho hàm func(a, b : int){ a=b++ ;} Hàm này bị lỗi vì:
{
~Không có khai báo kiểu trả về
=Khai báo tham số không đúng
Trang 5=5
~Không có kết quả vì hàm trên bị lỗi
~Không có kết quả vì biến trùng tên với tham số
Trang 6// -20 Cho hàm prod(int a[], int n){ int i, p=1; for (i=0 ; i<n ; i++) p*=a[i]; return p;}.
Hàm trên để tính:
{
~Tính tích mảng p gồm n số nguyên kiểu int
=Tính tích mảng a gồm n số nguyên kiểu int
~Hàm bị lỗi vì không khai báo kiểu trả về
~Hàm bị lỗi vì không khai báo kích thước mảng a
// -21 Biến toàn cục:
{
~ Khai báo bên ngoài hàm main( )
~ Khai báo trong tất cả các hàm, ngoại trừ hàm main( )
~ Khai báo bên trong hàm main( )
=Khai báo ngoài tất cả các hàm kể cả hàm main( )
}
// -22.Phạm vi sử dụng của biến toàn cục
{
~Bên trong hàm main( )
~Bên ngoài hàm main( )
~Bên trong các hàm ngoại trừ hàm main( )
=Bên trong các hàm kể cả hàm main( )
}
// -23 Phạm vi sử dụng của biến cục bộ
{
~Bên trong hàm main( )
~Bên ngoài hàm main( )
~Bên trong các hàm ngoại trừ hàm main( )
=Bên trong hàm có khai báo nó
~Tuyền bằng địa chỉ của biến
=Truyền bằng địa chỉ của biến hoặc con trỏ
Trang 7~ Truyền biến
}
// -2
25.*Hàm sau tính
long int giai_thua(int n)
{ int i; long int p=1;
Trang 8~So Fibonacci thu 5 là 8
~So Fibonacci thu 5 là 3
~Kết quả khác
=So Fibonacci thu 5 là 5
}
// -3
Trang 930.*Cho biết kết quả của chương trình sau
~Được khai báo bên trong thân hàm
~Được khai báo với từ khoá static
~Vẫn tồn tại ngay cả khi hàm kết thúc
~Giá trị một biến hoặc một vùng nhớ
= Địa chỉ của một biến
}
// -6
33 Cho khai báo: int n, *pn=&n;
{
~ n là biến kiểu int
~ *pn là biến con trỏ và n là biến kiểu int
Trang 10~ Tăng str lên 1 byte
~ Tăng str lên 1 char
~ Tăng ptr lên 1 int
~ Tăng ptr lên 2 byte
Trang 1139.*Cho biết giá trị của biểu thức thi(6)?
int thi(int i){
Trang 13// -45.*Cho biết kết quả hiển thị lên màn hình khi gọi hàm thi(8);
void thi(int i){
if(i<5) printf("%d ",i);
else{thi(i-1); printf("%d ",i);}
Trang 15// -50.*Số nguyên dương n là số hoàn hảo nếu n bằng tổng các ước số thực sự của n.Ví dụ 6=1+2+3 Hãy điền vào để hàm sau kiểm tra n có phải là số hoàn hảo hay không?
int thi(unsigned int n){
Trang 1759 Kiểu trả về của hàm sau đây là gì ?
funct( char c, double x, float y);
Trang 18// -60.*Kết quả của đoạn chương trình sau là gì ?
#include <stdio.h>
void hoandoi(int *a, int *b)
{ int t=*a; *a=*b; *b=t; }
void hoandoi(int a, int b)
{ int t=a; t=a; a=b; b=t; }
=Tránh dư thừa, dễ quản lý chương trình
~ Giúp chương trình thực hiện nhanh hơn
~ Tận dụng kỹ năng lập trình của nhiều người
~ Tham số thực và tham số hình thức có thể trùng tên
~ Số tham số thực phải bằng số tham số hình thức
= Tham số thực và tham số hình thức phải trùng tên
~ Tham số thực có thể là biến
Trang 19~ Có thể định nghĩa hàm ở trước hàm main( )
~ Không được định nghĩa hàm trong hàm
~ int sum(int a, b) { return a+b; }
~ void sum(int a, int b) { return a+b;}
~ int sum(a, b) { int a,b,c; c=a+b; return c; }
= int sum(int a, int b) { return a+b; }
Trang 20~ void hoandoi(float a, float b);
= void hoandoi(float *a, float *b) ;
~ float hoandoi(float a, float b) ;
}
// -69 *Với khai báo float a, b; float *pa, *pb;
Dãy lệnh nào dưới đây không đúng cú pháp
int tinh( unsigned a)
{ int n =0; while (a!=0) { a=a/10; n++); return n; }
{
~ Tổng các chữ số của số nguyên dương a
= Đếm số chữ số của số nguyên dương a
~ Tích các chữ số của số nguyên dương a
// -72 Cho biết dãy fibonanci như sau: 1 1 2 3 5 8 13 21 34 …
Hàm dưới đây có ý nghĩa là gi`?
int fibo(int n)
{ if (n==1|| n==2) return 1; else return fibo(n-1) + fibo(n-2); }
{
= Tính số fibonanci thứ n
~ Kiểm tra số n có phải là số fibonanci?
~ Tìm dãy n số fibonanci đầu tiên
Trang 23// -78.*Các phép toán trên con trỏ ?
= pa chứa địa chỉ của a[0]
~ pa là giá trị đầu tiên của mảng a
~ Khai báo không hợp lệ
// -81 *Cho khai báo: int a,*p;
Hãy chỉ ra biểu thức không hợp lệ
{
Trang 25// -85.*Giả sử có mảng một chiều a gồm n phần tử Hàm sau làm gì ?
void thitracnghiem(int *a, int &n, int x)
Trang 27~ Báo lỗi khi chạy chương trình
~ 15 15
}
// -Bổ sung đủ 100 câu// -4
// -90 *Cho khai báo hàm: void swap(int *a, int &b);
và khai báo biến : int n, k ;
// -91 *Cho hàm thực hiện trên mảng a gồm n phần tử:
int find (int x, int a[ ], int n){int i=0; while( i<n && a[i] !=x) i++ ; return i ;}Hàm này để:
{
Trang 28~ Kiểm tra giá trị x có trong mảng a hay không.
~ Tính tổng các phần tử của mảng a
~ Tìm vị trí i đầu tiên của giá trị x trong mảng a
= Tìm vị trí i đầu tiên của giá trị x trong mảng a; nếu không có thì trả về n.}
// -92 *Cho hàm thực hiện trên mảng a gồm n phần tử:
int find (int x, int *a, int n){int i=0; while( i>=0 && a[i] !=x) i ; return i ;}Hàm này để:
{
~ Kiểm tra giá trị x có trong mảng a hay không
~ Tìm vị trí i cuối cùng của giá trị x trong mảng a
= Tìm vị trí i cuối cùng của giá trị x trong mảng a; nếu không có thì trả về -1
~ Tính tổng các phần tử của mảng a
}
// -4
93.*Cho hàm thực hiện trên mảng a gồm n phần tử:
void Xoa (int *a, int &n)
~ Loại phần tử âm đầu tiên ra khỏi mảng a
= Loại tất cả phần tử âm ra khỏi mảng a
~ Xóa phần tử thứ n của mảng a
~ Loại phần tử đầu tiên ra khỏi mảng a
}
Trang 29
// -94.Cho: int n, *p, f( ) ;
để khai báo:
{
~ n là biến kiểu int, p là mảng các phần tử kiểu int, f là biến kiểu int
~ n là biến kiểu int, p là mảng các phần tử kiểu int, f là con trỏ kiểu int
~ n là biến kiểu int, p là con trỏ kiểu int, f là hàm kiểu int
= n là biến kiểu int, p là con trỏ kiểu int, f là hàm kiểu int và không có tham số.}
// -95.Cho khai báo hàm: f( );
khai báo tương đương là:
// -96.Cho khai báo hàm: f(int);
khai báo tương đương là:
// -97.Cho hàm thực hiện trên mảng a gồm n phần tử:
void func (unsigned a[ ], int n)
Trang 30~ Kiểm tra số bội 3 có trong mảng a hay không.
// -98.*Cho hàm thực hiện trên mảng a gồm n phần tử:
int func (int a[ ], int n, int *m)
= Trả về vị trí của số lớn nhất đầu tiên trong mảng a và giá trị lớn nhất trong m
~ Tính số nhỏ nhất đầu tiên trong mảng a để trả về trong m và hàm trả về vị trí.}
// -4
99.*Cho hàm thực hiện trên mảng a gồm n phần tử:
int func (int a[ ], int n, int *m)
~ Trả về vị trí của số lớn nhất đầu tiên trong mảng a và giá trị lớn nhất trong m
= Trả về vị trí của số lớn nhất cuối cùng trong mảng a và giá trị lớn nhất trong m.}
// -4
100 *Cho hàm thực hiện trên mảng t gồm n phần tử:
Trang 31int func (unsigned t[ ], int n)
~ Tìm vị trí của số nguyên tố đầu tiên trong mảng t
= Tìm vị trí của số nguyên tố đầu tiên trong mảng t; nếu không có thì trả về n.}
Trang 33107 Cho nguyên mẫu hàm