320 Câu hỏi trắc nghiệm lập trình C có đáp án - Phần 4
-
6234 lượt thi
-
50 câu hỏi
-
60 phút
Danh sách câu hỏi
Câu 3:
Giả sử tệp DATA chứa 5 byte: “70, 26, 13, 10, 44”. Cho đoạn lệnh. Hãy
cho biết kết quả của đoạn chương trình trên:
FILE * f;
char ch;
f = fopen(“DATA”, ”r”); while (!feof(f)) {
ch = fgetc(f);
printf(“ % c”, ch);
};
fclose(f);
cho biết kết quả của đoạn chương trình trên:
FILE * f;
char ch;
f = fopen(“DATA”, ”r”); while (!feof(f)) {
ch = fgetc(f);
printf(“ % c”, ch);
};
fclose(f);
Xem đáp án
Chọn đáp án B
Câu 4:
Cho tệp nhị phân DATA chứa dãy các cấu trúc liền nhau L struct T{…} x;và f là con trỏ tệp đến DATA. Chọn câu đúng nhất trong các câu sau:
Xem đáp án
Chọn đáp án C
Câu 5:
f là con trỏ trỏ đến tệp nhị phân DATA chứa không quá 100 bản ghi( kiểu cấu trúc) liền nhau. Cho khai báo. Đoạn chương trình nào sau đây
đọc toàn bộ các bảng ghi trong DATA vào x: struct T {…}; struct T x[100]; int i = 0, n = 0;
đọc toàn bộ các bảng ghi trong DATA vào x: struct T {…}; struct T x[100]; int i = 0, n = 0;
Xem đáp án
Chọn đáp án C
Câu 6:
Phát biểu nào sau đây là đúng khi nói về chế độ truyền: Trong chế độ nhị phân, các byte được sử lí khác với giá trị trên thiết bị ngoại vi và có sự thực hiện chuyển đổi. Trong chế độ nhị phân, các kí tự được tổ chức thành từng dòng, được kết thúc bằng kí tự xuống dòng và có sự chuyển đổi. Trong chế độ văn bản, các kí tự được tổ chức thành từng dòng, mỗi dòng kết thúc bằng kí tự xuống dòng, có sự chuyển đổi của một số kí tự theo yêu cầu của môi trường. Trong chế độ nhị phân, các byte được sử lí đúng như giá trị trên thiết bị ngoại vi và không có sự thực hiện chuyển đổi nào.
Xem đáp án
Chọn đáp án B
Câu 9:
Phát biểu đúng nhất về mẫu lệnh( f là con trỏ tệp): while ((ch = fgetc(f)) != EOF)…
Xem đáp án
Chọn đáp án D
Câu 14:
Dấu hiệu nào là đúng khi sử dụng hàm fopen() để mở một file đã tồn tại đọc theo kiểu nhị phân:
Xem đáp án
Chọn đáp án C
Câu 21:
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):
Xem đáp án
Chọn đáp án A
Câu 22:
Cho khai báo. Câu lệnh nào không hợp lệ?
struct T {
int x;
float y;
}
t, * p, a[10];
struct T {
int x;
float y;
}
t, * p, a[10];
Xem đáp án
Chọn đáp án D
Câu 23:
Cho các khai báo sau. Hãy chọn câu đúng nhất:
struct ngay {
int ng, th, n;
}
vaotruong, ratruong;
typedef struct sinhvien {
char hoten;
ngay ngaysinh;
};
struct ngay {
int ng, th, n;
}
vaotruong, ratruong;
typedef struct sinhvien {
char hoten;
ngay ngaysinh;
};
Xem đáp án
Chọn đáp án B
Câu 24:
ong 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
}
};
struct S1 {
int ngay, thang, nam;
};
S1 = (2, 1, 3);
struct S2 {
char hoten[10];
struct S1 ngaysinh;
};
S2 = {
“
Ly Ly”,
{
4,
5,
6
}
};
Xem đáp án
Chọn đáp án B
Câu 26:
Cho đoạn chương trình sau. Chọn câu đúng nhất trong các câu sau:
struct {
int to;
float soluong;
}
x[10];
for (int i = 0; i < 10; i++) scanf(“ % d % f”, & x[i].to, & x[i].soluong);
struct {
int to;
float soluong;
}
x[10];
for (int i = 0; i < 10; i++) scanf(“ % d % f”, & x[i].to, & x[i].soluong);
Xem đáp án
Chọn đáp án C
Câu 27:
Để tạo danh sách liên kết, theo bạn sinh viên nào dưới đây là khai báo
đúng cấu trúc tự trỏ sẽ được dùng:
1. Sinh viên 1:
struct SV {
char ht[25];
int tuoi;
struct Sv * tiep;
};
2. Sinh viên 2
typedef
struct SV node;
struct SV {
char ht[25];
int tuoi;
node * tiep;
};
3. Sinh viên 3
typedef
struct SV {
char ht[25];
int tuoi;
struct SV * tiep;
}
node;
đúng cấu trúc tự trỏ sẽ được dùng:
1. Sinh viên 1:
struct SV {
char ht[25];
int tuoi;
struct Sv * tiep;
};
2. Sinh viên 2
typedef
struct SV node;
struct SV {
char ht[25];
int tuoi;
node * tiep;
};
3. Sinh viên 3
typedef
struct SV {
char ht[25];
int tuoi;
struct SV * tiep;
}
node;
Xem đáp án
Chọn đáp án D
Câu 28:
Để 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:
1. Khai báo 1:
struct SV {
thongtin;
struct SV * tiep;
};
2. Khai báo 2:
struct SV {
thongtin
};
struct DS {
struct SV * sv;
struct DS * tiep;
}
của cấu trúc); Chọn câu đúng nhất trong các câu sau:
1. Khai báo 1:
struct SV {
thongtin;
struct SV * tiep;
};
2. Khai báo 2:
struct SV {
thongtin
};
struct DS {
struct SV * sv;
struct DS * tiep;
}
Xem đáp án
Chọn đáp án B
Câu 29:
Cho đoạn chương trình. Giá trị của c sẽ là:
char S[] = “Helen”;
char * p = S;
char c = * (p + 3);
char S[] = “Helen”;
char * p = S;
char c = * (p + 3);
Xem đáp án
Chọn đáp án B
Câu 31:
Toán tử nào sau đây sẽ truy xuất 1 thành phần của con trỏ cấu trúc:
Xem đáp án
Chọn đáp án C
Câu 32:
Xem đoạn code sau. Giá trị của biến v là:
typedef struct ST {
int d1, d2, d3;
};
ST v = {
5,
6,
7
};
ST * p = & v;
p.d1++;
typedef struct ST {
int d1, d2, d3;
};
ST v = {
5,
6,
7
};
ST * p = & v;
p.d1++;
Xem đáp án
Chọn đáp án D
Câu 33:
Xem đoạn code sau. Giá trị trung bình của các trường trong biến v là gì:
typedef struct STUDENT {
int d1, d2, d3;
};
STUDENT v = {
2,
3,
4
};
v.d1++;
typedef struct STUDENT {
int d1, d2, d3;
};
STUDENT v = {
2,
3,
4
};
v.d1++;
Xem đáp án
Chọn đáp án C
Câu 34:
Hãy khai báo một cấu trúc mô tả sinh viên, thông tin về mỗi sinh viên bao gồm: tên, điểm 3 môn học. Khai báo nào sau đây là đúng:
Xem đáp án
Chọn đáp án C
Câu 36:
Kết quả của chương trình sau là gì:
#include <stdio.h>
void main() {
struct diem; {
float k;
float a;
float l;
};
struct diem m; m.k = 8; m.a = 6.5; m.l = 6;
printf(“ % 0.1 f % 0.1 f % 0.1 f”, m.k, m.a, m.l);
};
#include <stdio.h>
void main() {
struct diem; {
float k;
float a;
float l;
};
struct diem m; m.k = 8; m.a = 6.5; m.l = 6;
printf(“ % 0.1 f % 0.1 f % 0.1 f”, m.k, m.a, m.l);
};
Xem đáp án
Chọn đáp án A
Câu 37:
Kiểu dữ liệu nào có thể chứa nhiều thành phần dữ liệu có thể có kiểu dữ liệu khác nhau thành một nhóm duy nhất:
Xem đáp án
Chọn đáp án D
Câu 38:
Chọn kết quả hợp lí cho chương trình sau:
void main() {
struct sv {
float d;
char ht[10];
};
struct sv m, * p;
p = & m;
printf(“ % p”, & m);
printf(“ % p”, p);
};
void main() {
struct sv {
float d;
char ht[10];
};
struct sv m, * p;
p = & m;
printf(“ % p”, & m);
printf(“ % p”, p);
};
Xem đáp án
Chọn đáp án D
Câu 39:
Chọn kết quả đúng cho chương trình sau:
#include <stdio.h>
void main() {
clrscr();
struct sv {
float d;
char ht[10];
};
struct sv m, * p;
p = & m;
( * p).d = p -> d = 10;
strcpy(m.ht, ”NguyenVanTuan”);
printf(“ % 0.1 f”, m.d);
printf(“ % s”, m.ht);
};
#include <stdio.h>
void main() {
clrscr();
struct sv {
float d;
char ht[10];
};
struct sv m, * p;
p = & m;
( * p).d = p -> d = 10;
strcpy(m.ht, ”NguyenVanTuan”);
printf(“ % 0.1 f”, m.d);
printf(“ % s”, m.ht);
};
Xem đáp án
Chọn đáp án D
Câu 40:
Chọn kết quả đúng cho chương trình sau:
#include <stdio.h>
#include <string.h>
void main() {
struct S1 {
float d;
float d1;
float d2;
};
struct S1 m = {
12,
1
};
printf(“ % 0.1 f % 0.1 f % 0.1 f”, m.d, m.d1, m.d2);
};
#include <stdio.h>
#include <string.h>
void main() {
struct S1 {
float d;
float d1;
float d2;
};
struct S1 m = {
12,
1
};
printf(“ % 0.1 f % 0.1 f % 0.1 f”, m.d, m.d1, m.d2);
};
Xem đáp án
Chọn đáp án A
Câu 41:
Chương trình sau cho kết quả là gì:
#include <stdio.h>
void main() {
int * px, * py;
int a[] = {
1,
2,
3,
4,
5,
6
};
px = a;
py = & a[5];
printf(“ % d”, ++px - py);
};
#include <stdio.h>
void main() {
int * px, * py;
int a[] = {
1,
2,
3,
4,
5,
6
};
px = a;
py = & a[5];
printf(“ % d”, ++px - py);
};
Xem đáp án
Chọn đáp án A