You are on page 1of 8

TRƯỜNG ĐẠI HỌC CNTT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA KHOA HỌC MÁY TÍNH Độc lập - Tự do - Hạnh phúc

ĐỀ THI LÝ THUYẾT MÔN TIN HỌC ĐẠI CƯƠNG – Đề số 1


Cử nhân chính quy - Khoá 2. Thời gian: 60 phút.

Sinh viên không được sử dụng tài liệu, nộp lại cả phần đề trắc nghiệm kèm theo bảng trả lời.

Họ tên và chữ ký Họ tên và chữ ký


Họ tên: ..................................................... giám thị coi thi thứ nhất giám thị coi thi thứ hai
.....................................................
MSSV: .....................................................
Lớp: .....................................................
................................... ...................................

 BẢNG TRẢ LỜI


Sinh viên trả lời bằng cách đánh dấu  vào một trong các ô chọn lựa a, b, c hoặc d ở
bảng sau:

1 a b c d 21 a b c d
2 a b c d 22 a b c d
3 a b c d 23 a b c d
4 a b c d 24 a b c d
5 a b c d 25 a b c d
6 a b c d 26 a b c d
7 a b c d 27 a b c d
8 a b c d 28 a b c d
9 a b c d 29 a b c d
10 a b c d 30 a b c d
11 a b c d 31 a b c d
12 a b c d 32 a b c d
13 a b c d 33 a b c d
14 a b c d 34 a b c d
15 a b c d 35 a b c d
16 a b c d 36 a b c d
17 a b c d 37 a b c d
18 a b c d 38 a b c d
19 a b c d 39 a b c d
20 a b c d 40 a b c d

Ghi chú:

: Chọn : Bỏ chọn : Chọn lại câu đã bỏ chọn

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đề số 1

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


Câu 1: Cho biết giá trị của biểu thức nhị
a[i+1]=a[i];
phân sau:
for( i=0; i<4;i++)
(00100011 OR 11010110) AND
printf(“%d”, a[i]);
(10010010 XOR 10100011)
}
a. 11110111 b. 11000110 Kết quả nào sau đây là đúng:
c. 00110001 d. Cả 3 câu trên đều sai. a. 1 2 3 4 5
Câu 2: Gọi Xa là thể hiện của số X theo hệ b. 2 3 4 5 6
cơ số a. Xét chuyển đổi từ hệ thập phân c. 8 7 6 5 4
sang hệ nhị phân sau: 15710 -> X2. Cho d. Các câu trên đều sai
biết X2 là giá trị nào sau đây:
a. 10011101 b. 10011011 Câu 6: Cho biết giá trị của n sau đoạn
c. 10001011 d. Cả 3 câu trên đều sai. chương trình sau:
int a=5, b= 8, c=6;
Câu 3: Cho đoạn chương trình sau: int n=a>b ? (a>c ? c: b) : (b>c ? a:c);

int a = 5, b = 14; a. 5 b. 6
printf("%d %d %.2f", c. 7 d. 8
a>b?a++:a+=2, a<<4, (float)b/a*2);
Kết quả in ra màn hình là: Câu 7: Cho phương trình bậc 2: ax2 + bx +
a. 5 80 5.60 b. 7 112 2.00 c = 0. Cho a khác 0 và Delta= b*b-
c. 7 112 4.00 d. 7 56 4.00 4*a*c>0. Phương trình có các nghiệm
 b  Delta
