Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

Câu 1: Xác định kết quả của biểu thức logic dưới đây:

!( (22 < 15) || ! (10 > 9) )


A. sai hoặc đúng B. đúng (true) C. không xác định D. sai (false)
Câu 2: Xác định lệnh nhập dữ liệu đúng cho 2 biến a, b
A. scanf(“&d&d”, %a, %b); B. scanf(“%d%d, &a, &b”);
C. scanf(“%d, %d”, &a, &b); D. scanf(“%d%d”, &a, &b);
Câu 3: Cho biết kết quả của câu lệnh printf(“%2.2f”, 123.456789);
A. 23.46 B. 12.46 C. 123.45 D. 123.46
Câu 4: Trong các hàm dưới đây, hàm nào có thể in một chuỗi ký tự ra màn hình
A. scanf() B. puts() C. gets() D. getch()
Câu 5: Cho biết giá trị của a, b, c sau khi chạy đoạn lệnh sau:
int a=30, b=20, c=10;
int *p1, *p2, *p3;
p1=&a; p2=&b; p3=&c;
a= *p1 - *p2 + *p3;
b= *p2 – c + a;
p3 = p1;
c = *p3 –a + *p2;
printf(“%d %d %d”, a, b, c);

A. a=10, b=20, c=30 B. a=30, b=20, c=30


C. a=20, b=30, c=30 D. a=30, b=30, c=20
Câu 6: Kết quả in ra màn hình của đoạn chương trình dưới đây ?
int a=1;
switch (a){
case 1: a +=1;
case 2: a = 2;
case 3: a +=3;
}
printf(“%d”, a++);

A. 5 B. 2 C. 1 D. 6
Câu 7: Cho biết kết quả in ra màn hình của chương trình sau:

#include <stdio.h>
int main(){
int a = 100, b = 56;
printf(“%d”, (a<b)?a:b);
}

A. 100 B. 1.7857 C. 56 D. Sai cú pháp


Câu 8: Hãy cho biết kết quả của đoạn code sau

for (int i=1; i<=5; i++)


for(int j=1; j<=5; j++)
if(j%i==0)
printf(“hello\n”);

A. in ra màn hình 5 chuỗi “Hello” B. in ra màn hình 10 chuỗi “Hello”


C. in ra màn hình 25 chuỗi “Hello” D. lặp vô hạn (in ra vô số chuỗi “Hello”)
Câu 9: Giả sử có câu lệnh khai báo char ch[]= "4", hỏi biến ch chứa bao nhiêu bytes ?
A. 2 B. 1 C. 3 D. 4
Câu 10: Hãy cho biết kết quả in ra màn hình của đoạn code sau:
Trang 1/5 - Mã đề thi 01
int i =3;
for ( ; i<8; i++)
printf(“%d”, i);

A. 3 4 5 6 7 B. 1 2 3 4 5 6 7 8 C. lặp vô hạn D. lỗi, sai cú pháp


Câu 11: Trong các khai báo sau khai báo nào đúng
struct point{ typedef struct point{
float x, y; float x, y;
}; }struct;
A. B.
struct typedef point{ typedef point{
float x, y; float x, y;
C. }; D. }struct;

Câu 12: Trong ngôn ngữ C, khai báo int M[5][5]; có nghĩa là:
A. M là một mảng hai chiều có tối đa 25 phần tử và mỗi phần tử là một số nguyên
B. M[1][1] là phần tử đầu tiên của mảng, M[5][15] là phần tử cuối cùng của mảng
C. M[2, 1] là một phần tử của mảng
D. Tất cả đều sai
Câu 13: Xác định giá trị của y trong đoạn lệnh viết bằng ngôn ngữ C dưới đây
int x = 4;
float y = sqrt(fabs(x-20)/4);

A. 5 B. 4 C. 20 D. 2
Câu 14: Xác định giá x và y sau khi chạy đoạn lệnh sau:
int x=12, y=7;
x = x+y;
y = x-y;
x = x-y;

A. x=12 và y=7 B. x=7 và y=12 C. x=19 và y=19 D. x=19 và y=5


Câu 15: Hãy xác định giá trị của phần tử cuối cùng và phần tử đầu tiên trong mảng a:
int a[50];
a[0] = 2;
for(int i=1; i<50; i++)
a[i] = a[i-1] + 1;

A. 52 và 3 B. 51 và 2
C. 1 và 50 D. 49 và 0
Câu 16: Cho biết kết quả in ra màn hình của chương trình sau:
#include<stdio.h>
void hoanvi( int px, int py){
int pz;
pz=px; px=py; py=pz;
}
int main(){
int a=15, b=21;
hoanvi(a,b);
printf(“%d %d”, a, b);
return 0;
}

A. Chương trình lỗi – Không chạy được B. 21 15


C. 15 21 D. Kết quả khác
Trang 2/5 - Mã đề thi 01
Câu 17: Hãy cho biết giá trị của biểu thức viết bằng C: (3+7 > 2) && (6 <13)
A. 10 B. 0 C. 1 D. tất cả đều sai
Câu 18: Xác định kết quả chương trình sau:
#include<stdio.h>
int main(){
int i, ch;
for(i=0, ch=’A’; i<4; i++,ch+=2)
putchar(ch);
return 0;
}

A. ACEG B. ABCDE C. ABC D. Kết quả khác


Câu 19: Kết quả nào sau đây đúng?
int main(){
char s[6] = “ABCDE”; int i;
for(i=0; i<strlen(s); i++)
s[i]=s[i+1]; putchar(s[i]);
}

