1、1. 输入一个字符串,内有数字和非数字字符,例如:“ A123x456 17960? 302tab5876”,将其中连续的数字作为一个整数,依次存在到一数组 a 中。例如,123放在 a0, 456放在 a1统计共有多少个整数,并输出这些数。 (完成 fun函数 ) 如:输入 A123x456 17960? 302tab5876,输出为共有 5 个整数,分别为123,456,17960,302,5876。 #include void fun(char *p,int t,int *x) int i=0,m; for (;*p!=0;p+) if (*p=0*s!=0;s+) if (*s=a v
2、oid sort(int *p); for(i=0;i*(p+j) k=j; /寻找之后的数里最大的数字,并将其下标赋给 k if (k!=i) /如果 k 不是本次循环第一个数的下标,执行交换 temp=*(p+i); *(p+i)=*(p+k); *(p+k)=temp; 4. 编写一个函数实现字符串复制功能,不能使用 strcpy函数。(完成 copy_string函数) #include int main() char a100,b20; void copy_string(char *p,char *q); gets(b); printf(“n the original data is
3、 :%s“,b); copy_string(a,b); printf(“n the result data is :%sn“,a); return 0; void copy_string(char *p,char *q) int i=0; while (pi+=*q+); /将第二个字符串中所有元素赋给第一个字符串 5.编写 fun函数,求出 1到 m之间的所有素数。 #include int prime(int m) int i; for(i=2;i int main() int a10,i,j; void sort(int *); for(i=0;i*(p+j) /后面的数大于前面的,交换
4、顺序 temp=*(p+j+1); *(p+j+1)=*(p+j); *(p+j)=temp; 7编写函数:将新输入的数据放在原来的数组中,使数据仍然按升序排列。 #include void insertx(int arr,int x) int i,j; for(i=0;ix) break; /找到比 x大的数字 for(j=10;ji;j-) arrj=arrj-1; /从比 x大的数字开始逐个后移 arrj=x; /将 x放到正确位置 int main() int score11=35,45,55,65,78,85,89,93,95,99,x,i; printf(“the original
5、 data is :n“); for(i=0;i #define LEN 20 void fun(char a,char b,int n) int i,j=0; for (i=0;ai!=0;i+) if (i!=n) bj+=ai; /跳过指定下标将 a 中字符复制到 b中 bj=0; void main() char str1LEN,str2LEN; int n; printf(“enter the string:“); gets(str1); printf(“enter the index of the char deleted:“); scanf(“%d“, fun(str1,str2
6、,n); printf(“the new string is :%sn“,str2); printf(“n“); 9. 从键盘输入 5个学生的信息(包括姓名,成绩),存到磁盘文件上。然后再从磁盘文件上读取第 1,3,5 个学生数据输入计算机,并在屏幕上显示出来。要求完成 save 函 数和 read函数。 #include #include #define N 5 struct Student char name10; int score; studN; void save() FILE *fp; if (fp=fopen(“D:student.txt“,“w“)=NULL) printf(“
7、无法打开此文件 !“); exit(0); /创建文件 fwrite(stud,sizeof(Student),N,fp); /将数据写入文件中 fclose(fp); /关闭 void read() FILE *fp; int i; if (fp=fopen(“D:student.txt“,“r“)=NULL) printf(“无法打开此文件 !“); exit(0); /若文件中无数据则输出无法打开 for (i=0;!feof(fp);i+) fread( /逐个读取数据并存到结构体中 fclose (fp); for (i=0;i #include #include void writ
8、e(char (*st)20,FILE *fp1) char temp20; int i,j; for (i=0;i0) strcpy(temp,sti); strcpy(sti,stj); strcpy(stj,temp); if (fp1=fopen(“d:file.txt“,“w“)=NULL) printf(“cant open filen“); exit(0); /建立文件 for (i=0;i #include void creatfile() FILE *fp; char st20; printf(“输入第一个字符串: “); gets(st); if (fp=fopen(“d:
9、file1.txt“,“w“)=NULL) printf(“can not open file“); exit(0); fputs(st,fp); fclose(fp); printf(“n输入第二个字符串: “); gets(st); if (fp=fopen(“d:file2.txt“,“w“)=NULL) printf(“can not open file“); exit(0); fputs(st,fp); fclose(fp); void hebing(char st,int n) FILE *fp; int i,j,k; char temp,ch; if(fp=fopen(“d:fi
10、le3.txt“,“w“)=NULL) printf(“ncan not open filen“); exit(0); /建立 file3文件 for (i=0;istj) k=j; if (k!=i) temp=sti; sti=stk; stk=temp; fputs(st,fp); /将排好序的字符串存到文件中 fclose(fp); void output(FILE *fp1,int n) char ch; if (fp1=fopen(“d:file3.txt“,“r“)=NULL) printf(“can not open file“); exit(0); printf(“n“);
11、while (ch=fgetc(fp1)!=EOF) putchar(ch); printf(“n“); fclose(fp1); int main() FILE *fp; int i,j,n,i1; char c100,t,ch; creatfile(); if(fp=fopen(“d:file1.txt“,“r“)=NULL) printf(“ncan not open filen“); exit(0); printf(“file1:n“); for(i=0;(ch=fgetc(fp)!=EOF;i+) ci=ch; putchar(ci); fclose(fp); i1=i; if(fp
12、=fopen(“d:file2.txt“,“r“)=NULL) printf(“ncan not open filen“); exit(0); printf(“nfile2:n“); for(i=i1;(ch=fgetc(fp)!=EOF;i+) ci=ch; putchar(ci); fclose(fp); hebing(c,i); printf(“nfile3:n“); output(fp,i); return 0; 12. 写一个函数,完成将任意一个数组中的值按逆序重新存放。(数组长度不超过 6位 ) 要求:数组内容的内容输入和重新存放后的输出都要在主函数中实现。 如:输入内容为 5个整数,分别为 8 6 5 4 1,重新存放后输出为: the result is 1,4,5,6,8。 #include #define N 6 void fun(int a,int n) int i,temp; for (i=0;in/2;i+) /以中间数为对称轴进行交换 temp=ai;
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。