Trắc nghiệm môn Tin học đại cương

//  
{
1. Nếu hàm func( ) không có tham số thì khai báo nào dưới đây đúng nhất?  
~ func( )  
~ func(void)  
= func(void) hoặc func( )  
~ func  
}
//  
2. Nếu không khai báo kiểu trả về của hàm thì kiểu trả về mặc định là gì?  
{
~void  
~char  
=int  
~float  
}
//  
3. Hãy cho biết phạm vi gọi hàm trong chương trình?  
{
~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ư thế nà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.  
}
//  
{
5. Nguyên mẫu hàm được khai báo với những gì ?  
~Tên hàm và danh sách tham số  
~Kiểu hàm và tên hàm  
~Kiểu hàm và danh sách tham số  
=Kiểu hàm, tên hàm và danh sách tham số  
}
//  
6. * Hàm có thể được khai báo nguyên mẫu và được định nghĩa ở đâu?  
{
~Được định nghĩa trong hàm main( )  
~ Được khai báo nguyên mẫu trong hàm main( ) và chỉ được gọi bởi hàm  
main( )  
~ Được khai báo nguyên mẫu ở trước hàm main() và chỉ được gọi bởi hàm  
main( )  
= Được khai báo nguyên mẫu ở trước hàm main() và được định nghĩa sau  
hàm main( )  
}
//  
7. *Danh sách tham số chỉ có tên hình thức thì có thể khai báo kiểu tham số ở  
đâu ?  
{
~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  
}
//  
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.  
}
//  
9. Biến cục bộ được khai báo ở đâu?  
{
~Biến được khai báo bên ngoài tất cả các hàm  
=Biến được khai báo bên trong hàm  
~Biến được khai báo bên trong hàm và phải được khởi gán giá trị  
~Biến được khai báo bên trong hoặc bên ngoài các hàm  
}
//  
10.Phát biểu nào đưới đây là đúng?  
{
=Biến cục bộ và biến toàn cục có thể trùng tên  
~Biến cục bộ và biến toàn cục không được trùng tên  
~Nếu biến cục bộ và biến toàn cục trùng tên thì các biến phải được khai báo  
bên ngoài các hàm  
~Biến toàn cục phải được khởi gán giá trị  
}
//  
11.Một hàm có thể được gọi ở đâu?  
{
~Trong hàm main( )  
~Trong các hàm khác  
~Trong hàm main( ) và trong các hàm khác  
=Trong hàm main( ), trong các hàm khác và bởi chính nó  
}
//  
12.Hàm đệ quy là gì?  
{
~Không phải hàm main( )  
~Là hàm chuẩn  
~Là hàm do người dùng định nghĩa  
=Là hàm được gọi bởi chính nó  
}
//  
13.*Khi hàm được gọi thì các lệnh trong hàm được thực hiện cho đến khi nào ?  
{
~Cho đến hết hàm  
~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ì lý do gì ?  
{
~Không có khai báo kiểu trả về  
=Khai báo tham số không đúng  
~Không có lệnh “return”  
~Chưa có giá trị của biến b  
}
//  
15. * Cho hàm  
void swap (int a, int b)  
{
int temp=a; a=b; b=temp;  
}
Với các lệnh ở hàm main( ) như sau:  
int n=5, k=7;  
swap(n, k);  
Sau khi thực hiện các lệnh trên, hãy cho biết giá trị của các biến n và k?  
{
~n=7, k=5.  
~n=7, k=5, temp=7.  
~n=5, k=7, temp=7.  
=n=5, k=7.  
}
//  
16. * Cho đoạn chương trình như sau:  
void inc(int a){a++ ;}  
main( )  
{
int a=5;  
inc(a) ; printf(" %d", a) ;  
}
Cho biết kết quả in ra của đoạn chương trình trên?  
{
~6  
=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ố.  
}
//  
17. Cho hàm  
sum(int *a, int n)  
{
int i,s ;  
for (s=0, i=0; i<n ; i++) s+=a[i];  
return s;  
}
Hàm trên dùng để làm gì?  
{
=Tổng mảng a gồm n số nguyên kiểu int.  
~Đếm số phần tử trong mảng a.  
~Hàm bị lỗi vì không khai báo kiểu trả về.  
~Hàm bị lỗi vì lệnh: s=0, i=0;  
}
//  
18.* Cho hàm  
fact(int n)  
{
int i, p=1;  
for (i=0 ; i<n ; i++) p*=i ;  
return p;  
}
Hàm trên dùng để làm gì?  
{
~Tích mảng p gồm n số nguyên kiểu int.  
~Tính n!.  
~Hàm bị lỗi vì không khai báo kiểu trả về.  
=Kết quả trả về là 0.  
}
//  
19.Cho hàm fact(int n){ int i, p=1; for (i=2 ; i<=n ; i++) p*=i ; return p;}.  
Hàm trên để tính:  
{
~Tích mảng p gồm n số nguyên kiểu int.  
=Tính n!.  
~Hàm bị lỗi vì không khai báo kiểu trả về.  
~Hàm bị lỗi vì lệnh i=2;  
//  
{
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 gì ?  
~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 được khai báo ở đâu?  
{
~ 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 bên ngoài tất cả các hàm kể cả hàm main( )  
}
//--  
22.Biến toàn cục được sử dụng ở đâu?  
{
~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.Biến cục bộ được sử dụng ở đâu ?  
{
~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ó  
}
//--  
24.Nếu tham số của hàm là con trỏ thì trong lệnh gọi hàm có thể truyền gì ?  
{
~Truyền hằng  
~Tuyền bằng địa chỉ của biến  
=Truyền bằng địa chỉ của biến hoặc con trỏ  
~ Truyền biến  
}
//--  
25.* Cho hàm  
long giai_thua(int n)  
{ int i; long p=1;  
for(i=2;i<n;i++) p=p*i;  
return(p);  
}
Hàm trên dùng để làm gì?  
{
~n!!  
~p!  
=(n-1)!  
~n!  
}
//--  
26.Cho hàm sau:  
double mu ( double a, int n)  
{ double p; int i;  
for(p=1,i=1;i<=abs(n);i++) p=p*a;  
if(n<0) p=1/p;  
return(p);  
}
Hàm trên tính gì?  
{
~an  
~na  
~Kết quả khác  
=an  
}
//--  
27.*Cho hàm  
int kt(unsigned n)  
{
if (n%2) return(1 ) ;  
else return(0) ;  
}
Biểu thức 1+kt(4+1) có giá trị bao nhiêu?  
{
~ 1  
~ 0  
~ 6  
=2  
}
//--  
28.Cho hàm sau đây:  
double tinhs(double x,int n)  
{
double s, a;  
int i;  
s=1;a=x;i=1;  
while(i<=abs(n)){  
s=s+a;  
i++;  
a=a*x;  
}
return(s);  
}
Hàm trên tính gì?  
{
~ x+x2+x3+…+xn  
~ x2+x3+…+xn  
~Kết quả khác  
=1+x+x2+x3+…+xn  
}
//--  
29.Cho chương trình sau  
#include <stdio.h>  
int fibo(int i);  
void main( )  
{
int i=5;  
printf("\n So Fibonacci thu %d la %d",i,fibo(i));  
}
int fibo(int i)  
{
if (i<3) return(1);  
else return (fibo(i-2)+fibo(i-1));  
}
Kết quả của chương trình là gì ?  
{
~So Fibonacci thu 5 là 8  
~So Fibonacci thu 5 là 3  
~Kết quả khác  
=So Fibonacci thu 5 là 5  
}
//--  
30.* Cho chương trình sau:  
#include <stdio.h>  
void main( )  
{
unsigned n=3;  
printf("\nTong cua %u so la : %u", n+1, tinhs(n));  
}
unsigned tinhs(unsigned n)  
{
unsigned i,s;  
for(s=0,i=1;i<=2*n+1;i+=2) s=s+i;  
return(s);  
}
Hãy cho biết kết quả của chương trình trên?  
{
~Tong cua 4 so la 9  
~Tong cua 3 so la 9  
~Kết quả khác  
=Tong cua 4 so la 16  
}
//  
31.* Biến cục bộ tĩnh  
{
~Đượ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  
=Tất cả đều đúng  
}
//--  
32.Biến con trỏ có thể chứa  
{
~Giá trị của một biến  
~Giá trị của một vùng nhớ  
~Giá trị một biến hoặc một vùng nhớ  
= Địa chỉ của một biến  
}
//--  
33.Cho khai báo: int n, *pn=&n;  
Trong các phát biểu sau thì phát biểu nào đúng ?  
{
~ n là biến kiểu int  
~ *pn là biến con trỏ và n là biến kiểu int  
~ pn là biến con trỏ  
= n là biến kiểu int và pn là biến con trỏ có giá trị đầu là địa chỉ của n .  
}
//--  
34.Toán tử nào sau đây truy cập giá trị mà con trỏ chỉ đến?  
{
~ >  
~.  
~&  
=*  
}
//--  
35.* Cho khai báo  
char *str=”HELLO”;  
Lệnh str++; sẽ làm gì?  
{
~ Tăng str lên 2 đơn vị  
~ str trỏ tới ký tự ‘H’  
= str trỏ tới ký tự ‘E’  
~ Tất cả đều đúng  
}
//-  
36.*Có khai báo sau  
int num[]={5,10,15,20,25};  
int *ptr = &num[0];  
Phép toán ptr++ sẽ  
{
~ Tăng ptr lên 1 int  
~ Tăng ptr lên 2 byte.  
~ ptr trỏ tới num[1]  
= Cả 3 đáp án trên đều đúng.  
}
//--  
37. *Cho đoạn chương trình sau:  
int num[ ]={1,3,5,7,9};  
int *ptr1=&num[1];  
int *ptr2=&num[3];  
int n=ptr2-ptr1;  
Giá trị kết quả của n là gì?  
{
~3  
~4  
~5  
=2  
}
38.//--  
39.*Các phát biểu sau đây thì phát biểu nào đúng ?  
{
~ Cách đặt tên hàm giống cách đặt tên biến  
~ Số tham số hình thức bằng số tham số thực  
~ Các tham số trong nguyên mẫu của hàm đặt cách nhau bởi dấu phẩy  
= Tất cả đều đúng  
}
//  
40.*Cho biết giá trị của biểu thức thi(6)?  
int thi(int i){  
return (!i%3);  
}
{
= 0  
~ 1  
~ 2  
~ Hàm bị lỗi.  
}
//  
41.Cho hàm sau đây :  
int thi(int n){  
for(int i=1; i<n; ) printf("%d ",i++); return 0;  
}
Kết quả hiển thị lên màn hình khi chạy dòng lệnh thi(5); là gì?  
{
~ 0 1 2 3 4  
= 1 2 3 4  
~ 4 3 2 1  
~ Lệnh gọi hàm không đúng.  
}
//  
42.*Cho hàm sau:  
int thi(int n){  
if (n==0 ) return 1;  
return thi(n-1)*n;  
}
Cho biết kết quả của lệnh printf("%d", thi(4));  
{
~ 10  
= 24  
~ 30  
~ 12  
}
//  
43.*Cho biết giá trị của biểu thức thi(4)+1?  
int thi(int n){  
if(n==0) return 0;  
return thi(n-1)+n;  
}
{
~ 0  
= 11  
~ 6  
~ 15  
}
//---  
44.*Cho hàm sau:  
int thi(int x, int *y){  
x*=2; *y+=1;  
return x+*y;  
}
và khi thực hiện đoạn lệnh sau:  
int i=1; j=1;  
printf("%d %d %d ",i,j,thi(i,&j));  
Kết quả hiển thị lên màn hình là gì?  
{
~ 1 1 4  
~ 2 2 4  
= 1 2 4  
~ 2 1 4  
}
//-  
45.*Cho hàm sau:  
void thi(unsigned int n){  
if(n<2) printf("%d",n);  
else{thi(n/2); printf("%d",n%2);}  
}
Hãy cho biết kết quả hiển thị lên màn hình khi thực hiện lệnh thi(10);?  
{
}
~ 0101  
~ 101  
= 1010  
~ Hàm bị lỗi  
//-  
46.*Cho hàm sau đây :  
void thi(int i){  
if(i<5) printf("%d ",i);  
else{thi(i-1); printf("%d ",i);}  
}
Kết quả hiển thị lên màn hình là gì khi gọi hàm thi(8);?  
{
= 4 5 6 7 8  
~ 8 7 6 5 4  
~ 4 5 6 7  
~ 7 6 5 4  
}
//--  
47.*Cho hàm sau đây:  
int thi(unsigned int n){  
if(n<=2) return n;  
return ....*n;  
}
Hãy điền vào .... để hàm sau tính n!!=2*4*6*...*n với n chẵn hoặc n!!=1*3*5*...*n  
với n lẻ?  
{
= thi(n-2)  
~ thi(n-1)  
~ thi(n+2)  
~ Tất cả đều sai.  
}
//-  
48.Hãy điền vào .... để hàm sau kiểm tra n có phải là số nguyên tố hay không?  
int nguyento(unsigned int n)  
{ int i;  
for( i=2; i<=sqrt(n); i++) if ( .... ) return 0;  
return 1;  
}
{
= !(n%i)  
~ n%i==1  
~ n%i  
~ n==0  
}
//--  
49.*Cho khai báo sau:  
int a=5,*b=&a ;  
Để truy cập đến giá trị của a có thể dùng biểu thức nào dưới đây?  
{
~ &b  
= *b  
~ b  
~ Lỗi khai báo  
}
//-  
50.*Cho hàm sau:  
char thi(char a, char *b){  
return a;  
}
và khai báo: char a,*b;  
Hãy chọn lệnh đúng ?  
{
~ thi(a,*b);  
~ b=thi(65,&a);  
= thi('A',&a);  
~ b=thi('A',b);  
}
//--  
51.*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){  
int s=0, i;  
for(i=1; i<n; i++)  
if(!(n%i)) .... ;  
return n==s;  
}
{
}
~ s+=i++  
= s=s+i  
~ s++  
~ S+=i  
//---  
52.Cho hàm sau:  
int thi(int n){  
if(n ==0) return n;  
return thi(n-2)+n;  
}
Hãy cho biết kết quả hiển thị lên màn hình khi thực hiện lệnh  
printf("%d",thi(6));  
{
}
~ 6  
~ 10  
= 12  
~ 14  
//---  
53.*Cho hàm sau:  
int *thi(int i){  
return &i;  
}
và đoạn lệnh: int i=010,*a=thi(i+012); printf("%o",*a);  
Kết quả hiển thị lên màn hình khi thực hiện đoạn lệnh trên là gì?  
{
~ 20  
~ 18  
= 22  
~ Đoạn lệnh trên bị lỗi  
}
//--  
54.*Cho hàm sau:  
int thi(int n){  
int s=0;  
do{if(n%2==0) s++; n/=2;}while(n);  
return s;  
}
Hãy cho biết giá trị của biểu thức thi(36)+2?  
{
~ 4  
~ 2  
= 6  
~ 5  
}
//  
55.*Cho hàm sau:  
int thi(int x, int *y){  
x=*y; *y=2*x;  
return x+*y;  
}
và đoạn lệnh trong hàm main( ):  
int x=1, y=2; printf("%d, %d, %d",thi(y,&x),x,y);  
Hãy cho biết kết quả hiển thị lên màn hình khi thực hiện đoạn lệnh trên?  
{
= 3, 1, 2  
~ 3, 2, 2  
~ 6, 1, 4  
~ 6, 1, 2  
}
//  
56.*Cho hàm sau:  
int thi(int x, int *y){  
x=3; *y=4;  
return x+*y;  
}
Hãy cho biết kết quả hiển thị lên màn hình khi thực hiện đoạn lệnh sau:  
int x=1, y=2; thi(y,&x); printf("%d, %d",x,y);  
{
~ 4, 3  
~ 1, 4  
~ 3, 4  
= 4, 2  
}
//  
57.*Cho hàm sau:  
int thi(int x){  
x+=035;  
printf("%o",x);  
return 0;  
}
Hãy cho biết kết quả hiển thị lên màn hình khi thực hiện lệnh thi(054); ?  
{
~ 089  
~ 89  
= 111  
~ 0111  
}
//  
58.*Cho định nghĩa hàm sau:  
int thi(int x, int y){  
return x+y;  
}
Hãy cho biết kết quả hiển thị lên màn hình khi thực hiện lệnh sau:  
printf("%o",thi(0xA, 012));  
{
~ 024  
= 24  
~ 20  
~ lệnh sai  
}
//  
59.Cho biết khai báo nguyên mẫu hàm nào là không thích hợp  
{
~ void funct(char x, char y);  
= double funct(char x)  
~ int funct( );  
~ char x( );  
}
//  
{
60.Cho nguyên mẫu hàm  
funct( char c, double x, float y);  
Kiểu trả về của hàm này là gì ?  
~ char  
~ double  
= int  
~ float  
}
//  
61.*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; }  
main( )  
{ int a=10, b=20; hoandoi(a, b); printf("%d %d", a, b); }  
{
~ 10 20  
~ 20 10  
= Chương trình bị lỗi  
~ Kết quả khác  
}
//  
62.*Kết quả của chương trình sau là gì ?  
#include <stdio.h>  
void hoandoi(int a, int b)  
{ int t=a; t=a; a=b; b=t; }  
main( )  
{ int a=100, b=200; hoandoi(&a, &b); printf("%d %d", a, b);  
{
~100 200  
~ 200 100  
= Chương trình bị lỗi  
~ Kết quả khác  
}
//  
63.*Ưu điểm của việc dùng hàm ?  
{
=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.  
~ Tiết kiệm bộ nhớ.  
}
//  
64.*Phát biểu nào sau đây là sai đối với lời gọi hàm?  
{
~ Tham số thực sự truyền cho hàm và tham số hình thức có thể trùng tên  
~ Số tham số thực sự truyền cho hàm phải bằng số tham số hình thức  
= Tham số thực sự truyền cho hàm và tham số hình thức phải trùng tên  
~ Tham số thực sự truyền cho hàm có thể là biến  
}
//  
65. *Đối với hàm trả về giá trị kiểu float, giá trị hàm được dùng ở đâu ?  
{
~ Trong biểu thức  
~ Như câu lệnh  
~ Trong hàm main( )  
= Trong biểu thức hoặc như câu lệnh  
}
//  
66. Đối với hàm trả về kiểu void, lệnh gọi hàm được dùng như thế nào ?  
{
~ Trong biểu thức  
= Như câu lệnh  
~ Trong hàm main( )  
~ Trong biểu thức hoặc như câu lệnh  
}
//  
67. Chọn phát biểu sai trong ngôn ngữ C:  
{
~ Có thể định nghĩa hàm ở trước hàm main( )  
~ Không được định nghĩa hàm trong hàm  
= Có thể định nghĩa hàm trong hàm  
~ Các hàm được gọi bởi hàm main( )  
}
//  
68. *Định nghĩa hàm nào sau đây là đúng cú pháp ?  
Tải về để xem bản đầy đủ
pdf 34 trang Thùy Anh 14080 Free
Bạn đang xem 20 trang mẫu của tài liệu "Trắc nghiệm môn Tin học đại cương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftrac_nghiem_mon_tin_hoc_dai_cuong.pdf