Tải bản đầy đủ (.pdf) (14 trang)

ĐỀ THI HỆ THỐNG MÁY TÍNH VÀ NGÔN NGỮ C CÓ ĐÁP ÁN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (338.6 KB, 14 trang )

KHOA ĐIỆN – ĐIỆN TỬ

ĐỀ THI CUỐI HỌC KỲ - MƠN: HTMT và Ngơn Ngữ C
(Khơng Dùng Tài Liệu)

HK2 - NH 2010-2011

Thời gian : 100 phút (Từ 15g05) - Ngày thi: 30-06-2011
(40 câu Trắc Nghiệm, mỗi câu 0,25 đ)

BẢNG TRẢ LỜI TRẮC NGHIỆM
Câu
1

Câu
2

Câu
3

Câu
4

Câu
5

Câu
6

Câu
7



Câu
8

Câu
9

Câu
10

Câu
11

Câu
12

Câu
13

Câu
14

Câu
15

Câu
16

Câu
17


Câu
18

Câu
19

Câu
20

Câu
21

Câu
22

Câu
23

Câu
24

Câu
25

Câu
26

Câu
27


Câu
28

Câu
29

Câu
30

Câu
31

Câu
32

Câu
33

Câu
34

Câu
35

Câu
36

Câu
37


Câu
38

Câu
39

Câu
40

a
b
c
d
a
b
c
d
Câu 1) Các số thập phân 1011 và -1011 sẽ được biểu diễn dưới
dạng nhị phân 16 bit, kiểu số nguyên có dấu dạng bù 2, là:
a) 0000 0011 1111 1010 & 1111 1000 0010 0101
b) 0000 0011 1111 0010 & 1111 1100 0000 1110
c) 0000 0011 1101 1010 & 1111 1000 0010 0101
d) 0000 0111 1101 1010 & 1111 1000 0010 0111
Câu 2) Cho a, b và c là 3 số được biểu diễn bằng 8 bit, kiểu số
nguyên có dấu dạng bù 2. Giả sử a được gán bằng giá trị 120D, b
được gán bằng giá trị 30D và c được gán bằng tổng của a và b.
Cho biết c biểu diễn giá trị nào sau đây:
a) 150D


b) -90D

c) -106D

d) cả 3 đều sai

Câu 3) Cho đoạn chương trình được viết bằng hợp ngữ trong LC3 như sau:
.ORIG X3000
AND
R1,R1,#0
ADD
R1,R1,#16
ADD
R2,R1,#15
HALT
.END
Sau khi chạy xong chương trình, thanh ghi R2 sẽ chứa giá trị là:
a)
Chương trình bị lỗi
b)
31
c)
16
d)
15
Câu 4) Cho đoạn chương trình viết bằng hợp ngữ cho LC-3 như
sau:
AND
R1,R1,#0
ADD

R1,R1,#4
AND
R2,R2,#0
ADD
R2,R2,#8
AND
R3,R3,#0
AND
R3,R1,R2
Giá trị các thanh ghi sau khi chạy chương trình trên sẽ là:
a) R1=4 ; R2=8 ; R3=12
c) R1=4 ; R2=8 ; R3=8

b) R1=4 ; R2=8 ; R3=4
d) R1=4 ; R2=8 ; R3=0

Câu 5) Chuyển số thực -8.125D về dạng dấu chấm động 32 bit:
a) 1 10000010 00000100000000000000000
b) 0 10000011 01100100000000000000000
c) 0 10000110 11000100000000000000000
d) 1 10000001 11100100000000000000000
Câu 6) Cho các khai báo biến sau:
int *x,*y;
int a=30, b;
Hãy chọn phát biểu đúng:
a) a=&x;

b) b=&y;

c) b=&a;


Câu 7) Tìm lỗi sai của đoạn mã sau:
int x=22;
int*p=&x;
++(*p);
int m=p;
a. Lỗi ở dòng lệnh thứ tư
c. Lỗi ở dòng lệnh thứ hai