A. ABCDE B. BCDEE
C. BDCE D. Kết quả không xác định
Câu 20: Phát biểu nào sau đây sai trong ngôn ngữ lập trình C ?
A. Phép gán giá trị trong C có kết quả trả về là giá trị của vế bên phải.
B. Các biến trong C phải được khai báo trước khi sử dụng.
C. Ngôn ngữ lập trình C là ngôn ngữ không phân biệt HOA-thường.
D. Có thể thực hiện phép gán liên tiếp dạng x=y=z=t trong C.
Câu 21: Giá trị của biến z khi in ra màn hình ở đoạn lệnh sau là bao nhiêu ?
int x=20, y=6;
double z;
z = (x+y)/3;
printf(“%.2f”, z);

A. 8.67 B. 8 C. 8.00 D. Tất cả đều sai


Câu 22: Cách khai báo mảng 1 chiều nào dưới đây SAI
A. int A[4] = {1,2,3,4}; B. int A(4);
C. int A[] = {1,2,3,4}; D. int A[4];
Câu 23: Trong số các kiểu dữ liệu sau, kiểu dữ liệu nào không có trong ngôn ngữ C
A. int B. extend C. char D. short
Câu 24: Trong hàm printf, muốn in ra màn hình một chuỗi ký tự ta sử dụng định dạng là:
A. “%e” B. “%g” C. “%c” D. “%s”
Câu 25: Những tên biến nào dưới đây được viết đúng theo quy tắc đặt tên của ngôn ngữ C?
A. _TrungBinhCong B. #TrungBinhCong
C. Trung-Binh-Cong D. Trung_Binh_Cong#
Câu 26: Cho biết kết quả đoạn code sau:

int x=2, y=8;


if(y=x+3)
printf(“Perfect”);
else
printf(”Wrong”);

A. Perfect B. Wrong

Trang 3/5 - Mã đề thi 01


C. Chương trình báo lỗi D. Tất cả đều sai
Câu 27: Kết quả in ra màn hình của đoạn code sau là gì ?
for( int i=2; i<=4; i+=2)
printf(“%3d”,i);

A. 1 2 3 4 B. Lỗi biên dịch C. 2 3 4 D. 2 4


Câu 28: Cho khai báo như sau:
struct NewType{
int x;
float y;
} t, *p, a[10];

Trong số các lệnh gán sau, lệnh gán nào KHÔNG hợp lệ theo quy định của C
A. p=&a; B. p=&t.x; C. p=&a[5]; D. p=&t;
Câu 29: Cách truyền tham số nào dưới đây cho hàm không làm thay đổi giá trị của tham số thực
sự sau khi hàm kết thúc ?
A. truyền gián tiếp B. truyền tham chiếu
C. truyền trực tiếp D. truyền tham trị

Câu 30: Để biểu diễn biểu thức ở ngôn ngữ C, cách viết nào sau đây đúng ?

A. sqrt(sqrt(sqrt ((x*y)/(x+y))))
B. exp( log(fabs( (x*y)/(x+y) ) / 3 )
C. sprt(sprt(sprt ((x*y)/(x+y))))
D. Tất cả đều sai
Câu 31: Cho biết kết quả chương trình dưới đây:
#include<stdio.h>
int main(){
int a=38, b=8;
while(a!=b){
if(a>b)
a=a-b;
else
b=b-a;
}
printf(“%d”, a);
return 0;
}

A. 8 B. 38 C. 30 D. 2
Câu 32: Kết quả nào sau đây đúng ?
int i = 1;
while(i/2<4)
i+=2;
printf(“%d”, i);

A. 5 B. 4 C. 3 D. 2

Câu 33: Kết quả nào dưới đây đúng


int main(){
int a[]={1,2,3,4};
for(int i=0; i<3; i++)
a[i] = a[i+1]
for(i=0; i<4; i++)
printf(“%3d”, a[i]); Trang 4/5 - Mã đề thi 01
}
A. 1, 2, 3, 4 B. 2, 3, 4, 0 C. 2, 3, 4, 4 D. 2, 3, 4, 5
Câu 34: Giả sử có khai báo kiểu và biến cấu trúc svA như sau:
struct SinhVien{
char *Hoten;
float DiemTB;
};
struct SinhVien svA;

Câu lệnh để nhập điểm trung bình cho svA nào sau đây đúng ?
A. scanf(“%f”, svA.&DiemTB); B. scanf(“%f”, svA.DiemTB);
C. scanf(“%f”, &svA->DiemTB); D. scanf(“%f”, &svA.DiemTB);
Câu 35: Cho biết kết quả in ra màn hình của đoạn lệnh:
int x =8;
switch(x%6){
case 0: printf(“Zero”);
case 1: printf(“One”);
case 2: printf(“Two”);
case 3: printf(“Three”);
case 4: printf(“Four”);
}

A. TwoThreeFour B. Two
C. ZeroOneTwoThreeFour D. Tất cả đều sai

PHẦN TỰ LUẬN (3 điểm)


Viết chương trình (bằng ngôn ngữ C) thực hiện các yêu cầu sau:
a. Nhập vào một mảng số nguyên gồm n phần tử (0 <n<=100) và xuất mảng vừa nhập ra màn
hình.
b. Thống kê và in ra màn hình tổng các phần tử dương trong mảng.
c. Tìm phần tử lớn thứ hai trong mảng.

Trang 5/5 - Mã đề thi 01

You might also like