Tải bản đầy đủ (.docx) (27 trang)

Đề thi lập trình code CC++ các trường Đại học , Cao đẳng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (282.89 KB, 27 trang )

Trường Công nghệ Thông tin Thành phố Hồ Chí Minh chi nhánh Hà Nội:
Câu 1:
giải và biện luận phương trình bậc 2 (tính cả trường hợp suy biến).
Bài giải:
C Code:
1.

#include<stdio.h>

2.

#include<conio.h>

3.

#include<stdlib.h>

4.

#include<math.h>

5.
6.

int gptb2(float a, float b, float c, float* x1, float* x2)

7.

{

8.



float del;

9.

del = b*b - (4*a*c);

10.

if(del < 0) return -1;

11.

else

12.

{
*x1 = (-b - sqrt(del))/ (2*a);

13.
14.

*x2 = (-b + sqrt(del))/ (2*a);

15.

}

16.


return 1;

17. }
18. int main()
19. {
20.

clrscr();

21.

float a, b, c, x1, x2;
printf("\nNhap a, b, c:");

22.
23.
24.
25.

scanf("%f%f%f", &a,&b,&c);
fflush(stdin);
if(a

26.

else

27.


{

==

28.

0)printf("X = %.2f", -c/b);

29.

if(gptb2(a,b,c,&x1,&x2) == -1)
printf("\nphuong trinh vo nghiem");

30.

else

31.

{
printf("\nx1 = %.2f", x1);

32.
33.

printf("\nx2 = %.2f", x2);

34.

}


35.

}

36.

getch();

37.

return 0;

38. }


Câu 2:
viết chương trình cho phép nhập n từ bàn phím (nếu n <= 0 thì bắt nhập lại) . Tính tổng s =
1^2 + 2^2+.... + n^2.
Bài giải:
C Code:
1.

#include<stdio.h>

2.

#include<conio.h>

3.

4.

int main()

5.

{

6.

clrscr();

7.

int n;

8.

long tong;

9.

int i;

10.

do

11.


{
printf("\n Nhap n: ");

12.
13.

scanf("%d", &n);

14.

}while(n <= 0);

15.
16.

tong = 0;

17.

18.

for(i = 1; i <= n; i++) tong += i*i;
printf("\n S = %ld", tong);

19.

getch();

20.


return 0;

21. }

Câu 3:
Nhập chuỗi s từ bàn phím. Kiểm tra tính đối xứng (nếu có đếm số ký tự giống nhau).
Bài giải:
C Code:
1.

#include<stdio.h>

2.

#include<conio.h>

3.

#include<string.h>

4.
5.

int main()

6.