b. Lỗi ở dòng lệnh thứ ba
d. Lỗi ở dòng lệnh thứ nhất

Câu 8) Hãy chọn phát biểu sai của đoạn mã sau:
int x=22;
int*p=&x;
int y=44;
int*q=&y;
p=q;
a) p và q là các pointer
c) dòng lệnh cuối bị lỗi

b) đoạn mã trên không bị lỗi
d) x và y là các biến ngun

Câu 9) Cho đoạn chương trình sau:
int a=10, b=7; float y;
y=(b+10)*(a/b);
printf(“%5.2f”,y);
Giá trị in ra là:
a) 18.43

c) 18

b) 18.42
d) 18.00

Đề Thi Mơn Hệ Thống Máy Tính & Ngơn Ngữ C
CuuDuongThanCong.com

d) b=a;

1
/>

Câu 10) Cho các khai báo biến sau:
int a,b, *p1, *p2;
Hãy chọn phát biểu sai:
a. p1=a;
c. p1=p2+a;

Câu 18
18) Tìm giá trị in ra khi chạy đoạn chương trình sau:
int x[]={0x4161}
char *p1, *p2;
p1=(char*) x;
p2=p1+1;
printf(“%c %d”,*p1, *p2);

b. p2=&b+1;
d. p1=&a+1;


Câu 11) Cho chạy đoạn chương trình sau:
int a=1,b=1;
for (; a<5; a++)
a*=b++;
Kết quả cho:
a) Sai cú pháp
c) a=6, b=4

a) A 97

b) a=5, b=3
d) a=10, b=4

Khảo sát đoạn mã sau, được dùng để trả lời cho các câu từ
Câu 12) đến Câu 15)
int a[] = {22, 33, 44, 55, 66, 77};
int* p = &a[3];
/* cho biết p = 0x3cbc */
int n = *p;
++(*p);
++p;
int* q = &a[5];
*(--q) = 88;
p - = 3;
n = q-p;

c) A 98

d) a 66


Câu 19
19) Tìm giá trị in ra khi chạy đoạn chương trình sau:
int x=1,y=2;
while (x<=10)
{
x++;
if (x= = 8)
break;
y+=++x;
}
printf("%d %d",x,y);
a) 6 10

b) 11 37

c) 12 40

d) 8 17

Câu 20)
20) Đoạn chương trình sau:
int x=1,y=2;
while(x<=10)
{
x++;
if (x= = 6)
y+=++x;
}
printf("%d %d",x,y);


Câu 12) a[3] có giá trị là:
a. a[3] = 55
c. a[3] = 56

b) a 65

b. a[3] = 44
d. a[3] = 45

Câu 13) a[4] có giá trị là:
a) a[4] = 55
c) a[4] = 77

Giá trị in ra khi thực thi đoạn chương trình trên laø:

b) a[4] = 66
d) a[4] = 88

a) 11 9

b) 11 37

c) 12 40

d) Cả 3 đều sai

Câu 14) Con trỏ p cuối cùng có giá trị là:

Câu 21
21) Tìm giá trị in ra khi chạy đoạn chương trình sau:


a. p = 0x3cb4
c. p = 0x3cc0

int x=1,y=2;
while(x<=10)
{
x++;
if (x= = 6)
continue;
y+=++x;
}
printf("%d %d",x,y);

b. p = 0x3cbe
d. p nhận giá trị khác

Câu 15) Con trỏ q cuối cùng có giá trị là:
a) q = 0x3cbc
c) q = 0x3cc0

b) q = 0x3cbe
d) q nhận giá trị khác

Câu 16) Cho các khai báo biến sau:
double x,y;
double *a, *b;
Hãy chọn phát biểu sai:
a) a=&x;


b) b=&y;

c) b=&a;

a) 6 10
d) *b=*a;

b) 11 37

c) 12 40

d) Cả 3 đều sai

Câu 17
17) Cho đoạn chương trình sau:
int i=1,j=1;
for (;i<5;i++)
i*=++j;
Đoạn chương trình trên cho ta:

