好文档 - 专业文书写作范文服务资料分享网站

C语言必背18个经典程序

天下 分享 时间: 加入收藏 我要投稿 点赞

scanf(\p=a;

sort(p,10);

for(;p

fprintf(fp,\ } system(\

fclose(fp); }

11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/

main()

{ int a[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/ int x , i, j=6; /*j为元素个数*/ printf(\ scanf(\

a[0]=x;

i=j; /*从最后一个单元开始*/ while(a[i]>x)

{ a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/ a[++i]=x;

j++; /*插入x后元素总个数增加*/

for(i=1;i<=j;i++) printf(\ printf(\

}

12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/

#include

replace(char *s,char c1,char c2) { while(*s!='\\0') { if (*s==c1) *s=c2; s++; } } main()

{ FILE *fp;

char str[100],a,b;

if((fp=fopen(\ { printf(\ exit(0); } printf(\ gets(str);

printf(\ scanf(\printf(\fprintf(fp,\replace(str,a,b);

printf(\fprintf(fp,\

fclose(fp); }

13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置 ,不存在则返回-1。*/ main()

{char s1[6]=\printf(\system(\}

int search(char s1[],char s2[]) {int i=0,j,len=strlen(s2); while(s1[i]){ for(j=0;j=len)return i; else i++; }

return -1;

}

14、/*用指针变量输出结构体数组元素。*/ struct student {

int num; char *name; char sex;

int age;

}stu[5]={{1001,\shou\

main()

{int i;

struct student *ps;

printf(\ /*用指针变量输出结构体数组元素。*/ for(ps=stu;ps

printf(\/*用数组下标法输出结构体数组元素学号和年龄。*/ for(i=0;i<5;i++)

printf(\}

15、/*建立一个有三个结点的简单链表:*/ #define NULL 0 struct student { int num; char *name; int age ;

struct student *next; };

void main()

{

struct student a,b,c,*head,*p;

a.num=1001; a.name=\ /* 对结点成员进行赋值 */ b.num=1002; b.name=\

c.num=1003; c.name=\

head=&a; /* 建立链表,a为头结点 */ a.next=&b; b.next=&c;

c.next=NULL;

p=head; /* 输出链表 */ do{

printf(\p=p->next;

}while(p!=NULL); }

16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/

#include #include #include main()

{ char s[100];

int i,j,n;

printf(\输入字符串:\\n\ gets(s);

n=strlen(s);

for(i=0,j=n-1;i

if(i>=j) printf(\是回文串\\n\ else printf(\不是回文串\\n\

}

17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/

#include void fun(int a[],int n) {int i,j,t;

for(i=0;i<=n-1;i++) for(j=0;j

if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} }

main()

{int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i; FILE *f;

if((f=fopen(\ printf(\fun(a,10);

for(i=0;i<10;i++) {printf(\ fprintf(f,\ } fclose(f); }

18、编写函数countpi,利用公式

?2?1?13?13?25?13?25?37?13?25?37?49??

计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。

#include

double countpi(double eps) /*eps为允许误差*/ {

int m=1;

double temp=1.0,s=0; while(temp>=eps)

{ s+=temp;

temp=temp*m/(2*m+1); m++; }

return(2*s); } main()

{FILE *fp;

double eps=1e-5,pi;

if((fp=fopen(\ { printf(\ exit(0); }

pi= countpi(eps);

printf(\fprintf(fp,\fclose(fp); }

2fykg5axbu5ap1c1l9jn
领取福利

微信扫码领取福利

微信扫码分享