WorksheetsQuiz về ngôn ngữ lập trình C
Total questions: 98
Worksheet time: 16hrs 20mins
Ngôn ngữ lập trình C được Dennish phát triển dựa trên ngôn ngữ lập trình nào?
Ngôn ngữ B
Ngôn ngữ BCPL
Ngôn ngữ DEC PDP
Ngôn ngữ B và BCPL
Ngôn ngữ lập trình được Dennish đưa ra vào năm nào?
1967
1972
1970
1976
Ngôn ngữ lập trình nào dưới đây là ngôn ngữ lập trình có cấu trúc?
Ngôn ngữ Assembler
Ngôn ngữ C và Pascal
Ngôn ngữ Cobol.
a, b và c
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ữ lập trình C?
diem toan
3diemtoan
_diemtoan
-diemtoan
Một biến được gọi là biến toàn cục nếu
Nó được khai báo tất cả các hàm, ngoại trừ hàm main()
Nó được khai báo ngoài tất cả các hàm kể cả hàm main()
Nó được khai báo bên ngoài hàm main()
Nó được khai báo bên trong hàm main()
Một biến được gọi là một biến địa phương nếu
Nó được khai báo bên trong các hàm hoặc thủ tục, kể cả hàm main()
Nó đươc khai báo bên trong các hàm ngoại trừ hàm main()
Nó được khai báo bên trong hàm main()
Nó được khai báo bên ngoài các hàm kể cả hàm main()
Nếu x là một biến toàn cục và x không phải là một con trỏ thì
Miền nhớ dành cho x có thể thay đổi trong quá trình thực hiện chương trình
Miền nhớ dành cho x chỉ có thay đổi bởi những thao tác với x bên trong hàm main()
Miền nhớ dành cho x sẽ thay đổi bởi những thao tác với x trong tất cả các hàm, kể cả hàm main()
Miền nhớ giành cho x không bị thay đổi trong quá trình thực hiện chương trình
Kiểu dữ liệu nào dưới đây được coi là kiểu dữ liệu cơ bản trong ngôn ngữ lập trình C
Kiểu double
Kiểu con trỏ
Kiểu hợp
Kiểu mảng
Giả sử a, b là hai số thực. Biểu thức nào dưới đây viết không đúng theo cú pháp của ngôn ngữ lập trình C:
(a+=b).
(a*=b).
(a=b).
(a&=b)
Giả sử a và b là hai số thực. Biểu thức nào dưới đây là không được phép theo cú pháp của ngôn ngữ lập trình C:
(ab).
(a-=b).
(a>>=b).
(a*=b)
Trong một chương trình C hợp lệ có đoạn lệnh
printf("%cc", '%');
Hãy cho biết kết quả xuất ra màn hình của đoạn lệnh trên
%
c
99
%c
Cho biết một hàm con trong chương trình C, input: số nguyên a và b,
A. trả về bội số chung nhỏ nhất của a và b.
B. trả về ước số chung lớn nhất của a và b
C. trả về phần dư a chia cho b
D. trả về giá trị trung bình của a+b
Trong một chương trình C hợp lệ có đoạn chương trình
int i, j h=3;
for (i=1;i<=h;i++)
{
for (j=1;j<=h-i;j++) printf(" ");
for (j=1;j<=i;j++) printf("* ");
printf("\n");
}
Hãy cho biết kết quả xuất ra màn hình của đoạn lệnh trên
%
9
Xâu định dạng nào dưới đây dùng để in ra một kí tự:
"%f".
"%x".
"%s".
"%c".
Xâu định dạng nào dưới đây dùng để in ra một xâu kí tự:
"%f".
"%x".
"%s".
"%c".
Xâu định dạng nào dưới đây dùng để in ra một số nguyên dài:
"%ld".
"%x".
"%d".
"%o".
Xâu định dạng nào dưới đây dùng để in ra địa chỉ của một biến:
"%u".
"%e".
"%o".
"%p".
Xâu định dạng nào dưới đây dùng để in ra một số nguyên:
"%u".
"%e".
"%d".
"%p".
Dòng lệnh chú thích nào sau đây là hợp lệ trong ngôn ngữ C
% day la chu thich
/* day la chu thich
// day la chu thich
*day la chu thich
Biểu thức (int)2.8*10 có giá trị trả về là
28
20
2.8
2
Kiểu dữ liệu int( kiểu số nguyên) có thể xử lí số nguyên nằm trong khoảng nào:
0…255.
-32768…32767.
-128…127.
0…65535.
Cho a=3, b=2 và c là 3 biến nguyên. Biểu thức nào sau viết sai cú pháp trong ngôn ngữ lập trình C :
(c=a & b).
(c=a && b).
(c= a/b).
(c= a<
Giả sử a và b là 2 số thực. Biểu thức nào dưới đây là không được phép :
(a+=b).
(a - =b).
(a>>=b).
(a*=b).
Cho a=3, b=2. Biến c=(a<<=b) sẽ có giá trị nào dưới đây :
c=9.
c=12. [ c =(a = (a<<=b)) = (a= a.2b)].
c=6.
c=8.
Kết quả hiển thị ra màn hình của chương trình sau là gì :
#include<stdio.h>
void main() {
int a,b;
a=100;
b=56;
printf("%d",(a<b) ? a:b);
56.
100.
Báo lỗi khi thực hiện xây dựng chương trình.
Kết quả k
Trong các hàm sau, hàm nào là hàm không định dạng để in một chuỗi kí tự ra màn hình:
puts().
printf().
scanf().
gets().
Cho biến nguyên n=8, phép tính ++n có giá trị trả về là
7
8
9
khác
Cho biến nguyên n=8, phép tính n++ có giá trị trả về là
7
8
9
khác
Sử dụng cách truyền nào trong hàm sẽ không làm thay đổi giá trị của biến trong chương trình chính:
Truyền bằng trị
Truyền bằng giá trị địa chỉ của tham số
Cả a và b đều đúng
Cả a và b đều sai.
Cho biến nguyên i=0, sau câu lệnh i+=3, biến i có giá trị là
0
1
3
khác
Cho biết i là biến kiểu nguyên, chọn đoạn lệnh for không được phép trong C
for(;;)
for(int i=0,i<10,i++)
for(i=0;i<10;i++)
for(i=10;i>0;i--)
Chương trình C có bao nhiêu hàm main()
1
2
3
tùy ý
Biến con trỏ có thể chứa :
Địa chỉ vùng nhớ của một biến khác.
Giá trị của một biến khác.
Cả a và b đều đúng
Cả a và b đều sai.
Dữ liệu kí tự bao gồm :
Các kí tự số chữ số
Các kí tự chữ cái.
Các kí tự đặc biệt
Cả a,b và c.
Kiểu dữ liệu float có thể xử lí dữ liệu trong phạm vi nào :
3.4*10-38 đến 3.4*1038
-32768 đến 32767.
-128 đến 127.
0…65535
Giả sử có câu lệnh ch='A'. Vậy ch sẽ chứa bao nhiêu byte :
1
2
3
4
Lệnh nào trong các lệnh sau cho phép chuyển sang vòng lặp tiếp theo mà không cần phải thực hiện phần còn lại của vòng lặp:
break
goto
continue
return.
Giả sử có câu lệnh ch[]= "A". ch chứa bao nhiêu bytes :
1
2
3
4.
Kết quả in ra màn hình của chương trình sau :
A
a
65
Kết quả khác
Kết quả in ra màn hình của chương trình sau:
6
5
1
0
Dạng tổng quát của hàm printf() là: printf("dãy mã quy cách", dãy mã biểu thức); Trong đó, dãy mã quy cách sẽ là:
Dãy các mã định dạng dữ liệu hiển thị.
Con trỏ của xâu kí tự.
Các xâu kí tự mang tính chất thông báo.
Cả 3 phương án trên
Kết quả in ra màn hình của chương trình sau là gì:
#include <stdio.h>
void main() { int i; for (i=2; i<=4; i+=2) printf("%3d",i); };
" 1 2 3 4".
" 2 3 4".
" 2 4".
Chương trình không chạy được
Kết quả in ra màn hình của chương trình sau là gì: #include <stdio.h>
void main() {
int i; for (i=2; ; i++)
printf("%3d",i);
};
Vòng lặp vô hạn.
" 2".
" 1 2".
Kết quả khác.
Trong ngôn ngữ C, khai báo "int array[3][5]" có nghĩa là:
Các phần tử của mảng là các số nguyên.
Là một mảng hai chiều tối đa là 15 phần tử và mỗi phần tử là một số nguyên.
array[3][5] là một phần tử của mảng.
Tất cả đều sai.
Kết quả của chương trình sau là gì :
" 1 2 3 4".
" 4".
" 3".
Kết quả khác.
Phép cộng 1 con trỏ với một số nuyên sẽ là:
Một con trỏ có cùng kiểu.
Một số nguyên.
Cả hai kết quả đều đúng.
Cả hai kết quả đều sai.
Phép trừ 2 con trỏ có cùng kiểu sẽ là:
Một con trỏ có cùng kiểu.
Một số nguyên.
Kết quả khác.
Không thực hiện được
Khi khai báo mảng, ta khởi tạo luôn giá trị của mảng như sau: int x[3]={4,2,6}; Nghĩa là:
x[1]=4, x[2]=2, x[3]=6.
x[0]=4, x[1]=2, x[2]=6;
Khai báo không đúng.
Kết quả khác.
Khi nhập vào đòng văn bản: "Chao Cac Ban". Kết quả của chương trình sau là gì:
"Chao Cac Ban".
"Chao Cac"
"Chao"
Khong hien ket qua gi
Kết quả của chương trình sau là gì:
In ra màn hình các số từ 1 đến 24.
Lỗi khi xây dựng chương trình.
Kết quả khác.
In ra màn hình các số từ 1 đến 24, mỗi số một dòng.
Lệnh fflush(stdin) dùng để làm gì:
Đọc kí tự từ bàn phím.
Xóa sạch bộ nhớ đệm.
Xóa bộ nhớ đệm.
Kết quả khác.
Kết quả của đoạn chương trình sau là gì: char c; int n; scanf("%d%c",&n,&c); Nếu gõ vào : "10 T".
n=10, c=' '.
n=10, c='T'.
Lỗi khi xây dựng chương trình.
Kết quả khác.
Kết quả in ra màn hình của chương trình sau:
"d".
"D".
"100".
Kết quả khác
Phép toán % có ý nghĩa gì:
Đổi dấu một số thực hoặc một số nguyên.
Chia hai số thực hoặc nguyên.
Lấy phần dư của phép chia hai số nguyên.
1 và 2.
Hàm nào dưới đây chỉ dùng để đọc 1 kí tự từ tệp:
getch();
fscanf();
fgetc();
scanf();
Hàm nào dưới đây chỉ dùng để nhập dữ liệu từ tệp:
getch();
fscanf();
fgetc();
scanf();
Hàm nào dưới đây chỉ dùng để ghi một kí tự vào tệp:
putch();
puts();
fputs();
fputc()
Hàm nào dưới đây dùng để ghi 1 xâu kí tự vào tệp:
putch();
fputc();
fputs();
puts()
Câu lệnh sau có ý nghĩa gì: FILE *fopen(tep1,"r+");
Mở tệp văn bản cho phép ghi
Mở tệp văn bản cho phép đọc.
Mở tệp văn bản cho phép cả đọc cả ghi.
Mở tệp văn bản đã tồn tại để đọc.
Cho các khai báo sau: struct ngay{ int ng, th, n;} vaotruong, ratruong;
typedef struct sinhvien{ char hoten; ngay ngaysinh;};
Hãy chọn câu đúng nhất:
Không được phép gán: vaotruong = ratruong;
"sinhvien" là tên cấu trúc, "vaotruong", "ratruong" là tên biến cấu trúc.
CóCó thể viết “vaotruong.ng”, “ratruong.th”, “sinhvien.vaotruong.n” để truy xuất đến các thành phần tương ứng.
1, 2, 3 đúng.
Trong các khởi tạo giá trị cho các cấu trúc sau, hãy chọn câu đúng: struct S1{ int ngay, thang, nam;}; S1=(2, 1, 3); struct S2{ char hoten[10]; struct S1 ngaysinh;}; S2={"Ly Ly", {4, 5, 6}};
S1 đúng.
S2 đúng.
Cả S1, S2 đều đúng.
Cả S1, S2 đều sai
1
2
2 va 3
1,2 va 3
Chọn câu đúng:
Cả 2 ý đúng.
Cả hai ý đều sai
“struct” là một kiểu dữ liệu do người dùng định nghĩa bao gồm nhiều thành phần có kiểu khác nhau.
“struct” là sự kết hợp của nhiều thành phần có thể có thể có kiểu khác nhau.
Đâu là phát biểu đúng về danh sách:
Chỉ có thể xóa phần tử đầu tiên trong danh sách.
Chỉ có thể xóa phần tử cuối cùng trong danh sách.
Có thể xóa một phần tử tại vị trí bất kì trong danh sách.
Tất cả đều sai.
Hàm dùng để cấp phát bộ nhớ động cho kiểu nhớ động do lập trình viên tự định nghĩa như (union, struct):
calloc();
malloc();
realloc();
Cả 3 đáp án trên.
Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau: struct S1{int info; struct S1 *next;} *head; Biết con trỏ "*head" lưu địa chỉ của phần tử đầu tiên trong danh sách. Nhóm câu lệnh nào sau đây thêm một phần tử vào đầu danh sách:
p->next=head; head=p;
p->next=head; head->p; head=p->next;
head->next=p; p=head;
Không có câu nào đúng.
Cho một danh sách móc nối với các phần tử trong danh sách có kiểu S1 được định nghĩa như sau:
struct S1{int info; struct S1 *next;} *head;
Biết con trỏ “*head” lưu địa chỉ của phần tử đầu tiên trong danh sách. Nhóm câu lệnh nào sau đây xóa phần tử đầu tiên ra khỏi danh sách:
a) head->next=head;
b) head=head->next;
c) head=head->next->next;
2,3
Đâu là phát biểu sai khi nói về danh sách liên kết:
Mỗi phần tử trong danh sách liên kết phải có ít nhất một trường dùng để lưu địa chỉ.
Sử dụng danh sách liên kết thường tiết kiệm bộ nhớ hơn dùng mảng.
Sử dụng danh sách liên kết thường tốn bộ nhớ hơn dùng mảng.
Tất cả các đáp án đều sai.
Câu nào không nói đến ưu điểm của việc sử dụng cấu trúc:
Bạn có thể xử lí một cách hỗn hợp các kiểu dữ liệu trong một đơn vị.
Bạn có thể lưu dữ xâu kí tự có dài khác nhau vào trong một biến cấu trúc.
Dữ liệu có thể lưu trữ trong một module và dưới dạng phân cấp
Cần ít nhất một bộ nhớ cho cùng dữ liệu
Làm thế nào có thể biểu diễn phần tử "hoten" của SV1:
SV1.hoten;
p->hoten;
&hoten;
1 và 2.
Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
Kết quả: 5
Kết quả: 120
Kết quả: 24
Kết quả: 0
Hãy cho biết kết quả thực hiện đoạn chương trình dưới đây:
Kết quả: 8
Kết quả: 720
Kết quả: 13
Kết quả: 7
Toán tử "++n" được hiểu:
Giá trị n giảm đi sau khi giá trị của nó được sử dụng.
Giá trị n giảm đi trước khi giá trị của nó được sử dụng.
Giá trị của n được tăng sau khi giá trị của nó được sử dụng.
Giá trị của n được tăng lên trước khi giá trị của nó được sử dụng.
Câu 72: Kiểu dữ liệu nào dưới đây không được coi là kiểu dữ liệu cơ bản trong ngôn ngữ lập trình C:
Kiểu mảng.
Kiểu enum.
Kiểu short int.
Kiểu unsigned.
Câu 73: Cho b = 5 và c = 8. Hãy cho biết giá trị của a sau khi thi hành dòng lệnh
Sau a=++b + ++c;
12
13
14
15
Câu 74: Cho biết đoạn chương trình sau đây xuất ra màn hình những gì ?
2 1
1 3
2 3
1 4
Câu 75: Cho biết giá trị của 8/- 5 và 8%-5
2 và 3
-2 và - 3
-1 và 3
-1 và - 3
Câu 76: Câu lệnh sau có ý nghĩa gì: FILE * fopen(tep1, "ab");
Mở tệp nhị phân để ghi.
Mở tệp nhị phân đã có và ghi thêm dữ liệu nối tiếp vào tệp này.
Mở tệp nhị phân để ghi mới.
Mở tệp nhị phân để đọc.
Câu 77: Có thể truy cập thành phần của cấu trúc thông qua con trỏ như( với p là con trỏ cấu trúc, a là thành phần cấu trúc):
(*p).a;
*p->a;
A và B đều đúng
A và B đều sai
Câu 78: Cho khai báo. Câu lệnh nào không hợp lệ?
p=&t;
p=&t.x;
p=&a[5];
p=&a;
Để dùng danh sách liên kết, xét hai khai báo sau(cần 1KB để lưu dữ thông tin về một sinh viên). (Với “thongtin” là một thành phần dữ liệu của cấu trúc); Chọn câu đúng nhất trong các câu sau:
A. Khai báo 1 tốn nhiều bộ nhớ hơn khai báo 2.
B. Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi đổi vị trí 2 sinh viên
C. Khai báo 1 sẽ giúp tiết kiệm câu lệnh hơn khi viết hàm đổi vị trí 2 sinh viên.
D. Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi duyệt danh sách.
Câu 80: Toán tử nào sau đây sẽ truy xuất 1 thành phần của con trỏ cấu trúc:
"."(Toán tử chấm)
"->"(Toán tử mũi tên)
Cả hai đều đúng.
Cả hai đều sai.
Câu 81: Xem đoạn code sau. Giá trị của biến v là:
{6, 6, 7}
{5, 6, 7}
Nhóm trị khác
Đoạn code gây lỗi
Cho biết một hàm con trong chương trình C, input: dãy src có n số nguyên, số nguyên ptu
thêm phần tử ptu vào dãy src
khử phần tử ptu trong dãy src
trả về địa chỉ đầu tiên tìm thấy giá trị ptu trong dãy src
nhập dãy src với n phần tử đều có giá trị ptu
Cho biết một cấu trúc và hàm hamcon trong chương trình C
xóa danh sách liên kết
xóa nút đầu của danh sách liên kết
thêm nút k vào đầu danh sách liên kết
thêm nút k vào cuối danh sách liên kết
Câu 85. Cho biết một cấu trúc và hàm hamcon trong chương trình C
xóa danh sách liên kết.
xóa nút đầu của danh sách liên kết
thêm nút k vào đầu danh sách liên kết
thêm nút k vào cuối danh sách liên kết
Trong ngôn ngữ lập trình C, hàm nào được sử dụng để đọc một chuỗi từ bàn phím?
printf()
scanf()
gets()
puts()
Biến toàn cục trong ngôn ngữ C có thể được khai báo ở đâu?
Bên trong một hàm
Bên ngoài tất cả các hàm
Trong một khối lệnh
Không thể khai báo biến toàn cục
Trong ngôn ngữ C, toán tử nào được sử dụng để so sánh hai giá trị?
!
==
-
+
Trong ngôn ngữ C, từ khóa nào được sử dụng để khai báo một hàm?
function
void
define
return
Biểu thức nào dưới đây là hợp lệ trong ngôn ngữ lập trình C?
double 2.5 = number;
int a = 5;
float 3.14 = pi;
char c = 'a';
Trong ngôn ngữ C, mảng có thể chứa:
Chỉ các số thực.
Các phần tử cùng kiểu dữ liệu.
Chỉ các số nguyên.
Các kiểu dữ liệu khác nhau.
Trong ngôn ngữ C, lệnh nào sau đây được sử dụng để kết thúc một vòng lặp?
break
finish
exit
stop
Hàm nào sau đây được sử dụng để đọc một ký tự từ bàn phím trong ngôn ngữ C?
input()
getchar()
scanf()
read()
Trong ngôn ngữ C, kiểu dữ liệu nào sau đây không phải là kiểu dữ liệu cơ bản?
float
struct
char
int
Hàm nào dưới đây được sử dụng để so sánh hai chuỗi trong ngôn ngữ lập trình C?
strcmp()
strcat()
strcpy()
strlen()
Trong ngôn ngữ lập trình C, từ khóa nào được sử dụng để khai báo một biến hằng số?
final
volatile
static
const
Biểu thức nào dưới đây sẽ gây ra lỗi khi biên dịch trong ngôn ngữ lập trình C?
(a && b)
(a = b)
(a == b)
(a || b)