Câu 22
22) Tìm giá trị in ra khi chạy đoạn chương trình sau:
int i=1,j=0;
for (i=1; i<10; i+=2)
for (; i<8; i++)
j+=i;
printf("%d %d",i,j);

a) Sai cú pháp
c) i=10, j=4


a) 10 28
c) 11 0

b) i=7, j=3
d) Cả 3 đều sai

b) 19 81
d) Cả 3 đều sai

Đề Thi Mơn Hệ Thống Máy Tính & Ngôn Ngữ C
CuuDuongThanCong.com

2
/>

Câu 23
23) Cho đoạn chương trình sau:
int i=1,j=0;
for (i=1;i<10;i+=2);
for (;i<13;i++)
j+=i;
printf("%d %d",i,j);
Giá trị in ra khi thực thi đoạn chương trình trên là:
a) 10 28

b) 23 13

c) 11 0


d) Cả 3 đều sai

Cho đoạn chương trình sau (dùng cho các câu 24 & caâu 25):
#include<stdio.h>
double a,b;
void f1(int a);
int f2(int a);
void f1(int a)
{
int s, i;
for(s=i=0; i<=a; s+=++i)
i+=2;
printf(“%d”,s);
}
int f2(int a)
{
int i;
for(i=2;a%i;i++);
printf (“%d”, i);
if (i==a)
return a;
else
return a/i;
}
Câu 24) Khi gọi hàm f1(15), kết quả in ra là:
a. In ra 57
b. In ra 63
c. In ra 51
d. Cả 3 đều sai
Câu 25) Khi gọi hàm f2(15), kết quả in ra là:

a. In ra 3
b. In ra 15
c. Không in ra gì cả
d. Cả 3 đều sai

Đề Thi Mơn Hệ Thống Máy Tính & Ngơn Ngữ C
CuuDuongThanCong.com

3
/>

Câu 26) Cho biết nhiệm vụ của chương trình C sau:

Caâu 28
28) Cho biết kết quả in ra khi chạy chương trình
ở Câu 27, biết n = 10.
a)
b)
c)
d)

55
10
155
Cả 3 đáp án trên đều sai

Caâu 29
29) Cho biết kết quả in ra khi chạy chương trình
ở Câu 27, biết n = 10 và dòng lệnh static int
t=0; nằm trong Hàm int tong (int a) được thay bằng

int t=0;:
a)
b)
c)
d)

55
10
155
Cả 3 đáp án trên đều sai

Caâu 30)
30) Cho biết kết quả khi chạy chương trình sau:
int a=10, b=6;
int d;
d = a/b;

a)
b)
c)
d)

Thực hiện việc nhập và in hai số
Nhập và in hai số theo thứ tự nhỏ dần
Nhập và in hai số theo thứ tự lớn dần
Cả 3 đáp án trên đều sai

Caâu 27
27) Cho biết nhiệm vụ của chương trình C sau:


a)
b)
c)
d)

d=1
d = 1.00
d = 1.66
Cả 3 đáp án trên đều sai

Caâu 31)
31) Cho biết kết quả khi chạy chương trình sau:
int a=10, b=6;
double d;
d = a/b;
a)
b)
c)
d)

d=1
d = 1.00
d = 1.66
Cả 3 đáp án trên đều sai

Caâu 32)
32) Cho biết kết quả khi chạy chương trình sau:
int a=10, b=6;
double d;
d = a/(double)b;

a)
b)
c)
d)

d=1
d = 1.00
d = 1.66
Cả 3 đáp án trên đều sai

Caâu 33)
33) Chọn kết quả đúng nếu các phần tử của ma
trận a[3][3] được cài theo chương trình C sau:
for (i=0; i<3; i++)
for (j=0; j<3; j++)
if (i = = j)
a[i][i]=0
else
a[i][j]=1
a)
b)
c)
d)

