Đềthi trắc nghiệm Môn: Tin học 2 Họ tên SV: Thời gian: 65phút Mã số SV: Đề số 1 Nhóm/Lớp: Bảng trả lời câu hỏi: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a b c d 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 a X b X c d Chú ý: * Thí sinh đánh dấu chéo (X) vào ô cần chọn (ví dụ ở câu 31 ta chọn a) * Nếu chọn sai thì thí sinh tô đen ô chọn trước đó rồi chọn câu khác (ví dụ như câu 32) * Chỉ những câu có trả lời trong bảng trả lời câu hỏi mới được chấm điểm * Thí sinh được phép sử dụng tài liệu Câu 1: Cho đoạn chương trình: int a,b=4; switch(a=2,++b) { case 5: b+=2; default : a += b ; case 2: a ; } printf("%d %d",a, b); Kết quả khi chạy đoạn chương trình là: a. Báo lỗi b. 1 4 c. 2 7 d. 8 5 Câu 2: Cho đoạn chương trình int a,b=4; switch(a=2,++b) { case 5: b*=2; default : a == b ; break; case 2: a ; } printf("%d %d",a, b); Kết quả khi chạy đoạn chương trình là: a. Báo lỗi b. Không xác đònh c. 10 9 d. 2 8 Câu 3: Cho khai báo: int a =17, b=3; double c; Các lệnh nào sau đây cho kết quả không chính xác a. c = double(a/b) b. c = double(a)/b c. c = (double)a/b d. c = a/b; Câu 4: Các khởi tạo nào dưới đây sai a. int a[5] = {1,2,3},*p =a; b. enum mau {trang, xanh, do}; c. char *p = “1234”, **p1 =&p; d. int i; char *p =&i; Câu 5: Cho đoạn chương trình: int a=2,b=4; if ((a++==3)&&(++b)) a+=3; b+=a; printf("%d %d",a,b); Kết quả khi chay chương trình trên là: a. 3 4 b. 3 5 c. 3 7 d. 6 11 1 2 Câu 6: Cho đoạn chương trình: int a=2,b=4; if ((a++==3)&&(++b)) ; { a+=3; b+=a; } printf("%d %d",a,b); Kết quả khi chay chương trình trên là: a. Sai syntax b. 3 4 c. 6 10 d. 6 11 Đoạn chương trình dùng cho câu 7 và 8 struct thu { int x,y; char *c1,c2; }a,*pa; char x1 ; void main() { int x=-3,y=2; pa=&a; pa->x +=y++; pa->y +=++x; printf("%d %d",a.x,a.y); getch(); } Câu 7 : Kết quả chạy chương trình trên là : a. Không xác đònh b. 2 -3 c. -3 2 d. 2 -2 Câu 8 : Các lệnh nào sau đây sai : a. *pa.x = a.y; b. a.c1 = &x1; c. *a.c1 = (char)pa->x; d. *pa->c1 = &x1; Câu 9 :Cho đoạn chương trình: int x =4161; char *c; c =(char*)&x; printf("%d %d",*c, *(c+1)); Kết quả chạy chương trình trên là : a. 61 41 b. 97 65 c. 65 97 d. 65 16 Câu 10 : Cho đoạn chương trình: int x =0x4161; char *c; c =(char*)&x; *c++; printf("%d %c",*c, x); Kết quả chạy chương trình trên là : a. Sai syntax b. 98 b c. 65 a d. 98 16737 Cho đoạn chương trình dùng cho câu 11,12 : #include<stdio.h> union test { char c; short x; }value ; void main() { value.x = 1322; value.c = 65; printf(" %d %d",cau1.c,cau1.x); } Câu 11 : Kết quả chạy chương trình này là: a. 65 1322 b. 65 1345 c. 22 1322 d. In ra kết quả không xác đònh Câu 12: Nội dung của value chiếm: a. 1 byte b. 2 byte c. 3 byte d. 4 byte Câu 13:Cho đoạn chương trình union { char c; int x; }value ; int x; void main() { for(; x<4;x++) cau1.x += 100*x +x; printf(" %d %d",cau1.c,cau1.x); } Kết quả chạy chương trình: a. Sai syntax b. In trò không xác đònh c. 606 606 d. 94 606 Câu 14 : Cho chương trình: 3 #include<stdio.h> #include<string.h> char s1[20] = "The end of test "; char *s2 = "Computing "; void main() { strcpy(s1,s2); s1[strlen(s1)] = ' '; printf("%s", s1); } Kết quả chương trình trên là: a. Computing test b. Computing c. The end of test d. Sai syntax Câu 15: int a=4,b=3; b += a*b++ + ++b^b*4 + a++; a += (a>b)? a+=++a*3:a+= a*7; printf("%d %d",a,b); Kết quả chạy chương trình trên là: a. 44 35 b. 48 35 c. 32 3 d. Cả ba đều sai Đoạn chương trình sau dùng cho câu 16,17,18 int sum(int *x) { static j=0; *x+=j; j+=*x; return(j); } void main() { int a[]={1,4,6,8,9}; int *p ; int t1=0,t2=0; int i; p = a; for (i=1; i<5; i*=2) t1+= p[i]; for(i=0; i<=3; i++) t2 += sum(&a[i]); for(i=0; i<4; i++) printf ("%d ",a[i]); } Câu 16: Giá trò t1 sau khi chạy chương trình là: a. 19 b. 16 c. 11 d. 27 Câu 17: Giá trò t2 sau khi chạy chương trình là: a. 11 b. 69 c. 0 d. 19 Câu 18: Xuất sau khi chạy chương trình là: a. 1 5 12 12 b. 1 4 6 8 c. 1 5 12 26 d. 1 4 6 6 Câu 19. Cho đoạn chương trình sau: int i=4,j=1; if (i<j++) ; else if (i+j <4) i += 2; else ; i+=2; Trò của i và j tương ứng là: a. Sai syntax b. 6 1 c. 6 3 d. 6 2 Đoạn chương trình sau dùng cho các câu 20,21,22,23,24,25: #include <stdio.h> double a,b; void f1(int a); int f2 (int a); void f1(int a) { int s=0, i=1; if (!i<=a) s -= 3; else s += 1; printf("%d",s+i); } int f2 (int a) { int i=1; for (;a%=i++;); printf ("%d", a); if (i==a) return a; else return a/i; } Câu 20) Khi gọi hàm f1(1) a. In ra 1 b. In ra 2 c. In ra -2 d. In ra 12 Câu 21) Khi gọi hàm f2 (2): a. In ra 0 b. In ra 1 c. Không in ra gì cả d. Cả 3 câu trên đều sai Câu 22) Khi gọi hàm f1(f2(2)) a. In ra 12 b. In ra 02 c. In ra 0-2 d. In ra 0-3 Câu 23) Khi gọi hàm f2 ((int) f1(1)) a. In ra 13 4 b. In ra 31 c. In ra 21 d. Cả 3 câu trên đều sai Câu 24) Khi gọi hàm f1(f2(0)+a=1) a. In ra 12 b. In ra 02 c. In ra 0-2 d. Chương trình sai cú pháp Câu 25) Hãy chọn phát biểu đúng: a. a=b+f1(a); b. f1(a) += f2(2); c. f1 (f2(b) + (double) 1); d. f2 ((int) f1(b)); Câu 26) Đoạn chương trình sau: int x=2,y=1; do { x++; if (x==5) break; y -= x; } while (x < 5); printf ("%d %d",x,y); Giá trò in ra từ đoạn chương trình trên là: a. 5 5 b. -6 5 c. 6 -5 d. 5 -6 Câu 27) Cho khai báo biến sau: int a, *p1; double **p2; char c, *pc; Hãy chọn phát biểu đúng: a. a=(int) (&p1–(int **)p2); b. p2=(double *) p1+ (int *)a; c. p1 = (double *) p2 – a =1; d. pc= &a + &c; Câu 28) Cho chương trình sau #include <stdio.h> int doi (char *a); main() { int x=0x0102; char y; y = *((char *)&x + 1); doi(&y); printf("%d",y); doi(&y); printf("%d",y); } int doi(char *a) { static tam; *a+= tam =1; return tam; } Kết quả là: a. Chương trình in ra 33 b. Chương trình sai cú pháp c. Chương trình in ra 23 d. Chương trình in ra 22 Cho chương trình sau (dùng cho các câu 29,30) #include<stdio.h> int ham1(int a, int b); void ham2(int *a, int *b); main() { int a=1, b; b=ham1(a,b=2); printf("%d %d", a,b); ham2(&a,&b); } int ham1(int a, int b) { a+=b++; return a; } void ham2(int *a, int *b) { if(*a>*b) *a+= ham1(2,*b); else *a-=2; printf("%d %d", *a, *b); return; } Câu 29) Hàm printf trong hàm main() in ra: a. 2 3 b. 3 1 c. 1 3 d. Cả 3 câu trên đều sai Câu 30) Hàm printf trong hàm ham2 in ra: a. 3 1 b. -1 3 c. 1 3 d. Cả 3 câu trên đều sai . Đ thi trắc nghiệm Môn: Tin học 2 Họ tên SV: Thời gian: 65phút Mã số SV: Đề số 1 Nhóm/Lớp: Bảng trả lời câu hỏi: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a b c d 17 18 19 20 21 . câu hỏi: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a b c d 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 a X b X c d Chú ý: * Thí sinh đánh dấu chéo (X) vào ô cần chọn (ví dụ ở. else if (i+j <4) i += 2; else ; i+ =2; Trò của i và j tương ứng là: a. Sai syntax b. 6 1 c. 6 3 d. 6 2 Đoạn chương trình sau dùng cho các câu 20 ,21 ,22 ,23 ,24 ,25 : #include <stdio.h>