Câu 4: Cho biết kết quả đoạn chương trình x 
sau:
2*a . Với sqrt là hàm lấy căn
int n,x,y,z; bậc 2 của một số thực. Thể hiện 1 nghiệm
void P(int *a, int b) { của phương trình trên:
n=5+b; a. x = -b - sqrt(Delta) / (2*a);
*a=n*2; b. x = (-b - sqrt (Delta) ) / (2*a);
b=*a+n; c. x = (-b - sqrt(Delta) ) /2*a;
} d. x = -b - sqrt (Delta) /2/a;
void main() {
x=1; y=2; z=3; n=4;
P(&z,x); Câu 8: Cho biết giá trị của k sau đoạn
printf(“%d,%d,%d,%d”,n,x, chương trình sau:
y,z);
int k=0;
}
int i,j;
a. 7,14,21,3
for (i=0; i<4; i++)
b. 4,1,18,12
{
c. 7,14,2,3
for (j=1; j<i; j++)
d. 6,1,2,12
{
k++;
Câu 5: Với đoạn chương trình sau:
if (j==i/2+1)
void main() {
break;
int a[5]={1,2,3,4,5};
}
int i;
}

CuuDuongThanCong.com https://fb.com/tailieudientucntt
a. 1 b. 2 Câu 12: Cho đoạn chương trình sau:
c. 3 d. 4
int a = 5, b = 6;
a = a+=b;
b = a-b;
Câu 9: Cho biết giá trị của S sau đoạn
a = a---b;
chương trình sau:
printf( "%d%d", a, b);
int k=0, S=0, n=1;
Kết quả in ra màn hình là:
do
{ if (!(n%2)) a. 56
k++; b. 55
else c. Chương trình in ra giá trị rác
S+=n; d. Chương trình báo lỗi
n++;
}
while (k<3); Câu 13: Hãy cho biết giá trị của b và a sau
đoạn chương trình:
a. 4 b. 6 int a,b=2;
c. 9 d. 12 b=(a=3,(5*b)+(a*=b));

Câu 10: Cho biết giá trị của S sau đoạn a. a=6; b=16
chương trình sau: b. a=3 ; b=2
c. a=6 ; b=6
int i, t=5, S=0; d. Tất cả đều sai
while(t>1)
{
for(i=1; i<t; i++) Câu 14: Xét hàm sau:
if(t%i==0) void mystery(int n)
{ { if (n >= 2)
t--; mystery(n / 3);
S+=t; printf("%d ", n);
break; }
} Kết quả của lệnh gọi mystery(27)
} a. 27 0
a. 3 b. 6 b. 3 9 27
c. 10 d. 15 c. 1 3 9 27
d. 27 3 9

Câu 11: Cho biết giá trị của i sau đoạn Câu 15: Cho đoạn chương trình sau:
chương trình sau:
int x=5;
int i, A[10], S=0; for(; x!=0; x--)
for (i=0; ; i++) { printf("%d ", x--);
{ if(i%3==0) }
A[i] = 0;
else Kết quả in ra màn hình là:
A[i] = A[i-1]+1; a. 5 3 1 b. 4 3 2 1 0
S+=A[i]; c. 5 4 3 2 1 d. Các câu trên đều sai
if(S>5)
break; Câu 16: Cho hàm F như sau:
} char* F(int k)
a. 5 b. 6 { if(k%2==0) return “Chẵn”;
c. 7 d. Không xác định. else return “Lẻ”;
}

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Muốn thực hiện strcpy(X, F(5)); thì biến X a. Hello b. lo
phải khai báo kiểu gì: c. llo d. Các câu trên đều sai
a. float X;
b. char X; Câu 19: Cho đoạn chương trình sau. Xác
c. char X[100]; định kết quả in ra
d. char X[]; void doi(int *a,int b);
void main()
{
Câu 17: Lệnh nào trong các lệnh sau cho int x,y;
ra kết quả như sau: doi(&x,y=2);
1 printf("%d %d",x,y);
22 }
333 void doi(int *a,int b)
4444 {
55555 *a=b;
*a+=b++;
a. for(a = 1; a <= 5; a = a + 1) { }
for( b = 1; b <= 5; b = b + Kết quả in ra:
1) a. 2 2
printf("%d", b); b. 4 4
printf("\n"); c. 4 2
} d. 2 4
b. for( a = 1; a <= 5; a = a + 1) {
for( b = 1; b <= a; b = b + 1)
printf("%d", a); Câu 20: Cho đoạn chương trình dưới đây,
printf("\n"); xác định kết quả in ra:
}
c. for( a = 1; a <= 5; a = a + 1) { int a=-1,b=-2;
for( b = a; b <= 5; b = b + 1) void main()
printf("%d", b); { while(a>=b&&--a)
printf("\n"); if(a==b) break;
} printf("%d, %d",a,b);
d. for( a = 1; a <= 5; a = a + 1) { }
for( b = 1; b < a; b = b + a)
printf("%d", b); a. -1,-2
printf("\n"); b. -2,-2
} c. -1, 0
d. 0,-2
Câu 18: Cho đoạn chương trình sau:
Câu 21: Cho đoạn chương trình sau:
char *fun(char *ptr)
{ int a[5][5]={0};
ptr+=3; int *pa = (int *)a;
return(ptr); int i, j, d=3, c=3;
} for(i=0; i<d*c; i++)
void main() { *pa = i+1;
{ pa++;
char *y, *x="Hello"; }
y=fun(x); for(i=0; i<d; i++)
printf("%s",y); { for(j=0; j<c; j++)
} printf("%d\t", a[i][j]);
printf("\n");
Kết quả in ra là: }

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Kết quả in ra là : Câu 24: Lệnh nào sẽ in các ký tự từ A
đến Z:
a. 1 2 3 b. 1 2 3
a. for( a = 'A'; a < 'Z'; a = a + 1)
4 5 6 6 7 8
printf("%c", a);
7 8 9 0 0 0
b. for( a = 'a'; a <= 'z'; a = a + 1)
c. 1 4 7 d. 1 6 0 printf("%c", &a);
2 5 8 2 7 0 c. for( a = 'A'; a <= 'Z'; a = a + 1)
3 6 9 3 8 0 printf("%c", a);
Câu 22: Cho đoạn chương trình sau: d. for( a = 'Z'; a <= 'A'; a = a + 1)
printf("%c", a);
int a[5][5];
int *pa, i, j;
for(i=0; i<3; i++) Câu 25: Cho đoạn chương trình sau:
{ int a[4],*p;
pa = a[i]; p=a;
for(j=0; j<3; j++)
{ Cho biết câu lệnh nào sau đây sai:
*pa = j+1; a. p=&a[0]; b. a=a+1;
pa++; c. p=p+1; d. *p=2*a[1];
}
}
for(i=0; i<3; i++) Câu 26: Cho đoạn chương trình sau:
{
int a;
for(j=0; j<3; j++)
void Test(int a)
printf("%d\t", a[i][j]);
{
printf("\n");
a = 5;
}
}
Kết quả in ra là : void main()
a. 1 2 3 b. 1 2 3 {
4 5 6 6 7 8 a = 7;
7 8 9 0 0 0 Test(a);
a++;
c. 1 2 3 d. 1 2 3 printf ("%d", a);
3 1 2 1 2 3 }
0 0 0 1 2 3
Kết quả in ra màn hình là:
a. 5 b. 6
Câu 23: Cho đoạn code C như sau: c. 7 d. 8
int **pa;
int i;
(…) Câu 27: Cho đoạn chương trình sau:
if(pa!=NULL) void main( )
for(i=0; i<3; i++) {
pa[i] = (int *) int a=12,b=16,*p;
malloc(5*sizeof(int)); p=&a;
Để cấp phát vùng nhớ cho pa dưới dạng a+=3;
một ma trận 3*5 các phần tử kiểu int thì *p++;
cần phải viết như thế nào ở (…): if(a>b) p=&a;
else p=&b;
a. pa = (int *)malloc(3*sizeof(int)) *p+=2;
b. pa = (int *)malloc(3*sizeof(int *)) printf("%d, %d",a,b);
c. pa = (int **)malloc(3*sizeof(int)) }
d. pa = (int **)malloc(3*sizeof(int *))

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Kết quả in ra màn hình là: pa = a[1];
printf("%d", *(pa+2));
a. 17, 16 b. 18, 16
c. 15, 18 d. 16, 18 Kết quả in ra màn hình là:
a. 1 b. 3
c. 4 d. 5
Câu 28: Cho đoạn chương trình sau:
void Nhap(int *a)
{ Câu 31: Cho đoạn chương trình sau:
a = (int *)malloc(5*sizeof(int)); void Test(int *a, int b)
for(int i=0; i<5; i++) {
a[i] = i+1; int *c;
} *c=*a;
void main() *a=b;
{ b=*c;
int *a={0}; }
Nhap(a); void main()
for(int i=0; i<5; i++) {
printf("%3d", a[i]); int a=5, b=7;
} Test(&a, b);
Kết quả in ra màn hình là: printf("%d %d", a, b);
}
a. 0 0 0 0 0
b. 1 2 3 4 5 Kết quả in ra màn hình là:
c. 0 1 2 3 4
a. 5 5 b. 7 7
d. Chương trình bị lỗi c. 7 5 d. Chương trình bị lỗi

Câu 29: Cho đoạn chương trình sau: Câu 32: Cho đoạn chương trình sau:
void Nhap(int *a) int n, x, y;
{ void Test(int &a, int &b)
for(int i=0; i<5; i++) {
*a++ = i+1; n=5+b;
} a= n*2;
void main() b= a+n;
{
}
int a[10]={0}; void main( )
Nhap(a); {
for(int i=0; i<5; i++) int n=1; x=2; y=3;
printf("%3d", a[i]); Test(x, y);
} printf("%d, %d, %d", n, x, y);
Kết quả in ra màn hình là: }
a. 0 0 0 0 0 Kết quả in ra màn hình là:
b. 1 2 3 4 5 a. 1, 16, 24 b. 8, 16, 24
c. 0 1 2 3 4 c. 1, 2, 3 d. 8, 2, 3
d. 2 3 4 5 6

Câu 33: Cho đoạn chương trình sau:


Câu 30: Cho đoạn chương trình sau:
int P(int x, int *p)
int i, a[3][2], *pa; { p+=2;
pa = (int *)a; if(x%2)
for(i=0; i<6; i++) *pa++ = i+1;
6

CuuDuongThanCong.com https://fb.com/tailieudientucntt
{ x++; void Tang(int i)
*p-=2; {
} switch(i%2)
else {
{ x--; case 0:
*p+=2; chan++;
} break;
return x*(*p); case 1:
} le++;
void main() }
{ }
int x=3, y[5]={1, 2, 3, 4, 5}, b; void TinhToan(int t)
b = P(x, y); {
printf("%d, %d, %d", x, y[2], b); for(int i=0; i<t; i++)
} Tang(i);
}
Kết quả in ra màn hình là:
void main()
a. 4, 1, 4 b. 3, 3, 4 {
c. 3, 1, 4 d. 3, 5, 10 int t=4;
while(t)
{
Câu 34: Cho đoạn chương trình sau: TinhToan(t);
void DoiCho(int x, int y) t--;
{ }
int tmp; printf("%d, %d", chan, le);
tmp = x; }
x = y; Kết quả in ra màn hình là:
y = tmp;
} a. 8, 6 b. 7, 6
void SapXep(int a[]) c. 7, 5 d. 6, 4
{
int i, j;
Câu 36: Cho đoạn chương trình sau:
for(i=0; i<4; i++)
for(j=4; j>i; j--) int Test(int i)
if(a[i]<a[j]) {
DoiCho(a[i], a[j]); if(i%2)
} return 1;
void main() else
{ return i*Test(i-1);
int i, a[5]={0}; }
for (i=0; i<5; i++) void main()
a[i] = i+1; {
SapXep(a); int i, S=0;
for (i=0; i<5; i++) for(i=0; i<5; i++)
printf("%3d", a[i]); S+=Test(i);
} printf("%d", S);
}
a. 0 0 0 0 0 b. 1 2 3 4 5
c. 5 4 3 2 1 d. 0 1 2 3 4 Kết quả in ra màn hình là:
a. 1 b. 5
c. 8 d. 15
Câu 35: Cho đoạn chương trình sau:
int chan=0, le=0;

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Câu 37: Cho đoạn chương trình sau: {
ptd[i].x = (i+1)*2;
int F(int k)
ptd[i].y = (i+1)*3;
{ if(k==0) return 0;
}
else return k*k+F(k-1);
}
}
void main()
void main( )
{
{ int n=4;
PTR_TOADO pTD;
printf(“%d”,F(n));
int i;
}
Nhap(pTD, 2);
a. 14 b. 15
for(i=0; i<2; i++)
c. 30 d. 31
printf(" %d %d ",
pTD[i].x, pTD[i].y);
Câu 38: Cho đoạn chương trình sau: }

