What is the result displayed on the screen of the following program?
4 phương ánCó giải thích
#include <stdio.h>
void swap(int *px, int *py)
{
int z;
z=*px;
*px=*py ;
*py=z ;
}
int main()
{
int a=15, b=21 ;
swap(&a,&b);
printf ("%d %d",a,b);
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: "21 15". Hàm main truyền địa chỉ của a và địa chỉ của b, nên hai tham số con trỏ trỏ thẳng vào hai biến của main. Thân hàm giữ nội dung ô thứ nhất vào biến tạm, ghi nội dung ô thứ hai sang ô thứ nhất, rồi ghi biến tạm sang ô thứ hai; mọi phép ghi đều đi qua dấu sao nên tác động lên chính a và b chứ không lên bản sao. Sau lời gọi, a mang 21 và b mang 15. Lựa chọn "15 21" là trạng thái ban đầu, chỉ đúng nếu hàm nhận hai int theo giá trị và đổi chỗ trên bản sao. Lựa chọn "Error while executing the program" sai vì địa chỉ của hai biến đang sống trong main là hợp lệ, việc ghi vào đó không gây sự cố nào. Lựa chọn "None of these" không dùng được vì đã có một lựa chọn khớp đúng kết quả thật của chương trình.
Cùng phần 5
What will be the output of the following C code?
#include <stdio.h>
void main()
{
int *ptr, a = 10;
ptr = &a;
*ptr += 1;
printf("%d,%d\n", *ptr, a);
}Có lời giảiCâu hỏi(Choose 1 answer)
What is the output of this C code?
#include <stdio.h>
#include <conio.h>
int main() {
int n = 267, *pn = &n;
char* pc = pn;
*pc = 0;
printf("n = %d", n);
return 0;
}Có lời giảiCâu hỏiWhat will be the output of the C program?
int arr[5] = { 2, 3, 5, 4, 7 };
int *ptr = (&arr + 1);
printf("%d %d\n", *(arr + 1), *(ptr - 1));Có lời giảiCâu hỏiCả 41 câu của chủ đề41 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây