1 Góc học tập ➢
2 Tin học đại cương
Câu 230: Trong ngôn ngữ lập trình C, cho biết kết quả hiển thị trên màn hình khi câu lệnh sau được thực hiện?
printf("1\n2");
a. 12b. 1\n2c. 1printf("1\n2");
2d. 21
|
|
|
|
Câu 231: Cho một đoạn chương trình viết bằng ngôn ngữ lập trình C như sau:
const int i=0;
printf("%d\n",i++);
Hãy chỉ ra lỗi của đoạn chương trình trên (nếu có)?
a. Khai báo i sai cú phápb. Toán tử ++ thiếu một toán hạngc. Toán tử ++ áp dụng lên một hằng sốd. Đoạn chương trình trên không có lỗi cú pháp
const int i=0;
printf("%d\n",i++);
Hãy chỉ ra lỗi của đoạn chương trình trên (nếu có)?
|
|
|
|
Câu 232: Lệnh đúng để in ra màn hình hai số thực x, y theo định dạng:
Dòng 1: In giá trị x, căn lề trái, chiếm 10 vị trí trong đó có 2 vị trí cho phần thập phân
Dòng 2: In giá trị y, căn lề phải, chiếm 6 vị trí trong đó có 3 vị trí cho phần thập phân
a. printf("%-10.2f\n%6.3f",x,y);b. printf("%-10.3f\n%6.4f",x);c. printf("%10.2f",x);printf("%-6.3f",y);d. printf("%10.2f",x);printf("\n%-6.3f",y);
Dòng 1: In giá trị x, căn lề trái, chiếm 10 vị trí trong đó có 2 vị trí cho phần thập phân
Dòng 2: In giá trị y, căn lề phải, chiếm 6 vị trí trong đó có 3 vị trí cho phần thập phân
%-x.y là căn lề trái với x vị trí trong đó có y vị trí cho phần thập phân |
|
_Không căn lề đúng theo yêu cầu của đề |
|
Câu 233: Cặp dấu hiệu nào để đánh dấu phạm vi một khối lệnh?
a. { }b. → và ←c. BEGIN và ENDd. ( và )
|
|
|
|
Câu 234: Tìm kết quả đúng của chương trình
#include
void main()
{ int a, b, c;
a=13/2;
b=++a+6;
c=(b>12)?(b+7):(a*a);
printf("\n %4d %4d %4d ",a,b,c);
}
a. 6 12 20b. 6 13 20c. 7 13 20d. 7 13 49
#include
void main()
{ int a, b, c;
a=13/2;
b=++a+6;
c=(b>12)?(b+7):(a*a);
printf("\n %4d %4d %4d ",a,b,c);
}
|
|
_++a là phép cộng tiền tố ta tính trước: a tăng lên 1 (a=7). Sau đó tính biểu thức b=a+6=7+6=13 _b>12 (13>12 là đúng) => c=b+7=13+7=20 * Vậy cuối cùng a=7, b=13, c=20 |
|
Câu 235: Giá trị của a sau khi thực hiện các lệnh sau:
int a=5; { int a=7; }
a=a+4;
a. 11b. 9c. 5d. Lỗi khai báo biến a
int a=5; { int a=7; }
a=a+4;
|
_Những biến được khai báo trong 1 khối lệnh, giá trị của nó chỉ có hiệu lực trong khối lệnh đó ================ _Vậy trong chương trình chính a=5 và sau đó a=a+4=5+4=9 ================ _Trường hợp bài này thay khối lệnh { int a=7; } bằng khối lệnh { a=7; } thì đáp án sẽ là 11 vì trong khối lệnh nhỏ không khai báo lại biến a, mà lấy trực tiếp a từ chương trình chính để gán a=7 nên a ở chương trình chính sẽ thay đổi và sau đó a=a+4=7+4=11 _Vậy chỉ khi trong khối lệnh thực hiện khai báo biến (int, float,...) thì biến đó mới không ảnh hưởng đến chương trình chính ngoài khối lệnh. |
|
|
Câu 236: Trong ngôn ngữ lập trình C, phát biểu nào sau đây là sai đối với cấu trúc if...else?
a. Tất cả các câu lệnh sử dụng if...else đều có thể thay thế được bằng biểu thức điều kiện dạng (đ.kiện)?(b.thức1):(b.thức2)b. Cấu trúc if...else có thể lồng vào nhauc. Sau biểu thức điều kiện đi cùng với từ khóa if cho phép sử dụng khối lệnhd. Sau từ khóa else cho phép sử dụng khối lệnh
|
|
|
|
Câu 237: Câu lệnh nào dưới đây kiểm tra xem biến ký tự ch có phải là chữ cái không?
a. if(('A'<=ch) && (ch<='z'))b. if((('A'<=ch) && (ch<='Z')) && (('a'<=ch) && (ch<='z')))c. if( ('A'<=ch) || (ch<='Z')) && (('a'<=ch) || (ch<='z')))d. if( (('A'<=ch) && (ch<='Z')) || (('a'<=ch) && (ch<='z')) )
_Chuỗi ký tự số '0' - '9' _Chuỗi ký tự chữ thường 'a' - 'z' _Chuỗi ký tự chữ hoa 'A' - 'Z' ...<'0'-'9'<...<'A'-'Z'<...<'a'-'z'<... 3 chuỗi ký tự này không nằm liền nhau. Nên khoảng giữa 'A' và 'z' vẫn có ký tự không thuộc bảng chữ cái Vậy kiểm tra ch theo lệnh như đáp án A là không được |
_Chuỗi ký tự số '0' - '9' _Chuỗi ký tự chữ thường 'a' - 'z' _Chuỗi ký tự chữ hoa 'A' - 'Z' ...<'0'-'9'<...<'A'-'Z'<...<'a'-'z'<... 3 chuỗi ký tự này không nằm liền nhau. Nên ch là chữ cái thì chỉ có thể nằm 1 trong 2 chuỗi 'a'-'z' hoặc 'A'-'Z' , không thể nằm đồng thời ở cả 2 chuỗi như lênh câu B đã dùng (phép logic AND &&) |
_Chuỗi ký tự số '0' - '9' _Chuỗi ký tự chữ thường 'a' - 'z' _Chuỗi ký tự chữ hoa 'A' - 'Z' ...<'0'-'9'<...<'A'-'Z'<...<'a'-'z'<... Để xem ch có thuộc 1 chuỗi không ta phải dùng phép logic AND && chứ không thể dùng phép logic OR || |
_Chuỗi ký tự số '0' - '9' _Chuỗi ký tự chữ thường 'a' - 'z' _Chuỗi ký tự chữ hoa 'A' - 'Z' ...<'0'-'9'<...<'A'-'Z'<...<'a'-'z'<... 3 chuỗi ký tự này không nằm liền nhau. Nên để kiểm tra ch có phải chữ cái không ta cần kiểm tra ch có thuộc chuỗi 'a'-'z' ('a'<=ch<='z') hoặc thuộc chuỗi 'A'-'Z' ('A'<=ch<='Z') không. Vậy câu lệnh như đáp án D là đúng |
Câu 238: Với a=5. b=5, c=4. Kết quả hiển thị của đoạn chương trình sau như thế nào?
if(c)
if(a>b) printf("2");
else printf("3"); printf("5");
a. 35b. 5c. 3d. 2
if(c)
if(a>b) printf("2");
else printf("3"); printf("5");
if(c) if(a>b) printf("2"); else printf("3"); printf("5"); _ if(c) Nếu c đúng hoặc khác 0 thì lệnh if...else-màu xanh lá được thực hiện Nếu c sai hoặc bằng 0 thì lệnh if...else-màu xanh lá không được thực hiện (ở đây c khác 0 nên lệnh if...else màu xanh lá được thực hiện) _ if(a>b) Nếu a>b đúng hoặc khác 0 thì lệnh printf("2"); được thực hiện Nếu a>b sai hoặc bằng 0 thì lệnh printf("3"); được thực hiện (ở đây a>b là sai nên lệnh printf("3"); được thực hiện) => in ra 3 _ printf("5"); đây là một lệnh độc lập không kiên quan tới if...else nào cả => in ra 5 ================= Vậy màn hình in ra 35 |
|
|
|
Câu 239: Trong ngôn ngữ lập trình C, sau khi đoạn chương trình sau được thực hiện thì 2 biến A và B có giá trị bao nhiêu? int A=0, B=1;
if (A<=B) {
A = B;
B = A;
}
a. A=0 và B=1b. A=1 và B=0c. A=1 và B=1d. A=0 và B=0
if (A<=B) {
A = B;
B = A;
}
|
|
Khi đó: Ban đầu A=0, B=1 Gán A=B=1 (kết thúc lênh này thì A=1) Gán B=A=1 (kết thúc lênh này thì B=1) Vậy cuối cùng A=1, B=1 |
|
Câu 240: Điền vào chỗ ... để hoàn thiện chương trình sau:
#include <stdio.h>
void main()
{
int a, b, max;
printf("Nhap gia tri a va b: ");
scanf("%d%d", &a, &b);
if(...) max=a;
else max=b;
printf("So lon nhat trong 2 so %d và %d la %d", a, b, max);
}
a. a>bb. a<bc. a=bd. a!=b
#include <stdio.h>
void main()
{
int a, b, max;
printf("Nhap gia tri a va b: ");
scanf("%d%d", &a, &b);
if(...) max=a;
else max=b;
printf("So lon nhat trong 2 so %d và %d la %d", a, b, max);
}
|
|
|
|
Câu 241: Trong ngôn ngữ lập trình C, sau khi đoạn chương trình sau được thực hiện thì 2 biến A và B mang giá trị bao nhiêu?
int A=0, B=1, C;
if (A<B) {
C = B;
B = A;
A = C;
}
a. A=0 và B=1b. A=1 và B=0c. A=1 và B=1d. A=0 và B=0
int A=0, B=1, C;
if (A<B) {
C = B;
B = A;
A = C;
}
|
A<B (0<1 là đúng) thực hiện khối lệnh sau if(A<B) C=B=1 (Sau lệnh này C=1) B=A=0 (Sau lệnh này B=0) A=C=1 (Sau lệnh này A=1) Vậy kết thúc chương trình A=1, B=0 |
|
|
Câu 242: Cho một đoạn chương trình viết bằng ngôn ngữ lập trình C như sau:
int a=5;
switch(a){
case 1: printf("First");
case 2: printf("Second");
case 3+2: printf("Third");
case 5: printf("Final");break;
}
Hãy chỉ ra lỗi cú pháp của đoạn chương trình trên (nếu có)?
a. Không có câu lệnh break cuối mỗi nhãn caseb. Nhãn case không được phép sử dụng biểu thức 3+2c. Hai nhãn case có cũng giá trị là 5d. Đoạn chương trình trên không có lỗi cú pháp
int a=5;
switch(a){
case 1: printf("First");
case 2: printf("Second");
case 3+2: printf("Third");
case 5: printf("Final");break;
}
Hãy chỉ ra lỗi cú pháp của đoạn chương trình trên (nếu có)?
|
|
|
|
Câu 243: Trong ngôn ngữ lập trình C, sau khi đoạn chương trình sau được thực hiện thì biến C mang giá trị bao nhiêu?
int A=10, B=20, C=1;
switch (A>B) {
case 0 : C = A; break;
case 1 : C = B; break;
}
a. C = 0b. C = 20c. C = 1d. C = 10
int A=10, B=20, C=1;
switch (A>B) {
case 0 : C = A; break;
case 1 : C = B; break;
}
|
|
|
_Bằng 0 nếu điều kiện sai _Bằng 1 nếu điều kiện đúng _A>B (10>20 là sai) =< switch(0) : ta thực hiện lệnh lần lượt từ trên xuống, bắt đầu từ nhãn case 0 C=A=10 (Sau lệnh này C=10) break gặp lệnh này ta thoát luôn khối switch, không thực hiện các lệnh bên dưới nữa |
Câu 244: Cho một đoạn chưng trình viết bằng ngôn ngữ lập trình C như sau:
int P=10;
switch(P){
case 10: printf("Case 1");
case 20: printf("Case 1");break;
case P: printf("Case 1");break;
}
Hãy chỉ ra lỗi cú pháp của đoạn chương trình trên (nếu có)?
a. Không có lệnh break cuối mỗi nhãn caseb. Không có nhãn defaultc. Nhãn case P sử dụng giá trị không phải là hằng sốd. Đoạn chương trình trên không có lỗi cú pháp
int P=10;
switch(P){
case 10: printf("Case 1");
case 20: printf("Case 1");break;
case P: printf("Case 1");break;
}
Hãy chỉ ra lỗi cú pháp của đoạn chương trình trên (nếu có)?
|
|
|
|
Câu 245: Cho đoạn chương trình sau, hỏi kết quả hiển thị ra màn hình là như thế nào?
int a=10;
a=a/2;
switch(a){
case 3: a+=2;
case 4: a++;break;
default: a--;
}
printf("%d",a);
a. 5b. 4c. 6d. 7
int a=10;
a=a/2;
switch(a){
case 3: a+=2;
case 4: a++;break;
default: a--;
}
printf("%d",a);
|
a=a/2=5 (Kết thúc lệnh này a=5) => switch(5) : Vì nhãn case 5 không có nên ta sẽ thực hiện lệnh lần lượt từ trên xuống, bắt đầu từ nhãn default => a--; giảm a đi 1 đơn vị (Kết thúc lệnh này a=4) printf("%d",a) : in ra màn hình giá trị của a là 4 |
|
|
Câu 246: Trong ngôn ngữ lập trình C, sau khi đoạn chương trình sau được thực hiện thì biến A mang giá trị bao nhiêu?
int i, A=0;
for (i=0; i<10; i+=2) {
A = A+2;
}
a. A = 9b. A = 10c. A = 18d. A = 20
int i, A=0;
for (i=0; i<10; i+=2) {
A = A+2;
}
|
|
|
|
Câu 247: Cho đoạn chương trình sau, tìm giá trị của sum:
int sum, i;
for (i=0; i+1 <= 10; i+=2)
if (i == 0)
sum = i;
else
sum += i;
a. 12b. 20c. 30d. Lỗi cú pháp vì vòng lặp for thiếu dấu ngoặc
int sum, i;
for (i=0; i+1 <= 10; i+=2)
if (i == 0)
sum = i;
else
sum += i;
|
|
|
|
Câu 248: Cho biết giá trị của biến S sau khi thực hiện đoạn chương trình sau:
int i, S;
for (i=1; i<10; i++) S+=i;
a. 0b. 45c. 55d. Không xác định
int i, S;
for (i=1; i<10; i++) S+=i;
|
|
|
|
Câu 249: Cho biết kết quả hiển thị trên màn hinh?
int a;
for (a=65; a<69; a++)
printf("%c ",a);
a. 65 66 67 68b. A B C Dc. a a a ad. a b c d
int a;
for (a=65; a<69; a++)
printf("%c ",a);
|
có giá trị bằng a trong bảng mã ASC II: a=65='A' in ra A a=66='B' in ra B a=67='C' in ra C a=68='D' in ra D a=69 (thoát) Vậy kết thúc chương trình màn hình hiển thị A B C D (sau %c có dấu cách nên A, B, C, D được in ra cách nhau như trên chứ không liền sát nhau) |
|
|
MỤC LỤC
Có thể bạn quan tâm