{

7.


clrscr();

8.

int i, j, dem = 0;

9.

char s[100];
printf("\n Nhap chuoi:

10.

");


11.
12.

gets(s);

13.

{

for(i=0,j=strlen(s)-1; i
14.


if(s[i]!=s[j])

15.

{

16.

printf("\n khong doi xung");

17.

getch();

18.

return 0;

19.

}

20.

else

21.

{


22.

dem++;

23.

}

24.

}
printf("\n co doi xung");

25.
26.

printf("\n So chhu giong nhau trong chuoi: %d", dem);

27.

getch();

28.

return 0;

29. }

Trường đại học Bách Khoa Đà Nẵng:
Bài 1: Tính tổng S=1+2+3+….+n

C Code:
1.

#include<stdio.h>

2.

#include<conio.h>

3.
4.

int main()

5.

{

6.

clrscr();

7.

int n;

8.

long tong;


9.

int i;

10.

do

11.

{

12.
13.
14.

printf("\n Nhap n: ");
scanf("%d", &n);
}while(n <= 0);

15.
16.

tong = 0;

17.

18.

for(i = 1; i <= n; i++) tong += i;

printf("\n S = %ld", tong);

19.

getch();


20.

return 0;

21. }

Bài 2:Viết chương trình nhập vào một số nguyên N có dạng abc rồi xuất ra màn
hình một số đảo ngược có dạng cba
Có thể dùng code này:
C Code:
1.

#include<stdio.h>

2.

#include<conio.h>

3.

#include<string.h>

4.


#include<stdlib.h>

5.

int main ()

6.

{

7.

clrscr ();

8.

char* p;

9.

int i,n;
p = (char*)malloc(128);

10.
11.
12.
13.
14.


printf("\n Nhap xau ki tu :");
gets (p);
n = strlen(p);
printf("\n xau dao: \n");

15.

for( i = n-1; i>=0; i --)
putchar(p[i]);

16.
17.
18.

printf("\n");
free(p);

19.

getch ();

20.

return 0;

21. }

Bài 4: Liệt kê tất cả các số nguyên tố nhỏ hơn 1000
C Code:
1.


#include<stdio.h>

2.

#include<stdlib.h>

3.

#include<conio.h>

4.

#include<math.h>

5.
6.

int ktSNT (const int a)

7.

{

8.

9.

int i = 0;
for(i = 2; i <= (int)sqrt(a); i++)


10.

{


11.

if( a % i == 0 || a < 2 && a != 2)

12.

{

13.

return 0;

14.

}

15.

}

16.

return 1;


17. }
18. int main ()
19. {
20.

int N= 1000,i, k = 0;

21.

int* snt = 0;

22.

23.

snt = (int*)malloc(N*sizeof(int));

24.

k = 0;

25.

for(i = 2; i <= N; i++)

26.

{

27.


if(ktSNT(i) == 1)

28.

{

29.

snt[k] = i;

30.

k++;

31.

}

32.

}

33.

34.

printf("\n

Bang cac so nguyen to\n");


35.

for (i = 0; i < k; i++)

36.

{
printf("%9d", snt[i]);

37.
38.

39.

}
free(snt);

40.

getch();

41.

return 0;

42. }

Bài 5: Nhập vào số nguyên N rồi xuất ra màn hình N số nguyên tố
C Code:

1.

#include<stdio.h>

2.

#include<stdlib.h>

3.

#include<conio.h>

4.

#include<math.h>

5.
6.

int ktSNT (const int a)

7.

{

8.

int i = 0;



9.

for(i = 2; i <= (int)sqrt(a); i++)

10.

{

11.

if( a % i == 0 || a < 2 && a != 2)

12.

{

13.

return 0;

14.

}

15.

}

16.


return 1;

17. }
18. int main ()
19. {
20.

int N,i, k = 0;

21.

int* snt = 0;
printf("\n Nhap vao N:");

22.
23.

scanf("%d", &N);

24.

25.

snt = (int*)malloc(N*sizeof(int));

26.

k = 0;

27.


i = 2;

28.

while(k < N)

29.

{

30.

i++;

31.

if(ktSNT(i) == 1)

32.

{

33.

snt[k] = i;

34.

k++;


35.

}

36.

}

37.

38.

printf("\n

Bang cac so nguyen to\n");

39.

for (i = 0; i < k; i++)

40.

{
printf("%5d", snt[i]);

41.
42.

43.


}
free(snt);

44.

getch();

45.

return 0;

46. }

Bài 11: Nhập mảng 2 chiều có dạng M*N (Hoặc N*N) rồi tính tổng các phần từ.
C Code:
1.

#include <stdio.h>

2.

#include<conio.h>

3.


4.

int dong, cot;


5.

long SUM = 0;

6.

int A[100][100];

7.

void

8.

void INMANG(int A[][100]);

NHAPMANG(int A[][100]);

9.
10. int main()
11. {
12.
13.
14.
15.

NHAPMANG(A);

16.


INMANG(A);

17.

getch();

18.

return 0;

19. }
20. void

INMANG(int A[][100])

21. {
22.

for(int i=0;i
23.

{

24.

for(int j=0;j
25.


{
printf(" %d

26.

",A[i][j]);

27.
28.

}
printf("\n");

29.
30.

31.

}
printf("Tong = %ld",SUM);

32.
33. }
34. void

NHAPMANG(int A[][100])

35. {
36.


do{
printf("Nhap vao so dong cua ma tran: ");scanf("%d",&dong);

37.
38.

printf("\nNhap vao so cot cua

ma tran: ");scanf("%d", &cot);

39.

}while(dong < 2 || cot < 2 || dong > 100 || cot >100);

40.

for(int i=0;i
41.

{

42.

for(int j=0;j
43.

{

printf("\nNhap vao phan tu A[%d][%d]: ",i,j);

44.
45.

scanf("%d",&A[i][j]);

46.

SUM += A[i][j];

47.

}

48.


49.

}

50.
51.
52. }

Đề thi Tin Dai cuong 2010 Đại học Bách Khoa Hà Nội
C Code:
1.


Đề thi Tin Dai cuong 2010 Đại học Bách Khoa Hà Nội

2.
3.

PHẦN I: CÂU HỎI TRẮC NGHIỆM (Trả lời phần trắc nghiệm này vào bảng trên
trang 3)

4.
5.

Câu 1: Chọn khai báo không đúng:

6.

[a] int TienGui(int, int);

7.

[b] float TienGui(SoTien, LaiSuat);

8.

[c] void TienGui( int );

9.

[d] void TienGui(int SoTien, float LaiSuat);

10.


11. Câu 2: Khi dùng hàm fopen thì kiểu nào sau đây làm đối số của hàm này, dùng để
12. mở một tệp để ghi bổ sung theo kiểu văn bản, nếu tệp chưa tồn tại thì tạo tệp
mới ?
13. [a] “at”

[c]

14. [b] “wt”

[d]

“w+t”
“ab”

15.
16. Câu 3: Cho đoạn chương trình sau, tìm giá trị của sum:
17. for (int i = 0; i+1 <= 10 ; i +=2)
18.

if ( i = = 0)

19.

sum = i;

20.

else


21.

sum += i;

22. [a] Các phương án đều sai

[c]

20

23. [b] 12

[d]

30

24.
25. Câu 4: Chọn các thành phần không thuộc về CPU:
26. [a] RAM
27. [b] Thanh ghi

[c]
[d]

Bus bên trong
Control Unit

28.
29. Câu 5: Cho khai báo sau:
30. int B[4] = {1, 2, 3, 4 };

31. Cho biết giá trị của B[4] là:
32. [a] 4

[c]

Không xác định

33. [b] 2

[d]

3

34.
35. Câu 6: Trong Windows Explorer, để chọn tất cả các tệp và thư mục con


36. trong

thư mục đang xét, dùng tổ hợp phím

37. [a] Ctrl + C

[c]

38. [b] Ctrl + X

[d]

Ctrl + V

Ctrl + A

39.
40. Câu 7: Khi x = 10 và y = 11 thì đoạn chương trình:
41. printf("\n%d",x-- * ++y);

42. printf("\n%d",x-- - --y);
43. printf("\n%d",x++ + ++y);
44. sẽ cho kết quả:
45. [a] 110

[c]

120

46. -3

-2

47. 20

21

48. [b] 110

[d]

120

49. -3


-2

50. 21

20

51.
52. Câu 8: Chọn cách khai báo đúng tệp tiêu đề trong lập trình C?
53. [a] # include <tên_tệp_tiêu_đề>
54. [b] include <tên_tệp_tiêu_đề>
55. [c] # include tên_tệp_tiêu_đề
56. [d] # include <tên_tệp_tiêu_đề>;
57.
58. Câu 9: Điền vào chỗ trống để hoàn thiện chương trình sau:
59.

#include<stdio.h>

60. #include<conio.h>
61. void main(){
62.

63.
64.
65.

............// chỗ cần điền
f = fopen("solieu.txt","wt");
fprintf(f, "%2d\n%2d",11,09);

fclose(f);

66. }
67. [a] FILE *f;
68. [b] clrscr();
69. [c] FILEOFTEXT *f;
70. [d] printf("Bat dau chuong trinh\n");
71.
72. Câu 10:

Tìm kí hiệu ghi chú thích trong C?

73. [a] (* dòng chú thích *)
74. [b] // dòng chú thích
75. [c] { dòng chú thích }
76. [d] <-- dòng chú thích -->
77.
78. Câu 11:
79. [a] char
80. [b] 2First

Trong những định danh sau đây, đâu là định danh hợp lệ?
[c]
[d]

int
int2


81.

82. Câu 12:

Cho khai báo

83. struct quoc_gia
84. {

char ten[31];

85.

char thu_do[31];

86.

int dan_so;

87. }dsqg[10];
88. Mảng dsqg chiếm số byte trong bộ nhớ là:
89. [a] 440

[c]

640

90. [b] 460

[d]

660


91.
92. Câu 13:

Chọn chức năng chính của RAM (Random Access Memory)

93. [a] Lưu trữ dữ liệu lâu dài
94. [b] Lưu trữ dữ liệu và chương trình đang thực hiện
95. [c] Lưu trữ các chương trình dùng để khởi động máy tính
96. [d] Tất cả các chức năng nói trên
97.
98.
99.
100.
101. Câu 14:

Cho biết kết quả của đoạn chương trình sau:

102. char c='A';
103. while (c <= 'Z') {
104.

105.

if ( c == 'A' ) continue;
printf("%c", c);

106.

c+=1;


107. }
108. [a] Chương trình bị lặp vô hạn
109. [b] Các phương án đều sai
110. [c] In ra màn hình từ B đến Z
111. [d] In ra màn hình từ A đến Z
112. Câu 15:

Chọn ra số nhỏ nhất trong các

số sau đây:

113. [a] 20110

[c]

110010002

114. [b] 8C16

[d]

678

115.
116. Câu 16:

Lựa chọn nào dưới đây chỉ ra thứ tự tăng của miền giá trị các kiểu

dữ liệu?

117. [a] int, float, double, long
118. [b] int, long, float, double
119. [c] int, float, long, double
120. [d] int, long, double, float
121.
122. Câu 17:

Cho:

123. int a,b;
124. Chỉ ra biểu thức không hợp lệ:


125. [a] a -= b

[c]

126. [b] a - b = 0

a = = b

[d]

a = b

127.

128. Câu 18:
129. [a] 65


Lệnh printf("%c

%c",65,66) sẽ in ra:

66

130. [b] 065

[c]

066

a

[d]

b

A

B

131.
132.
133. Câu 19:

Chỉ ra biểu thức kiểm tra ch là ‘a’ hoặc ‘b’:

134. [a] ch = = ‘a’||’b’
135. [b] (ch = = ‘a’)||(ch = = ‘b’)

136. [c] ch = = ‘a’|’b’
137. [d] (ch = = ‘a’)|(ch = =’b’)
138.
139.
140.
141.
142. Câu 20:

Số thập phân 10.75 được biểu diễn bởi số nhị phân nào dưới đây:

143. [a] 1010.001

[c]

144. [b] 10.010

10.001

[d]

1010.110

145.
146.
147.
148. Câu 21:

Cho đoạn mã sau:

149. int a,b;

150. a = 112;
151. b = 211;
152. printf("\n%d",a>b?a:b);
153. Kết quả thu được là:
154. [a] 112

[c]

155. [b] Báo lỗi

[d]

211
a>b?a:b

156.
157. Câu 22:

Một bộ xử lý có đường bus địa chỉ là 32 bit thì dung lượng bộ nhớ

158. tối đa của bộ nhớ chính là bao nhiêu, biết rằng mỗi ngăn nhớ có kích thước
là 1 byte.
159. [a] 16 GB

[c]

8 GB

160. [b] 32 GB


[d]

4 GB

161.
162. Câu 23:

Tìm kết quả đúng của chương trình

163. #include <stdio.h>
164. #include <conio.h>
165. void main()
166. {

int a, b = 0;

167.

clrscr();

168.

for(a = 1; a < 10; a++)


169.

{

if(a%2 == 0)


170.

continue;

171.

b = b + a;
printf("%5d",b);

172.
173.

}

174.

getch();

175.

}

176. [a] 1

4

9

16


25

177. [b] 2

6

10

16

24

178. [c] 1

4

10

16

179. [d] 1

6

10

16

24

25

180.
181. Câu 24:

Trong các biểu thức so sánh ký tự dưới đây, biểu thức nào đúng,

182. biết bảng mã được sử dụng là bảng mã ASCII
183. [a] ‘b’ < ‘Z’

[c]

184. [b] ‘a’ > ‘A’

[d]

‘9’ > ‘A’
’4’ > ’5’

185.
186. Câu 25:

Mảng a có kiểu float. Phát biểu nào sau đây đúng nhất?

187. [a] a tương đương với &a[0]
188. [b] a + i tương đương với &a[i]
189. [c] *(a + i) tương đương với a[i]
190. [d] Cả

a, b, c đều đúng


191.
192.
193.
194.
195. PHẦN BÀI LÀM CỦA SINH VIÊN
196. PHẦN I: TRẢ LỜI TRẮC NGHIỆM
197. Sinh viên trả lời 25 câu trắc nghiệm trên bằng cách đánh dấu nhân (X)
198. vào ô tương ứng với lựa chọn trong bảng sau: (Lưu ý: chỉ có một phương án
199. chọn là đúng cho mỗi câu trắc nghiệm)
200.
201.
202. Câu

[a] [b] [c] [d]

Câu

203. 1

14

204. 2

15

205. 3

16


206. 4

17

207. 5

18

208. 6

19

209. 7

20

210. 8

21

211. 9

22

212. 10

23

213. 11


24

[a] [b] [c] [d]


214. 12

25

215. 13
216.
217.
218. PHẦN II: TỰ LUẬN
219. Thông tin về một cán bộ gồm: họ tên (không quá 25 ký tự), lương (là số thực).
220. Viết một chương trình nhập vào thông tin của một phòng gồm 15 cán bộ, sau đó
221. tìm và hiển thị ra màn hình họ tên những cán bộ có lương thấp nhất phòng, mỗi
họ tên trên 1 dòng.
222. Gợi ý: khai báo cấu trúc và dùng mảng cấu trúc.
223.
224. Sinh viên viết phần tự luận (lập trình) ở đây cho đến hết trang thứ 4.

bài 9: nhập mảng 2 chiều rồi in ra các số chính phương
PHP Code:
#include<iostream>
#include<math.h>
using namespace std;
//---------------------------------------------------------------------------------------------// ham nhap mang
//--------------------------------------------------------------------------------------------void input_arg( int a[][20], int n , int m){

}


for ( int i = 0 ; i < n ; i++ )
for ( int j = 0 ; j < m ; j++ ){
cout<< " a [ " << i << " ] [ " << j << " ] = " ;
cin>>a[i][j];

}
//---------------------------------------------------------------------------------// ham kiem tra so chinh phuong
//----------------------------------------------------------------------------------int kiemtra( int x ){
if ( x==1) return 0;
if ( sqrt (x) ==int(sqrt(x))) return 1;
return 0;
}
//-------------------------------------------------------------------------------------// ham main
//-------------------------------------------------------------------------------------int main(){
int a[20][20], n ,m;
cout<<" nhap so hang n = ";


cin>>n;
cout<<" nhap so cot m = ";
cin>>m;
input_arg(a,n,m);
cout<<" cac so chinh phuong cua mang
for ( int i = 0 ; i < n ; i++)
for ( int j = 0 ; j < m ; j++){

la : \n";

if ( kiemtra( a[i][j]) == 1){

cout << a [i][j] << " " ;
}
}

system ("pause");
return 0;

}
Đề thi của Đại học công nghệ - ĐHQG
Bài 1: sử dụng khuôn hình hàm tìm giá trị lớn nhất của 1 mảng;
Bài 2: nhập dữ liệu và các phương thúc của số phức , nhap , in, tính modull và sử dụng toán
tử operator < để so sánh số phức;
ham main; nhập 1 dãy số phức sau đó in ra số phức nhỏ nhất
code của bài 1
C++ Code:
Select All | Show/Hide
1.

#include<iostream>

2.

using namespace std;

3.

//
---------------------------------------------------------------------------------------

4.


// xay dung khuon hinh ham tim gia tri lon nhat cau mang

5.

//----------------------------------------------------------------------------------------

6.

template <typename T >

T GTLN( T a[], int n){

7.
8.

int imax =0 ; // gan vi tri imax = 0;

9.

for (

10.

int i = 0 ; i < n ; i++){
if ( a[imax] < a [i] ){

11.

imax = i;


12.

}

13.

}

14.

return a[imax];

15. }
16. //
-------------------------------------------------------------------------------------17. // xay dung ham main


18. //----------------------------------------------------------------------------------19.
20. int main(){
21.
22.

int n, i;
cout<<" nhap so luong cua phan tu cua mang

23.
24.

n = ";


cin>>n;

25.

int *a = new int [n]; // cap phat dong mang a

26.

// nhap mang a

27.

for ( i = 0 ; i < n ; i++){

28.
cout<< " a [ " << i << " ] = ";

29.
30.

cin>>a[i];

31.

}

32.

// xuat mang a


33.

34.

cout<<"\n Mang vua nhap la : \n";

35.

for ( i = 0 ; i < n ; i++){

36.
cout<< a[i] <<

37.
38.

"

" ;

}
cout<<" \ngia tri lon nhat cua mang a la :

39.

" << GTLN( a,n) << endl;
40.

// giai phong mang a


41.

delete []a;

42.

system (" pause");

43.

return 0;

44. }

code bài 2
C++ Code:

Select All | Show/Hide

1.

#include<iostream>

2.

#include<math.h>

3.


using namespace std;

4.

//----------------------------------------------------------------------------------

5.
6.

// xay dung lop so phuc
//------------------------------------------------------------------------------------

7.
8.

class sophuc {


9.

private :

10.

int thuc;

11.

int ao;


12.

public

13.

:

sophuc(){

14.

thuc = ao =0;

15.

}

16.

void input();

17.

void output();

18.

// tinh modull cua so phuc


19.

float modull(){

20.
21.

return sqrt( pow ( thuc, 2) + pow (ao, 2));

22.

}

23.

// toan tu so sanh

24.

int operator < ( sophuc );

25. };
26. //---------------------------------------------------------------------------------27. // ham nhap
28. //------------------------------------------------------------------------------------29. void sophuc::input(){
30.
cout<< " nhap phan thuc = " ;

31.
32.
33.

34.

cin>>thuc;
cout<<" nhap phan ao = ";
cin>>ao;

35. }
36. //-------------------------------------------------------------------------------------37. // ham in so phuc
38. //-----------------------------------------------------------------------------------39. void sophuc::output(){
40.
if ( ao < 0 ) cout<< thuc << " - " << ao << " i " << endl;

41.
42.

else

cout<< thuc << " + " << ao << " i " << endl;

43.
44. }
45. //------------------------------------------------------------------------------------46.

// ham so sanh toan tu operator

47.

//---------------------------------------------------------------------------------



48.

int sophuc::operator <( sophuc x){

49.

return

( modull() < x.modull() );

50.
51.
52.
53.
54. }
55. //-----------------------------------------------------------------------------------------56. // ham main
57. //----------------------------------------------------------------------------------------58. int main(){
59.
60.

int i,n, imin=0;

61.

sophuc *a= new sophuc [n];
cout<<" nhap so phan tu cua mang n = ";

62.
63.


cin>>n;

64.

// nhap mang so phuc

65.

for ( i = 0 ; i < n ; i++ ){
cout<<" nhap so phuc thu " << i +1 << endl;

66.
67.

a[i].input();

68.
69.

}

70.

// ham so sanh
for ( i = 0 ; i < n ; i++ ){

71.

if ( a[i] < a[imin]){


72.

imin= i;

73.

}

74. }

75.

cout<<" so phuc nho nhat cua mang la : " ;

76.

a[imin].output();

77.

system ("pause");

78.

return 0;

79. }

Đại học Bách Khoa Đà Nẵng
câu 7: Viết chương trình liệt kê tất cả các số N có 3 chữ số bằng tổng lập phương

các chữ số của nó. VD: N=abc=a3+b3+c3
C Code:
Select All | Show/Hide
1.

#include<stdio.h>

2.

#include<conio.h>


3.
4.

int main()

5.

{

6.

clrscr();

7.

int a, b, c, t, i,j = 0;

8.


int d[5];

9.

for(i = 100; i < 999; i++)

10.

{

11.

a = i/100;

12.

b = (i - a*100)/10;

13.

c = (i - a*100 - b*10);

14.

if(a*a*a + b*b*b + c*c*c == i)

15.

{


16.

d[j] = i;

17.

j++;

18.

}

19.

}
printf("\nBang Cac So ");

20.
21.

for(i = 0; i < j; i++) printf("\n %d", d[i]);

22.

getch();

23.

return 0;


24. }

Đại Học Đà Lạt
Bai 4:
- Các số 0 đầu mảng
- Các số âm ở giữa mảng và có thứ tự giảm.
- Các số dương cuối mảng và có thứ tự tăng.:
C Code:
1.

#include <stdio.h>

2.

#include <conio.h>

3.

#include <math.h>

4.
5.

void main()

6.

{


7.

int a[100], b[100];

8.

int i , n, j, c1, c2;

9.

int temp;

10.

11.
12.

printf("Nhap so phan tu n=");
scanf("%d",&n);

13.
14.

c1 = 0; c2 = 0;

15.

for (i=0; i < n; i++)

16.


{

Select All | Show/Hide


17.
18.

printf("\nNhap A[%d]: ", i);

19.

if(temp > 0)

20.

{

scanf("%d", &temp);

21.

b[c2] = temp;

22.

c2++;

23.


}

24.

else

25.

{

26.

a[c1] = temp;

27.

c1++;

28.
29.

}
}

30.
31.

for (i = 0; i < c2 - 1; i++)


32.

for (j = i + 1; j < c2; j++)

33.

{

34.

if(b[i] > b[j])

35.

{

36.

temp = b[i];

37.

b[i] = b[j];

38.

b[j] = temp;

39.
40.


}
}

41.
42.

for (i = 0; i < c1 - 1; i++)

43.

for (j = i + 1; j < c1; j++)

44.

{

45.

if(a[i] < a[j])

46.

{

47.

temp = a[i];

48.


a[i] = a[j];

49.

a[j] = temp;

50.
51.

}
}

52.
53.

for (j=0; j < c1; j++)

54.

{
printf("\n %d ", a[j]);

55.
56.

}

57.
58.


for (j=0; j < c2; j++)

59.

{
printf("\n %d ", b[j]);

60.
61.

}


62.
63.

getch();

64.

clrscr();

65. }

Đề thi Tin Dai cuong 2010 Đại học Bách Khoa Hà Nội
Tự Luận:
Thông tin về một cán bộ gồm: họ tên (không quá 25 ký tự), lương (là số thực).
Viết một chương trình nhập vào thông tin của một phòng gồm 15 cán bộ, sau đó
tìm và hiển thị ra màn hình họ tên những cán bộ có lương thấp nhất phòng, mỗi họ tên trên

1 dòng.
Gợi ý: khai báo cấu trúc và dùng mảng cấu trúc.
Bài Giải:
C Code:
Select All | Show/Hide
1.

#include<stdio.h>

2.

#include<conio.h>

3.

#include<string.h>

4.
5.

typedef struct CanBo

6.

{

7.

char HoTen[26];


8.

float luong;

9.

}tt;

10. void nhap(tt ds[])
11. {
12.

char hoten[26];

13.

float t;

14.

int i = 0;

15.

do

16.

{


17.
18.
19.
20.
21.

printf("\nCan bo thu %d",i + 1);

22.

23.

ds[i].luong = t;
fflush(stdin);

24.

i++;

25.

printf("\nNhap ho ten: ");
gets(ds[i].HoTen);
fflush(stdin);
printf("\n Nhap Luong: ");scanf("%f",&t);

}while(i < 15);

26. }
27.

28. void xuat(tt ds[])
29. {

30.

printf("\n Danh sach Can Bo ");


31.

for(int i = 0; i < 15; i++)
printf("\n%30s%9.2f ",ds[i].HoTen,ds[i].luong);

32.
33. }
34.

35. void sxep(tt ds[])
36. {
37.

tt tg;

38.

for(int i = 0; i < 15 - 1; i++)

39.

for(int j= i+1; j < 15; j++)


40.

if(ds[i].luong > ds[j].luong)

41.

{

42.

tg=ds[i];

43.

ds[i]=ds[j];

44.

ds[j]=tg;

45.

}

46. }
47.
48. int main()
49. {
50.


clrscr();

51.

tt ds[15];

52.

nhap(ds);

53.

sxep(ds);

54.

xuat(ds);

55.

getch();

56.

return 0;

57. }

Học viên bưu chính viễn thông ( cơ sở 2 )

Đề bài : nhập 1 dãy số , tối thiểu là 2 số nguyên âm
tính tổng các số dương nằm giữa 2 số nguyên âm đầu tiên và cuối cùng của mảng
nếu 2 số âm liền kề nhau in ra tong =0;
C++ Code:
1.

#include<iostream>

2.

#include<math.h>

3.

using namespace std;

4.

void input_arg(int *a, int n);

5.

void output_arg( int *a, int n);

6.

int sum_arg( int *a, int n);

7.


int dem_arg( int*a, int n);

8.
9.
10. int main(){
11.

Select All | Show/Hide


12.

int n,i;

13.

int dem_a;
cout<<" nhap so phan tu cua mang n = ";

14.
15.

cin>>n;

16.

int *a = new int[n];

17.


input_arg(a,n);

18.
if ( (dem_arg(a,n)) < 2 ) cout<<" xin moi ban nhap lai , toi

19.

thieu la 2 so am"<< endl;
20.

else {

21.

// in mang
cout<< " \nmang vua nhap la \n";

22.
23.

output_arg(a,n);
cout<<" \ntong cua mang la : " << sum_arg(a,n);

24.
25.

}

26.


27.

delete[]a;
cout<
28.

system ("pause");

29.

return 0;

30. }
31.
32. // ham nhap mang
33. void input_arg( int *a, int n){
34.
35.

int i;

36.

for ( i = 0 ; i < n ; i++){

37.
cout<< " a [ " << i << " ] =";

38.

39.
40.

cin>>a[i];
}

41.
42. }
43. // ham in mang
44.
45. void output_arg( int *a, int n){
46.
47.

int i, dem =0;

48.

for ( i = 0 ; i < n ; i++){
cout<< a[i] << " ";

49.
50.

}

51.
52. }
53. // ham kiem tra co 2 so am
54. int dem_arg( int *a, int n){

55.


56.

int dem =0;

57.

for ( int i = 0 ; i

< n ; i++ ){

58.

if ( a[i] < 0 ) {

59.

dem ++;

60.

}

61.

}

62.


return dem;

63. }
64.
65.
66.
67.
68. int sum_arg( int *a, int n){
69.
70.
71.

int i,j=0,k=0;

72.

int tong =0;

73.

int kt=0;

74.

for ( i = 0 ; i < n ; i++){

75.

//


76.

neu 2 so am lien tiep la so am thi tong =0

if (( a[i] < 0) && (a[i+1] < 0 ) ){

77.

kt=1;

78.

}

79.
80.

}

81.
if ( kt ==1) cout<<" tong = 0 "<< endl;

82.
83.

//

84.


neu khong thi

else {

85.
86.

for ( i = 0 ; i < n ; i++){

87.

if ( a[i] < 0 ){

88.

k = i; // gan chi so i cho k

roi ket thuc vong

lap
89.

break;

90.

}

91.
92.


}

93.

//

cout<<"

k = " << k << endl;

94.
95.

for ( i = (n-1) ; i > 0 ; i--){

96.

if ( a[i]

97.

0 ){

j = i; // gan chi so cua i cho j roi ket
thuc vong lap

98.

<


break;


99.

}

100.
101.

}

102.

// tinh tong

103.

for ( i = k ; i < j ; i++){

104.

if (a[i] > 0 )

105.

tong

+= a[i];


106.
107.

}

108.

}

109.
110.

return tong;

111. }

Trường đại học Bách Khoa Hà Nội(Khoa Điện Tử-Viễn Thông-không chuyên tin)
Khoa mình học môn C++.
Đề thi:(Giữa kì và cuối kì-2009)
90 phút
C++ Code:

Select All | Show/Hide

1.

KIỂM TRA GIỮA KỲ

2.


NGÔN NGỮ LẬP TRÌNH C++

3.

Thời gian: 90 phút

4.

(Được sử dụng tài liệu)

5.

Mã SV: ……………………………………

6.

Họ tên: ……………………………………

7.

Câu 1. Những mệnh đề nào dưới đây là đúng: (1,5 điểm)

8.

• Ngôn ngữ C++ có thể sử dụng các hàm của C như memcpy, strlen, … // True

9.

• Cùng một tên biến có thể khai báo trong cácđoạn


Lớp: ………………………………………
ĐỀ SỐ 1

khác nhau của một

khối {…} // False
10. • Từ long không thể dùng làm tên biến // True
11. • Toán tử & cho giá trị 0 hoặc 1 // False (&& chứ ko phải &)
12. • Nếu khai báo int *p = (int *)1090 thì cout << (p + 1) đưa ra màn hình giá
trị 0x0000044A // False : 443
13. • Toán tử return ((char *)p) trả giá trị p về cho hàm kiểu char * // True
14. • Tham số mặc định của hàm phải đặt ở cuối danh sách tham số // False ? Ko
hiểu rõ ý đề nói gì
15. • Định nghĩa struct So{double a}; không có ý nghĩa thực tiễn // True, Khai báo
double a cho mau
16. • Độ phức tạp trung bình của thuật toán sắp xếp nổi bọt (BubbleSort) là
O(n2) // True ? Lên wiki thử xem


17. • Một hàm đệ quy không bao giờ

dẫn đến lỗi tràn stack // False

18.
19.
20. Câu 2. Cho các biến sau: (2 điểm)
21. char c; int i; unsigned u; double d; int &ri = i; double *pd = &d;
22. Cho biết giá trị của các biến bị thay đổi sau khi thực hiện lần lượt từng dòng
lệnh

23.

Dòng lệnh

24.

c = 'A'; i = 5; u = 1; d = 1.5; ri = 2; *pd = 5;

c

i

u

d

25. // c = 65; i = 5; u = 1; d = 1
26.
27.

if (++u || ++i || ++c) d /= 4;

28. // d = 0;
29.
30.

for (; i > 0; i--) {u += (i << 1); u--;}

31. // u=30
32.

33.

switch(c){case 'A':d++;case 'B':d+=2;default:d+=5;}

34. // d = 8;
35.
36.
37. Câu 3. Cho đoạn khai báo sau: (1,5 điểm)
38. char s[]="1234567890"; unsigned *p = (unsigned *)&s[2];
39. a) Mảng s có 10 phần tử:
 đúng
 sai // đúng
40. b) (char)(*(p + 1)) bằng '5':
đúng

 sai // đúng
41. c) Nếu gán *p=0x4163 thì cout << s cho hiện lên màn hình: // không hiện gì ""
hoặc là hiện "cA"
42.
43.
44. Câu 4. Hàm nào dưới đây tính x^n: (1 điểm)
45. double f1(double x, int n)
46. {
47.

double res = 1.0;

48.

while (n) {res *= x; --n;}


49.

return (res);

50. }
51. double f2(double x, int n)
52. {
53.

if (n < 1)

54.

return 1.0;

55.

return (x * f2(x, n – 1));

56. }
57.  Hàm f1
58.  Hàm f2
59.  Cả hai hàm // Cái này chính xác nhất


×