struct ToaDo Cần lập trình như thế nào tại vị trí (…) để
{ kết quả in ra màn hình là: 2 3 4 6
int x, y; a. void Nhap(ToaDo *&ptd, int n)
}; b. void Nhap(PTR_TOADO ptd, int n)
(…) c. void Nhap(PTR_TOADO ptd[], int n)
void main( ) d. void Nhap(TOADO ptd[], int n)
{
TOADO td;
} Câu 40: Cho đoạn chương trình sau:
Dòng lệnh nào nếu điền vào chỗ (…) là struct ToaDo
sai: {
int X, Y;
a. typedef ToaDo TOADO;
};
b. typedef struct ToaDo TOADO;
void main( )
c. struct ToaDo TOADO;
{
d. Cả ba trường hợp trên đều đúng.
ToaDo *A;
for ( int i = 1;i <= 3;i++)
Câu 39: Cho đoạn chương trình sau: {
A[i].X = i;
typedef struct ToaDo A[i].Y = i;
{ }
int x, y; for( i=1;i <= 3;i++)
}TOADO, *PTR_TOADO; printf( "%d", A[i].X, A[i].Y);
(…) }
{
int i; Kết quả in ra màn hình là:
ptd = (PTR_TOADO) a. 112233 b. 123
malloc(n*sizeof(TOADO)); c. 112 d. Chương trình báo lỗi
for(i=0; i<n; i++)

HẾT

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like