
Cho một tệp văn bản input.txt chứa các phần tử nguyên không âm, các phần tử cách nhau ít nhất một dấu cách trống hoặc ít nhất một dấu xuống dòng. Viết chương trình đổi các số nguyên đọc ra từ tệp input.txt thành xâu nhị phân và xâu hexa tương ứng. Kết quả đưa vào tệp văn bản output.txt theo dạng: n ----> xâu nhị phân -----> xâu hexa (1 điểm)
Tuesday, August 26, 2014
Cho một tệp văn bản input.txt chứa các phần tử nguyên không âm, các phần tử cách
nhau ít nhất một dấu cách trống hoặc ít nhất một dấu xuống dòng. Viết chương trình đổi các
số nguyên đọc ra từ tệp input.txt thành xâu nhị phân và xâu hexa tương ứng. Kết quả đưa
vào tệp văn bản output.txt theo dạng:
n ----> xâu nhị phân -----> xâu hexa (1 điểm)
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <math.h>
void doctep(int a[],int *n,FILE
*l)
{
int i=0;
while
(!feof(l))
{
fscanf(l,"%d",&a[i]);
i++;
}
*n=i;
}
void xemmang(int a[],int n)
{
int i;
printf("\n");
for
(i=0;i<n;i++)
printf("
%d ",a[i]);
printf("\n");
}
char *nhiphan(int n)
{
int i=0,j,k,x;
char s[33],d[3]="01",tg;
x=n;
while
(x!=0)
{
k=x%2;
s[i]=d[k];
i++;
x=x/2;
}
j=i;
for(i=0;i<(j/2);i++)
{
tg=s[i];
s[i]=s[j-i-1];
s[j-i-1]=tg;
}
s[j]=NULL;
return
&s[0];
}
char *chuanhoa(char s[])
{
int
i,j,n=strlen(s)-1,k;
char
s1[100];
if
((n+1)%4==0) return &s[0];
k=((n+1)/4+1);
for(i=0;i<=n;i++)
s1[k*4-i]=s[n-i];
for(i=0;i<(k*4-n);i++)
s1[i]='0';
s1[k*4+1]=NULL;
return
&s1[1];
}
char *hecxa2(int n,FILE *l)
{
int
i,j,k,x=0;
char
s[65],np1[65],np[65],d[17]="0123456789ABCDEF";
strcpy(np1,nhiphan(n));
fprintf(l,"%d ==> %s
===>",n,np1);
strcpy(np,chuanhoa(np1));
n=strlen(np);
for
(i=0;i<n;i+=4)
{
k=0;
for
(j=0;j<4;j++) if (np[i+j]=='1') k+=pow(2.0,3-j);
s[x]=d[k];
x++;
}
s[x]=NULL;
return
&s[0];
}
void ghihecxa(int a[],int n,FILE
*l)
{
int i;
char
hx[33];
for
(i=0;i<n;i++)
{
strcpy(hx,hecxa2(a[i],l));
fprintf(l,"%s\n",hx);
}
}
int main()
{
int
n,a[1000];
FILE *u,*v;
v=fopen("c:\\output.txt","wt");
u=fopen("c:\\input.txt","rt");
doctep(a,&n,u);
printf("\nMang
du lieu doc ra co %5d phan tu",n);
xemmang(a,n);
ghihecxa(a,n,v);
fclose(u);
fclose(v);
printf("\n\nHoantat");
getch();
}

- Câu 2: Viết chương trình làm các công việc sau: a. Tạo dữ liệu: Sinh ngẫu nhiên 50 số nguyên trong khoảng (-100, 100) và lưu các số đó vào tệp DULIEU.TXT gồm 1 dòng và 50 cột, mỗi số cách nhau một ký tự trống b. Sắp xếp: Đọc 50 số từ tệp DULIEU.TXT sắp xếp chúng theo thứ tự không giảm bằng các kỹ thuật: Sắp xếp chọn (Selection Sort), sắp xếp chèn (Insertion Sort), sắp xếp nổi bọt (Bubble Sort) và sắp xếp nhanh (Quick Sort). Lưu kết quả sắp xếp của mỗi kỹ thuật vào các tệp tương ứng là SXCHON.TXT, SXCHEN.TXT, SXNOIBOT.TXT và SXNHANH.TXT. Mặt khác trong dòng cuối của mỗi tệp sau khi sắp ghi thời gian đã sử dụng để sắp xếp dãy số trên.
- Cho tệp văn bản input.txt mỗi dòng chứa 2 số thực cách nhau ít nhất một dấu cách trống. Cho kiểu cấu trúc số phức gồm 2 thành phần là phần thực và phần ảo. Viết chương trình tạo danh sách LIFO gồm các số phức có phần thực và phần ảo đọc ra từ tệp trên. Tính và thông báo ra màn hình tổng các số phức có mặt trong danh sách LIFO.
- Câu 2: Cho dãy số {a1,a2,…an} với n<=100. Viết chương trình thực hiện các công việc sau: a) Đọc các giá trị {a1,a2,..an} vào từ bàn phím và xác định xem dãy nhận được có phải là hoán vị của {1,2..n} không? b) Phân chia {a1,a2…an} thành các dãy con tăng dần có độ dài cực đại.
- Tổng Hợp bài tập C cơ bản.(phần 1)
- Bài tập về xâu trong ngôn ngữ lập trình C. Đếm số ký tự số, ký tự hoa, ký tự thường, số tự nhiên.
- Bài tập về xâu trong ngôn ngữ lập trình C . Code bài TÁCH HỌ, TÁCH TÊN
- Số đối xứng lớn nhất.
- Câu 4.10: Cho một tệp văn bản gồm các số nguyên cách nhau ít nhất một dấu cách trống. Hãy tính và in ra màn hình tổng của các phần tử đọc ra từ tệp.
- Câu 4.9: Cho một tệp văn bản gồm các xâu ký tự. Viết chương trình đọc tệp, đếm và in ra màn hình số chữ cái ‘A‘ có mặt trong tệp
- Câu 4.8: Cho một tệp văn bản gồm các số nguyên cách nhau ít nhất một dấu cách trống. Hãy tính và in ra màn hình trung bình cộng của các phần tử đọc ra từ tệp.
- Câu 4.7: Cho một tệp văn bản gồm các số nguyên cách nhau ít nhất một dấu cách trống. Hãy đọc các số nguyên từ tệp ra, tính và in ra màn hình tổng các số có giá trị lẻ.
- Câu 4.6: Cho một tệp văn bản gồm các xâu ký tự. Viết chương trình đọc tệp, đếm và in ra màn hình số chữ cái in hoa có mặt trong tệp
All comments [ 0 ]
Your comments