Câu hỏi: PRF192 Cơ sở lập trình – Bộ ôn tập số 1
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 2/3 — câu 21–40.
Danh sách câu hỏi
#include <stdio.h>
int main()
{
int i,j,result=0;
for(i=3;i<=5;i++){
for(j=5;j>i;j--)
result+=j;
}
printf("%d",result);
return 0;
}Đáp án đúng: "14". Vòng trong for(j=5;j>i;j--) không có ngoặc nhọn nên thân nó chỉ gồm đúng một lệnh result+=j; phạm vi khối trong C do ngoặc nhọn quyết định, không do thụt lề. Lần theo từng lượt: i bằng 3 thì j nhận 5 rồi 4, cộng được 9; i bằng 4 thì j chỉ nhận 5, result thành 14; i bằng 5 thì j khởi tạo bằng 5 không thoả j>i nên vòng trong không chạy lần nào. Chương trình in 14. Cần công bố khuyết điểm: bản khoá in kèm ghi 16, con số đó không khớp với bất kỳ lần lần theo trung thực nào của hai vòng lặp. "15" là tổng 5+4+3+2+1, chỉ ra được nếu bỏ ràng buộc j>i và cho j chạy tới 1. "16" lớn hơn tổng thật 2 đơn vị mà không lượt lặp nào cộng thêm 2. "20" đòi cộng cả những giá trị j mà điều kiện j>i đã chặn.
#include<stdio.h>
int main()
{
char i, j;
for (i = 'A'; i <= 'E'; i++)
{
for (j = 'A'; j <= i; j++)
{
printf("%c", i);
}
printf("\n");
}
return 0;
}double a = -7.5, b = 7.5;
printf( "%.0f : %.0f\n", ceil( a ), ceil( b ) );
printf( "%.0f : %.0f\n", floor( a ), floor( b ) );Đáp án đúng: "double average( double, double);". Trung bình của hai số thực nói chung vẫn là số thực, chẳng hạn trung bình của 1.0 và 2.0 là 1.5, nên kiểu trả về phải giữ được phần thập phân; double là kiểu thực chuẩn của C và cùng kiểu với hai tham số nên không mất mát khi tính. "int average( double, double);" sai vì kiểu nguyên cắt bỏ phần thập phân lúc trả về, 1.5 thành 1. "char average( double, double);" sai vì char chỉ một byte, dành cho ký tự hoặc số nguyên rất nhỏ, không chứa nổi một giá trị thực. "void average( double, double); " sai vì void nghĩa là không trả về gì, hàm sẽ không có cách nào đưa kết quả ra ngoài bằng lệnh return.
#include <stdio.h>
void main()
{
int *ptr, a = 10;
ptr = &a;
*ptr += 1;
printf("%d,%d\n", *ptr, a);
}#include <stdio.h>
int num(int a, int b){
int sum;
sum = a + b;
return sum;
}
int main()
{
int a, b, result;
a = 10;
b= 12;
result = num(a, b);
printf("%d", result);
return 0;
}doublefloatintlongrandom()rand()generate_random()getrand()#include <stdio.h>
#include <conio.h>
int main() {
int n = 267, *pn = &n;
char* pc = pn;
*pc = 0;
printf("n = %d", n);
return 0;
}int func(int* a, int n){
int S = 0;
for(int i = 0; i < n; i++) {
S = S + (a[i] % 2)*a[i];
}
return S;
}What does the above code snippet do?
#include <stdio.h>
int main()
{
int a,b,c;
a = b = c = 10;
c = a++ || ++b && ++c;
printf("%d %d %d",c, a, b);
return 0;
}int arr[5] = { 2, 3, 5, 4, 7 };
int *ptr = (&arr + 1);
printf("%d %d\n", *(arr + 1), *(ptr - 1));int main()
{
int i = 101;
int *p = &i;
printf("%d\n", *p++);
return 0;
}