Câu hỏi: PRF192 Cơ sở lập trình – Bộ ôn tập số 4
50 câu trắc nghiệm kèm lời giải của môn PRF192 - Cơ sở lập trình, xếp đúng thứ tự trong đề. Trang 3/3 — câu 41–50.
Danh sách câu hỏi
void main(){
int x = 4;
int *p = &x;
int *k = p++;
int r = p - k;
printf("%d", r);
}#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp = fopen("data.txt", "r");
char buffer[100];
int number;
if (fp != NULL) {
fgets(buffer, sizeof(buffer), fp);
fscanf(fp, "%d", &number);
fclose(fp);
}
return 0;
}What will be stored in the variables after execution?
char str1[] = "Hello";
char str2[10];
strcpy(str2, str1);int a = 5, b = 7;
int *pa = &a, *pb = &b;
*pa = *pa + *pb;Đáp án đúng: "Throughout the entire program". Biến khai báo ngoài mọi hàm có phạm vi tệp và thời gian sống tĩnh: nó được cấp chỗ một lần khi chương trình nạp và tồn tại tới lúc kết thúc, nên mọi hàm viết sau khai báo đều thấy nó, và tệp nguồn khác cũng dùng được qua khai báo extern; đó chính là nghĩa của cả chương trình. Mô tả "Only within the function where it's declared" ứng với biến cục bộ, thứ sinh ra trên khung ngăn xếp mỗi lần gọi hàm rồi mất đi khi hàm trả về. Mô tả "Only within the block where it's declared" là phạm vi khối, áp cho biến khai báo trong cặp ngoặc nhọn của thân vòng lặp hay nhánh rẽ. Mô tả "Within the structure where it's defined" nhầm biến với trường của struct; trường chỉ là thành phần của một kiểu, chạm tới qua tên biến struct chứ không phải một biến toàn cục.