Đề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