Thực hiện việc nhập và in n số
Nhập n số và in kết quả tổng của chúng
Nhập và in n số theo thứ tự lớn dần
Cả 3 đáp án trên đều sai

a) 0 1 1

101
110

b) 0 0 0
100
110

c) 1 0 0
010
001

d) 1 1 0
111
011

Đề Thi Mơn Hệ Thống Máy Tính & Ngơn Ngữ C
CuuDuongThanCong.com

4
/>

Câu 34) Cho biết nhiệm vụ của chương trình C sau:

Câu 37
37) Cho chạy đoạn chương trình sau:
double *pi1, *pi2, n;
pi1 = &n;
pi2 = pi1 + 2;
Tìm khoảng cách của (pi2 – pi1) tính theo byte:
a)

b)
c)
d)

2 byte
4 byte
8 byte
16 byte

Câu 38
38) Cho chạy đoạn chương trình sau:
char *pi1, *pi2, n;
pi1 = &n;
pi2 = pi1 + 10;
Hãy xác định giá trị địa chỉ của pi2 biết pi1 có giá trị là xFF10:
a)
b)
c)
d)

xFF20
xFF1E
xFF1B
xFF1A

Câu 39
39) Cho nhận xét đoạn chương trình sau:
int a[10];
int *pa;
pa = a;

&a[2] = pa + 2;
a)
b)
c)
d)
a)
b)
c)
d)

Thực hiện việc nhập trị cho mãng 1 chiều s
Nhập và in kết quả của chuổi s gồm 100 phần tử
Thực hiện việc nhập trị cho chuổi s
Cả 3 đáp án trên đều sai

Caâu 35) Tìm số phần tử của chuổi s có khai báo như sau:
Char s[]=Thi Trac Nghiem;
a)
b)
c)
d)

16
15
13
Cả 3 đáp án trên đều sai

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

Hãy xác định giá trị địa chỉ của pi2 biết pi1 có giá trị là xFF18:

a)
b)
c)
d)

xFF24
xFF1E
xFF1B
xFF21

đoạn chương trình trên viết đúng
dịng lệnh thứ ba khơng đúng
dịng lệnh thứ tư khơng đúng
cả 2 dịng lệnh thứ ba và thứ tư khơng đúng

Câu 40)
40) Cho nhận xét đoạn chương trình sau:
float a[10];
float *pa;
pa = &a[0];
a[4] = *(pa + 4);
a)
b)
c)
d)

đoạn chương trình trên viết đúng
dịng lệnh thứ ba khơng đúng
dịng lệnh thứ tư khơng đúng
cả 2 dịng lệnh thứ ba và thứ tư khơng đúng


Câu 41)
41) Cho đoạn chương trình sau:
int i=1,j=0;
if (i>j);
if (i<5)
i+=3;
else
i+=2;
Giá trị in i sau khi thực thi đoạn chương trình trên:
a) 1

b) 2

c) 3

Đề Thi Mơn Hệ Thống Máy Tính & Ngôn Ngữ C
CuuDuongThanCong.com

d) 4

5
/>

ĐÁP ÁN:
Câu 1:b
Câu 2:c ( 0111 1000 + 0001 1110 = 1001 0110 = -106D )
Câu 3:a
Câu 4:d
Câu 5) a

Câu 6) d
Câu 7) a
Câu 8) c
Câu 9) d
Câu 10) a
Câu 11) b
Câu 12) c
Câu 13) d
Câu 14) a
Câu 15) c
Câu 16) c
Câu 17) b
Câu 18) a
Câu 19) d
Câu 20) a
Câu 21) c
Câu 22) a
Câu 23) b
Câu 24) b
Câu 25) a
Caâu 26) c
Caâu 27) d
Caâu 28) a
Caâu 29) b
Caâu 30)
30) a
Caâu 31)
31) b
Caâu 32)
32) c

Caâu 33)
33) a
Caâu 34)
34) c
Caâu 35)
35) a
Caâu 36)
36) b
Caâu 37)
37) d
Caâu 38)
38) d
Caâu 39)
39) a
Caâu 40)
40) a
Caâu 41)
41) d

