欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年C语言经典实例 .pdf

    • 资源ID:39899147       资源大小:184.74KB        全文页数:34页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年C语言经典实例 .pdf

    1 C 语言学习经典实例名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 34 页 -2 第一章基础知识练习程序一:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数#include main()int a,b,c,;for(i=100;i=999;i+)a=i/100;b=i/10%10;c=i0%10;if(a*a*a+b*b*b+c*c*c)=i)printf(%d,i);结果:153 370 371 407 程序二:将一个正整数分解质因数。例如:输入90,打印出 90=2*3*3*5 main()int a,k=0,i;char b100;scanf(%d,&a);printf(%d=,a);for(i=2;i=i);for(i=0;i2*k-1;i+)if(i%2=0)printf(%d,bi/2);else printf(*);48 48=2*2*2*2*3 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 34 页 -3 程序三:输入两个正整数m 和 n,求其最大公约数和最小公倍数。#include main()int a,b,x,y,r,t;scanf(%d,%d,&a,&b);printf(%d%dn,a,b);x=a;y=b;if(xy)t=y;y=x;x=t;do r=y%x;y=x;x=r;while(r!=0);printf(%d ,y);printf(%d,a*b/y);25,30 25 30 5 150 第二章数组的简单应用程序四:判断101-200 之间有多少个素数,并输出所有素数。所谓素数:仅能被1 和它本身整除的数。#include main()int a,b,i,j,k,s=0,n=0;int c100;for(i=10;i=30;i+)k=0;for(j=2;j=i/2;j+)b=i%j;if(b=0)k=1;if(k=0)s+;cn=i;n+;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 34 页 -4 printf(%dn,s);for(i=0;in;i+)printf(%d,ci);6 11 13 17 19 23 29 程序五:Fibonacci数列,第1 数为 1,第 2 数为 1,从第 3 输开始,为前两个数的和,即f1=1;f2=1;fn=fn-1+fn-2;求前 20 项个是什么,并且每行输出五个数#include main()int f1,f2,f3,i,j;f1=1;f2=1;printf(%d%d ,f1,f2);for(i=1;i=20;i+)f3=f1+f2;f1=f2;f2=f3;printf(%d,f3);for(j=1;j=20;j+)if(i=5*j-2)printf(n);1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 程序六:求 s=a+aa+aaa+aaaa+aa.a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。main()int count,i,sum,t,a;scanf(%d,&count);scanf(%d,&a);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 34 页 -5 t=a;sum=0;for(i=1;i=count;i+)sum=sum+t;t=10*t+a;printf(%3d,sum);3 5 615 程序七:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如 6=123.编程 找出 1000 以内的所有完数。main()int i,j,s,b100,n,l;for(i=1;i=1000;i+)s=0;n=0;for(j=1;ji;j+)if(i%j=0)s=s+j;bn=j;n+;if(s=i)printf(%d its factors are ,i);for(l=0;ln-1;l+)printf(%d,bl);printf(%dn,bn-1);6 its factors are 1,2,3 28 its factors are 1,2,4,7,14 496 its factors are 1,2,4,8,16,31,62,124,248 程序八:一球从100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第10 次反弹多高?#include main()int i;float t,s=0,h1,h=100;for(i=1;i=3;i+)t=3/2.0*h;s=s+t;t=t*1/2.0;h=h/2.0;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 34 页 -6 h1=h;printf(%3.2f%3.2f,s-1,h1);250.00 12.50 程序九:求的近似值,最后一项绝对值小于610为止。/4约为 1-1/3+1/5-1/7+,#include main()float s=0,t=1,i=1;/t必须定义为实数/int n=1;while(fabs(t)1e-6)s=s+t;n=n+2;i=-i;t=i/n;s=s*4;printf(%10.3fn,s);3.14159 程序十:求2/1,3/2,5/3,8/5,13/8,21/13,前10 项和main()float s=0,t,a=1,b=2,c;int i;for(i=1;i=10;i+)t=b/a;printf(%f ,t);s=s+t;c=a;a=b;b=b+c;printf(%10.3f,s);2.000000 1.500000 1.666667 1.600000 1.625000 1.615385 1.619048 1.617647 1.618182 1.617977 16.480 第三章特殊图形的设计程序十一:打印图形main()名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 34 页 -7 int i,j;for(i=0;i=6;i+)for(j=0;j=6;j+)if(j=(9-i)&(j=3-i)&(j=i-3)printf(*);else printf();printf(n);*程序十二:用牛顿迭代法求方程在1.5 附近的根。2x3-4 x2+3x-6=0#include main()float x,x0,f,f1,t;int n=0;x0=1.5;do f=(2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;t=x0;x=x0-f/f1;n+;x0=x;printf(%1.4f%dn,x,n);while(fabs(x-t)=1e-6);2.3333 1 2.0610 2 2.0026 3 2.0000 4 2.0000 5 2.0000 6 程序十三:求2001!kk名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 34 页 -8 main()long int t=1,s,i;s=0;for(i=1;i=20;i+)t=t*i;s=s+t;printf(%ldn,s);268040729 第四章字符及字符串函数程序十四:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#include main()char c;int l,s,d,t;l=0;s=0;d=0;t=0;c=getchar();while(c!=n)if(c=a&c=A&c=0&c=9)d+;else t+;c=getchar();printf(%2d%2d%2d%2d,l,s,d,t);kljh95682k =5 3 5 5 程序十五:取一个整数a 从右端开始的47 位。程序分析:可以这样考虑:(1)先使 a右移 4 位。(2)设置一个低 4 位全为 1,其余全为 0 的数。可用(04)(3)将上面二者进行&运算。程序十六:用冒泡法对数组从小到大排序。main()int a10,i,j,t;for(i=0;i10;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 34 页 -9 scanf(%d,&ai);for(i=0;i10;i+)for(j=i;j10;j+)if(ajai)t=ai;ai=aj;aj=t;for(i=0;i10;i+)printf(%d,ai);1 5 2 7 4 8 3 6 0 9 exit 0 1 2 3 4 5 6 7 8 9 程序十七:输入一行字符,统计其中有多少个单词,单词之间用空格分开。#include main()char string81;int n=0,w=0,i;char c;gets(string);for(i=0;(c=stringi)!=0;i+)if(c=)w=1;else w=0;if(w=1)n+;n+;printf(%dn,n);I am a boy 4 Today is thursday 3 程序十八:将一个数组按逆序存放:#include main()int i,t;int b10=1,6,5,2,8,9,3,4,0,7;for(i=0;i10/2;i+)t=bi;bi=b10-1-i;b10-1-i=t;for(i=0;ib8)c9=a;for(i=0;i9;i+)ci=bi;else for(i=0;ibi&abi+1)k=i;ck+1=a;for(j=k+2;j10;j+)cj=bj-1;for(m=0;m=k;m+)cm=bm;if(ab0)c0=a;for(i=1;i10;i+)ci=bi-1;for(i=0;ib8)c9=a;for(i=0;i9;i+)ci=bi;else for(i=0;ibi&abi+1)k=i;ck+1=a;for(j=k+2;j10;j+)cj=bj-1;for(m=0;m=k;m+)cm=bm;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 34 页 -11 if(ab0)c0=a;for(i=1;i10;i+)ci=bi-1;for(i=0;ib8)c9=a;for(i=0;i9;i+)ci=bi;else for(i=0;ibi&abi+1)k=i;ck+1=a;for(j=k+2;j10;j+)cj=bj-1;for(m=0;m=k;m+)cm=bm;if(ab0)c0=a;for(i=1;i10;i+)ci=bi-1;for(i=0;i10;i+)printf(%d,ci);4 5 8 9 12 13 14 15 17 19 程序二十:打印杨辉三角(打印出10 行)1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1#include main()int i,j;char a1010;for(i=0;i10;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 34 页 -12 for(j=0;jj)&(j!=0)aij=ai-1j-1+ai-1j;else aij=;for(i=0;i10;i+)for(j=0;j=j)printf(%d,aij);else printf(%c,aij);printf(n);1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 程序二十一:将两个字符串连接起来。#include main()int i,c1;char str20=Peoples Republic of;char str120=China,str250;c1=strlen(str);for(i=0;ic1;i+)str2i=stri;for(i=0;ic1;i+)printf(%c,str2i);printf(n);Peoples Republic of China 名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 34 页 -13 程序二十二:有一行电文,已按下列规律译码:AZ az BY by CX cx 即第 1 个变成第26 个,第 i 个变成第(26-i+1)个,非字母字符不变,变成将密码以成原文。#include main()char str80,str380;char str126=ABCDEFGHIJKLMNOPQRSTUVWXYZ;char str226=abcdefghijklmnopqrstuvwxyz;int i,j,l;strcat(str1,str2);gets(str);l=strlen(str);for(i=0;i=a&stri=A&stri=Z)for(j=0;j=0&j25)str3i=str125-j;else str3i=str151-j+26;else ;/此空操作与句很重要/else str3i=stri;puts(str3);printf(n);Whats your name?My name is Bland14.Dszgh blfi mznv?Nb mznv rh Yozmw14.程序二十三:用选择法将数个数数组排序main()int a10,i;void sort(int array,int n);for(i=0;i10;i+)scanf(%d,&ai);sort(a,10);for(i=0;i10;i+)printf(%d,ai);void sort(int array,int n)名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 34 页 -14 int i,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(arrayjarrayk)k=j;t=arrayi;arrayi=arrayk;arrayk=t;9 8 7 6 4 5 3 2 0 1 0 1 2 3 4 5 6 7 8 9 函数中变量的说明变量存储类型函数内函数外作用域存在性作用域存在性自动变量和寄存器变量静态局部变量静态外部变量外部变量(只限本文件)二十四:将一个33 数组行列转置void f(int a,int n)int i,j,t;for(i=0;in;i+)for(j=0;j=i;j+)t=aij;aij=aji;aji=t;main()int a33,i,j;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);f(a,3);for(i=0;i3;i+)for(j=0;j3;j+)printf(%d,aij);printf(n);1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 程序二十五:写一函数,输入一行字符,将此字符串中最长的单词输出。#include 名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 34 页 -15 main()int word=0,i,l,k,max=0,count=0;char str100;gets(str);l=strlen(str);for(i=0;imax)max=count;k=i;count=0;else count=0;if(countmax)max=count;k=l-1;for(i=k-max;ik;i+)printf(%c,stri);printf(n);I love chian and my country!country I am graduated from DaQing!graduated#include int max=0;int zcdc(char str900)int word=0,i,l,k,count=0;l=strlen(str);for(i=0;imax)max=count;k=i;count=0;else count=0;if(countmax)max=count;k=l-1;名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 34 页 -16 return(k);main()int i,k;char str1900;gets(str1);k=zcdc(str1);for(i=k-max;ik;i+)printf(%c,str1i);printf(n);I am graduated from Daqingshiyouxueyuan!Daqingshiyouxueyuan I would love to go shoping next Monday!shoping 程序二十六:输入4 个学生,3 门课程的成绩:1)、求每个学生的成绩;2)、求每门课的成绩:main()int a43=1,2,3,4,5,6,7,8,9,10,11,12,i,j;float s=0,b4,s1,c3;for(i=0;i4;i+)s=0;for(j=0;j3;j+)s=s+aij;s=s/3;bi=s;for(i=0;i4;i+)printf(%f,bi);for(j=0;j3;j+)s1=0;for(i=0;i4;i+)s1=s1+aij;s1=s1/4;cj=s1;for(j=0;j3;j+)printf(%f,cj);注意本程序解题思想:对数组行列求和2.000000 5.000000 8.000000 11.000000 5.5000006.5000007.500000 体会如下各程序:指针的作用main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int*p;名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 34 页 -17 for(p=a0;pa0+12;p+)if(p-a0)%4=0)printf(n);printf(%3d,*p);1 3 5 7 9 11 13 15 17 19 21 23 main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int*p,i;p=a;for(i=0;i12;i+)if(i%4=0)printf(n);printf(%3d,*p);p+;结果通上main()int a34=1,3,5,7,9,11,13,15,17,19,21,23;int(*p)4,i,j;/(*p)4表示 p 是一个指针变量,它指向包含4 个元素的一位数组/p=a;for(i=0;i3;i+)for(j=0;j*(s2+i)?*(s1+i):*(s2+i);if(*(s1+i)=0)while(*(s1+i)!=0)名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 34 页 -18 *(s3+i)=*(s2+i);i+;if(*(s2+i)=0)while(*(s1+i)!=0)*(s3+i)=*(s1+i);i+;*(s3+i)=0;stuients 函数的指针和指向函数的指针变量main()int max(int,int);int(*p)();int a,b,c;p=max;/将函数 max的入口地址赋给指针p/c=(*p)(a,b);例 10.24 设一个函数 process,在调用它的时候,每次实现不同功能。输入a 和b 两个数,第一次调用processs 时找出其中大者,第二次找出小者,第三次求和;main()int max(int,int);int min(int,int);int add(int,int);int a=4,b=6;process(a,b,max);第一次调用process 时,除了将a 和 b 作为实参传给process(a,b,min);process 的形参 x 和 y 外,还将函数名 max作为实参将其 process(a,b,add);入口地址传送给process 函数中的形参 fun;max(int x,int y)int z;if(xy)z=x;else z=y;return(z);min(int x,int y)int z;if(xy)z=x;else z=y;return(z);add(int x,int y)int z;z=x+y;return(z);名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 34 页 -19 process(int x,int y,int(*fun)(int,int)int result;result=(*fun)(x,y);printf(“%dn”,result);10.6 返回指针值的函数例:10.25 由若干个学生的成绩(每个学生4 门课)要去输入学生序号,输出学生的全部成绩,用指针来实现。float*search(float(*pointer)4,int n)float*pt;/pointer是包含 4 个元素的一维数组的指针/pt=*(pointer+n);/*(p+n)表示第 n 行首地址指针/return(pt);main()float score 4=60,70,80,90,56,89,67,88,54,78,90,65;float*p;int i,m=1;p=search(score,m);for(i=0;i4;i+)printf(%6.3ft,*(p+i);56.000 89.000 67.000 88.000 例 10.26 对上例中的学生,找出其中不及格学生的成绩及学号float*search(float(*pointer)4)int i;float*pt;for(i=0;i4;i+)if(*(*pointer+i)60)pt=*pointer;return(pt);main()float score 4=60,70,80,90,56,89,67,88,54,78,90,65,12,67,98,32;float*p;int i,j;for(i=0;i4;i+)p=search(score+i);if(p=*(score+i)for(j=0;j4;j+)printf(%6.3ft,*(p+j);printf(n);名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 34 页 -20 56.000 89.000 67.000 88.000 56.000 89.000 67.000 88.000 54.000 78.000 90.000 65.000 12.000 67.000 98.000 32.000 10.7 指针数组和指向指针的指针void sort(char*name,int n)char*t;int i,j,k;for(i=0;in-1;i+)k=i;for(j=i+1;j0)k=j;t=namei;namei=namek;namek=t;void print(char*name,int n)int i;for(i=0;in;i+)printf(%sn,namei);main()char*name=Follow me,basic,Great Wall,FORTRAN,computer design;int n=5;/指针数组各元素是各字符串的首地址/sort(name,n);print(name,n);FORTRAN Follow me Great Wall basic computer design 程序二十七:有一个字符串,包含 n 个字符,将字符串中第m个字符开始的全部字符复制到另一个字符串中。#include main()char str1100,str100=sytdghjkimbcxvx;char*p,*p1;int m=3,n,i;n=strlen(str);puts(str);p=str;p1=str1;for(i=0;im-1;i+)p+;/注意一定要将指针后移/名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 34 页 -21 for(i=m-1;in;i+)*p1=*p;p+;p1+;*p1=0;puts(str1);sytdghjkimbcxvx tdghjkimbcxvx 程序二十八:将数组转置main()int a33=4,5,6,7,8,9,10,11,12,i,j;int(*p)3,t;/二维数组使用时必须这样定义指针/p=a;for(i=0;i3;i+)for(j=0;ji;j+)t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;for(i=0;i3;i+)for(j=0;j3;j+)printf(%3d,aij);printf(n);4 7 10 5 8 11 6 9 12 程序二十九:输入一行文字,统计其中大写字母,小写字母,空格,数字以及其他字符各有多少?#include main()char str1000;int dx=0,xx=0,kg=0,sz=0,ot=0,n,i;char*p;gets(str);p=str;n=strlen(str);for(i=0;i=a&*p=A&*p=0&*p=9)sz+;else ot+;p+;printf(%4d,%4d,%4d,%4d,%4dn,xx,dx,kg,sz,ot);xH6)gDW#62Nb89 名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 34 页 -22 3,4,2,5,4 程序三十:编一程序,打入月份号,输出该月的英文名字。#include main()char*str=January,Febryary,March,April,May,June,July,August,September,October,November,December;int i,a;scanf(%d,&a);for(i=0;i12;i+)if(a=i)printf(%s,stra-1);5 May 程序三十一:用指向指针的指针的方法对n 个整数排序并输出。要求将排序单独写成一个函数。5 个整数和n 在主函数中输入。最后在主函数中输出。void sort(int*a,int n)int*p,i,k,j,t;p=a;for(i=0;in-1;i+)k=i;for(j=i;j*(p+j)k=j;t=*(p+i);*(p+i)=*(p+k);*(p+k)=t;main()static int a5=72,32,56,17,95;int*num5;int*p,i;/指向指针的指针/for(i=0;i5;i+)numi=&ai;/指针数组 num存放数组a 中各元素地址/sort(num,5);p=num;for(i=0;i5;i+)printf(%dt,*p);p+;17 32 56 72 95 程序三十二:写一函数,p1 指向字符串s1,p2 指向字符串s2,当 s1=s2 时返回 0,s1 大于或者小于s2 时,返回对应字符ASCII 值得差,若两个字符串不一样长,输出较长串的长出来的第一个字符ASCII 值。int strcmp1(char*p1,char*p2)int i;名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 34 页 -23 for(i=0;i*p2)break;else break;return(*p1-*p2);main()char s11000=shrfvnha,s21000=sifvnhba;char s11000=shrfvnha,s21000=sifvnhbam;int a,l1,l2;l1=strlen(s1);l2=strlen(s2);if(l1l2)printf(%dn,s1l2);else if(l1l2)printf(%dn,s1l2);else if(l1l2)printf(-%dn,s2l1);else a=strcmp(s1,s2);printf(%4dn,a);-1-109 程序三十二:对候选人得票的统计程序,设有 3 个候选人,每次输入一个得票的候选人的名名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 34 页 -24 字,要求最后选人得票数目。#include#include struct person char name20;int count;struct person leader3=Li,0,Zhang,0,Wang,0;main()int i,j;/对具体操作时,只能对最低一级的量操作,即对基本数据类型操作/char s;for(i=1;i=10;i+)gets(s);for(j=0;j3;j+)if(strcmp(s,leaderj.name)=0)leaderj.count+;printf(n);for(i=0;inum,p-name,p-score0,p-score1,p-score2);名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 34 页 -25 printf(n);main()prin(&stu);13246 Li ming 65.700,59.800,91.000 结构体知识用指针处理链表#define NULL 0 /定义空地址/#define LEN sizeof(struct student)/定义结构体长度/struct student long num;float score;struct student*next;int n;struct student*creat(void)struct student*head,*p1,*p2;n=0;p1=p2=(struct student*)malloc(LEN);/开辟一个长度为LEN的内存区,带回一个指针,使 p1 和 p2 指向这个指针/scanf(%ld,%f,&p1-num,&p1-score);head=NULL;while(p1-num!=0)n+;if(n=1)head=p1;else p2-next=p1;/p1 指的节点连在p2 节点的后面/p2=p1;p1=(struct student*)malloc(LEN);scanf(%ld,%f,&p1-num,&p1-score);p2-next=NULL;指向表尾 return(head);/返回表头指针,即表的起始地址/void print(struct student*head)输出函数struct student*p;p=head;if(head!=NULL)do 名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 34 页 -26 printf(%ld%5.1fn,p-num,p-score);p=p-next;while(p!=NULL);struct student*del(struct student*head,long num)删除链表中节点struct student*p1,*p2;if(head=NULL)printf(nlist null!n);goto end;/不执行一下操作,直接跳转到end 语句/p1=head;while(num!=p1-num)if(p1-next!=NULL)/p1 指的不是要找的结点,而且后面还有结点/p2=p1;p1=p1-next;/*p1 后移一个指针/else printf(%ld not been found!n,num);goto end;if(num=p1-num)if(p1=head)head=p1-next;else p2-next=p1-next;/将下一个结点地址赋给钱一个结点地址/printf(delete:%ldn,num);n-;end:return(head);struct student*insert(struct student*head,struct student*stu)struct student*p0,*p1,*p2;p1=head;/p1指向第一个结点/p0=stu;/p0指向要插入的结点/if(head=NULL)/原来的表示空的/head=p0;p0-next=NULL;/p0 指向的结点做头结点/else while(p0-nump1-num)if(p1-next!=NULL)p2=p1;p1=p1-next;/p2 指向 p1 的结点,p1 后移一个结点/else p1-next=p0;p0-next=NULL;if(p0-numnum)if(head=p1)head=p0;/插到原来第一个结点之前/else p2-next=p0;/插到 p2 指向的结点之后/p0-next=p1;n+;return(head);名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 34 页 -27 main()struct student*head,*stu;long del_num;head=creat();print(head);scanf(%ld,&del_num);while(del_num!=0&head!=NULL)/可以多次删除/head=del(head,del_num);print(head);scanf(%ld,&del_num);if(del_num=0)goto eld;/遇到 0 跳出/eld:printf(n Input the inserted recore:);stu=(struct student*)malloc(LEN);scanf(%ld,%f,&stu-num,&stu-score);while(stu-num!=0)head=insert(head,stu);print(head);stu=(struct student*)malloc(LEN);scanf(%ld,%f,&stu-num,&stu-score);101 64.0 104 85.0 109 67.0 101 delete:101 104 85.0 109 67.0 109 delete:109 104 85.0 0 Input the inserted recore:120,94 104 85.0 120 94.0 115,63 104 85.0 115 63.0 120 94.0 0,0 共用体特点:名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 34 页 -28(1)共用体变量起作用的是最后一次存放的成员,在存放一个新的成员后原来的成员就失去作用。(2)共用体变量的地址和它的各成员地址相同。(3)不能对共用体变量名赋值,也不能企图引用变量名得到一个值,又不能在定义共用体变量时对它初始化。(4)不能把共用体做函数参数,也不能使函数带回共用体变量,但可以使指针指向共用体。(5)共用体类型可以出现在结构体类型定义中,也可以定义共用体数组;反之,结构体也可以出现在共用体类型定义中,数组也可以作为共用体成员。struct int num;char name12;char sex;char job;union int class;char position12;category;person3;main()int i;for(i=0;i3;i+)scanf(%d%s%c%c,&personi.num,&personi.name,&personi.sex,&personi.job);if(personi.job=s)scanf(%d,&personi.category.class);else if(personi.job=t)scanf(%s,personi.category.position);else printf(errror);printf(NO.Name Sex Job class/positionn);for(i=0;i3;i+)if(personi.job=s)printf(%-6d%-12s%-3c%-3c%-6dn,personi.num,personi.name,personi.sex,personi.job,personi.category.class);e

    注意事项

    本文(2022年C语言经典实例 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开