What is the result displayed on the screen of the following program?
4 phương ánCó giải thích
#include<stdio.h>
#include<ctype.h>
int main()
{
char a[] = "hello world";
int i = 0;
while (!isspace(a[i]))
i++;
printf("%d, %c", i, a[i-1]);
return 0;
}Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "5, o". Mảng a chứa chuỗi hello world, chỉ số đếm từ 0 nên a[0] là h cho tới a[4] là o, còn a[5] là dấu cách. Vòng while còn chạy khi isspace(a[i]) trả về 0, nghĩa là còn ký tự thường thì i cứ tăng: i lần lượt qua 0, 1, 2, 3, 4 rồi thành 5; tại i bằng 5 hàm isspace gặp dấu cách nên trả về giá trị khác 0, phép phủ định cho sai và vòng lặp dừng với i bằng 5. Lệnh in xuất ra i là 5 rồi tới a[i-1] tức a[4] là o. Kết quả "0, h" chỉ xảy ra nếu ký tự đầu tiên đã là khoảng trắng, mà khi đó a[i-1] còn đọc ra ngoài mảng. Kết quả "5," ứng với việc in a[5] là dấu cách, nhưng mã in a[i-1] chứ không phải a[i]. Kết quả "5, w" ứng với a[6], ký tự ngay sau dấu cách, lệch một vị trí so với chỗ mà lệnh in thật sự lấy.
Cùng phần 8
Which statements are correct when copying string s1 into s2 manually?(Choose 2 correct answers)Có lời giảiCâu hỏiWhich condition increases the word count in a sentence?
#include <stdio.h>
#include <string.h>
int main() {
char s[1000];
int i, count = 0;
printf("Enter a sentence: ");
fgets(s, sizeof(s), stdin);
for (i = 0; s[i] != '\0'; i++) {
if (condition???) {
count++;
}
}
printf("Total words: %d\n", count);
return 0;
}Có lời giảiCâu hỏiHow can you initialize a character array in C?Có lời giảiCâu hỏiCả 29 câu của chủ đề29 câu
Xuất hiện trong 2 bộ đề
Đi tiếp từ đây