Đề Thi Mơn Hệ Thống Máy Tính & Ngơn Ngữ C
CuuDuongThanCong.com

6
/>

ĐÁP ÁN ĐỀ KIỂM TRA
MƠN: HỆ THỐNG MÁY TÍNH VÀ NGÔN NGỮ C
Phần thi trắc nghiệm (3đ)
Câu 1: Số -0.3125 được biểu diễn ở dạng
dấu chấm động 32 bit là:

a) 1 01111101 01000000000000000000000;
b) 1 01111101 10100000000000000000000
c) 1 10000000 01010000000000000000000
d) 1 01111111 10100000000000000000000
Câu 2: Biểu diễn của dạng dấu chấm
động 32 bit của một số hữu tỉ là 0 10000011
10101010..0, số hữu tỉ đó là:
a) 21.25
b) 53.25
c) 26.625;
d) Khơng phải các giá trị trên
Cho đoạn chương trình hợp ngữ LC3 sau,
dùng cho các câu từ 3 đến 5
.ORIG X2000
TRAP X23
ADD R1,R0,#0
TRAP X23
ADD R2,R0,#0
NOT R3,R2
ADD R3,R3,#1
ADD R4,R3,R1
BRP LON
BRZ BANG
LEA R0,CHUOI3
PUTS
HALT

LON LEA R0,CHUOI1
PUTS
HALT

BANG LEA R0,CHUOI2
PUTS
HALT
CHUOI1 .STRINGZ "KI TU 1 > KI TU 2"
CHUOI2 .STRINGZ "KI TU 1 = KI TU 2"
CHUOI3 .STRINGZ "KI TU 1 < KI TU 2"
.END
Câu 3: Lệnh BRP LON được dịch ra ngôn
ngữ máy (dạng nhị phân) là:
a) 0000001000000101
b) 0000001000000011
c) 0000010000000101
d) 0000001000000100;
Câu 4: Lệnh LEA R0,CHUOI3 được dịch
ra ngôn ngữ máy (dạng thập lục) là:
a) E02D
b) E02C;
c) E02B
d) E02A
Câu 5: Nếu nhập từ bàn phím 2 ký tự là “?”
và “9” thì kết quả xuất ra màn hình là:
a) KI TU 1 > KI TU 2;
b) KI TU 1 = KI TU 2
c) KI TU 1 < KI TU 2
d) Chương trình bị lỗi

Phần tự luận:
Câu 1 (3đ): Viết chương trình bằng hợp ngữ LC-3, đọc 2 số được lưu trong các ô nhớ x2031 và
x2032, thực hiện phép tốn OR giữa 2 số đó. Kết quả lưu vào ô nhớ x2030, biết chương trình được
bắt đầu từ địa chỉ x2000.

Câu 2 (4đ): Dùng hợp ngữ LC-3 để viết chương trình cho nhập một ký tự số 0 – 9 từ bàn phím và
kiểm tra xem ký tự số đó có chia hết cho 2 khơng. Nếu có thì in ra màn hình chuỗi ”Ký số là chẳn”,
nếu khơng thì in chuỗi “Ký số là lẻ”.
Đáp án phần tự luận:
Câu 1: sinh viên có thể làm 1 trong 2 cách sau:
Cách 1: Định địa chỉ gián tiếp kiểu base-offset
.ORIG X2000
LD R0,ONHO
---Hết---

CuuDuongThanCong.com

/>

ĐÁP ÁN ĐỀ KIỂM TRA
MƠN: HỆ THỐNG MÁY TÍNH VÀ NGÔN NGỮ C
R1,R0,#1
R2,R0,#2
R1,R1
R2,R2
R3,R1,R2
R3,R3
R3,R0,#0

LDR
LDR
NOT
NOT
AND
NOT

STR
HALT
ONHO
.FILL X2030
.END
Cách 2: Định địa chỉ gián tiếp
.ORIG X2000
LDI R1,ONHO1
LDI R2,ONHO2
NOT R1,R1
NOT R2,R2
AND R3,R1,R2
NOT R3,R3
STI R3,LUU
HALT
LUU .FILL X2030
ONHO1
.FILL X2031
ONHO2
.FILL X2032
.END
Câu 2:
.ORIG X2000
IN
LD R2,SO0
ADD R1,R0,R2
BRn NHAP_SAI
LD R2,SO9
ADD R3,R0,R2
BRp NHAP_SAI

AND R1,R1,#1
BRz SO_CHAN
LEA R0,CHUOI_LE
PUTS
HALT

---Hết---

CuuDuongThanCong.com

/>

ĐÁP ÁN ĐỀ KIỂM TRA
MƠN: HỆ THỐNG MÁY TÍNH VÀ NGÔN NGỮ C
SO_CHAN LEA R0,CHUOI_CHAN
PUTS
HALT
NHAP_SAI LEA R0,CHUOI_SAI
PUTS
HALT
SO0 .FILL -48
SO9 .FILL -57
CHUOI_LE .STRINGZ "KY SO LA LE"
CHUOI_CHAN
.STRINGZ "KY SO LA CHAN"
CHUOI_SAI .STRINGZ "KHONG PHAI KY SO"
.END

---Hết---


CuuDuongThanCong.com

/>

ĐỀ THI GIỮA HỌC KỲ
Môn: Tin học 2
Thời gian: 40 phút
(không được phép tham khảo tài liệu)
Câu 1:

Câu 2:

Viết chương trình với hàm tính tổng sau:
3
6
9
n
x
x
x
x
s= 2+
+
+
+ ... +
3! 6! 9!
n!
Giá trị nhập vào là x thực và n nguyên, dương. Yêu cầu có thực hiện mọi sự kiểm
tra trị nhập.


Viết chương trình nhập vào n trị nguyên dương, tính tổng của tất cả số nguyên tố có
trong các số vừa nhập. In ra kết quả.
Lưu ý không sử dụng mảng trong bài này.
Hết

CuuDuongThanCong.com

/>

Đềthi trắc nghiệm
Môn: Tin học 2
Thời gian: 60phút
Bảng trả lời câu hỏi:
1
2
3
a
b
c
d
17

18

19

Họ tên SV:
Mã số SV:
Nhóm/Lớp:


4

5

6

7

8

9

10

11

12

13

14

15

16

20

21


22

23

24

25

26

27

28

29

30

31
X

32

a
b
c
d

X


Chú ý: * Thí sinh đánh dấu chéo(X) vào ô cần chọn(ví dụ ở câu 31 ta chọn a)
* Nếu chọn sai thì thí sinh tô đen ô chọn trước đó rồi chọn câu khác(ví dụ như câu 32)
* Chỉ những câu có trả lời trong bảng trả lời câu hỏi mới được chấm điểm
* Thí sinh được phép sử dụng tài liệu
printf(“%c %d”,*p1, *p2);
Kết quả in ra khi thực thi là:
a. A 97
b. a 65
c. A 98
d. a 66
Câu 4) Đoạn chương trình sau:
int x=1,y=2;
while(x<=10)
{
x++;
if (x==6)
break;
y+=++x;
}
printf("%d %d",x,y);
Giá trị in ra khi thực thi đoạn chương trình trên là:
a. 6 10
b. 11 37
c. 12 40
d. Cả 3 đề sai

Câu 1) Cho các khai báo biến sau:
int x,y;
int *a, *b;
Hãy chọn phát biểu sai:

a. a=&x;
b. b=&y;
c. b=&a;
d. *b=*a;
Câu 2) Cho đoạn chương trình sau:
int i=1,j=2;
for(;i<5;i++)
i*=j++;
Đoạn chương trình trên:
a. Sai cú pháp
b. i=5, j=4
c. i=10, j=4
d. Cả 3 đều sai
Câu 3) Cho đoạn chương trình sau:
int x[]={0x4161}
char *p1, *p2;
p1=(char*) x;
p2=p1+1;

1
CuuDuongThanCong.com

/>

int i=1,j=0;
if (i>j);
if (i<5)
i+=3;
else
i+=2;

Giá trị in i sau khi thực thi đoạn chương trình trên là:
a. 1
b. 2
c. 3
d. 4
Cho đoạn chương trình sau(dùng cho các câu
10,11,12,13,14,15):
#include<stdio.h>
double a,b;
void f1(int a);
int f2(int a);
void f1(int a)
{
int s, i;
for(s=i=0; i<=a; s+=++i)
i+=2;
printf(“%d”,s);
}
int f2(int a)
{
int i;
for(i=2;a%i;i++);
printf (“%d”, i);
if (i==a)
return a;
else
return a/i;
}
Câu 10) Khi gọi hàm f1(15)
a. In ra 57

b. In ra 63
c. In ra 51
d. Cả 3 đều sai
Câu 11) Khi gọi hàm f2(15):
a. In ra 3
b. In ra 15
c. Không in ra gì cả
d. Cả 3 đều sai
Câu 12) Khi gọi hàm f1(f2(39))
a. In ra 3 35
b. In ra 35
c. In ra 335
d. Caû 3 đều sai
Câu 13) Khi gọi hàm f2(f1(39)
a. In ra 287
b. In ra 35
c. In ra 2870

Câu 5) Đoạn chương trình sau:
int x=1,y=2;
while(x<=10)
{
x++;
if (x==6);
y+=++x;
}
printf("%d %d",x,y);
Giá trị in ra khi thực thi đoạn chương trình trên là:
a. 6 10
b. 11 37

c. 12 40
d. Cả 3 đề sai
Câu 6) Đoạn chương trình sau:
int x=1,y=2;
while(x<=10)
{
x++;
if (x==6)
continue;
y+=++x;
}
printf("%d %d",x,y);
Giá trị in ra khi thực thi đoạn chương trình trên là:
a. 6 10
b. 11 37
c. 12 40
d. Cả 3 đề sai
Câu 7) Cho đoạn chương trình sau:
int i=1,j=0;
for(i=1;i<10;i+=2)
for(;i<8;i++)
j+=i;
printf("%d %d",i,j);
Giá trị in ra khi thực thi đoạn chương trình trên là:
a. 10 28
b. 19 81
c. 11 0
d. Cả 3 đều sai
Câu 8) Cho đoạn chương trình sau:
int i=1,j=0;

for(i=1;i<10;i+=2);
for(;i<8;i++)
j+=i;
printf("%d %d",i,j);
Giá trị in ra khi thực thi đoạn chương trình trên là:
a. 10 28
b. 19 81
c. 11 0
d. Cả 3 đều sai
Câu 9) Cho đoạn chương trình sau:

2
CuuDuongThanCong.com

/>

d. Cả 3 đều sai
Câu 14) Khi gọi hàm f2(f2(39))
a. In ra 133
b. In ra 13 3
c. In ra 313
d. Cả 3 đều sai
Câu 15) Hãy chọn phát biểu đúng:
a. a=b+f1(a);
b. a=b+f2(a);
c. a=f1(f2(b));
d. a=f2(f1(b));
Cho đoạn chương trình sau:
int a=5, b=6, y;
y=a&&(a>b++)&&--b;

Câu 16) Giá trị của b, y sẽ là:
a. b=5, y=0
b. b=6, y=1
c. b=7, y=0
d. Cả 3 câu trên đều sai
Câu 17) Cho đoạn chương trình sau:
int x=11, y=5, b;
b=(x-y)?(x&&y):(x||y);
Giá trị của b sẽ là:
a. 14
b. 15
c. 1
d. 0
Câu 18) Cho đoạn chương trình sau:
int a=10, b=7; float y;
y=(b+1)*(a/b);
printf(“%5.2f”,y);
Giá trị in ra là:
a. 11.43
b. 11.42
c. 8
d. 8.00
Câu 19) Cho các khai báo biến sau:
int a,b, *p1, *p2;
Hãy chọn phát biểu sai:
a. p1=a;
b. p2=&b+1;
c. p1=p2+a;
d. p1=&a+1;
Câu 20) Cho khai báo biến sau:

int *p1, *p2, *p3;
Hãy chọn phát biểu đúng:
a. p3=p1+p2;
b. p3=p2-p1;
c. *p3=p1-p2;
d. p3=2*p1;
Câu 21) Cho đoạn chương trình sau:
int x=1,i;
for(i=1; i<10; i++)
{
x+=++i;
if(i==5)
break;

}
printf(“%d”,x);
Giá trị in ra sẽ là:
a. 31
b. 7
c. 55
d. Cả 3 câu trên đều sai
Câu 22) Cho đoạn chương trình sau:
int i=1, j=2; float S=0;
do {
S+=i/j;
i++;
j*=2;
} while(i<15);
printf(“%3.2f”, S);
Giá trị in ra sẽ là:

a. 2.0
b. 2.00
c. 0.00
d. 0.0
Câu 23) Cho đoạn chương trình sau:
int a=1, b=0;
while(a<=b&&++b)
if(a==b)
break;
printf(“%d %d”, a,b);
Giá trị in ra sẽ là:
a. 1 0
b. 1 1
c. 11
d. Cả 3 câu trên đều sai
Câu 24) Cho chương trình sau:
#include<stdio.h>
int a,b;
main()
{
switch(a-b?5:b++)
{
default: a=b+=2;
case 5: b+=5;
case 1: a--;
}
}
Kết quả là:
a. a=2, b=8
b. a= -1, b=1

c. a= -1, b=6
d. Cả 3 câu trên đều sai
Câu 25) Cho chương trình sau:
#include<stdio.h>
int a=1,b=2;
main()
{
switch(a=3)
{
case 3: a+=2;
default: b++;
break;
case 0: a--;

3
CuuDuongThanCong.com

/>

}
}
Kết quả là:
a. a=1, b=3
b. a=5, b=3
c. a=4, b=3
d. Cả 3 đều sai
Câu 26) Cho chương trình sau
#include<stdio.h>
int doi(int *a);
main()

{
int x=3, y=0;
while(x>doi(&y)) ;
printf(“%d”,y);
}
int doi(int *a)
{
static int tam=1;
*a+=tam++;
return tam;
}
Kết quả là:
a. Chương trình in ra 0
b. Chương trình sai cú pháp
c. Chương trình in ra 1
d. Chương trình in ra 3
Cho chương trình sau(dùng cho các câu 27, 28,
29,30)
#include<stdio.h>
void ham1(int *a, int b);
void ham2(int *a, int *b);
main()
{
int a=15, b=8;
ham1(&b,a);

printf(“%d %d”, a,b);
ham2(&a,&a);
printf(“%d %d”,a,b);


}
void ham1(int *a, int b)
{
*a+=b++;
ham2(&b,a);
printf(“%d %d”, *a, b);
return;
}
void ham2(int *a, int *b)
{
if(*a>*b)
*a+=*b;
else *a-=2;
printf(“%d %d”, *a, *b);
return;
}
Câu 27) Hàm ham2 in ra các giá trị là:
a. 14 23
b. 13 13
c. Cả a,b đều đúng d. Cả a, b đều sai
Câu 28) Hàm ham1 in ra các giá trị là:
a. 23 14
b. 14 23
c. 23 23
d. Cả 3 đều sai
Câu 29) Giá trị mà hàm printf trong main in ra trước
khi gọi hàm ham2:
a. 15 8
b. 13 23
c. 13 8

d. Cả 3 đều sai
Câu 30 Giá trị mà hàm printf trong main in ra sau
khi gọi hàm ham2:
a. 15 8
b. 13 23
c. 13 8
d. Cả 3 đều sai

4
CuuDuongThanCong.com

/>


×